From 8a511e2906d3a6666cf498efafcba0b68bf14e4a Mon Sep 17 00:00:00 2001 From: wr <1754607820@qq.com> Date: Wed, 5 Jun 2024 11:51:06 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=85=A8=E6=99=AF=E5=B1=95=E7=A4=BA=E5=86=80?= =?UTF-8?q?=E5=8C=97=E8=BF=90=E8=A1=8C=E7=BB=9F=E8=AE=A1bug=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/RStatLimitServiceImpl.java | 51 +++++++++++-------- 1 file changed, 30 insertions(+), 21 deletions(-) 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 ab5303a41..4f9fc912d 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 @@ -154,7 +154,7 @@ public class RStatLimitServiceImpl implements RStatLimitService { //在线 param.setComFlagStatus(1); List onData = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData(); - List line = data.stream().flatMap(x -> x.getLineIndexes().stream()).distinct().collect(Collectors.toList()); + List onLine = onData.stream().flatMap(x -> x.getLineIndexes().stream()).distinct().collect(Collectors.toList()); Map onMap = onData.stream().collect(Collectors.toMap(GeneralDeviceDTO::getIndex, Function.identity())); @@ -166,14 +166,14 @@ public class RStatLimitServiceImpl implements RStatLimitService { Map deptLineMap = deptGetChildrenMoreDTOS.stream().collect(Collectors.toMap(DeptGetSubStationDTO.Info::getUnitId, Function.identity())); StatSubstationBizBaseParam baseParam=new StatSubstationBizBaseParam(); - baseParam.setIds(line); + 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 integrityDS = lineIntegrityClient.getIntegrityByLineIds(line, + List integrityDS = lineIntegrityClient.getIntegrityByLineIds(onLine, DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())).toString(), DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())).toString()).getData(); - List integrityDS0 = integrityDS.stream().filter(x -> 0 == x.getIntegrityData()).map(RStatIntegrityD::getLineIndex).collect(Collectors.toList()); + List integrityDS0 = integrityDS.stream().filter(x -> 0.9 <= x.getIntegrityData()).map(RStatIntegrityD::getLineIndex).collect(Collectors.toList()); for (GeneralDeviceDTO datum : data) { areaData = new GridDiagramVO.AreaData(); @@ -194,22 +194,30 @@ public class RStatLimitServiceImpl implements RStatLimitService { List alarm = new ArrayList<>(); deptSub.getStationIds().stream().forEach(x -> { List lineIds = new ArrayList<>(); + List onlineIds = new ArrayList<>(); //0:全部 1:国网 if (ObjectUtil.isNull(param.getMonitorFlag())) { lineIds.addAll(x.getUnitChildrenList()); + onlineIds.addAll(x.getUnitChildrenList().stream().filter(d -> onLine.contains(d)).collect(Collectors.toList())); } else { if (0 == param.getMonitorFlag()) { lineIds.addAll(x.getUnitChildrenList()); + onlineIds.addAll(x.getUnitChildrenList().stream().filter(d -> onLine.contains(d)).collect(Collectors.toList())); }else { lineIds.addAll(x.getGwUnitChildrenList()); + onlineIds.addAll(x.getGwUnitChildrenList().stream().filter(d -> onLine.contains(d)).collect(Collectors.toList())); } } List collect = new ArrayList<>(); - collect.addAll(linesTarget.stream().filter(d -> lineIds.contains(d)).collect(Collectors.toList())); - collect.addAll(integrityDS0.stream().filter(d -> lineIds.contains(d)).collect(Collectors.toList())); - if (CollUtil.isNotEmpty(collect)) { + //监测点数据完整率大于90的 + List onIntegrity = integrityDS0.stream().filter(d -> onlineIds.contains(d)).collect(Collectors.toList()); + //没有超标监测点 + collect.addAll(onIntegrity.stream().filter(d -> !linesTarget.contains(d)).collect(Collectors.toList())); + //总监测点剔除合格监测点其他都是不合格信息 + List alarmList = lineIds.stream().filter(d -> !collect.contains(d)).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(alarmList)) { num.getAndIncrement(); - alarm.addAll(collect); + alarm.addAll(alarmList); } }); @@ -217,10 +225,12 @@ public class RStatLimitServiceImpl implements RStatLimitService { areaData.setAlarmSubList(alarm.stream().distinct().collect(Collectors.toList())); } List lineAlarm = new ArrayList<>(); - lineAlarm.addAll(linesTarget.stream().filter(d -> datum.getLineIndexes().contains(d)).collect(Collectors.toList())); - lineAlarm.addAll(integrityDS0.stream().filter(d -> datum.getLineIndexes().contains(d)).collect(Collectors.toList())); - areaData.setAlarm(lineAlarm.stream().distinct().collect(Collectors.toList()).size()); - areaData.setAlarmList(lineAlarm.stream().distinct().collect(Collectors.toList())); + List onIds = datum.getLineIndexes().stream().filter(d -> onLine.contains(d)).collect(Collectors.toList()); + List onIntegrity = integrityDS0.stream().filter(d -> onIds.contains(d)).collect(Collectors.toList()); + lineAlarm.addAll(onIntegrity.stream().filter(d -> !linesTarget.contains(d)).collect(Collectors.toList())); + List alarm = datum.getLineIndexes().stream().filter(d -> !lineAlarm.contains(d)).collect(Collectors.toList()); + areaData.setAlarm(alarm.size()); + areaData.setAlarmList(alarm); } info.add(areaData); @@ -241,26 +251,25 @@ public class RStatLimitServiceImpl implements RStatLimitService { List online = onData.stream().flatMap(x -> x.getLineIndexes().stream()).distinct().collect(Collectors.toList()); StatSubstationBizBaseParam baseParam=new StatSubstationBizBaseParam(); - baseParam.setIds(line); + 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 integrityDS = lineIntegrityClient.getIntegrityByLineIds(line, + List integrityDS = lineIntegrityClient.getIntegrityByLineIds(online, DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())).toString(), DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())).toString()).getData(); - List integrityDS0 = integrityDS.stream().filter(x -> 0 == x.getIntegrityData()).map(RStatIntegrityD::getLineIndex).collect(Collectors.toList()); + List integrityDS0 = integrityDS.stream().filter(x -> 0.9 <= x.getIntegrityData()).map(RStatIntegrityD::getLineIndex).collect(Collectors.toList()); //合格-告警 GridDiagramVO.RunData alarmData=new GridDiagramVO.RunData(); List lineAlarm = new ArrayList<>(); - lineAlarm.addAll(linesTarget.stream().filter(d -> line.contains(d)).collect(Collectors.toList())); - lineAlarm.addAll(integrityDS0.stream().filter(d -> line.contains(d)).collect(Collectors.toList())); + lineAlarm.addAll(integrityDS0.stream().filter(d -> !linesTarget.contains(d)).distinct().collect(Collectors.toList())); List alarm = lineAlarm.stream().distinct().collect(Collectors.toList()); List us = line.stream().filter(x -> !alarm.contains(x)).distinct().collect(Collectors.toList()); - alarmData.setLineNumOne(us.size()); - alarmData.setLineListOne(us); - alarmData.setLineNumTwo(alarm.size()); - alarmData.setLineListTwo(alarm); + alarmData.setLineNumOne(alarm.size()); + alarmData.setLineListOne(alarm); + alarmData.setLineNumTwo(us.size()); + alarmData.setLineListTwo(us); info.add(alarmData); //在线-离线