From 3f0c3df93946e6c7db9da821f6109d43e5cc257e Mon Sep 17 00:00:00 2001
From: zhangbaojian <1065122561@qq.com>
Date: Mon, 10 Apr 2023 17:54:13 +0800
Subject: [PATCH] =?UTF-8?q?zbj//1.=E6=95=B0=E6=8D=AE=E8=A7=84=E6=A8=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 4 +-
.../njcn/device/pq/pojo/vo/DataScaleVO.java | 30 +++++
.../controller/LargeScreenController.java | 52 ++++++++
.../njcn/system/mapper/LargeScreenMapper.java | 19 +++
.../mapper/mapping/LargeScreenMapper.xml | 34 +++++
.../system/service/LargeScreenService.java | 18 +++
.../service/impl/LargeScreenServiceImpl.java | 126 ++++++++++++++++++
7 files changed, 281 insertions(+), 2 deletions(-)
create mode 100644 pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/DataScaleVO.java
create mode 100644 pqs-system/system-boot/src/main/java/com/njcn/system/controller/LargeScreenController.java
create mode 100644 pqs-system/system-boot/src/main/java/com/njcn/system/mapper/LargeScreenMapper.java
create mode 100644 pqs-system/system-boot/src/main/java/com/njcn/system/mapper/mapping/LargeScreenMapper.xml
create mode 100644 pqs-system/system-boot/src/main/java/com/njcn/system/service/LargeScreenService.java
create mode 100644 pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/LargeScreenServiceImpl.java
diff --git a/pom.xml b/pom.xml
index 4afc1017a..284836f68 100644
--- a/pom.xml
+++ b/pom.xml
@@ -45,7 +45,7 @@
192.168.1.18
- 192.168.1.114
+ 192.168.1.166
192.168.1.13
@@ -54,7 +54,7 @@
- fe40a052-d787-48f4-940f-688cabdff26a
+ 012fcc94-a4d4-4dff-a75a-396a1b997f25
${middle.server.url}:8080
diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/DataScaleVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/DataScaleVO.java
new file mode 100644
index 000000000..eba1b12f2
--- /dev/null
+++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/DataScaleVO.java
@@ -0,0 +1,30 @@
+package com.njcn.device.pq.pojo.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @version 1.0.0
+ * @author: zbj
+ * @date: 2023/04/10
+ */
+@Data
+public class DataScaleVO implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 月份
+ */
+ @ApiModelProperty("月份")
+ private String timeId;
+
+ /**
+ * 数据
+ */
+ @ApiModelProperty("数据")
+ private Float dataStatis;
+
+}
diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/controller/LargeScreenController.java b/pqs-system/system-boot/src/main/java/com/njcn/system/controller/LargeScreenController.java
new file mode 100644
index 000000000..f7a5322e9
--- /dev/null
+++ b/pqs-system/system-boot/src/main/java/com/njcn/system/controller/LargeScreenController.java
@@ -0,0 +1,52 @@
+package com.njcn.system.controller;
+
+import com.njcn.common.pojo.annotation.OperateInfo;
+import com.njcn.common.pojo.enums.common.LogEnum;
+import com.njcn.common.pojo.enums.response.CommonResponseEnum;
+import com.njcn.common.pojo.response.HttpResult;
+import com.njcn.common.utils.HttpResultUtil;
+import com.njcn.device.pq.pojo.param.LargeScreenParam;
+import com.njcn.device.pq.pojo.vo.DataScaleVO;
+import com.njcn.system.service.LargeScreenService;
+import com.njcn.web.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+
+/**
+ * @version 1.0.0
+ * @author: zbj
+ * @date: 2023/04/10
+ */
+@Slf4j
+@Api(tags = "大屏")
+@RestController
+@RequestMapping("/largeScreen")
+@RequiredArgsConstructor
+public class LargeScreenController extends BaseController {
+
+ private final LargeScreenService largeScreenService;
+
+ /**
+ * 数据规模
+ */
+ @OperateInfo(info = LogEnum.BUSINESS_COMMON)
+ @PostMapping("/getDataScale")
+ @ApiOperation("数据规模")
+ @ApiImplicitParam(name = "largeScreenParam", value = "数据规模", required = true)
+ public HttpResult> getDataScale(@RequestBody @Validated LargeScreenParam largeScreenParam) {
+ String methodDescribe = getMethodDescribe("getDataScale");
+ List result = largeScreenService.getDataScale(largeScreenParam);
+ return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
+ }
+}
diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/LargeScreenMapper.java b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/LargeScreenMapper.java
new file mode 100644
index 000000000..c3838ac04
--- /dev/null
+++ b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/LargeScreenMapper.java
@@ -0,0 +1,19 @@
+package com.njcn.system.mapper;
+
+
+import com.njcn.device.pq.pojo.param.LargeScreenParam;
+import com.njcn.device.pq.pojo.vo.DataScaleVO;
+import com.njcn.device.pq.pojo.vo.UserScaleVO;
+
+import java.util.List;
+
+/**
+ * @version 1.0.0
+ * @author: zbj
+ * @date: 2023/04/10
+ */
+public interface LargeScreenMapper {
+
+ List getDataScale (LargeScreenParam largeScreenParam);
+
+}
diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/mapping/LargeScreenMapper.xml b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/mapping/LargeScreenMapper.xml
new file mode 100644
index 000000000..0668d1e48
--- /dev/null
+++ b/pqs-system/system-boot/src/main/java/com/njcn/system/mapper/mapping/LargeScreenMapper.xml
@@ -0,0 +1,34 @@
+
+
+
+
+
+
+
+
+
diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/service/LargeScreenService.java b/pqs-system/system-boot/src/main/java/com/njcn/system/service/LargeScreenService.java
new file mode 100644
index 000000000..625b51b32
--- /dev/null
+++ b/pqs-system/system-boot/src/main/java/com/njcn/system/service/LargeScreenService.java
@@ -0,0 +1,18 @@
+package com.njcn.system.service;
+
+import com.njcn.device.pq.pojo.param.LargeScreenParam;
+import com.njcn.device.pq.pojo.vo.DataScaleVO;
+
+import java.util.List;
+
+
+/**
+ * @version 1.0.0
+ * @author: zbj
+ * @date: 2023/04/10
+ */
+public interface LargeScreenService {
+
+ List getDataScale(LargeScreenParam largeScreenParam);
+
+}
diff --git a/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/LargeScreenServiceImpl.java b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/LargeScreenServiceImpl.java
new file mode 100644
index 000000000..117fa4a7b
--- /dev/null
+++ b/pqs-system/system-boot/src/main/java/com/njcn/system/service/impl/LargeScreenServiceImpl.java
@@ -0,0 +1,126 @@
+package com.njcn.system.service.impl;
+
+import com.njcn.device.pq.pojo.param.LargeScreenParam;
+import com.njcn.device.pq.pojo.vo.DataScaleVO;
+import com.njcn.system.mapper.LargeScreenMapper;
+import com.njcn.system.service.LargeScreenService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+
+/**
+ * @version 1.0.0
+ * @author: zbj
+ * @date: 2023/04/10
+ */
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class LargeScreenServiceImpl implements LargeScreenService {
+
+ private final LargeScreenMapper largeScreenMapper;
+
+ /**
+ * 数据规模
+ */
+ @Override
+ public List getDataScale(LargeScreenParam largeScreenParam) {
+ //创建返回VO
+ List result = new ArrayList<>();
+ //创建模板
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+ //获取当前日期
+ LocalDate today = LocalDate.now();
+ String endTime = today.format(formatter);
+ String startTime = "";
+ //获取30天前的日期
+ try {
+ startTime = getDate(endTime);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ largeScreenParam.setSearchBeginTime(startTime);
+ largeScreenParam.setSearchEndTime(endTime);
+ List list = largeScreenMapper.getDataScale(largeScreenParam);
+ //获取区间中所有日期
+ List days = null;
+ try {
+ days = selectDate(startTime, endTime);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ //加上今天
+ days.add(endTime);
+ for (String s : days) {
+ DataScaleVO vo = new DataScaleVO();
+ vo.setTimeId(s);
+ result.add(vo);
+ }
+ //集合不为空
+ if (list.size() > 0) {
+ for (DataScaleVO dataScaleVO : result) {
+ for (DataScaleVO scaleVO : list) {
+ if (Objects.equals(scaleVO.getTimeId(), dataScaleVO.getTimeId())) {
+ dataScaleVO.setDataStatis(scaleVO.getDataStatis());
+ }
+ }
+ }
+ for (DataScaleVO vo : result) {
+ if (vo.getDataStatis() == null) {
+ vo.setDataStatis(0.0f);
+ }
+ }
+ return result;
+ } else {
+ return result;
+ }
+ }
+
+ /**
+ * 传入字符串日期获取当前日期30天日期
+ *
+ * @param stringDate
+ * @throws Exception
+ */
+ public static String getDate(String stringDate) throws Exception {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ Date date = sdf.parse(stringDate); // 将字符串日期转换为Date对象
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(date);
+ calendar.add(Calendar.DAY_OF_MONTH, -30); // 计算30天前的日期
+ Date newDate = calendar.getTime(); // 获取新日期
+ String newDateStr = sdf.format(newDate); // 将新日期转换为字符串日期
+ return newDateStr;
+ }
+
+ /**
+ * 获取传入起始月结束月中所有天
+ *
+ * @param startTime
+ * @param endTime
+ * @return
+ */
+ public List selectDate(String startTime, String endTime) throws Exception {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+
+ Date startDate = sdf.parse(startTime);
+ Date endDate = sdf.parse(endTime);
+
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(startDate);
+
+ List dates = new ArrayList<>();
+ while (calendar.getTime().before(endDate)) {
+ Date date = calendar.getTime();
+ String dateStr = sdf.format(date);
+ dates.add(dateStr);
+ calendar.add(Calendar.DATE, 1);
+ }
+ return dates;
+ }
+}