From 53170bda6d36a998ace373da3ae59b9f53423e70 Mon Sep 17 00:00:00 2001 From: zhangbaojian <1065122561@qq.com> Date: Tue, 21 Mar 2023 16:31:12 +0800 Subject: [PATCH] =?UTF-8?q?zbj//=E5=A4=A7=E5=B1=8F=E7=9B=91=E6=B5=8B?= =?UTF-8?q?=E7=82=B9=E8=A7=84=E6=A8=A1=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pq/pojo/param/LargeScreenParam.java | 40 ++++++++++ .../pojo/param/MonitoringPointScaleParam.java | 30 ++++++++ .../pq/pojo/vo/MonitoringPointScaleVO.java | 35 +++++++++ .../pq/controller/LargeScreenController.java | 47 ++++++++++-- .../device/pq/mapper/LargeScreenMapper.java | 16 ++++ .../pq/mapper/mapping/LargeScreenMapper.xml | 22 ++++++ .../device/pq/service/LargeScreenService.java | 18 +++++ .../service/impl/LargeScreenServiceImpl.java | 75 +++++++++++++++++++ 8 files changed, 275 insertions(+), 8 deletions(-) create mode 100644 pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/LargeScreenParam.java create mode 100644 pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/MonitoringPointScaleParam.java create mode 100644 pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/MonitoringPointScaleVO.java create mode 100644 pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LargeScreenMapper.java create mode 100644 pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LargeScreenMapper.xml create mode 100644 pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/LargeScreenService.java create mode 100644 pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/LargeScreenServiceImpl.java diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/LargeScreenParam.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/LargeScreenParam.java new file mode 100644 index 000000000..deb3f5060 --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/LargeScreenParam.java @@ -0,0 +1,40 @@ +package com.njcn.device.pq.pojo.param; + +import com.njcn.common.pojo.constant.PatternRegex; +import com.njcn.common.pojo.dto.SimpleDTO; +import com.njcn.device.biz.enums.LineFlagEnum; +import com.njcn.web.constant.ValidMessage; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import org.hibernate.validator.constraints.Range; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; +import java.io.Serializable; +import java.util.List; + +/** + * @version 1.0.0 + * @author: zbj + * @date: 2023/03/20 + */ +@Data +public class LargeScreenParam implements Serializable { + + @ApiModelProperty(name = "deptIndex", value = "部门索引", required = true) + @NotBlank(message = "部门索引不可为空") + private String deptIndex; + + @ApiModelProperty("开始时间") + @Pattern(regexp = PatternRegex.TIME_FORMAT, message = "时间格式错误") + private String searchBeginTime; + + @ApiModelProperty("结束时间") + @Pattern(regexp = PatternRegex.TIME_FORMAT, message = "时间格式错误") + private String searchEndTime; + +} diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/MonitoringPointScaleParam.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/MonitoringPointScaleParam.java new file mode 100644 index 000000000..c2fa663e7 --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/MonitoringPointScaleParam.java @@ -0,0 +1,30 @@ +package com.njcn.device.pq.pojo.param; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @version 1.0.0 + * @author: zbj + * @date: 2023/03/21 + */ +@Data +public class MonitoringPointScaleParam { + + /** + * 部门名称 + */ + @ApiModelProperty("部门名称") + private String name; + /** + * 部门id + */ + @ApiModelProperty("部门id") + private String index; + /** + * 监测点个数 + */ + @ApiModelProperty("监测点个数") + private int count; + +} diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/MonitoringPointScaleVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/MonitoringPointScaleVO.java new file mode 100644 index 000000000..fc20d477d --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/MonitoringPointScaleVO.java @@ -0,0 +1,35 @@ +package com.njcn.device.pq.pojo.vo; + +import com.njcn.device.pq.pojo.param.MonitoringPointScaleParam; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * @version 1.0.0 + * @author: zbj + * @date: 2023/03/21 + */ +@Data +public class MonitoringPointScaleVO implements Serializable { + + private static final long serialVersionUID = 1L; + /** + * 部门信息 + */ + @ApiModelProperty("部门信息") + private List param; + /** + * 监测点总个数 + */ + @ApiModelProperty("监测点总个数") + private String monitorTotalCount; + /** + * 监测点新增个数 + */ + @ApiModelProperty("监测点新增个数") + private String monitorAddCount; + +} diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LargeScreenController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LargeScreenController.java index 1d6b386f7..76a284514 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LargeScreenController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/LargeScreenController.java @@ -1,23 +1,54 @@ package com.njcn.device.pq.controller; +import cn.hutool.core.collection.CollectionUtil; +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.dto.GeneralDeviceDTO; +import com.njcn.device.pq.pojo.param.LargeScreenParam; +import com.njcn.device.pq.pojo.vo.MonitoringPointScaleVO; +import com.njcn.device.pq.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; +import java.util.Objects; + /** - * pqs - * 大屏接口终端服务 - * @author cdf - * @date 2023/3/20 + * @version 1.0.0 + * @author: zbj + * @date: 2023/03/21 */ @Slf4j -@Api(tags = "大屏-台账相关") +@Api(tags = "大屏监测点规模") @RestController -@RequestMapping("/screenTerminal") +@RequestMapping("/largeScreen") @RequiredArgsConstructor -public class LargeScreenController { +public class LargeScreenController extends BaseController { + private final LargeScreenService largeScreenService; -} + /** + * 监测点规模 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/getMonitoringPointScale") + @ApiOperation("监测点规模") + @ApiImplicitParam(name = "largeScreenParam", value = "查询终端条件", required = true) + public HttpResult getMonitoringPointScale(@RequestBody @Validated LargeScreenParam largeScreenParam) { + String methodDescribe = getMethodDescribe("getMonitoringPointScale"); + MonitoringPointScaleVO result = largeScreenService.getMonitoringPointScale(largeScreenParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); + } +} \ No newline at end of file diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LargeScreenMapper.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LargeScreenMapper.java new file mode 100644 index 000000000..1f8a32531 --- /dev/null +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/LargeScreenMapper.java @@ -0,0 +1,16 @@ +package com.njcn.device.pq.mapper; + +import org.apache.ibatis.annotations.Param; + +import java.util.List; +import java.util.Map; + +/** + * @version 1.0.0 + * @author: zbj + * @date: 2023/03/21 + */ +public interface LargeScreenMapper { + + Map getMonitorAddCount(@Param("lineIds") List lineIds, @Param("startTime") String startTime, @Param("endTime") String endTime); +} diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LargeScreenMapper.xml b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LargeScreenMapper.xml new file mode 100644 index 000000000..e5f58e057 --- /dev/null +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LargeScreenMapper.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/LargeScreenService.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/LargeScreenService.java new file mode 100644 index 000000000..8eac82b6c --- /dev/null +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/LargeScreenService.java @@ -0,0 +1,18 @@ +package com.njcn.device.pq.service; + +import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO; +import com.njcn.device.pq.pojo.param.LargeScreenParam; +import com.njcn.device.pq.pojo.vo.MonitoringPointScaleVO; + +import java.util.List; + +/** + * @version 1.0.0 + * @author: zbj + * @date: 2023/03/21 + */ +public interface LargeScreenService { + + MonitoringPointScaleVO getMonitoringPointScale(LargeScreenParam largeScreenParam); + +} diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/LargeScreenServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/LargeScreenServiceImpl.java new file mode 100644 index 000000000..7e9fa9068 --- /dev/null +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/LargeScreenServiceImpl.java @@ -0,0 +1,75 @@ +package com.njcn.device.pq.service.impl; + +import com.njcn.common.pojo.dto.SimpleDTO; +import com.njcn.device.pq.mapper.LargeScreenMapper; +import com.njcn.device.pq.mapper.LineIntegrityDataMapper; +import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO; +import com.njcn.device.pq.pojo.param.DeviceInfoParam; +import com.njcn.device.pq.pojo.param.LargeScreenParam; +import com.njcn.device.pq.pojo.param.MonitoringPointScaleParam; +import com.njcn.device.pq.pojo.vo.MonitoringPointScaleVO; +import com.njcn.device.pq.service.LargeScreenService; + +import com.njcn.system.pojo.enums.StatisticsEnum; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; + + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * @version 1.0.0 + * @author: zbj + * @date: 2023/03/21 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class LargeScreenServiceImpl implements LargeScreenService { + + private final GeneralDeviceService generalDeviceService; + + private final LargeScreenMapper largeScreenMapper; + + /** + * 监测点规模 + */ + @Override + public MonitoringPointScaleVO getMonitoringPointScale(LargeScreenParam largeScreenParam) { + //创建返回VO + MonitoringPointScaleVO result = new MonitoringPointScaleVO(); + ArrayList list = new ArrayList<>(); + DeviceInfoParam.BusinessParam deviceInfoParam = new DeviceInfoParam.BusinessParam(); + //部门索引 + deviceInfoParam.setDeptIndex(largeScreenParam.getDeptIndex()); + //统计类型 + SimpleDTO simpleDTO = new SimpleDTO(); + simpleDTO.setName(String.valueOf(StatisticsEnum.POWER_NETWORK)); + deviceInfoParam.setStatisticalType(simpleDTO); + //添加时间 + deviceInfoParam.setSearchBeginTime(largeScreenParam.getSearchBeginTime()); + deviceInfoParam.setSearchEndTime(largeScreenParam.getSearchEndTime()); + // 获取所有数据 + List generalDeviceDTOList = generalDeviceService.getDeviceInfo(deviceInfoParam, Stream.of(0).collect(Collectors.toList()), Stream.of(1).collect(Collectors.toList())); + + for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) { + MonitoringPointScaleParam param = new MonitoringPointScaleParam(); + param.setIndex(generalDeviceDTO.getIndex()); + param.setName(generalDeviceDTO.getName()); + param.setCount(generalDeviceDTO.getLineIndexes().size()); + list.add(param); + } + result.setParam(list); + //所有监测点id + List lineIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList()); + Map count = largeScreenMapper.getMonitorAddCount(lineIds, largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); + result.setMonitorTotalCount(String.valueOf(lineIds.size())); + result.setMonitorAddCount(count.get("count").toString()); + return result; + } +}