diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/DeviceController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/DeviceController.java index 9669ee7b4..439234a07 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/DeviceController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/DeviceController.java @@ -36,6 +36,8 @@ import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; +import java.util.stream.Stream; /** diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/LargeScreenMapper.java b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/LargeScreenMapper.java index b00fa5747..3f55b003b 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/LargeScreenMapper.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/LargeScreenMapper.java @@ -20,7 +20,7 @@ import java.util.Map; @Mapper public interface LargeScreenMapper { - Map selectDownCount(@Param("lineIds") List lineIds, @Param("startTime") String startTime, @Param("endTime") String endTime); + Integer selectDownCount(@Param("lineIds") List lineIds, @Param("startTime") String startTime, @Param("endTime") String endTime); List> selectLoadTypeCount(@Param("lineIds") List lineIds, @Param("startTime") String startTime, @Param("endTime") String endTime); diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/LargeScreenMapper.xml b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/LargeScreenMapper.xml index 7b277847b..c21cdd918 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/LargeScreenMapper.xml +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/mapper/majornetwork/mapping/LargeScreenMapper.xml @@ -2,9 +2,9 @@ - select - count(ed.event_id) "count" + count(ed.event_id) "COUNT" from r_mp_event_detail ed where ed.measurement_point_id in diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/AreaLineServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/AreaLineServiceImpl.java index 6b6c697ba..ce898984d 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/AreaLineServiceImpl.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/AreaLineServiceImpl.java @@ -86,83 +86,36 @@ public class AreaLineServiceImpl implements AreaLineService { List> listObject = new ArrayList<>(); // 获取暂降监测点 List generalDeviceDTOList = generalDeviceInfoClient.getPracticalAllDeviceInfo(deviceInfoParam).getData(); - List lineIndexs; + List lineIds = generalDeviceDTOList.stream().flatMap(x -> x.getLineIndexes().stream()).collect(Collectors.toList()); + List lineDetails = lineFeignClient.getBaseLineAreaInfo(lineIds).getData(); List substationDetailVOList = new ArrayList<>(); // 获取所有终端信息 for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) { List objectList = new ArrayList<>(); - List subIndexs; - subIndexs = generalDeviceDTO.getSubIndexes(); - lineIndexs = generalDeviceDTO.getLineIndexes(); - // 通讯正常个数 - int stateZc = 0; - // 通讯中断个数 - int stateZd = 0; - // 总次数 - int tail = 0; - - String color = ""; - List substationDetailVOS = new ArrayList<>(); - if (subIndexs.size() > 0) { - List lineList = lineFeignClient.getAllLine(lineIndexs).getData(); - substationDetailVOS = lineFeignClient.getSubstationData(subIndexs).getData(); - for (int i = 0; i < substationDetailVOS.size(); i++) { - List list = new ArrayList<>(); - list.addAll(lineList); - Iterator iterator = list.listIterator(); - // 获取监测点 - while (iterator.hasNext()) { - LineDeviceStateVO line = iterator.next(); - String[] ids = line.getPids().split(","); - if (!ids[3].equals(substationDetailVOS.get(i).getId())) { - iterator.remove(); - } - } - List lineDataVOList = list; - // 通讯正常个数 - int stateTrue; - stateTrue = 0; - // 通讯中断个数 - int stateFalse = 0; - // 次数 - double r = 0.0035; - - int j = 0; - // 总的监测点个数 - int lineTail = lineDataVOList.size(); - for (LineDeviceStateVO lineDataVO : lineDataVOList) { - if (lineDataVO.getState() == 1) { - stateTrue++; - color = "green"; - } else { - stateFalse++; - color = "red"; - } - SubstationDetailVO substationDetail = new SubstationDetailVO(); - substationDetail.setId(lineDataVO.getId()); - substationDetail.setSrbName(lineDataVO.getName()); - substationDetail.setSubName(lineDataVO.getSubName()); - substationDetail.setCoordY(substationDetailVOS.get(i).getCoordY().floatValue() + r * Math.cos(2 * Math.PI * j / lineTail)); - substationDetail.setCoordX(substationDetailVOS.get(i).getCoordX().floatValue() + r * Math.sin(2 * Math.PI * j / lineTail)); - substationDetail.setColor(color); - substationDetailVOList.add(substationDetail); - j++; - } - stateZc += stateTrue; - stateZd += stateFalse; - tail += lineTail; + List areaLineInfoVOS = lineDetails.stream().filter(x -> generalDeviceDTO.getLineIndexes().contains(x.getLineId())).collect(Collectors.toList()); + Map> subMap = areaLineInfoVOS.stream().collect(Collectors.groupingBy(x->x.getSubId()+"_"+x.getSubName())); + subMap.forEach((key,value)->{ + int j = 0; + // 总的监测点个数 + for (AreaLineInfoVO line : value) { + SubstationDetailVO substationDetail = new SubstationDetailVO(); + substationDetail.setId(line.getLineId()); + substationDetail.setSrbName(line.getLineName()); + substationDetail.setSubName(line.getSubName()); + substationDetail.setCoordY(line.getLng().floatValue() + 0.0035 * Math.cos(2 * Math.PI * j / value.size())); + substationDetail.setCoordX(line.getLat().floatValue() + 0.0035 * Math.sin(2 * Math.PI * j / value.size())); + substationDetail.setColor(line.getComFlag() == 1?"green":"red"); + substationDetailVOList.add(substationDetail); + j++; } - } + }); // 获取变电站 - substationDetailVOList.addAll(substationDetailVOS); - if (lineIndexs.size() > 0) { - areaLineVO.setSubstationDetailVOList(substationDetailVOList); - objectList.add(generalDeviceDTO.getName()); - objectList.add(tail); - objectList.add(stateZc); - objectList.add(stateZd); - listObject.add(objectList); - } + areaLineVO.setSubstationDetailVOList(substationDetailVOList); + objectList.add(generalDeviceDTO.getName()); + objectList.add(areaLineInfoVOS.stream().filter(x->x.getComFlag()==1).count()); + objectList.add(areaLineInfoVOS.stream().filter(x->x.getComFlag()==0).count()); + objectList.add(areaLineInfoVOS.size()); + listObject.add(objectList); } areaLineVO.setAreaValue(listObject); return areaLineVO; @@ -208,8 +161,7 @@ public class AreaLineServiceImpl implements AreaLineService { List ev = new ArrayList<>(); Integer count = info.stream() .filter(obj -> obj.getMeasurementPointId().equals( areaLineInfoVO.getLineId())) - .mapToInt(RmpEventDetailPO::getFileFlag) - .sum(); + .collect(Collectors.toList()).size(); tail+=count; areaLineInfoVO.setTail(count); ev.add(areaLineInfoVO); diff --git a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/LargeScreenServiceImpl.java b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/LargeScreenServiceImpl.java index 5410fa680..b5aee028d 100644 --- a/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/LargeScreenServiceImpl.java +++ b/pqs-event/event-boot/src/main/java/com/njcn/event/service/majornetwork/Impl/LargeScreenServiceImpl.java @@ -83,12 +83,10 @@ public class LargeScreenServiceImpl implements LargeScreenService { param.setSize(0); list.add(param); } else { - Map map = largeScreenMapper.selectDownCount(generalDeviceDTO.getLineIndexes(), largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); + int count = largeScreenMapper.selectDownCount(generalDeviceDTO.getLineIndexes(), largeScreenParam.getSearchBeginTime(), largeScreenParam.getSearchEndTime()); MonitoringPointScaleParam param = new MonitoringPointScaleParam(); param.setName(generalDeviceDTO.getName()); param.setIndex(generalDeviceDTO.getIndex()); - String s = map.get("count").toString(); - int count = Integer.parseInt(s); param.setCount(count); param.setSize(generalDeviceDTO.getLineIndexes().size()); list.add(param); @@ -96,27 +94,6 @@ public class LargeScreenServiceImpl implements LargeScreenService { } result.setParam(list); return result; - /* //获取所有监测点集合 - List lineIds = generalDeviceDTOList.stream().flatMap(dto -> dto.getLineIndexes().stream()).collect(Collectors.toList()); - List> maps = largeScreenMapper.selectDownCount(lineIds); - - Map countMap = new HashMap<>(); - for (Map map : maps) { - for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) { - for (String lineIndex : generalDeviceDTO.getLineIndexes()) { - if (map.get("id").equals(lineIndex)){ - if(countMap.containsKey(generalDeviceDTO.getName())){ - countMap.put(generalDeviceDTO.getName(),countMap.get(generalDeviceDTO.getName())+1); - break; - }else { - countMap.put(generalDeviceDTO.getName(),1); - break; - } - } - } - } - }*/ - } /**