diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/AnalyzeServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/AnalyzeServiceImpl.java index b57acb1f0..a7a010f1e 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/AnalyzeServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/AnalyzeServiceImpl.java @@ -56,6 +56,7 @@ import java.io.File; import java.math.BigDecimal; import java.math.RoundingMode; import java.time.Instant; +import java.time.LocalDate; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; @@ -105,7 +106,7 @@ public class AnalyzeServiceImpl implements IAnalyzeService { temList.forEach(item -> { OverAreaLimitVO overAreaLimitVO = new OverAreaLimitVO(); if (!CollectionUtils.isEmpty(item.getLineIndexes())) { - List limitTargetList = harmonicService.getLimitTarget(item.getLineIndexes(), param.getSearchBeginTime(), param.getSearchEndTime()); + List limitTargetList = harmonicService.getLimitTarget(item.getLineIndexes(), param.getSearchBeginTime(), param.getSearchEndTime()); overAreaLimitVO = handleAreaData(limitTargetList, item.getLineIndexes(), param); } overAreaLimitVO.setName(item.getName()); @@ -503,7 +504,7 @@ public class AnalyzeServiceImpl implements IAnalyzeService { * @date 2022/2/25 15:05 */ @SuppressWarnings("unchecked") - public OverAreaLimitVO handleAreaData(List list, List line, OverAreaVO param) { + public OverAreaLimitVO handleAreaData(List list, List line, OverAreaVO param) { int onlineCount = 0, overLineCount = 0, freqCount = 0, voltageCount = 0, ubalanceCount = 0, flickerCount = 0, iNegCount = 0, uharmCount = 0, iharmCount = 0, inuharmCount = 0; int freqOverDay = 0, voltageOverDay = 0, ubalanceOverDay = 0, flickerOverDay = 0, iNegOverDay = 0, uharmOverDay = 0, iharmOverDay = 0, inuharmOverDay = 0; OverAreaLimitVO overAreaLimitVO = new OverAreaLimitVO(); @@ -572,32 +573,32 @@ public class AnalyzeServiceImpl implements IAnalyzeService { overAreaLimitVO.setInterHarmonicBiLi(BigDecimal.valueOf(inuharmCount * 1.0 / data.size() * 100).setScale(2, RoundingMode.HALF_UP).doubleValue()); } } - Map> map = list.stream().collect(Collectors.groupingBy(LimitTarget::getTime)); - for (Instant key : map.keySet()) { - List l = map.get(key); - for (LimitTarget pojo : l) { - if (pojo.getFreqDevOverTime() > 0) { + Map> map = list.stream().collect(Collectors.groupingBy(RStatLimitTargetDPO::getTime)); + for (LocalDate key : map.keySet()) { + List l = map.get(key); + for (RStatLimitTargetDPO pojo : l) { + if (pojo.getFreqDevOvertime() > 0) { freqOverDay++; } - if (pojo.getVoltageDevOverTime() > 0) { + if (pojo.getVoltageDevOvertime() > 0) { voltageOverDay++; } - if (pojo.getUBalanceOverTime() > 0) { + if (pojo.getUbalanceOvertime() > 0) { ubalanceOverDay++; } - if (pojo.getFlickerOverTime() > 0) { + if (pojo.getFlickerOvertime() > 0) { flickerOverDay++; } - if (pojo.getINegOverTime() > 0) { + if (pojo.getINegOvertime() > 0) { iNegOverDay++; } - if (pojo.getUHarm2OverTime() > 0) { + if (pojo.getUharm2Overtime() > 0) { uharmOverDay++; } - if (pojo.getIHarm2OverTime() > 0) { + if (pojo.getIharm2Overtime() > 0) { iharmOverDay++; } - if (pojo.getInuHarm1OverTime() > 0) { + if (pojo.getInuharm2Overtime() > 0) { inuharmOverDay++; } } 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 7a306943e..9f33609fb 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 @@ -328,107 +328,12 @@ public class HarmonicServiceImpl implements IHarmonicService { * @author xy * @date 2022/2/25 15:05 */ - public List getLimitTarget(List lineList, String startTime, String endTime) { - List listInfo = new ArrayList<>(); - List limitRates = targetDMapper.selectList(new LambdaQueryWrapper() + public List getLimitTarget(List lineList, String startTime, String endTime) { + return 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 -> { - LimitTarget limitRatePO = BeanUtil.copyProperties(list, LimitTarget.class); - LocalDateTime localDateTime = list.getTime().atStartOfDay(); - - // 将LocalDateTime转换为Instant - Instant instant = localDateTime.toInstant(ZoneOffset.ofHours(8)); - limitRatePO.setTime(instant); - limitRatePO.setLineId(list.getLineId()); - limitRatePO.setPhasicType(list.getPhasicType()); - limitRatePO.setAllTime(list.getAllTime()); - limitRatePO.setFlickerAllTime(list.getFlickerAllTime()); - limitRatePO.setFlickerOverTime(list.getFlickerOvertime()); - limitRatePO.setFreqDevOverTime(list.getFreqDevOvertime()); - limitRatePO.setIHarm2OverTime(list.getIharm2Overtime()); - limitRatePO.setIHarm3OverTime(list.getIharm3Overtime()); - limitRatePO.setIHarm4OverTime(list.getIharm4Overtime()); - limitRatePO.setIHarm5OverTime(list.getIharm5Overtime()); - limitRatePO.setIHarm6OverTime(list.getIharm6Overtime()); - limitRatePO.setIHarm7OverTime(list.getIharm7Overtime()); - limitRatePO.setIHarm8OverTime(list.getIharm8Overtime()); - limitRatePO.setIHarm9OverTime(list.getIharm9Overtime()); - limitRatePO.setIHarm10OverTime(list.getIharm10Overtime()); - limitRatePO.setIHarm11OverTime(list.getIharm11Overtime()); - limitRatePO.setIHarm12OverTime(list.getIharm12Overtime()); - limitRatePO.setIHarm13OverTime(list.getIharm13Overtime()); - limitRatePO.setIHarm14OverTime(list.getIharm14Overtime()); - limitRatePO.setIHarm15OverTime(list.getIharm15Overtime()); - limitRatePO.setIHarm16OverTime(list.getIharm16Overtime()); - limitRatePO.setIHarm17OverTime(list.getIharm17Overtime()); - limitRatePO.setIHarm18OverTime(list.getIharm18Overtime()); - limitRatePO.setIHarm19OverTime(list.getIharm19Overtime()); - limitRatePO.setIHarm20OverTime(list.getIharm20Overtime()); - limitRatePO.setIHarm21OverTime(list.getIharm21Overtime()); - limitRatePO.setIHarm22OverTime(list.getIharm22Overtime()); - limitRatePO.setIHarm23OverTime(list.getIharm23Overtime()); - limitRatePO.setIHarm24OverTime(list.getIharm24Overtime()); - limitRatePO.setIHarm25OverTime(list.getIharm25Overtime()); - limitRatePO.setINegOverTime(list.getINegOvertime()); - limitRatePO.setUAberranceOverTime(list.getUaberranceOvertime()); - limitRatePO.setUBalanceOverTime(list.getUbalanceOvertime()); - limitRatePO.setUHarm2OverTime(list.getUharm2Overtime()); - limitRatePO.setUHarm3OverTime(list.getUharm3Overtime()); - limitRatePO.setUHarm4OverTime(list.getUharm4Overtime()); - limitRatePO.setUHarm5OverTime(list.getUharm5Overtime()); - limitRatePO.setUHarm6OverTime(list.getUharm6Overtime()); - limitRatePO.setUHarm7OverTime(list.getUharm7Overtime()); - limitRatePO.setUHarm8OverTime(list.getUharm8Overtime()); - limitRatePO.setUHarm9OverTime(list.getUharm9Overtime()); - limitRatePO.setUHarm10OverTime(list.getUharm10Overtime()); - limitRatePO.setUHarm11OverTime(list.getUharm11Overtime()); - limitRatePO.setUHarm12OverTime(list.getUharm12Overtime()); - limitRatePO.setUHarm13OverTime(list.getUharm13Overtime()); - limitRatePO.setUHarm14OverTime(list.getUharm14Overtime()); - limitRatePO.setUHarm15OverTime(list.getUharm15Overtime()); - limitRatePO.setUHarm16OverTime(list.getUharm16Overtime()); - limitRatePO.setUHarm17OverTime(list.getUharm17Overtime()); - limitRatePO.setUHarm18OverTime(list.getUharm18Overtime()); - limitRatePO.setUHarm19OverTime(list.getUharm19Overtime()); - limitRatePO.setUHarm20OverTime(list.getUharm20Overtime()); - limitRatePO.setUHarm21OverTime(list.getUharm21Overtime()); - limitRatePO.setUHarm22OverTime(list.getUharm22Overtime()); - limitRatePO.setUHarm23OverTime(list.getUharm23Overtime()); - limitRatePO.setUHarm24OverTime(list.getUharm24Overtime()); - limitRatePO.setUHarm25OverTime(list.getUharm25Overtime()); - - limitRatePO.setInuHarm1OverTime(list.getInuharm1Overtime()); - limitRatePO.setInuHarm2OverTime(list.getInuharm2Overtime()); - limitRatePO.setInuHarm3OverTime(list.getInuharm3Overtime()); - limitRatePO.setInuHarm4OverTime(list.getInuharm4Overtime()); - limitRatePO.setInuHarm5OverTime(list.getInuharm5Overtime()); - limitRatePO.setInuHarm6OverTime(list.getInuharm6Overtime()); - limitRatePO.setInuHarm7OverTime(list.getInuharm7Overtime()); - limitRatePO.setInuHarm8OverTime(list.getInuharm8Overtime()); - limitRatePO.setInuHarm9OverTime(list.getInuharm9Overtime()); - limitRatePO.setInuHarm10OverTime(list.getInuharm10Overtime()); - limitRatePO.setInuHarm11OverTime(list.getInuharm11Overtime()); - limitRatePO.setInuHarm12OverTime(list.getInuharm12Overtime()); - limitRatePO.setInuHarm13OverTime(list.getInuharm13Overtime()); - limitRatePO.setInuHarm14OverTime(list.getInuharm14Overtime()); - limitRatePO.setInuHarm15OverTime(list.getInuharm15Overtime()); - limitRatePO.setInuHarm16OverTime(list.getInuharm16Overtime()); - - limitRatePO.setFlickerOverTime(list.getFlickerOvertime()); - limitRatePO.setFlickerAllTime(list.getFlickerAllTime()); - limitRatePO.setFreqDevOverTime(list.getFreqDevOvertime()); - limitRatePO.setVoltageDevOverTime(list.getVoltageDevOvertime()); - limitRatePO.setUAberranceOverTime(list.getUaberranceOvertime()); - limitRatePO.setINegOverTime(list.getINegOvertime()); - listInfo.add(limitRatePO); - }); - } - return listInfo; - } public AreaDTO handleDataNew(List list, List sumList, String type) { @@ -497,7 +402,7 @@ public class HarmonicServiceImpl implements IHarmonicService { * @author xy * @date 2022/2/25 15:05 */ - public AreaDTO handleData(List list, String type, List lineList, String startTime, String endTime) { + 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(); @@ -526,18 +431,18 @@ public class HarmonicServiceImpl implements IHarmonicService { } } } - Map> map = list.stream().collect(Collectors.groupingBy(LimitTarget::getTime)); - for (Instant key : map.keySet()) { + Map> map = list.stream().collect(Collectors.groupingBy(RStatLimitTargetDPO::getTime)); + for (LocalDate key : map.keySet()) { int overDay = 0; - List l = map.get(key); - for (LimitTarget pojo : l) { + List l = map.get(key); + for (RStatLimitTargetDPO 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 (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) { + 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; } 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 418337491..53ae76c92 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 @@ -684,32 +684,25 @@ public class PollutionSubstationServiceImpl extends ServiceImpl list = new ArrayList<>(); if (param.getType() == 0) { param.setServerName(generalInfo.getMicroServiceName()); - List lineList = new ArrayList<>(); PollutionParamDTO paramDTO = new PollutionParamDTO(); - if (StringUtils.isBlank(RequestUtil.getDeptIndex())) { - return list; - } - List deviceList = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData(); - deviceList.forEach(item -> { - if (!CollectionUtils.isEmpty(item.getLineIndexes())) { - lineList.addAll(item.getLineIndexes()); - } - }); - if (!CollectionUtils.isEmpty(lineList)) { - paramDTO.setLineList(lineList); - list = lineFeignClient.getLineInfo(paramDTO).getData(); - List result = rMpPollutionDPOMapper.getTop10Line(lineList, DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())), DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())), param.getStatisticalType().getId()); + List generalDeviceDTOList = generalDeviceInfoClient.getPracticalRunDeviceInfo(param).getData(); + List ids = generalDeviceDTOList.stream().filter(it->CollUtil.isNotEmpty(it.getLineIndexes())).flatMap(it->it.getLineIndexes().stream()).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(ids)) { + List result = rMpPollutionDPOMapper.getTop10Line(ids, DateUtil.beginOfDay(DateUtil.parse(param.getSearchBeginTime())), DateUtil.endOfDay(DateUtil.parse(param.getSearchEndTime())), param.getStatisticalType().getId()); if (!CollectionUtils.isEmpty(result)) { - list.stream().map(list1 -> result.stream().filter(list2 -> Objects.equals(list1.getId(), list2.getId())).findAny().map(m -> { - list1.setData(m.getData()); - return list1; - })).collect(Collectors.toList()); + List monitorIds = result.stream().map(PublicDTO::getId).distinct().collect(Collectors.toList()); + paramDTO.setLineList(monitorIds); + List monitorList = lineFeignClient.getLineInfo(paramDTO).getData(); + Map monitorMap = monitorList.stream().collect(Collectors.toMap(PollutionLineDTO::getId,Function.identity())); + list = result.stream().map(it->{ + PollutionLineDTO pollutionLineDTO = new PollutionLineDTO(); + pollutionLineDTO.setData(NumberUtil.round(it.getData(),2).doubleValue()); + PollutionLineDTO monitor = monitorMap.get(it.getId()); + pollutionLineDTO.setName(monitor.getSubstation()+"_"+monitor.getName()); + return pollutionLineDTO; + }).sorted(Comparator.comparing(PollutionLineDTO::getData,Comparator.reverseOrder())).collect(Collectors.toList()); } } - list.sort((item1, item2) -> item2.getData().compareTo(item1.getData())); - if (list.size() > Param.UP_LIMIT) { - return list.subList(Param.DOWN_LIMIT, Param.UP_LIMIT); - } return list; } //pms查询信息