diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/SteadyExceedRateServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/SteadyExceedRateServiceImpl.java index b7cfb9003..50820587f 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/SteadyExceedRateServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/SteadyExceedRateServiceImpl.java @@ -78,13 +78,14 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService { List> steadyExceedList = new ArrayList<>(); List> tempIndex = new ArrayList<>(); - //按照条件获取实际运行终端综合信息 + //按部门分类的实际运行终端综合信息 List deviceDataList = generalDeviceInfoClient.getPracticalRunDeviceInfo(steadyExceedCensusParam).getData(); if (!CollectionUtils.isEmpty(deviceDataList)) { for (GeneralDeviceDTO generalDeviceDTO: deviceDataList) { type.add(generalDeviceDTO.getName()); List lineIndexes = generalDeviceDTO.getLineIndexes(); + //按部门分类的监测点索引集 tempIndex.add(lineIndexes); } @@ -105,7 +106,7 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService { SteadyExceedRateVO dataMoreMonitorMoreDay = getDataMoreMonitorMoreDay(qualifiesRate); steadyExceedRate.add(dataMoreMonitorMoreDay.getSteadyExceedRate()); } else { - steadyExceedRate.add(3.14159); + steadyExceedRate.add(3.1415); } } steadyExceedList.add(steadyExceedRate); @@ -119,10 +120,14 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService { for (List lineIndexes: tempIndex) { if (!CollectionUtils.isEmpty(lineIndexes)) { List qualifiesRate = getQualifiesRate(lineIndexes, steadyExceedCensusParam.getSearchBeginTime(), steadyExceedCensusParam.getSearchEndTime()); - SteadyExceedRateVO dataMoreMonitorSingleDay = getDataMoreMonitorSingleDay(qualifiesRate, lineIndexes, time.get(i)); - steadyExceedRate.add(dataMoreMonitorSingleDay.getSteadyExceedRate()); + if (!CollectionUtils.isEmpty(qualifiesRate)) { + SteadyExceedRateVO dataMoreMonitorSingleDay = getDataMoreMonitorSingleDay(qualifiesRate, lineIndexes, time.get(i)); + steadyExceedRate.add(dataMoreMonitorSingleDay.getSteadyExceedRate()); + }else { + steadyExceedRate.add(3.14159); + } } else { - steadyExceedRate.add(3.14159); + steadyExceedRate.add(3.1415); } } steadyExceedList.add(steadyExceedRate); @@ -137,7 +142,7 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService { SteadyExceedRateVO dataMoreMonitorSingleDay = getDataMoreMonitorSingleDay(qualifiesRate, lineIndexes, steadyExceedCensusParam.getSearchBeginTime()); steadyExceedRate.add(dataMoreMonitorSingleDay.getSteadyExceedRate()); } else { - steadyExceedRate.add(3.14159); + steadyExceedRate.add(3.1415); } } steadyExceedList.add(steadyExceedRate); @@ -183,6 +188,8 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService { } return string; } + + private List getSteadyTimesByDay(String searchBeginTime, String searchEndTime) { List string = new ArrayList<>(); int beginTime = Integer.parseInt(searchBeginTime.substring(8, 10)); @@ -281,7 +288,7 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService { SteadyExceedRateVO steadyExceedRateVO = new SteadyExceedRateVO(); LimitRatePO limitRatePO; List limitRatePOList = qualifiesRate.stream().filter( - temp -> temp.getLineId().equalsIgnoreCase(lineId) && temp.getDayStr().equalsIgnoreCase(time) + temp -> temp.getLineId().equals(lineId) && temp.getDayStr().equals(time) ).collect(Collectors.toList()); if (!CollectionUtil.isEmpty(limitRatePOList)) { limitRatePO = limitRatePOList.get(0); @@ -369,12 +376,13 @@ public class SteadyExceedRateServiceImpl implements SteadyExceedRateService { for (String lineId : lineIds) { steadyResults.add(getDataSingleMonitorSingeDay(qualifiesRate, lineId, time)); } + steadyResults = steadyResults.stream().filter(item -> item.getSteadyExceedRate()!=3.14159).collect(Collectors.toList()); if (CollectionUtil.isNotEmpty(steadyResults)) { //求多个监测点的平均值 steadyExceedRateVO.setSteadyExceedRate(NumberUtil.round(steadyResults.stream().mapToDouble(SteadyExceedRateVO::getSteadyExceedRate).average().orElse(0), 2).doubleValue()); - steadyExceedRateVO.setTime(time); } + steadyExceedRateVO.setTime(time); return steadyExceedRateVO; }