diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/AreaDTO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/AreaDTO.java index f2f2bc6cc..ef21341f0 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/AreaDTO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/dto/AreaDTO.java @@ -25,15 +25,16 @@ public class AreaDTO { /** * 平均超标天数 */ - private Double averageOverDay = 0.0; + private Double averageOverDay = 3.14159; /** * 符合性占比 */ - private Double ratio = 0.0; + private Double ratio = 3.14159; /** * 监测点超标占比 */ - private Double lineRatio = 0.0; + private Double lineRatio = 3.14159; + } diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/HarmonicDeptVO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/HarmonicDeptVO.java index 3531147f8..a336aea0c 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/HarmonicDeptVO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/HarmonicDeptVO.java @@ -33,17 +33,17 @@ public class HarmonicDeptVO implements Serializable { private Integer overLineCount = 0; @ApiModelProperty("符合性占比") - private Double ratio = -1.0; + private Double ratio = 3.14159; /** * 监测点超标占比 */ @ApiModelProperty("监测点超标占比") - private Double lineRatio; + private Double lineRatio = 3.14159; /** * 平均超标天数 */ @ApiModelProperty("平均超标天数") - private Double averageOverDay = -1.0; + private Double averageOverDay = 3.14159; } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/HarmonicServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/HarmonicServiceImpl.java index 0782296a3..ac8d8de65 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/HarmonicServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/HarmonicServiceImpl.java @@ -57,6 +57,7 @@ public class HarmonicServiceImpl implements IHarmonicService { private final LineFeignClient lineFeignClient; private final RStatLimitTargetDMapper targetDMapper; + @Override public List getDeptSubstationRelations(HarmonicPublicParam harmonicPublicParam) { harmonicPublicParam.setServerName(generalInfo.getMicroServiceName()); @@ -64,38 +65,38 @@ public class HarmonicServiceImpl implements IHarmonicService { List lineList = new ArrayList<>(); List lineInfo = new ArrayList<>(); PollutionParamDTO paramDTO = new PollutionParamDTO(); - if (StringUtils.isBlank(RequestUtil.getDeptIndex())){ + if (StringUtils.isBlank(RequestUtil.getDeptIndex())) { return list; } List deptList = generalDeviceInfoClient.getPracticalRunDeviceInfo(harmonicPublicParam).getData(); - deptList.forEach(dept->{ + deptList.forEach(dept -> { lineList.addAll(dept.getLineIndexes()); }); - if (!CollectionUtils.isEmpty(lineList)){ + if (!CollectionUtils.isEmpty(lineList)) { paramDTO.setLineList(lineList); lineInfo = lineFeignClient.getLineInfo(paramDTO).getData(); } - Map> map = lineInfo.stream().collect(Collectors.groupingBy(PollutionLineDTO::getSubstationId)); + Map> map = lineInfo.stream().collect(Collectors.groupingBy(PollutionLineDTO::getSubstationId)); //获取所有的数据信息 List limitTargetNew = getLimitTargetNew(lineList, harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime()); //聚合查询 List allData = new ArrayList<>(); - if (Objects.equals(harmonicPublicParam.getStatisticalType().getCode(), DicDataEnum.XBDY_ENUM.getCode())){ + if (Objects.equals(harmonicPublicParam.getStatisticalType().getCode(), DicDataEnum.XBDY_ENUM.getCode())) { allData = getAllDataV(lineList, harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime()); - } else if (Objects.equals(harmonicPublicParam.getStatisticalType().getCode(), DicDataEnum.XBDL_ENUM.getCode())){ + } else if (Objects.equals(harmonicPublicParam.getStatisticalType().getCode(), DicDataEnum.XBDL_ENUM.getCode())) { allData = getAllDataI(lineList, harmonicPublicParam.getSearchBeginTime(), harmonicPublicParam.getSearchEndTime()); } List finalAllData = allData; - deptList.forEach(dept->{ + deptList.forEach(dept -> { - if (!CollectionUtils.isEmpty(dept.getSubIndexes())){ + if (!CollectionUtils.isEmpty(dept.getSubIndexes())) { List childrenList = new ArrayList<>(); PollutionVO pollutionVO = new PollutionVO(); pollutionVO.setId(dept.getIndex()); - pollutionVO.setName(dept.getName()+"\n("+dept.getLineIndexes().size()+")"); - dept.getSubIndexes().forEach(sub->{ + pollutionVO.setName(dept.getName() + "\n(" + dept.getLineIndexes().size() + ")"); + dept.getSubIndexes().forEach(sub -> { List l1 = map.get(sub); PollutionVO children = new PollutionVO(); children.setId(sub); @@ -104,25 +105,21 @@ public class HarmonicServiceImpl implements IHarmonicService { //监测点id List lineIds = l1.stream().map(PollutionLineDTO::getId).collect(Collectors.toList()); List collect = limitTargetNew.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList()); - List sumList = finalAllData.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList()); - - children.setData(handleDataNew(collect,sumList,harmonicPublicParam.getStatisticalType().getCode()).getRatio()); + children.setData(handleDataNew(collect, sumList, harmonicPublicParam.getStatisticalType().getCode()).getRatio()); childrenList.add(children); }); - - if (!CollectionUtils.isEmpty(childrenList)){ + if (!CollectionUtils.isEmpty(childrenList)) { pollutionVO.setChildren(childrenList.stream().sorted(Comparator.comparing(PollutionVO::getData).reversed().thenComparing(PollutionVO::getName)).collect(Collectors.toList())); } - if (!CollectionUtils.isEmpty(dept.getLineIndexes())){ + if (!CollectionUtils.isEmpty(dept.getLineIndexes())) { double tem = childrenList.stream().mapToDouble(PollutionVO::getData).average().orElse(3.14159); - pollutionVO.setData(tem == 3.14159||tem<0?3.14159:NumberUtil.round(tem,2).doubleValue()); + pollutionVO.setData(tem == 3.14159 || tem < 0 ? 3.14159 : NumberUtil.round(tem, 2).doubleValue()); } list.add(pollutionVO); } - }); - if (!CollectionUtils.isEmpty(list)){ + if (!CollectionUtils.isEmpty(list)) { return list.stream().sorted(Comparator.comparing(PollutionVO::getData).reversed().thenComparing(PollutionVO::getName)).collect(Collectors.toList()); } return list; @@ -140,28 +137,33 @@ public class HarmonicServiceImpl implements IHarmonicService { List limitTargetNew = getLimitTargetNew(lineIds, param.getSearchBeginTime(), param.getSearchEndTime()); //聚合查询 List allData = new ArrayList<>(); - if (Objects.equals(param.getStatisticalType().getCode(), DicDataEnum.XBDY_ENUM.getCode())){ + if (Objects.equals(param.getStatisticalType().getCode(), DicDataEnum.XBDY_ENUM.getCode())) { allData = getAllDataV(lineIds, param.getSearchBeginTime(), param.getSearchEndTime()); - } else if (Objects.equals(param.getStatisticalType().getCode(), DicDataEnum.XBDL_ENUM.getCode())){ + } else if (Objects.equals(param.getStatisticalType().getCode(), DicDataEnum.XBDL_ENUM.getCode())) { allData = getAllDataI(lineIds, param.getSearchBeginTime(), param.getSearchEndTime()); } List finalAllData = allData; - deptList.forEach(item->{ + deptList.forEach(item -> { List lineList = item.getLineIndexes(); - if (!CollectionUtils.isEmpty(lineList)){ + if (!CollectionUtils.isEmpty(lineList)) { HarmonicDeptVO harmonicDeptVO = new HarmonicDeptVO(); List collect = limitTargetNew.stream().filter(x -> lineList.contains(x.getLineId())).collect(Collectors.toList()); List sumList = finalAllData.stream().filter(x -> lineList.contains(x.getLineId())).collect(Collectors.toList()); AreaDTO areaDTO = handleDataNew(collect, sumList, param.getStatisticalType().getCode()); - BeanUtil.copyProperties(areaDTO,harmonicDeptVO); + BeanUtil.copyProperties(areaDTO, harmonicDeptVO); harmonicDeptVO.setId(item.getIndex()); harmonicDeptVO.setName(item.getName()); list.add(harmonicDeptVO); } }); - if (!CollectionUtils.isEmpty(list)){ - return list.stream().sorted(Comparator.comparing(HarmonicDeptVO::getRatio).reversed().thenComparing(HarmonicDeptVO::getOnlineCount).thenComparing(HarmonicDeptVO::getOverLineCount)).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(list)) { + List collect = list.stream().filter(x->x.getRatio()!=3.14159&&x.getOnlineCount()!=0&&x.getOverLineCount()!=0) + .sorted(Comparator.comparing(HarmonicDeptVO::getRatio).reversed().thenComparing(HarmonicDeptVO::getOnlineCount).thenComparing(HarmonicDeptVO::getOverLineCount)).collect(Collectors.toList()); + List ids = collect.stream().map(HarmonicDeptVO::getId).collect(Collectors.toList()); + collect.addAll(list.stream().filter(x->!ids.contains(x.getId())) + .collect(Collectors.toList())); + return collect; } return list; } @@ -171,32 +173,32 @@ public class HarmonicServiceImpl implements IHarmonicService { param.setServerName(generalInfo.getMicroServiceName()); List list = new ArrayList<>(); List subList = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(param).getData(); - subList.forEach(item->{ + subList.forEach(item -> { HarmonicSubstationVO harmonicSubstationVO = new HarmonicSubstationVO(); harmonicSubstationVO.setId(item.getIndex()); harmonicSubstationVO.setName(item.getName()); List lineList = item.getLineIndexes(); - if (!CollectionUtils.isEmpty(lineList)){ - AreaDTO areaDTO = handleData(getLimitTarget(lineList, param.getSearchBeginTime(),param.getSearchEndTime()),param.getStatisticalType().getCode(),lineList, param.getSearchBeginTime(),param.getSearchEndTime()); - BeanUtil.copyProperties(areaDTO,harmonicSubstationVO); - int result = getWarningInfo(lineList, param.getSearchBeginTime(),param.getSearchEndTime(),param.getStatisticalType().getCode()); - if (result == -1){ + if (!CollectionUtils.isEmpty(lineList)) { + AreaDTO areaDTO = handleData(getLimitTarget(lineList, param.getSearchBeginTime(), param.getSearchEndTime()), param.getStatisticalType().getCode(), lineList, param.getSearchBeginTime(), param.getSearchEndTime()); + BeanUtil.copyProperties(areaDTO, harmonicSubstationVO); + int result = getWarningInfo(lineList, param.getSearchBeginTime(), param.getSearchEndTime(), param.getStatisticalType().getCode()); + if (result == -1) { harmonicSubstationVO.setWarningFreq(-1.0); } else { - if (areaDTO.getOverLineCount() == 0){ - if (areaDTO.getOnlineCount() > 0){ + if (areaDTO.getOverLineCount() == 0) { + if (areaDTO.getOnlineCount() > 0) { harmonicSubstationVO.setWarningFreq(0.0); } else { harmonicSubstationVO.setWarningFreq(-1.0); } } else { - harmonicSubstationVO.setWarningFreq(BigDecimal.valueOf(result*1.0/areaDTO.getOverLineCount()).setScale(2, RoundingMode.HALF_UP).doubleValue()); + harmonicSubstationVO.setWarningFreq(BigDecimal.valueOf(result * 1.0 / areaDTO.getOverLineCount()).setScale(2, RoundingMode.HALF_UP).doubleValue()); } } } list.add(harmonicSubstationVO); }); - if (!CollectionUtils.isEmpty(list)){ + if (!CollectionUtils.isEmpty(list)) { return list.stream().sorted(Comparator.comparing(HarmonicSubstationVO::getRatio).reversed().thenComparing(HarmonicSubstationVO::getOnlineCount).thenComparing(HarmonicSubstationVO::getOverLineCount)).collect(Collectors.toList()); } return list; @@ -207,33 +209,33 @@ public class HarmonicServiceImpl implements IHarmonicService { param.setServerName(generalInfo.getMicroServiceName()); List list = new ArrayList<>(); List line = new ArrayList<>(); - if (StringUtils.isBlank(RequestUtil.getDeptIndex())){ + if (StringUtils.isBlank(RequestUtil.getDeptIndex())) { return list; } List sub = generalDeviceInfoClient.getPracticalRunDeviceInfoAsSubstation(param).getData(); - sub.forEach(item->{ - if (Objects.equals(param.getId(),item.getIndex())){ - if (!CollectionUtils.isEmpty(item.getLineIndexes())){ + sub.forEach(item -> { + if (Objects.equals(param.getId(), item.getIndex())) { + if (!CollectionUtils.isEmpty(item.getLineIndexes())) { line.addAll(item.getLineIndexes()); } } }); - if (!CollectionUtils.isEmpty(line)){ - List limitTargetList = getLineOverDays(line,param.getSearchBeginTime(),param.getSearchEndTime(),param.getStatisticalType().getCode()); - if (!CollectionUtils.isEmpty(limitTargetList)){ - buildData(list,limitTargetList,param.getStatisticalType().getCode()); + if (!CollectionUtils.isEmpty(line)) { + List limitTargetList = getLineOverDays(line, param.getSearchBeginTime(), param.getSearchEndTime(), param.getStatisticalType().getCode()); + if (!CollectionUtils.isEmpty(limitTargetList)) { + buildData(list, limitTargetList, param.getStatisticalType().getCode()); } } //获取监测点名称 - if (!CollectionUtils.isEmpty(list)){ + if (!CollectionUtils.isEmpty(list)) { List lineList = list.stream().map(HarmonicLineVO::getId).collect(Collectors.toList()); List lineDeviceStateVOList = lineFeignClient.getAllLine(lineList).getData(); - list.stream().map(item1->lineDeviceStateVOList.stream().filter(item2->Objects.equals(item1.getId(),item2.getId())).findAny().map(item3->{ + list.stream().map(item1 -> lineDeviceStateVOList.stream().filter(item2 -> Objects.equals(item1.getId(), item2.getId())).findAny().map(item3 -> { item1.setName(item3.getName()); return list; })).collect(Collectors.toList()); } - if (!CollectionUtils.isEmpty(list)){ + if (!CollectionUtils.isEmpty(list)) { return list.stream().sorted(Comparator.comparing(HarmonicLineVO::getOverDays).reversed()).collect(Collectors.toList()); } return list; @@ -245,38 +247,38 @@ public class HarmonicServiceImpl implements IHarmonicService { param.setServerName(generalInfo.getMicroServiceName()); List list = new ArrayList<>(); List lineList = new ArrayList<>(); - if (StringUtils.isBlank(RequestUtil.getDeptIndex())){ + if (StringUtils.isBlank(RequestUtil.getDeptIndex())) { return list; } List deviceList = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData(); - deviceList.forEach(item->{ - if (!CollectionUtils.isEmpty(item.getLineIndexes())){ + deviceList.forEach(item -> { + if (!CollectionUtils.isEmpty(item.getLineIndexes())) { lineList.addAll(item.getLineIndexes()); } }); - if (!CollectionUtils.isEmpty(lineList)){ - List limitTargetList = getLineOverDays(lineList,param.getSearchBeginTime(),param.getSearchEndTime(),param.getStatisticalType().getCode()); - if (!CollectionUtils.isEmpty(limitTargetList)){ - buildData(list,limitTargetList,param.getStatisticalType().getCode()); + if (!CollectionUtils.isEmpty(lineList)) { + List limitTargetList = getLineOverDays(lineList, param.getSearchBeginTime(), param.getSearchEndTime(), param.getStatisticalType().getCode()); + if (!CollectionUtils.isEmpty(limitTargetList)) { + buildData(list, limitTargetList, param.getStatisticalType().getCode()); } } - list.sort((item1,item2)->item2.getOverDays().compareTo(item1.getOverDays())); + list.sort((item1, item2) -> item2.getOverDays().compareTo(item1.getOverDays())); //获取监测点名称 - if (!CollectionUtils.isEmpty(list)){ + if (!CollectionUtils.isEmpty(list)) { List l1 = list.stream().map(HarmonicLineVO::getId).collect(Collectors.toList()); List lineDeviceStateVOList = lineFeignClient.getAllLine(l1).getData(); - list.stream().map(item1->lineDeviceStateVOList.stream().filter(item2->Objects.equals(item1.getId(),item2.getId())).findAny().map(item3->{ + list.stream().map(item1 -> lineDeviceStateVOList.stream().filter(item2 -> Objects.equals(item1.getId(), item2.getId())).findAny().map(item3 -> { item1.setName(item3.getName()); return list; })).collect(Collectors.toList()); } - if (list.size() > Param.UP_LIMIT){ - return list.subList(Param.DOWN_LIMIT,Param.UP_LIMIT); + if (list.size() > Param.UP_LIMIT) { + return list.subList(Param.DOWN_LIMIT, Param.UP_LIMIT); } return list; } - public List getLimitTargetNew(List lineList, String startTime, String endTime){ + public List getLimitTargetNew(List lineList, String startTime, String endTime) { List limitRates = targetDMapper.selectList(new LambdaQueryWrapper() .in(RStatLimitTargetDPO::getLineId, lineList) .ge(StrUtil.isNotBlank(startTime), RStatLimitTargetDPO::getTime, DateUtil.beginOfDay(DateUtil.parse(startTime))) @@ -284,24 +286,26 @@ public class HarmonicServiceImpl implements IHarmonicService { ); return limitRates; } + /** * 功能描述: 获取limitTarget数据 - * @param lineList 部门列表 - * @param startTime 开始时间 - * @param endTime 结束时间 + * + * @param lineList 部门列表 + * @param startTime 开始时间 + * @param endTime 结束时间 * @return java.util.List * @author xy * @date 2022/2/25 15:05 */ - public List getLimitTarget(List lineList, String startTime, String endTime){ + public List getLimitTarget(List lineList, String startTime, String endTime) { List listInfo = new ArrayList<>(); List limitRates = targetDMapper.selectList(new LambdaQueryWrapper() .in(RStatLimitTargetDPO::getLineId, lineList) .ge(StrUtil.isNotBlank(startTime), RStatLimitTargetDPO::getTime, DateUtil.beginOfDay(DateUtil.parse(startTime))) .le(StrUtil.isNotBlank(endTime), RStatLimitTargetDPO::getTime, DateUtil.endOfDay(DateUtil.parse(endTime))) ); - if(CollUtil.isNotEmpty(limitRates)){ - limitRates.forEach(list ->{ + if (CollUtil.isNotEmpty(limitRates)) { + limitRates.forEach(list -> { LimitTarget limitRatePO = BeanUtil.copyProperties(list, LimitTarget.class); limitRatePO.setTime(list.getTime().toInstant()); limitRatePO.setLineId(list.getLineId()); @@ -388,7 +392,7 @@ public class HarmonicServiceImpl implements IHarmonicService { listInfo.add(limitRatePO); }); } - return listInfo; + return listInfo; } @@ -414,19 +418,19 @@ public class HarmonicServiceImpl implements IHarmonicService { int overDay = 0; List l = map.get(key); for (RStatLimitTargetDPO pojo : l) { - if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())){ - if (pojo.getUaberranceOvertime()>0 || pojo.getUharm20Overtime()>0 || pojo.getUharm3Overtime()>0 || pojo.getUharm4Overtime()>0 || pojo.getUharm5Overtime()>0 || pojo.getUharm6Overtime()>0 || pojo.getUharm7Overtime()>0 || pojo.getUharm8Overtime()>0 || pojo.getUharm9Overtime()>0 || pojo.getUharm10Overtime()>0 || pojo.getUharm11Overtime()>0 || pojo.getUharm12Overtime()>0 || pojo.getUharm13Overtime()>0 || pojo.getUharm14Overtime()>0 || pojo.getUharm15Overtime()>0 || pojo.getUharm16Overtime()>0 || pojo.getUharm17Overtime()>0 || pojo.getUharm18Overtime()>0 || pojo.getUharm19Overtime()>0 || pojo.getUharm20Overtime()>0 || pojo.getUharm21Overtime()>0 || pojo.getUharm22Overtime()>0 || pojo.getUharm23Overtime()>0 || pojo.getUharm24Overtime()>0 || pojo.getUharm25Overtime()>0){ + if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())) { + if (pojo.getUaberranceOvertime() > 0 || pojo.getUharm20Overtime() > 0 || pojo.getUharm3Overtime() > 0 || pojo.getUharm4Overtime() > 0 || pojo.getUharm5Overtime() > 0 || pojo.getUharm6Overtime() > 0 || pojo.getUharm7Overtime() > 0 || pojo.getUharm8Overtime() > 0 || pojo.getUharm9Overtime() > 0 || pojo.getUharm10Overtime() > 0 || pojo.getUharm11Overtime() > 0 || pojo.getUharm12Overtime() > 0 || pojo.getUharm13Overtime() > 0 || pojo.getUharm14Overtime() > 0 || pojo.getUharm15Overtime() > 0 || pojo.getUharm16Overtime() > 0 || pojo.getUharm17Overtime() > 0 || pojo.getUharm18Overtime() > 0 || pojo.getUharm19Overtime() > 0 || pojo.getUharm20Overtime() > 0 || pojo.getUharm21Overtime() > 0 || pojo.getUharm22Overtime() > 0 || pojo.getUharm23Overtime() > 0 || pojo.getUharm24Overtime() > 0 || pojo.getUharm25Overtime() > 0) { overCountByDay = overCountByDay + 1; overDay = overDay + 1; } - } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())){ - if (pojo.getIharm2Overtime()>0 || pojo.getIharm3Overtime()>0 || pojo.getIharm4Overtime()>0 || pojo.getIharm5Overtime()>0 || pojo.getIharm6Overtime()>0 || pojo.getIharm7Overtime()>0 || pojo.getIharm8Overtime()>0 || pojo.getIharm9Overtime()>0 || pojo.getIharm10Overtime()>0 || pojo.getIharm11Overtime()>0 || pojo.getIharm12Overtime()>0 || pojo.getIharm13Overtime()>0 || pojo.getIharm14Overtime()>0 || pojo.getIharm15Overtime()>0 || pojo.getIharm16Overtime()>0 || pojo.getIharm17Overtime()>0 || pojo.getIharm18Overtime()>0 || pojo.getIharm19Overtime()>0 || pojo.getIharm20Overtime()>0 || pojo.getIharm21Overtime()>0 || pojo.getIharm22Overtime()>0 || pojo.getIharm23Overtime()>0 || pojo.getIharm24Overtime()>0 || pojo.getIharm25Overtime()>0){ + } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())) { + if (pojo.getIharm2Overtime() > 0 || pojo.getIharm3Overtime() > 0 || pojo.getIharm4Overtime() > 0 || pojo.getIharm5Overtime() > 0 || pojo.getIharm6Overtime() > 0 || pojo.getIharm7Overtime() > 0 || pojo.getIharm8Overtime() > 0 || pojo.getIharm9Overtime() > 0 || pojo.getIharm10Overtime() > 0 || pojo.getIharm11Overtime() > 0 || pojo.getIharm12Overtime() > 0 || pojo.getIharm13Overtime() > 0 || pojo.getIharm14Overtime() > 0 || pojo.getIharm15Overtime() > 0 || pojo.getIharm16Overtime() > 0 || pojo.getIharm17Overtime() > 0 || pojo.getIharm18Overtime() > 0 || pojo.getIharm19Overtime() > 0 || pojo.getIharm20Overtime() > 0 || pojo.getIharm21Overtime() > 0 || pojo.getIharm22Overtime() > 0 || pojo.getIharm23Overtime() > 0 || pojo.getIharm24Overtime() > 0 || pojo.getIharm25Overtime() > 0) { overCountByDay = overCountByDay + 1; overDay = overDay + 1; } } } - ratio = ratio + overDay*1.0/l.size(); + ratio = ratio + overDay * 1.0 / l.size(); } //平均超标天数 if (CollectionUtils.isEmpty(list)){ @@ -435,42 +439,39 @@ public class HarmonicServiceImpl implements IHarmonicService { avgOverDay = overLineCount == 0?0.0:BigDecimal.valueOf(overCountByDay*1.0/overLineCount).setScale(2, RoundingMode.HALF_UP).doubleValue(); } //月监测点符合性超标占比 - ratio = map.size() == 0?0:BigDecimal.valueOf(ratio*100/map.size()).setScale(2, RoundingMode.HALF_UP).doubleValue(); + ratio = map.size() == 0?0:BigDecimal.valueOf(ratio*100.0/map.size()).setScale(2, RoundingMode.HALF_UP).doubleValue(); areaDTO.setOnlineCount(onlineCount); areaDTO.setOverLineCount(overLineCount); //平均超标天数 areaDTO.setAverageOverDay(avgOverDay); areaDTO.setRatio(Math.min(ratio,100.0)); //月监测点超标占比 - double lineRatio = onlineCount==0?0:BigDecimal.valueOf(overLineCount*100/onlineCount).setScale(2, RoundingMode.HALF_UP).doubleValue(); + double lineRatio = onlineCount==0?0:BigDecimal.valueOf(overLineCount*100.0/onlineCount).setScale(2, RoundingMode.HALF_UP).doubleValue(); areaDTO.setLineRatio(Math.min(lineRatio,100.0)); return areaDTO; } - - - - - - /** todo + /** + * todo * 功能描述: 处理区域(变电站)在线监测点数、超标监测点数、平均超标天数、占比 + * * @param list 集合 - * type 类型 + * type 类型 * @return * @author xy * @date 2022/2/25 15:05 */ - public AreaDTO handleData(List list,String type,List lineList,String startTime,String endTime) { - int onlineCount = 0,overLineCount = 0,overCountByDay = 0; - double avgOverDay = 0.0,ratio = 0.0; + public AreaDTO handleData(List list, String type, List lineList, String startTime, String endTime) { + int onlineCount = 0, overLineCount = 0, overCountByDay = 0; + double avgOverDay = 0.0, ratio = 0.0; AreaDTO areaDTO = new AreaDTO(); - if (!CollectionUtils.isEmpty(list)){ + if (!CollectionUtils.isEmpty(list)) { List data = new ArrayList<>(); - if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())){ - data = getAllDataV(lineList,startTime,endTime); - } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())){ - data = getAllDataI(lineList,startTime,endTime); + if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())) { + data = getAllDataV(lineList, startTime, endTime); + } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())) { + data = getAllDataI(lineList, startTime, endTime); } if (!CollectionUtils.isEmpty(data)) { onlineCount = data.size(); @@ -478,96 +479,99 @@ public class HarmonicServiceImpl implements IHarmonicService { areaDTO.setOnlineCount(onlineCount); //超标监测点数 for (RStatLimitTargetDPO pojo : data) { - if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())){ - if (pojo.getAllTime()>0){ + if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())) { + if (pojo.getAllTime() > 0) { overLineCount = overLineCount + 1; } - } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())){ - if (pojo.getAllTime()>0){ + } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())) { + if (pojo.getAllTime() > 0) { overLineCount = overLineCount + 1; } } } } } - Map> map = list.stream().collect(Collectors.groupingBy(LimitTarget::getTime)); + Map> map = list.stream().collect(Collectors.groupingBy(LimitTarget::getTime)); for (Instant key : map.keySet()) { int overDay = 0; List l = map.get(key); for (LimitTarget pojo : l) { - if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())){ - if (pojo.getUAberranceOverTime()>0 || pojo.getUHarm2OverTime()>0 || pojo.getUHarm3OverTime()>0 || pojo.getUHarm4OverTime()>0 || pojo.getUHarm5OverTime()>0 || pojo.getUHarm6OverTime()>0 || pojo.getUHarm7OverTime()>0 || pojo.getUHarm8OverTime()>0 || pojo.getUHarm9OverTime()>0 || pojo.getUHarm10OverTime()>0 || pojo.getUHarm11OverTime()>0 || pojo.getUHarm12OverTime()>0 || pojo.getUHarm13OverTime()>0 || pojo.getUHarm14OverTime()>0 || pojo.getUHarm15OverTime()>0 || pojo.getUHarm16OverTime()>0 || pojo.getUHarm17OverTime()>0 || pojo.getUHarm18OverTime()>0 || pojo.getUHarm19OverTime()>0 || pojo.getUHarm20OverTime()>0 || pojo.getUHarm21OverTime()>0 || pojo.getUHarm22OverTime()>0 || pojo.getUHarm23OverTime()>0 || pojo.getUHarm24OverTime()>0 || pojo.getUHarm25OverTime()>0){ + if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())) { + if (pojo.getUAberranceOverTime() > 0 || pojo.getUHarm2OverTime() > 0 || pojo.getUHarm3OverTime() > 0 || pojo.getUHarm4OverTime() > 0 || pojo.getUHarm5OverTime() > 0 || pojo.getUHarm6OverTime() > 0 || pojo.getUHarm7OverTime() > 0 || pojo.getUHarm8OverTime() > 0 || pojo.getUHarm9OverTime() > 0 || pojo.getUHarm10OverTime() > 0 || pojo.getUHarm11OverTime() > 0 || pojo.getUHarm12OverTime() > 0 || pojo.getUHarm13OverTime() > 0 || pojo.getUHarm14OverTime() > 0 || pojo.getUHarm15OverTime() > 0 || pojo.getUHarm16OverTime() > 0 || pojo.getUHarm17OverTime() > 0 || pojo.getUHarm18OverTime() > 0 || pojo.getUHarm19OverTime() > 0 || pojo.getUHarm20OverTime() > 0 || pojo.getUHarm21OverTime() > 0 || pojo.getUHarm22OverTime() > 0 || pojo.getUHarm23OverTime() > 0 || pojo.getUHarm24OverTime() > 0 || pojo.getUHarm25OverTime() > 0) { overCountByDay = overCountByDay + 1; overDay = overDay + 1; } - } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())){ - if (pojo.getIHarm2OverTime()>0 || pojo.getIHarm3OverTime()>0 || pojo.getIHarm4OverTime()>0 || pojo.getIHarm5OverTime()>0 || pojo.getIHarm6OverTime()>0 || pojo.getIHarm7OverTime()>0 || pojo.getIHarm8OverTime()>0 || pojo.getIHarm9OverTime()>0 || pojo.getIHarm10OverTime()>0 || pojo.getIHarm11OverTime()>0 || pojo.getIHarm12OverTime()>0 || pojo.getIHarm13OverTime()>0 || pojo.getIHarm14OverTime()>0 || pojo.getIHarm15OverTime()>0 || pojo.getIHarm16OverTime()>0 || pojo.getIHarm17OverTime()>0 || pojo.getIHarm18OverTime()>0 || pojo.getIHarm19OverTime()>0 || pojo.getIHarm20OverTime()>0 || pojo.getIHarm21OverTime()>0 || pojo.getIHarm22OverTime()>0 || pojo.getIHarm23OverTime()>0 || pojo.getIHarm24OverTime()>0 || pojo.getIHarm25OverTime()>0){ + } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())) { + if (pojo.getIHarm2OverTime() > 0 || pojo.getIHarm3OverTime() > 0 || pojo.getIHarm4OverTime() > 0 || pojo.getIHarm5OverTime() > 0 || pojo.getIHarm6OverTime() > 0 || pojo.getIHarm7OverTime() > 0 || pojo.getIHarm8OverTime() > 0 || pojo.getIHarm9OverTime() > 0 || pojo.getIHarm10OverTime() > 0 || pojo.getIHarm11OverTime() > 0 || pojo.getIHarm12OverTime() > 0 || pojo.getIHarm13OverTime() > 0 || pojo.getIHarm14OverTime() > 0 || pojo.getIHarm15OverTime() > 0 || pojo.getIHarm16OverTime() > 0 || pojo.getIHarm17OverTime() > 0 || pojo.getIHarm18OverTime() > 0 || pojo.getIHarm19OverTime() > 0 || pojo.getIHarm20OverTime() > 0 || pojo.getIHarm21OverTime() > 0 || pojo.getIHarm22OverTime() > 0 || pojo.getIHarm23OverTime() > 0 || pojo.getIHarm24OverTime() > 0 || pojo.getIHarm25OverTime() > 0) { overCountByDay = overCountByDay + 1; overDay = overDay + 1; } } } - ratio = ratio + overDay*1.0/l.size(); + ratio = ratio + overDay * 1.0 / l.size(); } //平均超标天数 - if (CollectionUtils.isEmpty(list)){ + if (CollectionUtils.isEmpty(list)) { avgOverDay = -1.0; } else { - avgOverDay = overLineCount == 0?0.0:BigDecimal.valueOf(overCountByDay*1.0/overLineCount).setScale(2, RoundingMode.HALF_UP).doubleValue(); + avgOverDay = overLineCount == 0 ? 0.0 : BigDecimal.valueOf(overCountByDay * 1.0 / overLineCount).setScale(2, RoundingMode.HALF_UP).doubleValue(); } //月监测点符合性超标占比 - ratio = map.size() == 0?-1.0:BigDecimal.valueOf(ratio*100/map.size()).setScale(2, RoundingMode.HALF_UP).doubleValue(); + ratio = map.size() == 0 ? -1.0 : BigDecimal.valueOf(ratio * 100 / map.size()).setScale(2, RoundingMode.HALF_UP).doubleValue(); areaDTO.setOnlineCount(onlineCount); areaDTO.setOverLineCount(overLineCount); areaDTO.setAverageOverDay(avgOverDay); - areaDTO.setRatio(Math.min(ratio,100.0)); + areaDTO.setRatio(Math.min(ratio, 100.0)); //月监测点超标占比 - double lineRatio = onlineCount==0?0:BigDecimal.valueOf(overLineCount*100/onlineCount).setScale(2, RoundingMode.HALF_UP).doubleValue(); - areaDTO.setLineRatio(Math.min(lineRatio,100.0)); + double lineRatio = onlineCount == 0 ? 0 : BigDecimal.valueOf(overLineCount * 100 / onlineCount).setScale(2, RoundingMode.HALF_UP).doubleValue(); + areaDTO.setLineRatio(Math.min(lineRatio, 100.0)); return areaDTO; } /** * 功能描述: 处理区域在线监测点数、超标监测点数 + * * @param list 集合 * @return * @author xy * @date 2022/2/25 15:05 */ - private List getAllDataV(List list, String startTime, String endTime){ - return targetDMapper.getSumV(list,startTime,endTime); + private List getAllDataV(List list, String startTime, String endTime) { + return targetDMapper.getSumV(list, startTime, endTime); } - private List getAllDataI(List list, String startTime, String endTime){ - return targetDMapper.getSumI(list,startTime,endTime); + + private List getAllDataI(List list, String startTime, String endTime) { + return targetDMapper.getSumI(list, startTime, endTime); } /** * 功能描述: 获取告警频次 - * @author xy - * @param lineList 监测点id - * @param startTime 开始时间 - * @param endTime 结束时间 - * @param type 类型 - * @date 2022/4/24 16:47 + * + * @param lineList 监测点id + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param type 类型 * @return + * @author xy + * @date 2022/4/24 16:47 */ private Integer getWarningInfo(List lineList, String startTime, String endTime, String type) { Integer result = 0; - if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())){ + if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())) { Integer sumAddV = targetDMapper.getSumAddV(lineList, startTime, endTime); - if(ObjectUtil.isNotNull(sumAddV)){ - result=sumAddV; - }else{ - result=-1; + if (ObjectUtil.isNotNull(sumAddV)) { + result = sumAddV; + } else { + result = -1; } - } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())){ + } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())) { Integer sumAddI = targetDMapper.getSumAddI(lineList, startTime, endTime); - if(ObjectUtil.isNotNull(sumAddI)){ - result=sumAddI; - }else{ - result=-1; + if (ObjectUtil.isNotNull(sumAddI)) { + result = sumAddI; + } else { + result = -1; } } @@ -575,30 +579,30 @@ public class HarmonicServiceImpl implements IHarmonicService { } - /** * 功能描述: 获取监测点超标天数 - * @author xy - * @param lineList 监测点id - * @param startTime 开始时间 - * @param endTime 结束时间 - * @param type 类型 - * @date 2022/4/24 16:47 + * + * @param lineList 监测点id + * @param startTime 开始时间 + * @param endTime 结束时间 + * @param type 类型 * @return + * @author xy + * @date 2022/4/24 16:47 */ private List getLineOverDays(List lineList, String startTime, String endTime, String type) { - List listInfo=new ArrayList<>(); - List sum=new ArrayList<>(); - if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())){ + List listInfo = new ArrayList<>(); + List sum = new ArrayList<>(); + if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())) { sum = targetDMapper.getSumV(lineList, startTime, endTime); - } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())){ + } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())) { sum = targetDMapper.getSumI(lineList, startTime, endTime); } - if(CollUtil.isNotEmpty(sum)){ - sum.forEach(list ->{ - LimitTarget limitRatePO = BeanUtil.copyProperties(list,LimitTarget.class); + if (CollUtil.isNotEmpty(sum)) { + sum.forEach(list -> { + LimitTarget limitRatePO = BeanUtil.copyProperties(list, LimitTarget.class); limitRatePO.setLineId(list.getLineId()); limitRatePO.setFlickerAllTime(list.getFlickerAllTime()); limitRatePO.setFlickerOverTime(list.getFlickerOvertime()); @@ -683,17 +687,17 @@ public class HarmonicServiceImpl implements IHarmonicService { listInfo.add(limitRatePO); }); } - return listInfo; + return listInfo; } /** * 数据组装 */ - private void buildData(List result,List list, String type) { - list.forEach(item->{ + private void buildData(List result, List list, String type) { + list.forEach(item -> { HarmonicLineVO harmonicLineVO = new HarmonicLineVO(); harmonicLineVO.setId(item.getLineId()); - if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())){ + if (Objects.equals(type, DicDataEnum.XBDY_ENUM.getCode())) { harmonicLineVO.setOverThreeTimes(item.getUHarm3OverTime()); harmonicLineVO.setOverFiveTimes(item.getUHarm5OverTime()); harmonicLineVO.setOverSevenTimes(item.getUHarm7OverTime()); @@ -701,11 +705,11 @@ public class HarmonicServiceImpl implements IHarmonicService { harmonicLineVO.setOverThirteenTimes(item.getUHarm13OverTime()); harmonicLineVO.setOverTwentyThreeTimes(item.getUHarm23OverTime()); harmonicLineVO.setOverTwentyFiveTimes(item.getUHarm25OverTime()); - int otherTimes = item.getUAberranceOverTime()+item.getUHarm2OverTime()+item.getUHarm4OverTime()+item.getUHarm6OverTime()+item.getUHarm8OverTime()+item.getUHarm9OverTime()+item.getUHarm10OverTime()+item.getUHarm12OverTime()+item.getUHarm14OverTime()+item.getUHarm15OverTime()+item.getUHarm16OverTime()+item.getUHarm17OverTime()+item.getUHarm18OverTime()+item.getUHarm19OverTime()+item.getUHarm20OverTime()+item.getUHarm21OverTime()+item.getUHarm22OverTime()+item.getUHarm24OverTime(); + int otherTimes = item.getUAberranceOverTime() + item.getUHarm2OverTime() + item.getUHarm4OverTime() + item.getUHarm6OverTime() + item.getUHarm8OverTime() + item.getUHarm9OverTime() + item.getUHarm10OverTime() + item.getUHarm12OverTime() + item.getUHarm14OverTime() + item.getUHarm15OverTime() + item.getUHarm16OverTime() + item.getUHarm17OverTime() + item.getUHarm18OverTime() + item.getUHarm19OverTime() + item.getUHarm20OverTime() + item.getUHarm21OverTime() + item.getUHarm22OverTime() + item.getUHarm24OverTime(); harmonicLineVO.setOtherTimes(otherTimes); - List over = Stream.of(item.getUAberranceOverTime(),item.getUHarm2OverTime(),item.getUHarm3OverTime(),item.getUHarm4OverTime(),item.getUHarm5OverTime(),item.getUHarm6OverTime(),item.getUHarm7OverTime(),item.getUHarm8OverTime(),item.getUHarm9OverTime(),item.getUHarm10OverTime(),item.getUHarm11OverTime(),item.getUHarm12OverTime(),item.getUHarm13OverTime(),item.getUHarm14OverTime(),item.getUHarm15OverTime(),item.getUHarm16OverTime(),item.getUHarm17OverTime(),item.getUHarm18OverTime(),item.getUHarm19OverTime(),item.getUHarm20OverTime(),item.getUHarm21OverTime(),item.getUHarm22OverTime(),item.getUHarm23OverTime(),item.getUHarm24OverTime(),item.getUHarm25OverTime()).collect(Collectors.toList()); + List over = Stream.of(item.getUAberranceOverTime(), item.getUHarm2OverTime(), item.getUHarm3OverTime(), item.getUHarm4OverTime(), item.getUHarm5OverTime(), item.getUHarm6OverTime(), item.getUHarm7OverTime(), item.getUHarm8OverTime(), item.getUHarm9OverTime(), item.getUHarm10OverTime(), item.getUHarm11OverTime(), item.getUHarm12OverTime(), item.getUHarm13OverTime(), item.getUHarm14OverTime(), item.getUHarm15OverTime(), item.getUHarm16OverTime(), item.getUHarm17OverTime(), item.getUHarm18OverTime(), item.getUHarm19OverTime(), item.getUHarm20OverTime(), item.getUHarm21OverTime(), item.getUHarm22OverTime(), item.getUHarm23OverTime(), item.getUHarm24OverTime(), item.getUHarm25OverTime()).collect(Collectors.toList()); harmonicLineVO.setOverDays(Collections.max(over)); - } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())){ + } else if (Objects.equals(type, DicDataEnum.XBDL_ENUM.getCode())) { harmonicLineVO.setOverThreeTimes(item.getIHarm3OverTime()); harmonicLineVO.setOverFiveTimes(item.getIHarm5OverTime()); harmonicLineVO.setOverSevenTimes(item.getIHarm7OverTime()); @@ -713,9 +717,9 @@ public class HarmonicServiceImpl implements IHarmonicService { harmonicLineVO.setOverThirteenTimes(item.getIHarm13OverTime()); harmonicLineVO.setOverTwentyThreeTimes(item.getIHarm23OverTime()); harmonicLineVO.setOverTwentyFiveTimes(item.getIHarm25OverTime()); - int otherTimes = item.getIHarm2OverTime()+item.getIHarm4OverTime()+item.getIHarm6OverTime()+item.getIHarm8OverTime()+item.getIHarm9OverTime()+item.getIHarm10OverTime()+item.getIHarm12OverTime()+item.getIHarm14OverTime()+item.getIHarm15OverTime()+item.getIHarm16OverTime()+item.getIHarm17OverTime()+item.getIHarm18OverTime()+item.getIHarm19OverTime()+item.getIHarm20OverTime()+item.getIHarm21OverTime()+item.getIHarm22OverTime()+item.getIHarm24OverTime(); + int otherTimes = item.getIHarm2OverTime() + item.getIHarm4OverTime() + item.getIHarm6OverTime() + item.getIHarm8OverTime() + item.getIHarm9OverTime() + item.getIHarm10OverTime() + item.getIHarm12OverTime() + item.getIHarm14OverTime() + item.getIHarm15OverTime() + item.getIHarm16OverTime() + item.getIHarm17OverTime() + item.getIHarm18OverTime() + item.getIHarm19OverTime() + item.getIHarm20OverTime() + item.getIHarm21OverTime() + item.getIHarm22OverTime() + item.getIHarm24OverTime(); harmonicLineVO.setOtherTimes(otherTimes); - List over = Stream.of(item.getIHarm2OverTime(),item.getIHarm3OverTime(),item.getIHarm4OverTime(),item.getIHarm5OverTime(),item.getIHarm6OverTime(),item.getIHarm7OverTime(),item.getIHarm8OverTime(),item.getIHarm9OverTime(),item.getIHarm10OverTime(),item.getIHarm11OverTime(),item.getIHarm12OverTime(),item.getIHarm13OverTime(),item.getIHarm14OverTime(),item.getIHarm15OverTime(),item.getIHarm16OverTime(),item.getIHarm17OverTime(),item.getIHarm18OverTime(),item.getIHarm19OverTime(),item.getIHarm20OverTime(),item.getIHarm21OverTime(),item.getIHarm22OverTime(),item.getIHarm23OverTime(),item.getIHarm24OverTime(),item.getIHarm25OverTime()).collect(Collectors.toList()); + List over = Stream.of(item.getIHarm2OverTime(), item.getIHarm3OverTime(), item.getIHarm4OverTime(), item.getIHarm5OverTime(), item.getIHarm6OverTime(), item.getIHarm7OverTime(), item.getIHarm8OverTime(), item.getIHarm9OverTime(), item.getIHarm10OverTime(), item.getIHarm11OverTime(), item.getIHarm12OverTime(), item.getIHarm13OverTime(), item.getIHarm14OverTime(), item.getIHarm15OverTime(), item.getIHarm16OverTime(), item.getIHarm17OverTime(), item.getIHarm18OverTime(), item.getIHarm19OverTime(), item.getIHarm20OverTime(), item.getIHarm21OverTime(), item.getIHarm22OverTime(), item.getIHarm23OverTime(), item.getIHarm24OverTime(), item.getIHarm25OverTime()).collect(Collectors.toList()); harmonicLineVO.setOverDays(Collections.max(over)); } result.add(harmonicLineVO);