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; + } +}