From 840ee7b8eef83f63827af7f2bb06c616a86abfcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=A8=E6=9C=A8c?= <857448963@qq.com> Date: Tue, 7 Mar 2023 10:16:07 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=B0=E8=B4=A6bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/pq/pojo/dto/InfluxBaseDTO.java | 17 ++++ .../device/pq/pojo/param/DeviceInfoParam.java | 3 + .../pq/mapper/TerminalMaintainMapper.java | 14 +++ .../device/pq/mapper/mapping/LineMapper.xml | 3 + .../impl/TerminalMaintainServiceImpl.java | 89 ++++++++++++++----- 5 files changed, 104 insertions(+), 22 deletions(-) create mode 100644 pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/InfluxBaseDTO.java diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/InfluxBaseDTO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/InfluxBaseDTO.java new file mode 100644 index 000000000..166dc68ca --- /dev/null +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/dto/InfluxBaseDTO.java @@ -0,0 +1,17 @@ +package com.njcn.device.pq.pojo.dto; + +import lombok.Data; + +/** + * pqs-device + * + * @author cdf + * @date 2022/9/27 + */ +@Data +public class InfluxBaseDTO { + + private String id; + + private Double value; +} diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/DeviceInfoParam.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/DeviceInfoParam.java index ce6ea207e..a6d12acb0 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/DeviceInfoParam.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/DeviceInfoParam.java @@ -79,6 +79,9 @@ public class DeviceInfoParam implements Serializable { @Range(min = 0, max = 2, message = "电网侧标识" + ValidMessage.PARAM_FORMAT_ERROR) private Integer powerFlag; + @ApiModelProperty("监测点等级") + private String lineGrade; + /** diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/TerminalMaintainMapper.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/TerminalMaintainMapper.java index e392433c0..a18a19e48 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/TerminalMaintainMapper.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/TerminalMaintainMapper.java @@ -1,5 +1,6 @@ package com.njcn.device.pq.mapper; +import com.njcn.device.pq.pojo.param.TerminalMainQueryParam; import com.njcn.device.pq.pojo.vo.TerminalMaintainVO; import org.apache.ibatis.annotations.Param; @@ -50,6 +51,17 @@ public interface TerminalMaintainMapper { List getPqLineGdAndSubList(@Param("ids") List ids); + /** + * + * @author cdf + * @date 2022/9/27 + */ + /** + * 或取装置及关联信息 + * @author cdf + * @date 2022/5/11 + */ + List getTerminalDevInfoClone(@Param("terminalMainQueryParam") TerminalMainQueryParam terminalMainQueryParam, @Param("devIds") List devIds); /** @@ -74,4 +86,6 @@ public interface TerminalMaintainMapper { List getFlowStrategyList(@Param("ids") List ids); + + } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml index 72aa2f1e9..8992990b2 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/mapper/mapping/LineMapper.xml @@ -280,6 +280,9 @@ and t2.Power_Flag = #{deviceInfoParam.powerFlag} + + and t2.line_grade = #{deviceInfoParam.lineGrade} + AND t2.Load_Type in diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalMaintainServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalMaintainServiceImpl.java index bc7f62385..3b706897b 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalMaintainServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/TerminalMaintainServiceImpl.java @@ -1,10 +1,15 @@ package com.njcn.device.pq.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; +import com.njcn.common.pojo.dto.SimpleDTO; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.exception.BusinessException; import com.njcn.device.pq.enums.DeviceResponseEnum; import com.njcn.device.pq.mapper.TerminalMaintainMapper; +import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO; +import com.njcn.device.pq.pojo.dto.InfluxBaseDTO; +import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.param.TerminalMainQueryParam; import com.njcn.device.pq.pojo.param.TerminalParam; import com.njcn.device.pq.pojo.po.DevMeal; @@ -15,12 +20,16 @@ import com.njcn.device.pq.service.IDevMealService; import com.njcn.device.pq.service.IDevStrategyService; import com.njcn.device.pq.service.IDeviceService; import com.njcn.device.pq.service.TerminalMaintainService; +import com.njcn.system.pojo.enums.StatisticsEnum; +import com.njcn.user.api.DeptFeignClient; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import java.util.ArrayList; import java.util.List; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -42,36 +51,72 @@ public class TerminalMaintainServiceImpl implements TerminalMaintainService { private final IDevStrategyService iDevStrategyService; + private final GeneralDeviceService generalDeviceService; + + private final DeptFeignClient deptFeignClient; + @Override public List getTerminalMainList(TerminalMainQueryParam terminalMainQueryParam) { - List devList = terminalMaintainMapper.getTerminalDevInfo(); - if(CollectionUtil.isEmpty(devList)){ - throw new BusinessException(DeviceResponseEnum.DEVICE_EMPTY); - } - List subIndexes = devList.stream().map(TerminalMaintainVO::getPid).collect(Collectors.toList()); - List subList = terminalMaintainMapper.getPqLineGdAndSubList(subIndexes); - if(CollectionUtil.isEmpty(subList)){ - throw new BusinessException(DeviceResponseEnum.SUB_NO); - } - List gdIds = subList.stream().map(TerminalMaintainVO::getPid).collect(Collectors.toList()); - List gdList = terminalMaintainMapper.getPqLineGdAndSubList(gdIds); - if(CollectionUtil.isEmpty(gdList)){ - throw new BusinessException(DeviceResponseEnum.GD_NO); - } - List proIds = gdList.stream().map(TerminalMaintainVO::getPid).collect(Collectors.toList()); - List proList = terminalMaintainMapper.getPqLineProvList(proIds); - if(CollectionUtil.isEmpty(proList)){ - throw new BusinessException(DeviceResponseEnum.PROVINCE_EMPTY); - } + SimpleDTO simpleDTO = new SimpleDTO(); + simpleDTO.setCode(StatisticsEnum.POWER_NETWORK.getCode()); - List subListTem = subList.stream().peek(item->item.setChildren(getChildren(item.getId(),devList))).collect(Collectors.toList()); - List gdListTem = gdList.stream().peek(item->item.setChildren(getChildren(item.getId(),subListTem))).collect(Collectors.toList()); - return proList.stream().peek(item->item.setChildren(getChildren(item.getId(),gdListTem))).collect(Collectors.toList()); + DeviceInfoParam deviceInfoParam = new DeviceInfoParam(); + deviceInfoParam.setStatisticalType(simpleDTO); + deviceInfoParam.setDeptIndex(deptFeignClient.getRootDept().getData().getId()); + deviceInfoParam.setPowerFlag(2); + deviceInfoParam.setMonitorFlag(2); + + List resList = new ArrayList<>(); + + List generalDeviceDTOList = generalDeviceService.getDeviceInfo(deviceInfoParam, Objects.isNull(terminalMainQueryParam.getRunFlag())?null: CollUtil.newArrayList(terminalMainQueryParam.getRunFlag()), CollUtil.newArrayList(1)); + if(CollectionUtil.isNotEmpty(generalDeviceDTOList)){ + + for(GeneralDeviceDTO generalDeviceDTO:generalDeviceDTOList){ + List devIds = generalDeviceDTO.getDeviceIndexes(); + if (CollectionUtils.isEmpty(devIds)) { + continue; + } + + TerminalMaintainVO terminalMaintainVO = new TerminalMaintainVO(); + terminalMaintainVO.setName(generalDeviceDTO.getName()); + terminalMaintainVO.setId(generalDeviceDTO.getIndex()); + terminalMaintainVO.setLevel(1); + //根据监测点查询数据完整性 + List integrityData = getCondition(devIds, "",""); + + List devList = terminalMaintainMapper.getTerminalDevInfoClone(terminalMainQueryParam,devIds); + List subList = terminalMaintainMapper.getPqLineGdAndSubList(generalDeviceDTO.getSubIndexes()); + List gdList = terminalMaintainMapper.getPqLineGdAndSubList(generalDeviceDTO.getGdIndexes()); + + dealTerminalData(subList,devList); + dealTerminalData(gdList,subList); + terminalMaintainVO.setChildren(gdList); + resList.add(terminalMaintainVO); + } + } + return resList; } + + + /** + * influxdb语句 + */ + List getCondition(List devIds,String startTime,String endTime){ + + + return null; + } + + + List dealTerminalData(List parent,List children){ + return parent.stream().peek(item->item.setChildren(getChildren(item.getId(),children))).collect(Collectors.toList()); + } + + @Override public List getManageList(List ids, Integer type) { if(type == 0){