From a6d2d6ed47fb5c78ce0a65969b44db6999430d4a Mon Sep 17 00:00:00 2001 From: wr <1754607820@qq.com> Date: Fri, 12 Dec 2025 15:01:29 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=85=A8=E6=99=AF=E5=A2=9E=E5=8A=A0=E6=8A=80?= =?UTF-8?q?=E6=9C=AF=E7=9B=91=E7=9D=A3=E8=AE=A1=E5=88=92=E8=B0=83=E6=95=B4?= =?UTF-8?q?=202.=E5=A2=9E=E5=8A=A0=E6=9A=82=E6=80=81=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=92=8C=E7=9B=91=E6=B5=8B=E7=82=B9=E8=AF=84?= =?UTF-8?q?=E4=BC=B0=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/pojo/dto/PollutionLineInfoDTO.java | 5 + .../device/pq/pojo/param/RunManageParam.java | 3 + .../device/pq/pojo/vo/GridDiagramProVO.java | 3 + .../pojo/vo/dataClean/DetailAbnormalVO.java | 70 ++++++++++++++ .../pq/controller/DataVerifyController.java | 9 ++ .../device/pq/service/IDataVerifyService.java | 1 + .../service/impl/CommTerminalServiceImpl.java | 5 +- .../service/impl/DataVerifyServiceImpl.java | 91 ++++++++++++++++++- .../impl/DeviceRunEvaluateServiceImpl.java | 2 +- .../service/impl/GridDiagramServiceImpl.java | 23 +++++ .../pq/service/impl/RunManageServiceImpl.java | 15 ++- .../device/mapper/mapping/DeviceMapper.xml | 3 +- .../line/mapper/mapping/LineDetailMapper.xml | 3 +- .../com/njcn/event/pojo/dto/EventCount.java | 9 ++ .../Impl/RmpEventDetailServiceImpl.java | 18 ++-- .../impl/PollutionSubstationServiceImpl.java | 54 ++++++----- .../impl/RStatLimitServiceImpl.java | 8 +- .../impl/GridDiagramServiceImpl.java | 2 +- 18 files changed, 273 insertions(+), 51 deletions(-) diff --git a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/PollutionLineInfoDTO.java b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/PollutionLineInfoDTO.java index b7021ae87..209e7c175 100644 --- a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/PollutionLineInfoDTO.java +++ b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/pojo/dto/PollutionLineInfoDTO.java @@ -99,4 +99,9 @@ public class PollutionLineInfoDTO { * 监测点名称 */ private String lineName; + + /** + * 实际安装位置 + */ + private String actualArea; } diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/RunManageParam.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/RunManageParam.java index 97fbbcb35..13323b5eb 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/RunManageParam.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/param/RunManageParam.java @@ -77,4 +77,7 @@ public class RunManageParam extends BaseParam implements Serializable { @ApiModelProperty(name = "evaluate", value = "评价") private String evaluate; + + @ApiModelProperty(name = "ids", value = "监测点id集合") + private List ids; } diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/GridDiagramProVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/GridDiagramProVO.java index 6d419db84..9e9f1b9b1 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/GridDiagramProVO.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/GridDiagramProVO.java @@ -36,6 +36,9 @@ public class GridDiagramProVO { @ApiModelProperty(name = "integrityRate", value = "数据完整率") private Float integrityRate; + + @ApiModelProperty(name = "onLineRate", value = "数据在线率") + private Float onLineRate; } } diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/dataClean/DetailAbnormalVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/dataClean/DetailAbnormalVO.java index 63103962a..34fff387a 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/dataClean/DetailAbnormalVO.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/dataClean/DetailAbnormalVO.java @@ -1,7 +1,10 @@ package com.njcn.device.pq.pojo.vo.dataClean; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.List; + /** * @Author: cdf * @CreateTime: 2025-03-31 @@ -78,4 +81,71 @@ public class DetailAbnormalVO { //限值 private float overLimitValue; } + + @Data + public static class Assess { + + /** + * 频率偏差 + */ + @ApiModelProperty("频率偏差") + private Double freqData = 3.14159; + @ApiModelProperty("频率偏差限值") + private Float freqLimit = 3.14159F; + @ApiModelProperty("频率偏差信息") + private List freqDataList; + + /** + * 电压偏差上 + */ + @ApiModelProperty("电压上偏差") + private Double vDevData = 3.14159; + + @ApiModelProperty("电压上偏差限值") + private Float vDevLimit = 3.14159F; + @ApiModelProperty("频率偏差信息") + private List vDevDataList; + + /** + * 电压偏差下 + */ + @ApiModelProperty("电压下偏差") + private Double uDevData = 3.14159; + @ApiModelProperty("电压下偏差限值") + private Float uDevLimit = 3.14159F; + @ApiModelProperty("频率偏差信息") + private List uDevDataList; + /** + * 总谐波畸变率 + */ + @ApiModelProperty("总谐波畸变率") + private Double uaberranceData = 3.14159; + @ApiModelProperty("总谐波畸变率限值") + private Float uaberranceLimit = 3.14159F; + @ApiModelProperty("频率偏差信息") + private List uaberranceDataList; + + /** + * 三相电压不平衡度 + */ + @ApiModelProperty("三相电压不平衡度") + private Double unbalanceData = 3.14159; + @ApiModelProperty("三相电压不平衡度限值") + private Float unbalanceLimit = 3.14159F; + @ApiModelProperty("频率偏差信息") + private List unbalanceDataList; + + + /** + * 电压闪变 + */ + @ApiModelProperty("电压闪变") + private Double flickerData = 3.14159; + @ApiModelProperty("电压闪变限值") + private Float flickerLimit = 3.14159F; + @ApiModelProperty("频率偏差信息") + private List flickerDataList; + } + + } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/DataVerifyController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/DataVerifyController.java index 5df0b68f1..5d40a8433 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/DataVerifyController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/DataVerifyController.java @@ -141,5 +141,14 @@ public class DataVerifyController extends BaseController { } + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @PostMapping("/limitTableDetail") + @ApiOperation("监测点评价") + public HttpResult limitTableDetail(@RequestBody MonitorBaseParam monitorBaseParam) { + String methodDescribe = getMethodDescribe("limitTableDetail"); + DetailAbnormalVO.Assess list = iDataVerifyService.limitTableDetail(monitorBaseParam); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, list, methodDescribe); + } + } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/IDataVerifyService.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/IDataVerifyService.java index 0ab01aa9c..59e12fb9e 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/IDataVerifyService.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/IDataVerifyService.java @@ -44,4 +44,5 @@ public interface IDataVerifyService extends IService { List monitorLimitTableDetail(MonitorBaseParam monitorBaseParam); + DetailAbnormalVO.Assess limitTableDetail(MonitorBaseParam monitorBaseParam); } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/CommTerminalServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/CommTerminalServiceImpl.java index cf574204f..1c31fcb66 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/CommTerminalServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/CommTerminalServiceImpl.java @@ -2,6 +2,7 @@ package com.njcn.device.pq.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.njcn.common.pojo.enums.common.ServerEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; @@ -331,7 +332,9 @@ public class CommTerminalServiceImpl implements CommTerminalService { @Override public List getRunMonitorByDept(MonitorBaseParam monitorBaseParam) { List ids = deptFeignClient.getDepSonIdtByDeptId(monitorBaseParam.getDeptId()).getData(); - List monitorIds = deptLineService.getLineByDeptIds(ids, monitorBaseParam.getManufacturer(), Arrays.asList(monitorBaseParam.getLineRunFlag()), Stream.of(0, 1, 2).collect(Collectors.toList()), monitorBaseParam.getObjType()); + List monitorIds = deptLineService.getLineByDeptIds(ids, monitorBaseParam.getManufacturer(), + ObjectUtil.isNotNull(monitorBaseParam.getLineRunFlag())? Arrays.asList(monitorBaseParam.getLineRunFlag()):null, + Stream.of(0, 1, 2).collect(Collectors.toList()), monitorBaseParam.getObjType()); return monitorIds; } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DataVerifyServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DataVerifyServiceImpl.java index b482fed66..e8d46148c 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DataVerifyServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DataVerifyServiceImpl.java @@ -19,9 +19,12 @@ import com.njcn.dataProcess.param.LineCountEvaluateParam; import com.njcn.dataProcess.pojo.dto.DataLimitRateDetailDto; import com.njcn.dataProcess.pojo.dto.DataLimitTargetDto; import com.njcn.dataProcess.pojo.dto.PqReasonableRangeDto; +import com.njcn.device.biz.commApi.CommTerminalGeneralClient; import com.njcn.device.biz.enums.DeviceResponseEnum; import com.njcn.device.biz.pojo.dto.LineDevGetDTO; +import com.njcn.device.biz.pojo.po.Overlimit; import com.njcn.device.line.mapper.LineMapper; +import com.njcn.device.overlimit.service.IOverLimitService; import com.njcn.device.pq.mapper.DataVerifyMapper; import com.njcn.device.pq.mapper.PqDataVerifyBakMapper; import com.njcn.device.pq.pojo.param.dataClean.MonitorBaseParam; @@ -45,6 +48,7 @@ import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import java.lang.reflect.Field; +import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -87,8 +91,7 @@ public class DataVerifyServiceImpl extends ServiceImpl dtoList = dataLimitRateDetailFeignClient.getRawData(lineCountEvaluateParam).getData(); + Overlimit overLimitDataById = overLimitService.getOverLimitDataById(monitorBaseParam.getMonitorIds().get(0)); + + List freq = new ArrayList<>(); + List voltage = new ArrayList<>(); + List uaberrance = new ArrayList<>(); + List ubalance = new ArrayList<>(); + List flicker = new ArrayList<>(); + for (DataLimitRateDetailDto dto : dtoList) { + dealJsonArr(new JSONArray(dto.getFreqDevOvertime()), freq, DicDataEnum.FREQUENCY_DEV.getCode(), null); + dealJsonArr(new JSONArray(dto.getVoltageDevOvertime()), voltage, DicDataEnum.VOLTAGE_DEV.getCode(), null); + dealJsonArr(new JSONArray(dto.getUaberranceOvertime()), uaberrance, DicDataEnum.THD_V.getCode(), null); + dealJsonArr(new JSONArray(dto.getUbalanceOvertime()), ubalance, DicDataEnum.phase_Voltage.getCode(), null); + dealJsonArr(new JSONArray(dto.getFlickerOvertime()), flicker, DicDataEnum.FLICKER.getCode(), null); + } + if (CollUtil.isNotEmpty(freq)) { + List collect = freq.stream().sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList()); + DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0); + assess.setFreqData(Double.valueOf(val.getVal())); + assess.setFreqLimit(val.getOverLimitValue()); + assess.setFreqDataList(collect); + } else { + assess.setFreqLimit(overLimitDataById.getFreqDev()); + } + if (CollUtil.isNotEmpty(voltage)) { + List collect = voltage.stream().filter(x->Double.valueOf(x.getVal()) > 0).sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(collect)){ + DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0); + assess.setVDevData(Double.valueOf(val.getVal())); + assess.setVDevLimit(val.getOverLimitValue()); + assess.setVDevDataList(collect); + } + List collect2 = voltage.stream().filter(x->Double.valueOf(x.getVal()) < 0).sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal)).collect(Collectors.toList()); + if(CollUtil.isNotEmpty(collect2)){ + DetailAbnormalVO.DetailLimitInnerVO val2 = collect2.get(0); + assess.setUDevData(Double.valueOf(val2.getVal())); + assess.setUDevLimit(val2.getOverLimitValue()); + assess.setUDevDataList(collect2); + } + }else{ + assess.setVDevLimit(overLimitDataById.getVoltageDev()); + assess.setUDevLimit(overLimitDataById.getUvoltageDev()); + } + + if (CollUtil.isNotEmpty(uaberrance)) { + List collect = uaberrance.stream().sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList()); + DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0); + assess.setUaberranceData(Double.valueOf(val.getVal())); + assess.setUaberranceLimit(val.getOverLimitValue()); + assess.setUaberranceDataList(collect); + }else { + assess.setUaberranceLimit(overLimitDataById.getUaberrance()); + } + + if (CollUtil.isNotEmpty(ubalance)) { + List collect = ubalance.stream().sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList()); + DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0); + assess.setUnbalanceData(Double.valueOf(val.getVal())); + assess.setUnbalanceLimit(val.getOverLimitValue()); + assess.setUnbalanceDataList(collect); + }else{ + assess.setUnbalanceLimit(overLimitDataById.getUbalance()); + } + if (CollUtil.isNotEmpty(flicker)) { + List collect = flicker.stream().sorted(Comparator.comparing(DetailAbnormalVO.DetailLimitInnerVO::getVal).reversed()).collect(Collectors.toList()); + DetailAbnormalVO.DetailLimitInnerVO val = collect.get(0); + assess.setFlickerData(Double.valueOf(val.getVal())); + assess.setFlickerLimit(val.getOverLimitValue()); + assess.setFlickerDataList(collect); + }else { + assess.setFlickerLimit(overLimitDataById.getFlicker()); + } + return assess; + } + private Map getTargetMap() { List dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.STEADY_STATIS.getCode()).getData(); return dictDataList.stream().collect(Collectors.toMap(DictData::getCode, Function.identity())); @@ -572,8 +657,6 @@ public class DataVerifyServiceImpl extends ServiceImpl> overLimitCount = new HashMap<>(); overLimitCount.put(DicDataEnum.FLICKER.getCode() + SEPARATOR + DicDataEnum.FLICKER.getName(), FLICKER); diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DeviceRunEvaluateServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DeviceRunEvaluateServiceImpl.java index f40272457..136a3f8e5 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DeviceRunEvaluateServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DeviceRunEvaluateServiceImpl.java @@ -472,7 +472,7 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService { if (CollUtil.isNotEmpty(onlineRateDS)) { double onlineTime = onlineRateDS.stream().mapToDouble(RStatOnlineRateVO::getOnlineMin).sum(); double offlineTime = onlineRateDS.stream().mapToDouble(RStatOnlineRateVO::getOfflineMin).sum(); - if (offlineTime == 0) { + if ((onlineTime + offlineTime) == 0) { return new BigDecimal(0); } return NumberUtil.round(Math.min(onlineTime * 100.0 / (onlineTime + offlineTime), 100), 2); diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/GridDiagramServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/GridDiagramServiceImpl.java index ced78f864..91b7dc8bc 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/GridDiagramServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/GridDiagramServiceImpl.java @@ -13,6 +13,7 @@ import com.njcn.common.pojo.param.StatisticsBizBaseParam; import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; import com.njcn.device.biz.pojo.dto.LineDevGetDTO; import com.njcn.device.biz.pojo.param.DeptGetLineParam; +import com.njcn.device.common.mapper.onlinerate.OnLineRateMapper; import com.njcn.device.common.service.GeneralDeviceService; import com.njcn.device.device.service.IDeviceService; import com.njcn.device.line.mapper.LineDetailMapper; @@ -26,6 +27,7 @@ import com.njcn.device.pq.pojo.param.OnlineRateParam; import com.njcn.device.pq.pojo.po.*; import com.njcn.device.pq.pojo.vo.GridDiagramProVO; import com.njcn.device.pq.pojo.vo.GridDiagramVO; +import com.njcn.device.pq.pojo.vo.RStatOnlineRateVO; import com.njcn.device.pq.service.*; import com.njcn.device.rstatintegrity.mapper.RStatIntegrityDMapper; import com.njcn.system.api.DicDataFeignClient; @@ -66,6 +68,7 @@ public class GridDiagramServiceImpl implements GridDiagramService { private final LineService lineService; private final DeptLineService deptLineService; private final LineDetailMapper lineDetailMapper; + private final OnLineRateMapper onLineRateMapper; @Override public GridDiagramVO getGridDiagramMonitor(GridDiagramParam param) { @@ -472,13 +475,16 @@ public class GridDiagramServiceImpl implements GridDiagramService { GridDiagramProVO.Details details = new GridDiagramProVO.Details(); Stream stream = lines.stream(); Stream stream2 = lines.stream(); + Stream stream3 = lines.stream(); if (gwType != null) { stream = stream.filter(x -> x.getMonitorFlag() == gwType); stream2 = stream2.filter(x -> x.getMonitorFlag() == gwType); + stream3 = stream3.filter(x -> x.getMonitorFlag() == gwType); } if (powerFlag != null) { stream = stream.filter(x -> x.getPowerFlag() == powerFlag); stream2 = stream2.filter(x -> x.getPowerFlag() == powerFlag); + stream3 = stream3.filter(x -> x.getPowerFlag() == powerFlag); } //总监测点 List ids = stream.map(LineDetail::getId).collect(Collectors.toList()); @@ -496,6 +502,23 @@ public class GridDiagramServiceImpl implements GridDiagramService { } else { details.setIntegrityRate(0.0f); } + + List devIds = stream3.map(LineDetail::getMonitorName).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(devIds)) { + OnlineRateParam onlineRateParam = new OnlineRateParam(); + onlineRateParam.setIds(devIds); + onlineRateParam.setStartTime(baseQueryParam.getStartTime()); + onlineRateParam.setEndTime(baseQueryParam.getEndTime()); + //获取所有终端在线率 + List onlineRateByDev = onLineRateMapper.getOnlineRateByDevIds(onlineRateParam); + if(CollUtil.isNotEmpty(onlineRateByDev)){ + details.setOnLineRate(onlineRateByDev.get(0).getOnlineRate().floatValue()); + }else{ + details.setOnLineRate(0.0f); + } + } else { + details.setOnLineRate(0.0f); + } return details; } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/RunManageServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/RunManageServiceImpl.java index eadfdd158..26fcbbf23 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/RunManageServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/RunManageServiceImpl.java @@ -75,11 +75,16 @@ public class RunManageServiceImpl implements RunManageService { @Override public List getLineLedger(RunManageParam runManageParam) { List resultList = new ArrayList<>(); - DeviceInfoParam deviceInfoParam = new DeviceInfoParam(); - BeanUtil.copyProperties(runManageParam, deviceInfoParam); - deviceInfoParam.setServerName("pqs-common"); - List generalDeviceDTOList = generalDeviceService.getDeviceInfo(deviceInfoParam, Stream.of(0,1,2).collect(Collectors.toList()), Stream.of(1).collect(Collectors.toList())); - List lineIndexes = generalDeviceDTOList.stream().flatMap(list -> list.getLineIndexes().stream()).collect(Collectors.toList()); + List lineIndexes ; + if(CollUtil.isNotEmpty(runManageParam.getIds())){ + lineIndexes =runManageParam.getIds(); + }else{ + DeviceInfoParam deviceInfoParam = new DeviceInfoParam(); + BeanUtil.copyProperties(runManageParam, deviceInfoParam); + deviceInfoParam.setServerName("pqs-common"); + List generalDeviceDTOList = generalDeviceService.getDeviceInfo(deviceInfoParam, Stream.of(0,1,2).collect(Collectors.toList()), Stream.of(1).collect(Collectors.toList())); + lineIndexes = generalDeviceDTOList.stream().flatMap(list -> list.getLineIndexes().stream()).collect(Collectors.toList()); + } if (!CollectionUtils.isEmpty(lineIndexes)) { resultList = deviceMapper.getRunManageList(lineIndexes, runManageParam.getComFlag(),runManageParam.getRunFlag(), Objects.isNull(runManageParam.getSearchValue())?null:runManageParam.getSearchValue()); if(CollUtil.isNotEmpty(resultList)){ diff --git a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/mapper/mapping/DeviceMapper.xml b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/mapper/mapping/DeviceMapper.xml index d36ef4f11..caec3a7c7 100644 --- a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/mapper/mapping/DeviceMapper.xml +++ b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/device/mapper/mapping/DeviceMapper.xml @@ -371,7 +371,8 @@ deviceDetail.id deviceId, pv.scale lineVoltage, pqsub.scale subVoltage, - lineDetail.monitor_id monitorId + lineDetail.monitor_id monitorId, + lineDetail.Actual_Area actualArea FROM pq_line line, pq_line_detail lineDetail, diff --git a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/mapping/LineDetailMapper.xml b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/mapping/LineDetailMapper.xml index 795869f37..610c44294 100644 --- a/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/mapping/LineDetailMapper.xml +++ b/pqs-device/pq-device/pq-device-com/src/main/java/com/njcn/device/line/mapper/mapping/LineDetailMapper.xml @@ -68,7 +68,8 @@ SELECT DISTINCT detail.*, - pqd.Com_Flag as comFlag + pqd.Com_Flag as comFlag, + pqd.id as monitorName FROM pq_line line, pq_line_detail detail, diff --git a/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/EventCount.java b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/EventCount.java index 67931aed8..eb386ccaa 100644 --- a/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/EventCount.java +++ b/pqs-event/event-api/src/main/java/com/njcn/event/pojo/dto/EventCount.java @@ -46,6 +46,15 @@ public class EventCount implements Serializable { @ApiModelProperty("监测点名称") private String lineName; + @ApiModelProperty("终端名称") + private String devName; + + @ApiModelProperty("变电站名称") + private String subName; + + @ApiModelProperty("ip") + private String ip; + @ApiModelProperty("暂态指标") private String dicData; diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/RmpEventDetailServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/RmpEventDetailServiceImpl.java index 48bc6084c..317121ba4 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/RmpEventDetailServiceImpl.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/RmpEventDetailServiceImpl.java @@ -32,10 +32,9 @@ import com.njcn.device.pq.api.GeneralDeviceInfoClient; import com.njcn.device.pq.api.LineFeignClient; import com.njcn.device.pq.pojo.dto.GeneralDeviceDTO; import com.njcn.device.pq.pojo.param.GridDiagramParam; -import com.njcn.device.pq.pojo.po.Device; -import com.njcn.device.pq.pojo.po.Line; import com.njcn.device.pq.pojo.vo.AreaLineInfoVO; import com.njcn.device.pq.pojo.vo.GridDiagramVO; +import com.njcn.device.pq.pojo.vo.LineDetailVO; import com.njcn.event.enums.EventResponseEnum; import com.njcn.event.mapper.majornetwork.RMpEventDetailMMapper; import com.njcn.event.mapper.majornetwork.RmpEventDetailMapper; @@ -47,7 +46,6 @@ import com.njcn.event.pojo.vo.*; import com.njcn.event.service.majornetwork.RmpEventDetailService; import com.njcn.harmonic.pojo.param.StatSubstationBizBaseParam; import com.njcn.event.pojo.po.RMpEventDetailM; -import com.njcn.harmonic.pojo.vo.RStatOrgIndexVO; import com.njcn.system.api.DicDataFeignClient; import com.njcn.system.enums.DicDataEnum; import com.njcn.system.enums.DicDataTypeEnum; @@ -363,10 +361,10 @@ public class RmpEventDetailServiceImpl extends ServiceImpl lineMap = new HashMap<>(); + Map lineMap = new HashMap<>(); if (CollUtil.isNotEmpty(lineIds)) { - List lines = lineFeignClient.getBaseLineList(lineIds).getData(); - lineMap = lines.stream().collect(Collectors.toMap(Line::getId, Function.identity())); + List lines = lineFeignClient.getLineDetailByIds(lineIds).getData(); + lineMap = lines.stream().collect(Collectors.toMap(LineDetailVO.Detail::getLineId, Function.identity())); } EventDetailVO vo; for (GeneralDeviceDTO datum : data) { @@ -403,16 +401,20 @@ public class RmpEventDetailServiceImpl extends ServiceImpl eventLine(List detailPOList, String dicData, Map lineMap) { + public List eventLine(List detailPOList, String dicData, Map lineMap) { List info = new ArrayList<>(); Map collect = detailPOList.stream().filter(x -> x.getEventType().equals(dicData)) .collect(Collectors.groupingBy(RmpEventDetailPO::getMeasurementPointId, Collectors.counting())); collect.forEach((key, value) -> { if (lineMap.containsKey(key)) { + LineDetailVO.Detail detail1 = lineMap.get(key); EventCount.Detail detail = new EventCount.Detail(); detail.setLineId(key); detail.setDicData(dicData); - detail.setLineName(lineMap.get(key).getName()); + detail.setLineName(detail1.getLineName()); + detail.setDevName(detail1.getDevName()); + detail.setSubName(detail1.getSubName()); + detail.setIp(detail1.getIp()); detail.setCount(BigDecimal.valueOf(value)); info.add(detail); } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/PollutionSubstationServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/PollutionSubstationServiceImpl.java index b908d7e8a..57e253f25 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/PollutionSubstationServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/PollutionSubstationServiceImpl.java @@ -1201,32 +1201,36 @@ public class PollutionSubstationServiceImpl extends ServiceImpl pollutionList = rMpPollutionDPOMapper.selectSumList(lineIdList, param.getIds(), param.getStartTime(), param.getEndTime()); Map pollutionMap = pollutionList.stream().collect(Collectors.toMap(RMpPollutionDPO::getLineId, RMpPollutionDPO::getValue)); - //获取监测点详细信息 - List lineInfoDTOList = commLineClient.getPollutionLineInfo(lineIdList).getData(); - List linePollutionList; - for (GeneralDeviceDTO item : deptData) { - linePollutionList = new ArrayList<>(); - AreaPollution pollution = new AreaPollution(); - pollution.setDeptName(item.getName()); - pollution.setDeptId(item.getIndex()); - List lineDetails = lineInfoDTOList.stream().filter(x -> item.getLineIndexes().contains(x.getLineId())).collect(Collectors.toList()); - PowerFlagPollution pollution1; - for (PollutionLineInfoDTO lineDetail : lineDetails) { - pollution1 = new PowerFlagPollution(); - pollution1.setLineName(lineDetail.getLineName()); - pollution1.setDevName(lineDetail.getDevName()); - pollution1.setManufacturer(lineDetail.getManufacturer()); - pollution1.setDevType(lineDetail.getDevType()); - pollution1.setLoginTime(lineDetail.getLoginTime()); - pollution1.setInterval(lineDetail.getTimeInterval()); - pollution1.setPowerFlag(lineDetail.getPowerFlag()); - pollution1.setVHarmonicValue(pollutionMap.containsKey(lineDetail.getLineId())?NumberUtil.round(pollutionMap.get(lineDetail.getLineId()),2).doubleValue():0.0); - linePollutionList.add(pollution1); + + List lineDetailList = commLineClient.getPollutionLineInfo(lineIdList).getData(); + Map> lineDetailMap = lineDetailList.stream().collect(Collectors.groupingBy(PollutionLineInfoDTO::getActualArea)); + //获取部门 + List deptList = deptFeignClient.getDepSonDetailByDeptId(param.getId()).getData(); + deptList.forEach(item -> { + if (lineDetailMap.containsKey(item.getArea())) { + List linePollutionList = new ArrayList<>(); + AreaPollution pollution = new AreaPollution(); + pollution.setDeptName(item.getName()); + pollution.setDeptId(item.getId()); + List lineDetails = lineDetailMap.get(item.getArea()).stream().collect(Collectors.toList()); + PowerFlagPollution pollution1; + for (PollutionLineInfoDTO lineDetail : lineDetails) { + pollution1 = new PowerFlagPollution(); + pollution1.setLineName(lineDetail.getLineName()); + pollution1.setDevName(lineDetail.getDevName()); + pollution1.setManufacturer(lineDetail.getManufacturer()); + pollution1.setDevType(lineDetail.getDevType()); + pollution1.setLoginTime(lineDetail.getLoginTime()); + pollution1.setInterval(lineDetail.getTimeInterval()); + pollution1.setPowerFlag(lineDetail.getPowerFlag()); + pollution1.setVHarmonicValue(pollutionMap.containsKey(lineDetail.getLineId())?NumberUtil.round(pollutionMap.get(lineDetail.getLineId()),2).doubleValue():0.0); + linePollutionList.add(pollution1); + } + pollution.setPowerFlagPollutionList(linePollutionList.stream().sorted(Comparator.comparing(PowerFlagPollution::getVHarmonicValue).reversed()).collect(Collectors.toList())); + pollution.setScore(NumberUtil.round(linePollutionList.stream().mapToDouble(PowerFlagPollution::getVHarmonicValue).sum(),2).doubleValue()); + info.add(pollution); } - pollution.setPowerFlagPollutionList(linePollutionList.stream().sorted(Comparator.comparing(PowerFlagPollution::getVHarmonicValue).reversed()).collect(Collectors.toList())); - pollution.setScore(NumberUtil.round(linePollutionList.stream().mapToDouble(PowerFlagPollution::getVHarmonicValue).sum(),2).doubleValue()); - info.add(pollution); - } + }); } return info; } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatLimitServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatLimitServiceImpl.java index 64b8126cc..5552b2c36 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatLimitServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/majornetwork/impl/RStatLimitServiceImpl.java @@ -186,7 +186,7 @@ public class RStatLimitServiceImpl implements RStatLimitService { baseParam.setIds(onLine); baseParam.setStartTime(DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())).toString()); baseParam.setEndTime(DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())).toString()); - List linesTarget = targetDService.getLinesTarget(baseParam); + List linesTarget = targetDService.getLinesHarmTarget(baseParam); List integrityDS = lineIntegrityClient.getIntegrityByLineIds(onLine, DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())).toString(), DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())).toString()).getData(); @@ -272,7 +272,7 @@ public class RStatLimitServiceImpl implements RStatLimitService { baseParam.setStartTime(DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())).toString()); baseParam.setEndTime(DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())).toString()); List linesTarget = targetDService.getLinesHarmTarget(baseParam); - List integrityDS = lineIntegrityClient.getIntegrityByLineIds(online, + List integrityDS = lineIntegrityClient.getIntegrityByLineIds(line, DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())).toString(), DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())).toString()).getData(); //在线率大于90的点 @@ -299,7 +299,7 @@ public class RStatLimitServiceImpl implements RStatLimitService { //数据完整性≥90% - <90% GridDiagramVO.RunData integrityData = new GridDiagramVO.RunData(); - List integrity = online.stream().filter(x -> !integrityDS90.contains(x)).distinct().collect(Collectors.toList()); + List integrity = line.stream().filter(x -> !integrityDS90.contains(x)).distinct().collect(Collectors.toList()); integrityData.setLineNumOne(integrityDS90.size()); integrityData.setLineListOne(integrityDS90); integrityData.setLineNumTwo(integrity.size()); @@ -309,7 +309,7 @@ public class RStatLimitServiceImpl implements RStatLimitService { //电能质量指标未超标-超标 GridDiagramVO.RunData targetData = new GridDiagramVO.RunData(); - List integrityS = online.stream().filter(x -> !linesTarget.contains(x)).distinct().collect(Collectors.toList()); + List integrityS = line.stream().filter(x -> !linesTarget.contains(x)).distinct().collect(Collectors.toList()); targetData.setLineNumOne(integrityS.size()); targetData.setLineListOne(integrityS); targetData.setLineNumTwo(linesTarget.size()); diff --git a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/gridDiagram/impl/GridDiagramServiceImpl.java b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/gridDiagram/impl/GridDiagramServiceImpl.java index a142f0c66..f129645fd 100644 --- a/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/gridDiagram/impl/GridDiagramServiceImpl.java +++ b/pqs-supervision/supervision-boot/src/main/java/com/njcn/supervision/service/gridDiagram/impl/GridDiagramServiceImpl.java @@ -252,7 +252,7 @@ public class GridDiagramServiceImpl implements GridDiagramService { //根据问题单id查询已关联工单 List problemIds = userComplaintList.stream().map(SupervisionUserComplaintPO::getId).collect(Collectors.toList()); problemIds.addAll(surveyTestList.stream().map(SurveyTest::getId).collect(Collectors.toList())); - problemIds.addAll(lineWarningList.stream().map(LineWarning::getId).collect(Collectors.toList())); + problemIds.addAll(lineWarningList.stream().map(LineWarning::getLeafletId).collect(Collectors.toList())); problemIds.addAll(runWarningsIds);