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 2b9cb1752..21733a1e0 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 @@ -178,4 +178,18 @@ public class DeviceInfoParam implements Serializable { } + @Data + @EqualsAndHashCode(callSuper = true) + public static class GridDiagram extends BusinessParam{ + + @ApiModelProperty("查询总数监测点") + private List coutList; + + @ApiModelProperty("查询告警监测点") + private List alarmList; + + @ApiModelProperty("是否是冀北电网一张图树 0:否 1:是") + private Integer type; + } + } diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/AreaLineInfoVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/AreaLineInfoVO.java index fb13b0759..f14d81320 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/AreaLineInfoVO.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/AreaLineInfoVO.java @@ -112,4 +112,7 @@ public class AreaLineInfoVO implements Serializable { @ApiModelProperty(name = "tail",value = "总数") private Integer tail; + + @ApiModelProperty(name = "type",value = "冀北电网一张图类型信息") + private Integer type; } diff --git a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/GridDiagramVO.java b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/GridDiagramVO.java index 571736d69..4ad49ef49 100644 --- a/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/GridDiagramVO.java +++ b/pqs-device/pq-device/pq-device-api/src/main/java/com/njcn/device/pq/pojo/vo/GridDiagramVO.java @@ -46,9 +46,15 @@ public class GridDiagramVO { @ApiModelProperty(name = "num", value = "监测点个数") private Integer num; - @ApiModelProperty(name = "num", value = "在线监测点数") + @ApiModelProperty(name = "numList", value = "监测点集合") + private List numList; + + @ApiModelProperty(name = "onLineNum", value = "在线监测点数") private Integer onLineNum; + @ApiModelProperty(name = "onLineNumList", value = "在线监测点集合") + private List onLineNumList; + @ApiModelProperty(name = "onLineRate", value = "数据在线率") private Float onLineRate; @@ -62,9 +68,14 @@ public class GridDiagramVO { @ApiModelProperty(name = "numOne", value = "数据") private Long numOne; + @ApiModelProperty(name = "numOneList", value = "数据集合") + private List numOneList; + @ApiModelProperty(name = "numTwo", value = "数据") private Long numTwo; + @ApiModelProperty(name = "numTwoList", value = "数据集合") + private List numTwoList; } @Data public static class DeviceData { 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 b38ec1025..ff1269224 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 @@ -159,11 +159,7 @@ public class GridDiagramServiceImpl implements GridDiagramService { //终端id集合 List devIds = lineBaseList.stream().filter(x -> value.equals(x.getVoltageLevel())).map(LineDevGetDTO::getDevId).distinct().collect(Collectors.toList()); - GridDiagramVO.LineStatisticsData lineStatisticsData = new GridDiagramVO.LineStatisticsData(); - lineStatisticsData.setNum(lineIds.size()); - lineStatisticsData.setOnLineNum(onLineNumIds.size()); - onLineAndIntegrity(lineIds, onIntegrityByIds, devIds, onlineRateByDevIds, lineStatisticsData); - statisticsData.add(lineStatisticsData); + gridDiagramAdd(statisticsData, onlineRateByDevIds, onIntegrityByIds, devIds, lineIds, onLineNumIds); } @@ -174,9 +170,15 @@ public class GridDiagramServiceImpl implements GridDiagramService { List lineIdsAll = lineBaseList.stream().map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList()); List onLineNumAll = lineBaseList.stream().filter(x -> 1 == x.getComFlag()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList()); + gridDiagramAdd(statisticsData, onlineRateByDevIds, onIntegrityByIds, devIdsAll, lineIdsAll, onLineNumAll); + } + + private void gridDiagramAdd(List statisticsData, List onlineRateByDevIds, List onIntegrityByIds, List devIdsAll, List lineIdsAll, List onLineNumAll) { GridDiagramVO.LineStatisticsData lineStatisticsData = new GridDiagramVO.LineStatisticsData(); lineStatisticsData.setNum(lineIdsAll.size()); + lineStatisticsData.setNumList(lineIdsAll); lineStatisticsData.setOnLineNum(onLineNumAll.size()); + lineStatisticsData.setOnLineNumList(onLineNumAll); onLineAndIntegrity(lineIdsAll, onIntegrityByIds, devIdsAll, onlineRateByDevIds, lineStatisticsData); statisticsData.add(lineStatisticsData); } @@ -191,11 +193,7 @@ public class GridDiagramServiceImpl implements GridDiagramService { //终端id集合 List devIds = lineBaseList.stream().filter(x -> value.equals(x.getVoltageLevel())).filter(x -> 1 == x.getIsUpToGrid()).map(LineDevGetDTO::getDevId).distinct().collect(Collectors.toList()); - GridDiagramVO.LineStatisticsData lineStatisticsData = new GridDiagramVO.LineStatisticsData(); - lineStatisticsData.setNum(lineIds.size()); - lineStatisticsData.setOnLineNum(onLineNumIds.size()); - onLineAndIntegrity(lineIds, onIntegrityByIds, devIds, onlineRateByDevIds, lineStatisticsData); - statisticsData.add(lineStatisticsData); + gridDiagramAdd(statisticsData, onlineRateByDevIds, onIntegrityByIds, devIds, lineIds, onLineNumIds); } private void gwStatisticsDataOtherList(List statisticsData, List lineBaseList, List onlineRateByDevIds, List onIntegrityByIds) { @@ -204,11 +202,8 @@ public class GridDiagramServiceImpl implements GridDiagramService { //监测点集合 List lineIdsAll = lineBaseList.stream().filter(x -> 1 == x.getIsUpToGrid()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList()); List onLineNumAll = lineBaseList.stream().filter(x -> 1 == x.getComFlag() && 1 == x.getIsUpToGrid()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList()); - GridDiagramVO.LineStatisticsData lineStatisticsData = new GridDiagramVO.LineStatisticsData(); - lineStatisticsData.setNum(lineIdsAll.size()); - lineStatisticsData.setOnLineNum(onLineNumAll.size()); - onLineAndIntegrity(lineIdsAll, onIntegrityByIds, devIdsAll, onlineRateByDevIds, lineStatisticsData); - statisticsData.add(lineStatisticsData); + + gridDiagramAdd(statisticsData, onlineRateByDevIds, onIntegrityByIds, devIdsAll, lineIdsAll, onLineNumAll); } private void onLineAndIntegrity(List lineIds, List onIntegrityByIds, List devIds, List onlineRateByDevIds, GridDiagramVO.LineStatisticsData lineStatisticsData) { @@ -460,8 +455,10 @@ public class GridDiagramServiceImpl implements GridDiagramService { //todo 1国网信息 long count = lineBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).map(LineDevGetDTO::getDevId).distinct().count(); data.setNumOne(count); + data.setNumOneList(lineBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList())); long count1 = lineBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).filter(x -> 1 == x.getComFlag()).map(LineDevGetDTO::getDevId).distinct().count(); data.setNumTwo(count1); + data.setNumTwoList(lineBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).filter(x -> 1 == x.getComFlag()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList())); if (i == 0) { statisticsData.add(data); } else { @@ -469,16 +466,24 @@ public class GridDiagramServiceImpl implements GridDiagramService { } } } + //numOne 在线 numTwo 在线 data = new GridDiagramVO.StatisticsData(); data.setNumOne(lineBaseList.stream().map(LineDevGetDTO::getDevId).distinct().count()); + data.setNumOneList(lineBaseList.stream().map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList())); data.setNumTwo(lineBaseList.stream() .filter(x -> 1 == x.getComFlag()).map(LineDevGetDTO::getDevId).distinct().count()); + data.setNumTwoList(lineBaseList.stream() + .filter(x -> 1 == x.getComFlag()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList())); statisticsData.add(data); data = new GridDiagramVO.StatisticsData(); data.setNumOne(lineBaseList.stream() .filter(x -> 1==x.getIsUpToGrid()).map(LineDevGetDTO::getDevId).distinct().count()); + data.setNumOneList(lineBaseList.stream() + .filter(x -> 1==x.getIsUpToGrid()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList())); data.setNumTwo(lineBaseList.stream() .filter(x -> 1 == x.getComFlag()&&1==x.getIsUpToGrid()).map(LineDevGetDTO::getDevId).distinct().count()); + data.setNumTwoList(lineBaseList.stream() + .filter(x -> 1 == x.getComFlag()&&1==x.getIsUpToGrid()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList())); gwStatisticsData.add(data); } diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/area/AreaInfoController.java b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/area/AreaInfoController.java index 08fe13b38..16637ed81 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/area/AreaInfoController.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/controller/majornetwork/area/AreaInfoController.java @@ -42,7 +42,7 @@ public class AreaInfoController extends BaseController { @PostMapping("/getAreaLineInfo") @ApiOperation("获取监测点区域信息") @ApiImplicitParam(name = "deviceInfoParam", value = "参数体", required = true) - public HttpResult> getAreaLineInfo(@RequestBody @Validated DeviceInfoParam.BusinessParam deviceInfoParam) { + public HttpResult> getAreaLineInfo(@RequestBody @Validated DeviceInfoParam.GridDiagram deviceInfoParam) { String methodDescribe = getMethodDescribe("getAreaLineInfo"); List res = areaInfoService.getAreaLineInfo(deviceInfoParam); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, res, methodDescribe); diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/AreaInfoService.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/AreaInfoService.java index 70f235e7d..0aad3f8ab 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/AreaInfoService.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/AreaInfoService.java @@ -20,7 +20,7 @@ public interface AreaInfoService { * @author cdf * @date 2022/6/29 */ - List getAreaLineInfo(DeviceInfoParam.BusinessParam deviceInfoParam); + List getAreaLineInfo(DeviceInfoParam.GridDiagram deviceInfoParam); /** diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/AreaInfoServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/AreaInfoServiceImpl.java index 5654f7400..d0dbc3ed6 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/AreaInfoServiceImpl.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/AreaInfoServiceImpl.java @@ -45,14 +45,30 @@ public class AreaInfoServiceImpl implements AreaInfoService { private final EventDetailService eventDetailService; @Override - public List getAreaLineInfo(DeviceInfoParam.BusinessParam deviceInfoParam) { + public List getAreaLineInfo(DeviceInfoParam.GridDiagram deviceInfoParam) { List resultVOList = new ArrayList<>(); - List generalDeviceDTOList = generalDeviceInfoClient.getPracticalRunDeviceInfo(deviceInfoParam).getData(); - List lineIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList()); + List lineIds =new ArrayList<>(); + if(1==deviceInfoParam.getType()){ + if(CollectionUtil.isNotEmpty(deviceInfoParam.getCoutList())){ + lineIds.addAll(deviceInfoParam.getCoutList()); + } + if(CollectionUtil.isNotEmpty(deviceInfoParam.getAlarmList())){ + lineIds.addAll(deviceInfoParam.getAlarmList()); + } + }else{ + List generalDeviceDTOList = generalDeviceInfoClient.getPracticalRunDeviceInfo(deviceInfoParam).getData(); + lineIds.addAll(generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList())); + } if (CollectionUtil.isNotEmpty(lineIds)) { List resList = lineFeignClient.getBaseLineAreaInfo(lineIds).getData(); + if(CollectionUtil.isNotEmpty(deviceInfoParam.getCoutList())){ + resList.stream().filter(x->deviceInfoParam.getCoutList().contains(x.getLineId())).forEach(x->x.setType(0)); + } + if(CollectionUtil.isNotEmpty(deviceInfoParam.getAlarmList())){ + resList.stream().filter(x->deviceInfoParam.getAlarmList().contains(x.getLineId())).forEach(x->x.setType(1)); + } //查询监测点未处理暂态事件 List eventDetails = eventDetailService.list(new LambdaQueryWrapper() diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/RMpTargetWarnDServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/RMpTargetWarnDServiceImpl.java index 6ebef0606..d654e7dde 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/RMpTargetWarnDServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/RMpTargetWarnDServiceImpl.java @@ -32,7 +32,7 @@ import java.util.stream.Collectors; /** *

- * 服务实现类 + * 服务实现类 *

* * @author wr @@ -85,7 +85,6 @@ public class RMpTargetWarnDServiceImpl extends ServiceImpl deptLineMap = deptGetChildrenMoreDTOS.stream().collect(Collectors.toMap(DeptGetSubStationDTO.Info::getUnitId, Function.identity())); GridDiagramVO.LineStatistics lineStatistics; GridDiagramVO.LineStatistics gwLineStatistics; @@ -122,74 +121,97 @@ public class RMpTargetWarnDServiceImpl extends ServiceImpl getIsUpToGrid(finalI,x,voltageId)) + .filter(x -> getIsUpToGrid(finalI, x, voltageId)) .map(SubGetBase::getId) .distinct() .count(); data.setNumOne(count); + data.setNumOneList(subBaseList.stream() + .filter(x -> getIsUpToGrid(finalI, x, voltageId)) + .flatMap(x -> x.getUnitChildrenList().stream()).distinct().collect(Collectors.toList())); - AtomicLong num= new AtomicLong(); - subBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).forEach(x -> { - List line=new ArrayList<>(); - //0:全部 1:国网 - if(finalI==0){ - line.addAll(x.getUnitChildrenList()); - }else{ - line.addAll(x.getGwUnitChildrenList()); - } - int sum = list.stream().filter(d -> line.contains(d.getMeasurementPointId())).mapToInt(RMpTargetWarnDPO::getIsWarn).sum(); - if (sum > 0) { - num.getAndIncrement(); - } - }); + AtomicLong num = new AtomicLong(); + List alarm = new ArrayList<>(); + subBaseList.stream().filter(x -> getIsUpToGrid(finalI, x, voltageId)).forEach(x -> { + List line = new ArrayList<>(); + //0:全部 1:国网 + if (finalI == 0) { + line.addAll(x.getUnitChildrenList()); + } else { + line.addAll(x.getGwUnitChildrenList()); + } + List collect = list.stream().filter(d -> line.contains(d.getMeasurementPointId())) + .filter(d -> d.getIsWarn() > 0).map(RMpTargetWarnDPO::getMeasurementPointId).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(collect)) { + num.getAndIncrement(); + alarm.addAll(collect); + } + + }); data.setNumTwo(num.get()); - if(i==0){ + data.setNumTwoList(alarm); + if (i == 0) { statisticsData.add(data); - }else{ + } else { gwStatisticsData.add(data); } } } + //总数信息 data = new GridDiagramVO.StatisticsData(); - data.setNumOne( subBaseList.stream() - .map(SubGetBase::getId) - .distinct() - .count()); - AtomicLong num= new AtomicLong(); + data.setNumOne(subBaseList.stream() + .map(SubGetBase::getId) + .distinct() + .count()); + data.setNumOneList(subBaseList.stream() + .flatMap(x -> x.getUnitChildrenList().stream()).distinct().collect(Collectors.toList())); + AtomicLong num = new AtomicLong(); + List alarm = new ArrayList<>(); subBaseList.stream().forEach(x -> { - List line=x.getUnitChildrenList(); - int sum = list.stream().filter(d -> line.contains(d.getMeasurementPointId())).mapToInt(RMpTargetWarnDPO::getIsWarn).sum(); - if (sum > 0) { + List line = x.getUnitChildrenList(); + List alarmList = list.stream().filter(d -> line.contains(d.getMeasurementPointId())) + .filter(d -> d.getIsWarn() > 0).map(RMpTargetWarnDPO::getMeasurementPointId).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(alarmList)) { num.getAndIncrement(); + alarm.addAll(alarmList); } }); data.setNumTwo(num.get()); + data.setNumTwoList(alarm); statisticsData.add(data); data = new GridDiagramVO.StatisticsData(); data.setNumOne(subBaseList.stream() - .filter(x -> 1 == x.getIsUpToGrid()) - .map(SubGetBase::getId) - .distinct() - .count()); - AtomicLong gwNum= new AtomicLong(); + .filter(x -> 1 == x.getIsUpToGrid()) + .map(SubGetBase::getId) + .distinct() + .count()); + data.setNumOneList(subBaseList.stream() + .filter(x -> 1 == x.getIsUpToGrid()) + .flatMap(x -> x.getUnitChildrenList().stream()).distinct().collect(Collectors.toList())); + AtomicLong gwNum = new AtomicLong(); + List gwAlarm = new ArrayList<>(); subBaseList.stream().filter(x -> 1 == x.getIsUpToGrid()).forEach(x -> { - List line=x.getUnitChildrenList(); - int sum = list.stream().filter(d -> line.contains(d.getMeasurementPointId())).mapToInt(RMpTargetWarnDPO::getIsWarn).sum(); - if (sum > 0) { + List line = x.getGwUnitChildrenList(); + List alarmList = list.stream().filter(d -> line.contains(d.getMeasurementPointId())) + .filter(d -> d.getIsWarn() > 0).map(RMpTargetWarnDPO::getMeasurementPointId).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(alarmList)) { gwNum.getAndIncrement(); + gwAlarm.addAll(alarmList); } }); data.setNumTwo(gwNum.get()); + data.setNumTwoList(gwAlarm); gwStatisticsData.add(data); } + private Boolean getIsUpToGrid(Integer type, SubGetBase subGetBase, String voltageId) { //0:全部 1:国网上送监测点 - if(type == 0){ + if (type == 0) { return voltageId.equals(subGetBase.getVoltageLevel()); - }else{ + } else { return voltageId.equals(subGetBase.getVoltageLevel()) && 1 == subGetBase.getIsUpToGrid(); } }