diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/DeviceRunEvaluateController.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/DeviceRunEvaluateController.java index 565dfd120..88240dcb4 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/DeviceRunEvaluateController.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/controller/DeviceRunEvaluateController.java @@ -8,14 +8,6 @@ import com.njcn.common.utils.HttpResultUtil; import com.njcn.device.pq.pojo.param.DevRunEvaluateParam; import com.njcn.device.pq.pojo.param.DeviceInfoParam; import com.njcn.device.pq.pojo.vo.DeviceRunEvaluateVO; -import com.njcn.common.pojo.annotation.OperateInfo; -import com.njcn.common.pojo.enums.common.LogEnum; -import com.njcn.common.pojo.enums.response.CommonResponseEnum; -import com.njcn.common.pojo.response.HttpResult; -import com.njcn.common.utils.HttpResultUtil; -import com.njcn.device.pq.pojo.dto.DevComFlagDTO; -import com.njcn.device.pq.pojo.param.DeviceInfoParam; -import com.njcn.device.pq.pojo.po.Device; import com.njcn.device.pq.pojo.vo.TerminalEvaluateAreaVO; import com.njcn.device.pq.service.DeviceRunEvaluateService; import com.njcn.web.controller.BaseController; @@ -28,10 +20,6 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.bind.annotation.*; - -import java.util.List; -import java.util.Objects; import java.util.List; @@ -60,7 +48,7 @@ public class DeviceRunEvaluateController extends BaseController { @OperateInfo(info = LogEnum.SYSTEM_COMMON) @PostMapping("/getRunEvaluateDetail") - @ApiOperation("终端运行评价") + @ApiOperation("异常终端详情") public HttpResult> getRunEvaluateDetail(@RequestBody @Validated DevRunEvaluateParam param) { String methodDescribe = getMethodDescribe("getRunEvaluateDetail"); List runEvaluate = deviceRunEvaluateService.getRunEvaluateDetail(param); @@ -78,7 +66,6 @@ public class DeviceRunEvaluateController extends BaseController { } - @OperateInfo(info = LogEnum.SYSTEM_COMMON) @PostMapping("/lastWeekTrend") @ApiOperation("最近一周终端评价趋势") diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DeviceRunEvaluateServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DeviceRunEvaluateServiceImpl.java index d4a405b6d..c420d2bb4 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DeviceRunEvaluateServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/DeviceRunEvaluateServiceImpl.java @@ -32,9 +32,7 @@ import com.njcn.harmonic.api.RStatLimitRateDClient; import com.njcn.harmonic.pojo.param.RStatLimitQueryParam; import com.njcn.harmonic.pojo.po.day.RStatLimitRateDPO; import com.njcn.supervision.api.UserLedgerFeignClient; -import com.njcn.supervision.pojo.param.user.UserReportParam; import com.njcn.supervision.pojo.vo.user.NewUserReportVO; -import com.njcn.supervision.pojo.vo.user.UserLedgerVO; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -134,29 +132,11 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService { List limitRateDPOS = limitRateList.stream().filter(x -> lineIds.contains(x.getLineId())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(limitRateDPOS)) { double overTime = limitRateDPOS.stream().mapToDouble(x -> (x.getUaberranceOvertime() + - x.getUharm2Overtime() + - x.getUharm3Overtime() + - x.getUharm4Overtime() + - x.getUharm5Overtime() + - x.getUharm6Overtime() + - x.getUharm7Overtime() + - x.getUharm8Overtime() + - x.getUharm9Overtime() + - x.getUharm10Overtime() + - x.getUharm11Overtime() + - x.getUharm12Overtime() + - x.getUharm13Overtime() + - x.getUharm14Overtime() + - x.getUharm15Overtime() + - x.getUharm16Overtime() + - x.getUharm17Overtime() + - x.getUharm18Overtime() + - x.getUharm19Overtime() + - x.getUharm20Overtime() + - x.getUharm21Overtime() + - x.getUharm22Overtime() + - x.getUharm23Overtime() + - x.getUharm24Overtime() + + x.getUharm2Overtime() + x.getUharm3Overtime() + x.getUharm4Overtime() + x.getUharm5Overtime() + + x.getUharm6Overtime() + x.getUharm7Overtime() + x.getUharm8Overtime() + x.getUharm9Overtime() + + x.getUharm10Overtime() + x.getUharm11Overtime() + x.getUharm12Overtime() + x.getUharm13Overtime() + x.getUharm14Overtime() + + x.getUharm15Overtime() + x.getUharm16Overtime() + x.getUharm17Overtime() + x.getUharm18Overtime() + x.getUharm19Overtime() + + x.getUharm20Overtime() + x.getUharm21Overtime() + x.getUharm22Overtime() + x.getUharm23Overtime() + x.getUharm24Overtime() + x.getUharm25Overtime())).sum(); double allTime = limitRateDPOS.stream().mapToDouble(x -> x.getAllTime() * 25.0).sum(); if (allTime == 0) { @@ -225,8 +205,6 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService { } - - @Override public List areaTerminalStatistic(DeviceInfoParam.BusinessParam businessParam) { List result = new ArrayList<>(); @@ -236,30 +214,30 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService { //已经最底层,展示电站和用户场站 List lineDetailList = lineMapper.getLineListByIds(generalDeviceDTOList.get(0).getLineIndexes()); List ids = lineDetailList.stream().map(MonitorInfoDTO::getId).distinct().collect(Collectors.toList()); - List devIds = lineDetailList.stream().map(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.DEVICE_LEVEL.getCode()]).distinct().collect(Collectors.toList()); + List devIds = lineDetailList.stream().map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.DEVICE_LEVEL.getCode()]).distinct().collect(Collectors.toList()); List rStatIntegrityDList = new ArrayList<>(); List rStatOnlinerateDList = new ArrayList<>(); List rStatLimitRateDPOList = new ArrayList<>(); - getData(rStatIntegrityDList,rStatOnlinerateDList,rStatLimitRateDPOList,ids,devIds,businessParam.getSearchBeginTime(),businessParam.getSearchEndTime()); + getData(rStatIntegrityDList, rStatOnlinerateDList, rStatLimitRateDPOList, ids, devIds, businessParam.getSearchBeginTime(), businessParam.getSearchEndTime()); List detailList = lineDetailList.stream().filter(it -> StrUtil.isNotBlank(it.getObjId())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(detailList)) { List objIds = detailList.stream().map(MonitorInfoDTO::getObjId).distinct().collect(Collectors.toList()); - Map userReportVOMap = getUserLedgerByObjIds(objIds); + Map userReportVOMap = getUserLedgerByObjIds(objIds); Map> map = detailList.stream().collect(Collectors.groupingBy(MonitorInfoDTO::getObjId)); map.forEach((objId, list) -> { NewUserReportVO userLedgerVO = userReportVOMap.get(objId); - commDataCat(list,rStatIntegrityDList,rStatOnlinerateDList,rStatLimitRateDPOList,result,userLedgerVO.getProjectName()); + commDataCat(list, rStatIntegrityDList, rStatOnlinerateDList, rStatLimitRateDPOList, result, userLedgerVO.getProjectName()); }); } List otherDetailList = lineDetailList.stream().filter(it -> StrUtil.isBlank(it.getObjId())).collect(Collectors.toList()); - if(CollUtil.isNotEmpty(otherDetailList)){ - List subIds = otherDetailList.stream().map(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()]).collect(Collectors.toList()); - List subList = lineMapper.selectList(new LambdaQueryWrapper().in(Line::getId,subIds)); - Map subMap = subList.stream().collect(Collectors.toMap(Line::getId,Function.identity())); - Map> map = otherDetailList.stream().collect(Collectors.groupingBy(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()])); + if (CollUtil.isNotEmpty(otherDetailList)) { + List subIds = otherDetailList.stream().map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()]).collect(Collectors.toList()); + List subList = lineMapper.selectList(new LambdaQueryWrapper().in(Line::getId, subIds)); + Map subMap = subList.stream().collect(Collectors.toMap(Line::getId, Function.identity())); + Map> map = otherDetailList.stream().collect(Collectors.groupingBy(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()])); map.forEach((subId, list) -> { String name = subMap.get(subId).getName(); - commDataCat(list,rStatIntegrityDList,rStatOnlinerateDList,rStatLimitRateDPOList,result,name); + commDataCat(list, rStatIntegrityDList, rStatOnlinerateDList, rStatLimitRateDPOList, result, name); }); } } else { @@ -267,8 +245,8 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService { List rStatIntegrityDList = new ArrayList<>(); List rStatOnlinerateDList = new ArrayList<>(); List rStatLimitRateDPOList = new ArrayList<>(); - getData(rStatIntegrityDList,rStatOnlinerateDList,rStatLimitRateDPOList,generalDeviceDTO.getLineIndexes(),generalDeviceDTO.getDeviceIndexes(),businessParam.getSearchBeginTime(),businessParam.getSearchEndTime()); - result.add(getScoreData(generalDeviceDTO.getName(),generalDeviceDTO.getDeviceIndexes(),rStatIntegrityDList,rStatOnlinerateDList,rStatLimitRateDPOList)); + getData(rStatIntegrityDList, rStatOnlinerateDList, rStatLimitRateDPOList, generalDeviceDTO.getLineIndexes(), generalDeviceDTO.getDeviceIndexes(), businessParam.getSearchBeginTime(), businessParam.getSearchEndTime()); + result.add(getScoreData(generalDeviceDTO.getName(), generalDeviceDTO.getDeviceIndexes(), rStatIntegrityDList, rStatOnlinerateDList, rStatLimitRateDPOList)); } } } @@ -284,41 +262,41 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService { List generalDeviceDTOList = generalDeviceService.getDeviceInfo(businessParam, Stream.of(RunFlagEnum.RUNNING.getStatus()).collect(Collectors.toList()), Stream.of(PowerFlagEnum.REAL_DEVICE.getCode()).collect(Collectors.toList())); if (CollectionUtil.isNotEmpty(generalDeviceDTOList)) { DateTime end = DateUtil.parse(businessParam.getSearchBeginTime(), DateTimeFormatter.ofPattern(DatePattern.NORM_DATE_PATTERN)); - DateTime start = DateUtil.offsetDay(end,-7); + DateTime start = DateUtil.offsetDay(end, -7); List dateRange = DateUtil.rangeToList(start, end, DateField.DAY_OF_MONTH); - for (DateTime dateTime :dateRange){ - dateList.add(DateUtil.format(dateTime,DatePattern.NORM_DATE_PATTERN)); + for (DateTime dateTime : dateRange) { + dateList.add(DateUtil.format(dateTime, DatePattern.NORM_DATE_PATTERN)); } if (generalDeviceDTOList.size() == 1 && generalDeviceDTOList.get(0).getIndex().equals(businessParam.getDeptIndex())) { List lineDetailList = lineMapper.getLineListByIds(generalDeviceDTOList.get(0).getLineIndexes()); List rStatIntegrityDList = new ArrayList<>(); List rStatOnlinerateDList = new ArrayList<>(); List rStatLimitRateDPOList = new ArrayList<>(); - getRangeData2(rStatIntegrityDList,rStatOnlinerateDList,rStatLimitRateDPOList,generalDeviceDTOList.get(0).getLineIndexes(),generalDeviceDTOList.get(0).getDeviceIndexes(),DateUtil.format(start,DatePattern.NORM_DATE_PATTERN),DateUtil.format(end,DatePattern.NORM_DATE_PATTERN)); - Map> lineMap = lineDetailList.stream().collect(Collectors.groupingBy(MonitorInfoDTO::getObjId)); - lineMap.forEach((key,detailList)->{ + getRangeData2(rStatIntegrityDList, rStatOnlinerateDList, rStatLimitRateDPOList, generalDeviceDTOList.get(0).getLineIndexes(), generalDeviceDTOList.get(0).getDeviceIndexes(), DateUtil.format(start, DatePattern.NORM_DATE_PATTERN), DateUtil.format(end, DatePattern.NORM_DATE_PATTERN)); + Map> lineMap = lineDetailList.stream().collect(Collectors.groupingBy(MonitorInfoDTO::getObjId)); + lineMap.forEach((key, detailList) -> { if (StrUtil.isNotBlank(key)) { List objIds = detailList.stream().map(MonitorInfoDTO::getObjId).distinct().collect(Collectors.toList()); - Map userReportVOMap = getUserLedgerByObjIds(objIds); + Map userReportVOMap = getUserLedgerByObjIds(objIds); Map> map = detailList.stream().collect(Collectors.groupingBy(MonitorInfoDTO::getObjId)); map.forEach((objId, list) -> { NewUserReportVO userLedgerVO = userReportVOMap.get(objId); nameList.add(userLedgerVO.getProjectName()); - rangeCatData(list,dateRange,rStatIntegrityDList,rStatOnlinerateDList,rStatLimitRateDPOList,scoreList); + rangeCatData(list, dateRange, rStatIntegrityDList, rStatOnlinerateDList, rStatLimitRateDPOList, scoreList); + }); + } else { + List subIds = detailList.stream().map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()]).collect(Collectors.toList()); + List subList = lineMapper.selectList(new LambdaQueryWrapper().in(Line::getId, subIds)); + Map subMap = subList.stream().collect(Collectors.toMap(Line::getId, Function.identity())); + Map> map = detailList.stream().collect(Collectors.groupingBy(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()])); + map.forEach((subId, list) -> { + String name = subMap.get(subId).getName(); + nameList.add(name); + rangeCatData(list, dateRange, rStatIntegrityDList, rStatOnlinerateDList, rStatLimitRateDPOList, scoreList); }); - } else { - List subIds = detailList.stream().map(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()]).collect(Collectors.toList()); - List subList = lineMapper.selectList(new LambdaQueryWrapper().in(Line::getId,subIds)); - Map subMap = subList.stream().collect(Collectors.toMap(Line::getId,Function.identity())); - Map> map = detailList.stream().collect(Collectors.groupingBy(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.SUB_LEVEL.getCode()])); - map.forEach((subId, list) -> { - String name = subMap.get(subId).getName(); - nameList.add(name); - rangeCatData(list,dateRange,rStatIntegrityDList,rStatOnlinerateDList,rStatLimitRateDPOList,scoreList); - }); } }); - }else { + } else { for (GeneralDeviceDTO generalDeviceDTO : generalDeviceDTOList) { if (CollUtil.isEmpty(generalDeviceDTO.getLineIndexes())) { continue; @@ -346,21 +324,21 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService { return lastWeekTrendVO; } - private Map getUserLedgerByObjIds(List objIds){ + private Map getUserLedgerByObjIds(List objIds) { List userReportVOList = userLedgerFeignClient.getUserReportByIds(objIds).getData(); return userReportVOList.stream().collect(Collectors.toMap(NewUserReportVO::getId, Function.identity())); } - private void commDataCat(List list,List rStatIntegrityDList,List rStatOnlinerateDList,List rStatLimitRateDPOList,List result,String name){ + private void commDataCat(List list, List rStatIntegrityDList, List rStatOnlinerateDList, List rStatLimitRateDPOList, List result, String name) { List lineIds = list.stream().map(MonitorInfoDTO::getId).collect(Collectors.toList()); - List devList = list.stream().map(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.DEVICE_LEVEL.getCode()]).collect(Collectors.toList()); - List temIntegrityList = rStatIntegrityDList.stream().filter(it->lineIds.contains(it.getLineIndex())).collect(Collectors.toList()); - List temlimitList = rStatLimitRateDPOList.stream().filter(it->lineIds.contains(it.getLineId())).collect(Collectors.toList()); - List onlineList = rStatOnlinerateDList.stream().filter(it->devList.contains(it.getDevIndex())).collect(Collectors.toList()); - result.add(getScoreData(name,devList,temIntegrityList,onlineList,temlimitList)); + List devList = list.stream().map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.DEVICE_LEVEL.getCode()]).collect(Collectors.toList()); + List temIntegrityList = rStatIntegrityDList.stream().filter(it -> lineIds.contains(it.getLineIndex())).collect(Collectors.toList()); + List temlimitList = rStatLimitRateDPOList.stream().filter(it -> lineIds.contains(it.getLineId())).collect(Collectors.toList()); + List onlineList = rStatOnlinerateDList.stream().filter(it -> devList.contains(it.getDevIndex())).collect(Collectors.toList()); + result.add(getScoreData(name, devList, temIntegrityList, onlineList, temlimitList)); } - private TerminalEvaluateAreaVO getScoreData(String name,List devIds,List rStatIntegrityDList,List rStatOnlinerateDList,List rStatLimitRateDPOList) { + private TerminalEvaluateAreaVO getScoreData(String name, List devIds, List rStatIntegrityDList, List rStatOnlinerateDList, List rStatLimitRateDPOList) { double integrityRate = 0; double onlineRate = 0; double qualifiedRate = 0; @@ -370,11 +348,11 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService { terminalEvaluateAreaVO.setCount(devIds.size()); if (CollectionUtil.isNotEmpty(rStatIntegrityDList)) { integrityRate = rStatIntegrityDList.stream().mapToDouble(it -> (double) it.getRealTime() / it.getDueTime()).average().orElse(0); - terminalEvaluateAreaVO.setIntegrity(NumberUtil.round(integrityRate*100,2).doubleValue()); + terminalEvaluateAreaVO.setIntegrity(NumberUtil.round(integrityRate * 100, 2).doubleValue()); } if (CollectionUtil.isNotEmpty(rStatOnlinerateDList)) { onlineRate = rStatOnlinerateDList.stream().mapToDouble(it -> (double) it.getOnlineMin() / (it.getOnlineMin() + it.getOfflineMin())).average().orElse(0); - terminalEvaluateAreaVO.setOnline(NumberUtil.round(onlineRate*100,2).doubleValue()); + terminalEvaluateAreaVO.setOnline(NumberUtil.round(onlineRate * 100, 2).doubleValue()); } if (CollectionUtil.isNotEmpty(rStatLimitRateDPOList)) { qualifiedRate = rStatLimitRateDPOList.stream().mapToDouble(it -> { @@ -389,20 +367,20 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService { return 1 - ((double) (limit) / it.getAllTime() * 25); } }).average().orElse(0); - terminalEvaluateAreaVO.setQualified(NumberUtil.round(qualifiedRate*100,2).doubleValue()); + terminalEvaluateAreaVO.setQualified(NumberUtil.round(qualifiedRate * 100, 2).doubleValue()); } pingFen = integrityRate * 0.5 + onlineRate * 0.2 + qualifiedRate * 0.3; - terminalEvaluateAreaVO.setScore(BigDecimal.valueOf(pingFen*100).setScale(2, RoundingMode.HALF_UP).doubleValue()); + terminalEvaluateAreaVO.setScore(BigDecimal.valueOf(pingFen * 100).setScale(2, RoundingMode.HALF_UP).doubleValue()); return terminalEvaluateAreaVO; } - private void rangeCatData(List list,List dateRange,List rStatIntegrityDList,List rStatOnlinerateDList,List rStatLimitRateDPOList,List> scoreList){ + private void rangeCatData(List list, List dateRange, List rStatIntegrityDList, List rStatOnlinerateDList, List rStatLimitRateDPOList, List> scoreList) { List lineIds = list.stream().map(MonitorInfoDTO::getId).collect(Collectors.toList()); - List devList = list.stream().map(it->it.getPids().split(StrUtil.COMMA)[LineBaseEnum.DEVICE_LEVEL.getCode()]).collect(Collectors.toList()); + List devList = list.stream().map(it -> it.getPids().split(StrUtil.COMMA)[LineBaseEnum.DEVICE_LEVEL.getCode()]).collect(Collectors.toList()); List scoreDetailList = new ArrayList<>(); for (DateTime day : dateRange) { List temIntegrityList = rStatIntegrityDList.stream().filter(it -> it.getTimeId().equals(day.toLocalDateTime().toLocalDate()) && lineIds.contains(it.getLineIndex())).collect(Collectors.toList()); - List temOnlinerateList = rStatOnlinerateDList.stream().filter(it -> it.getTimeId().equals(day.toLocalDateTime().toLocalDate())&& devList.contains(it.getDevIndex())).collect(Collectors.toList()); + List temOnlinerateList = rStatOnlinerateDList.stream().filter(it -> it.getTimeId().equals(day.toLocalDateTime().toLocalDate()) && devList.contains(it.getDevIndex())).collect(Collectors.toList()); List temLimitRateList = rStatLimitRateDPOList.stream().filter(it -> it.getTime().equals(day.toLocalDateTime().toLocalDate()) && lineIds.contains(it.getLineId())).collect(Collectors.toList()); TerminalEvaluateAreaVO terminalEvaluateAreaVO = getScoreData("", new ArrayList<>(), temIntegrityList, temOnlinerateList, temLimitRateList); scoreDetailList.add(terminalEvaluateAreaVO.getScore()); @@ -411,12 +389,12 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService { } - private void getData(List rStatIntegrityDList,List rStatOnlinerateDList,List rStatLimitRateDPOList,List lineIds,List devIds,String startTime,String endTime){ - if(CollUtil.isNotEmpty(lineIds)){ + private void getData(List rStatIntegrityDList, List rStatOnlinerateDList, List rStatLimitRateDPOList, List lineIds, List devIds, String startTime, String endTime) { + if (CollUtil.isNotEmpty(lineIds)) { rStatIntegrityDList.addAll(integrityDMapper.selectList(new QueryWrapper() .select("sum(real_time) as realTime,sum(due_time) as dueTime,line_index as lineIndex") .in("line_index", lineIds) - .between("time_id",startTime,endTime) + .between("time_id", startTime, endTime) .groupBy("line_index"))); RStatLimitQueryParam rStatLimitQueryParam = new RStatLimitQueryParam(); rStatLimitQueryParam.setIds(lineIds); @@ -424,22 +402,22 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService { rStatLimitQueryParam.setEndDate(endTime); rStatLimitRateDPOList.addAll(rStatLimitRateDClient.monitorIdsGetLimitInfo(rStatLimitQueryParam).getData()); } - if(CollectionUtil.isNotEmpty(devIds)) { + if (CollectionUtil.isNotEmpty(devIds)) { rStatOnlinerateDList.addAll(onLineRateDMapper.selectList(new QueryWrapper() .select("sum(online_min) as onlineMin,sum(offline_min) as offlineMin,dev_index as devIndex") - .in( "dev_index", devIds) - .between("time_id",startTime,endTime) + .in("dev_index", devIds) + .between("time_id", startTime, endTime) .groupBy("dev_index"))); } } - private void getRangeData(List rStatIntegrityDList,List rStatOnlinerateDList,List rStatLimitRateDPOList,List lineIds,List devIds,String startTime,String endTime){ - if(CollUtil.isNotEmpty(lineIds)){ + private void getRangeData(List rStatIntegrityDList, List rStatOnlinerateDList, List rStatLimitRateDPOList, List lineIds, List devIds, String startTime, String endTime) { + if (CollUtil.isNotEmpty(lineIds)) { rStatIntegrityDList.addAll(integrityDMapper.selectList(new QueryWrapper() .select("time_id as timeId,sum(real_time) as realTime,sum(due_time) as dueTime") .in("line_index", lineIds) - .between("time_id",startTime,endTime) + .between("time_id", startTime, endTime) .groupBy("time_id"))); RStatLimitQueryParam rStatLimitQueryParam = new RStatLimitQueryParam(); @@ -448,21 +426,21 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService { rStatLimitQueryParam.setEndDate(endTime); rStatLimitRateDPOList.addAll(rStatLimitRateDClient.monitorIdsGetLimitInfo(rStatLimitQueryParam).getData()); } - if(CollectionUtil.isNotEmpty(devIds)) { + if (CollectionUtil.isNotEmpty(devIds)) { rStatOnlinerateDList.addAll(onLineRateDMapper.selectList(new QueryWrapper() .select("time_id as timeId,sum(online_min) as onlineMin,sum(offline_min) as offlineMin") - .in( "dev_index", devIds) - .between("time_id",startTime,endTime) + .in("dev_index", devIds) + .between("time_id", startTime, endTime) .groupBy("time_id"))); } } - private void getRangeData2(List rStatIntegrityDList,List rStatOnlinerateDList,List rStatLimitRateDPOList,List lineIds,List devIds,String startTime,String endTime){ - if(CollUtil.isNotEmpty(lineIds)){ + private void getRangeData2(List rStatIntegrityDList, List rStatOnlinerateDList, List rStatLimitRateDPOList, List lineIds, List devIds, String startTime, String endTime) { + if (CollUtil.isNotEmpty(lineIds)) { rStatIntegrityDList.addAll(integrityDMapper.selectList(new QueryWrapper() .select("time_id as timeId,line_index as lineIndex,sum(real_time) as realTime,sum(due_time) as dueTime") .in("line_index", lineIds) - .between("time_id",startTime,endTime) + .between("time_id", startTime, endTime) .groupBy("time_id,line_index"))); RStatLimitQueryParam rStatLimitQueryParam = new RStatLimitQueryParam(); @@ -471,16 +449,13 @@ public class DeviceRunEvaluateServiceImpl implements DeviceRunEvaluateService { rStatLimitQueryParam.setEndDate(endTime); rStatLimitRateDPOList.addAll(rStatLimitRateDClient.monitorIdsGetLimitInfo(rStatLimitQueryParam).getData()); } - if(CollectionUtil.isNotEmpty(devIds)) { + if (CollectionUtil.isNotEmpty(devIds)) { rStatOnlinerateDList.addAll(onLineRateDMapper.selectList(new QueryWrapper() .select("time_id as timeId,dev_index as devIndex,sum(online_min) as onlineMin,sum(offline_min) as offlineMin") - .in( "dev_index", devIds) - .between("time_id",startTime,endTime) + .in("dev_index", devIds) + .between("time_id", startTime, endTime) .groupBy("time_id,dev_index"))); } } - - - } diff --git a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/GridDiagramServiceImpl.java b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/GridDiagramServiceImpl.java index c05517fef..84dfd39ce 100644 --- a/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/GridDiagramServiceImpl.java +++ b/pqs-device/pq-device/pq-device-boot/src/main/java/com/njcn/device/pq/service/impl/GridDiagramServiceImpl.java @@ -169,7 +169,7 @@ public class GridDiagramServiceImpl implements GridDiagramService { //终端id集合 List devIds = lineBaseList.stream().filter(x -> value.equals(x.getVoltageLevel())).map(LineDevGetDTO::getDevId).distinct().collect(Collectors.toList()); - gridDiagramAdd(statisticsData, onlineRateByDevIds,value, onIntegrityByIds, devIds, lineIds, onLineNumIds); + gridDiagramAdd(statisticsData, onlineRateByDevIds, value, onIntegrityByIds, devIds, lineIds, onLineNumIds); } @@ -180,10 +180,10 @@ public class GridDiagramServiceImpl implements GridDiagramService { List lineIdsAll = lineBaseList.stream().map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList()); List onLineNumAll = lineBaseList.stream().filter(x -> 1 == x.getComFlag()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList()); - gridDiagramAdd(statisticsData, onlineRateByDevIds,null, onIntegrityByIds, devIdsAll, lineIdsAll, onLineNumAll); + gridDiagramAdd(statisticsData, onlineRateByDevIds, null, onIntegrityByIds, devIdsAll, lineIdsAll, onLineNumAll); } - private void gridDiagramAdd(List statisticsData, List onlineRateByDevIds,String value, List onIntegrityByIds, List devIdsAll, List lineIdsAll, List onLineNumAll) { + private void gridDiagramAdd(List statisticsData, List onlineRateByDevIds, String value, List onIntegrityByIds, List devIdsAll, List lineIdsAll, List onLineNumAll) { GridDiagramVO.LineStatisticsData lineStatisticsData = new GridDiagramVO.LineStatisticsData(); lineStatisticsData.setColumnName(value); lineStatisticsData.setNum(lineIdsAll.size()); @@ -214,7 +214,7 @@ public class GridDiagramServiceImpl implements GridDiagramService { List lineIdsAll = lineBaseList.stream().filter(x -> 1 == x.getIsUpToGrid()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList()); List onLineNumAll = lineBaseList.stream().filter(x -> 1 == x.getComFlag() && 1 == x.getIsUpToGrid()).map(LineDevGetDTO::getPointId).distinct().collect(Collectors.toList()); - gridDiagramAdd(statisticsData, onlineRateByDevIds,null, onIntegrityByIds, devIdsAll, lineIdsAll, onLineNumAll); + gridDiagramAdd(statisticsData, onlineRateByDevIds, null, onIntegrityByIds, devIdsAll, lineIdsAll, onLineNumAll); } private void onLineAndIntegrity(List lineIds, List onIntegrityByIds, List devIds, List onlineRateByDevIds, GridDiagramVO.LineStatisticsData lineStatisticsData) { @@ -247,10 +247,10 @@ public class GridDiagramServiceImpl implements GridDiagramService { List v = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.PANORAMIC_VOLTAGE.getCode()).getData(); List voltageIds; //获取电压等级550 220 110 35 - if(CollUtil.isNotEmpty(v)){ + if (CollUtil.isNotEmpty(v)) { List vName = v.stream().map(DictData::getName).collect(Collectors.toList()); voltageIds = dictDataList.stream().filter(item -> vName.contains(item.getName())).sorted(Comparator.comparing(DictData::getSort).reversed()).map(DictData::getId).collect(Collectors.toList()); - }else{ + } else { voltageIds = dictDataList.stream().filter(item -> Objects.equals(DicDataEnum.DY_500KV.getCode(), item.getCode()) || Objects.equals(DicDataEnum.DY_220KV.getCode(), item.getCode()) || Objects.equals(DicDataEnum.DY_110KV.getCode(), item.getCode()) || Objects.equals(DicDataEnum.DY_35KV.getCode(), item.getCode())).sorted(Comparator.comparing(DictData::getSort).reversed()).map(DictData::getId).collect(Collectors.toList()); } @@ -297,7 +297,7 @@ public class GridDiagramServiceImpl implements GridDiagramService { @Override public Map getGridDiagramDevTendency(GridDiagramParam param, Integer type) { param.getDeviceInfoParam().setLineRunFlag(0); - if(type==3){ + if (type == 3) { param.getDeviceInfoParam().setPowerFlag(0); } List generalDeviceDTOList = generalDeviceService.getDeviceInfo(param.getDeviceInfoParam(), Stream.of(0).collect(Collectors.toList()), Stream.of(1).collect(Collectors.toList())); @@ -330,27 +330,27 @@ public class GridDiagramServiceImpl implements GridDiagramService { List list = lineService.list(new LambdaQueryWrapper().in(CollUtil.isNotEmpty(ids), Line::getId, ids).eq(Line::getState, DataStateEnum.ENABLE.getCode()).eq(Line::getLevel, type)); times = list.stream().map(x -> Date.from(x.getCreateTime().atZone(ZoneId.systemDefault()).toInstant())).collect(Collectors.toList()); } - long num =0; + long num = 0; for (int i = 0; i < dateTimes.size(); i++) { - if(i==0){ + if (i == 0) { if (1 == param.getType()) { long count = times.stream().filter(x -> DateUtil.isIn(x, DateUtil.beginOfYear(DateUtil.parse("1970-01-01 00:00:00")), DateUtil.endOfYear(dateTimes.get(0)))).count(); - num=num+count; + num = num + count; map.put(dateTimes.get(0).toString().substring(0, 4), num); } else { long count = times.stream().filter(x -> DateUtil.isIn(x, DateUtil.beginOfYear(DateUtil.parse("1970-01-01 00:00:00")), DateUtil.endOfMonth(dateTimes.get(0)))).count(); - num=num+count; + num = num + count; map.put(dateTimes.get(0).toString().substring(0, 7), num); } - }else{ + } else { int finalI = i; if (1 == param.getType()) { long count = times.stream().filter(x -> DateUtil.isIn(x, DateUtil.beginOfYear(dateTimes.get(finalI)), DateUtil.endOfYear(dateTimes.get(finalI)))).count(); - num=num+count; + num = num + count; map.put(dateTimes.get(finalI).toString().substring(0, 4), num); } else { long count = times.stream().filter(x -> DateUtil.isIn(x, DateUtil.beginOfMonth(dateTimes.get(finalI)), DateUtil.endOfMonth(dateTimes.get(finalI)))).count(); - num=num+count; + num = num + count; map.put(dateTimes.get(finalI).toString().substring(0, 7), num); } } @@ -424,10 +424,10 @@ public class GridDiagramServiceImpl implements GridDiagramService { list.add(String.valueOf(devices.size())); //当终端信息是0标识需要进行在线率查询,并进行赋值 if (i == 0) { - if(CollUtil.isNotEmpty(devices)) { + if (CollUtil.isNotEmpty(devices)) { onlineRateParam.setIds(devices); list.add(String.valueOf(onLineRateDMapper.getTotalOnlineRates(onlineRateParam))); - }else { + } else { list.add("0"); } } @@ -495,9 +495,9 @@ public class GridDiagramServiceImpl implements GridDiagramService { details.setOnLineNum(onIds.size()); details.setOnLineNumList(onIds); baseQueryParam.setLineIds(ids); - if(CollUtil.isNotEmpty(ids)){ + if (CollUtil.isNotEmpty(ids)) { details.setIntegrityRate(integrityDMapper.selectTotalIntegrityByLineIds(baseQueryParam)); - }else{ + } else { details.setIntegrityRate(0.0f); } return details; diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/GridServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/GridServiceImpl.java index 386b8e099..0fc47cbeb 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/GridServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/GridServiceImpl.java @@ -153,7 +153,7 @@ public class GridServiceImpl implements IGridService { List ll = lineDetailMap.get(item.getArea()).stream().map(LineDetail::getId).collect(Collectors.toList()); AssessDetailVo comAssess = getAssessData(item.getId(), item.getName(), ll, list1, list2, list3); result.add(comAssess); - }else{ + } else { AssessVo assessVo = new AssessVo(); assessVo.setName(item.getName()); List ll = lineDetailList.stream().map(LineDetail::getId).collect(Collectors.toList()); @@ -343,40 +343,40 @@ public class GridServiceImpl implements IGridService { EvaluationLevelVo vo5 = new EvaluationLevelVo(); vo5.setTargetName(DicDataEnum.FLICKER.getName()); if (CollUtil.isNotEmpty(lineList)) { - List list1 = getList1(lineList,param.getStartTime(),param.getEndTime()); - List list2 = getList2(lineList,param.getStartTime(),param.getEndTime()); - List list3 = getList3(lineList,param.getStartTime(),param.getEndTime()); - List list4 = getList4(lineList,param.getStartTime(),param.getEndTime()); - List list5 = getList5(lineList,param.getStartTime(),param.getEndTime()); + List list1 = getList1(lineList, param.getStartTime(), param.getEndTime()); + List list2 = getList2(lineList, param.getStartTime(), param.getEndTime()); + List list3 = getList3(lineList, param.getStartTime(), param.getEndTime()); + List list4 = getList4(lineList, param.getStartTime(), param.getEndTime()); + List list5 = getList5(lineList, param.getStartTime(), param.getEndTime()); if (CollUtil.isNotEmpty(list1)) { - List d = list1.stream().map(o->o.getFreqDev().doubleValue()).collect(Collectors.toList()); - double avg = d.stream().collect(Collectors.averagingDouble(x->x)); - vo1.setAvg(PubUtils.doubleRound(2,avg)); - vo1.setSd(targetSd(d,avg)); + List d = list1.stream().map(o -> o.getFreqDev().doubleValue()).collect(Collectors.toList()); + double avg = d.stream().collect(Collectors.averagingDouble(x -> x)); + vo1.setAvg(PubUtils.doubleRound(2, avg)); + vo1.setSd(targetSd(d, avg)); } if (CollUtil.isNotEmpty(list2)) { - List d = list2.stream().map(o->o.getVuDev().doubleValue()).collect(Collectors.toList()); - double avg = d.stream().collect(Collectors.averagingDouble(x->x)); - vo2.setAvg(PubUtils.doubleRound(2,avg)); - vo2.setSd(targetSd(d,avg)); + List d = list2.stream().map(o -> o.getVuDev().doubleValue()).collect(Collectors.toList()); + double avg = d.stream().collect(Collectors.averagingDouble(x -> x)); + vo2.setAvg(PubUtils.doubleRound(2, avg)); + vo2.setSd(targetSd(d, avg)); } - if (CollUtil.isNotEmpty(list3)){ - List d = list3.stream().map(o->o.getVThd().doubleValue()).collect(Collectors.toList()); - double avg = d.stream().collect(Collectors.averagingDouble(x->x)); - vo3.setAvg(PubUtils.doubleRound(2,avg)); - vo3.setSd(targetSd(d,avg)); + if (CollUtil.isNotEmpty(list3)) { + List d = list3.stream().map(o -> o.getVThd().doubleValue()).collect(Collectors.toList()); + double avg = d.stream().collect(Collectors.averagingDouble(x -> x)); + vo3.setAvg(PubUtils.doubleRound(2, avg)); + vo3.setSd(targetSd(d, avg)); } if (CollUtil.isNotEmpty(list5)) { List d = list1.stream().map(o -> o.getVUnbalance().doubleValue()).collect(Collectors.toList()); double avg = d.stream().collect(Collectors.averagingDouble(x -> x)); - vo4.setAvg(PubUtils.doubleRound(2,avg)); - vo4.setSd(targetSd(d,avg)); + vo4.setAvg(PubUtils.doubleRound(2, avg)); + vo4.setSd(targetSd(d, avg)); } if (CollUtil.isNotEmpty(list4)) { List d = list4.stream().map(RStatDataPltDPO::getPlt).collect(Collectors.toList()); double avg = d.stream().collect(Collectors.averagingDouble(x -> x)); - vo5.setAvg(PubUtils.doubleRound(2,avg)); - vo5.setSd(targetSd(d,avg)); + vo5.setAvg(PubUtils.doubleRound(2, avg)); + vo5.setSd(targetSd(d, avg)); } } Stream.of(vo1, vo2, vo3, vo4, vo5).forEach(result::add); @@ -429,9 +429,9 @@ public class GridServiceImpl implements IGridService { long plt = overLimitList.stream().filter(obj -> obj.getFlickerOvertime() > 0).count(); - long uHarm = overLimitList.stream().filter(x->getLimitRateStats(x,2,26,"uharm","Overtime")).count(); - long iHarm = overLimitList.stream().filter(x->getLimitRateStats(x,2,26,"iharm","Overtime")).count(); - long inuHarm = overLimitList.stream().filter(x->getLimitRateStats(x,1,16,"inuharm","Overtime")).count(); + long uHarm = overLimitList.stream().filter(x -> getLimitRateStats(x, 2, 26, "uharm", "Overtime")).count(); + long iHarm = overLimitList.stream().filter(x -> getLimitRateStats(x, 2, 26, "iharm", "Overtime")).count(); + long inuHarm = overLimitList.stream().filter(x -> getLimitRateStats(x, 1, 16, "inuharm", "Overtime")).count(); long iNeg = overLimitList.stream().filter(obj -> obj.getINegOvertime() > 0).count(); vo.setRatioList(Arrays.asList(PubUtils.doubleRound(2, freqDev * 100.0 / overLimitList.size()), PubUtils.doubleRound(2, vDev * 100.0 / overLimitList.size()), @@ -450,23 +450,22 @@ public class GridServiceImpl implements IGridService { } /** - * * @param limitRateDPO 对象 - * @param startNum 循环开始 - * @param endNum 循环结束 - * @param start 属性名开始 - * @param end 属性名结束 + * @param startNum 循环开始 + * @param endNum 循环结束 + * @param start 属性名开始 + * @param end 属性名结束 * @return */ - public Boolean getLimitRateStats(RStatLimitRateDPO limitRateDPO,Integer startNum,Integer endNum,String start,String end){ + public Boolean getLimitRateStats(RStatLimitRateDPO limitRateDPO, Integer startNum, Integer endNum, String start, String end) { try { for (int i = startNum; i < endNum; i++) { - String fieldName = start+i+end; + String fieldName = start + i + end; Field field = limitRateDPO.getClass().getDeclaredField(fieldName); //设置对象的访问权限,保证对private的属性的访问 field.setAccessible(true); int v = Integer.parseInt(field.get(limitRateDPO).toString()); - if(v>0){ + if (v > 0) { return true; } } @@ -477,8 +476,6 @@ public class GridServiceImpl implements IGridService { } - - @Override public List getEvaluationDetail(AssessParam param) { List result = new ArrayList<>(); @@ -487,109 +484,128 @@ public class GridServiceImpl implements IGridService { deptGetLineParam.setLineRunFlag(0); List list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData(); //获取监测点集合 - Map> lineMap = this.getLineMap(list, param.getIsUpToGrid(), null); + Map> lineMap = this.getLineMap(list, param.getIsUpToGrid(), null); List lineList = lineMap.values().stream() .flatMap(List::stream) .distinct() .collect(Collectors.toList()); + List overLimitList = new ArrayList<>(); if (CollUtil.isNotEmpty(lineList)) { //获取监测点越限集合 - List overLimitList = rStatLimitTargetDMapper.getSumTargetDetails(lineList, - param.getStartTime(), - param.getEndTime()); - //获取部门 - List deptList = deptFeignClient.getDepSonDetailByDeptId(param.getDeptIndex()).getData(); - deptList.forEach(item->{ - if (lineMap.containsKey(item.getId())) { - EvaluationLevelVo.EvaluationDetail detail = new EvaluationLevelVo.EvaluationDetail(); - detail.setDeptId(item.getId()); - detail.setDeptName(item.getName()); - if (CollUtil.isNotEmpty(lineMap.get(item.getId()))) { - List ll = lineMap.get(item.getId()); - detail.setOnlineNum(ll.size()); - //筛选当前部门下监测点的超标数据 - List list2 = overLimitList.stream().filter(it->ll.contains(it.getLineId())).collect(Collectors.toList()); - EvaluationLevelVo.TargetDetail detail1 = new EvaluationLevelVo.TargetDetail(); - detail1.setTargetName(DicDataEnum.FREQUENCY_DEV.getName()); - EvaluationLevelVo.TargetDetail detail2 = new EvaluationLevelVo.TargetDetail(); - detail2.setTargetName(DicDataEnum.VOLTAGE_DEV.getName()); - EvaluationLevelVo.TargetDetail detail3 = new EvaluationLevelVo.TargetDetail(); - detail3.setTargetName(DicDataEnum.THD_V.getName()); - EvaluationLevelVo.TargetDetail detail4 = new EvaluationLevelVo.TargetDetail(); - detail4.setTargetName(DicDataEnum.FLICKER.getName()); - EvaluationLevelVo.TargetDetail detail5 = new EvaluationLevelVo.TargetDetail(); - detail5.setTargetName(DicDataEnum.phase_Voltage.getName()); - EvaluationLevelVo.TargetDetail detail6 = new EvaluationLevelVo.TargetDetail(); - detail6.setTargetName(DicDataEnum.NEG_CURRENT.getName()); - EvaluationLevelVo.TargetDetail detail7 = new EvaluationLevelVo.TargetDetail(); - detail7.setTargetName(DicDataEnum.HARMONIC_CURRENT.getName()); - EvaluationLevelVo.TargetDetail detail8 = new EvaluationLevelVo.TargetDetail(); - detail8.setTargetName(DicDataEnum.HARMONIC_VOLTAGE.getName()); - EvaluationLevelVo.TargetDetail detail9 = new EvaluationLevelVo.TargetDetail(); - detail9.setTargetName(DicDataEnum.INTERHARMONIC_VOLTAGE.getName()); - if (CollUtil.isNotEmpty(list2)) { - //筛选出9项指标(电压偏差、频率偏差、电压总谐波畸变率、电压闪变、三相电压不平衡度、负序电流、谐波电流、间谐波电压、谐波电压)超标监测点 - long allNum = list2.stream().filter(o->o.getAllOvertime() > 0|| o.getFlickerAllTime()>0).count(); - detail.setOverNum((int) allNum); - detail.setOverRatio(PubUtils.doubleRound(2,detail.getOverNum()*100.0/detail.getOnlineNum())); - //筛选出电压偏差超标监测点 - long num1 = list2.stream().filter(o->o.getFreqDevOvertime() > 0).count(); - Integer day1 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getFreqDevOvertime)).get().getFreqDevOvertime(); - detail1.setOverNum((int) num1); - detail1.setOverDay(day1); - - //筛选出频率偏差超标监测点 - long num2 = list2.stream().filter(o->o.getVoltageDevOvertime() > 0).count(); - Integer day2 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getVoltageDevOvertime)).get().getVoltageDevOvertime(); - detail2.setOverNum((int) num2); - detail2.setOverDay(day2); - - //筛选出电压总谐波畸变率超标监测点 - long num3 = list2.stream().filter(o->o.getUaberranceOvertime() > 0).count(); - Integer day3 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getUaberranceOvertime)).get().getUaberranceOvertime(); - detail3.setOverNum((int) num3); - detail3.setOverDay(day3); - - //筛选出电压闪变超标监测点 - long num4 = list2.stream().filter(o->o.getFlickerOvertime() > 0).count(); - Integer day4 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getFlickerOvertime)).get().getFlickerOvertime(); - detail4.setOverNum((int) num4); - detail4.setOverDay(day4); - - //筛选出三相电压不平衡度超标监测点 - long num5 = list2.stream().filter(o->o.getUbalanceOvertime() > 0).count(); - Integer day5 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getUbalanceOvertime)).get().getUbalanceOvertime(); - detail5.setOverNum((int) num5); - detail5.setOverDay(day5); - - //筛选出负序电流超标监测点 - long num6 = list2.stream().filter(o->o.getINegOvertime() > 0).count(); - Integer day6 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getINegOvertime)).get().getINegOvertime(); - detail6.setOverNum((int) num6); - detail6.setOverDay(day6); - - long num7 = list2.stream().filter(o->o.getIharmOvertime() > 0).count(); - Integer day7 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getIharmOvertime)).get().getIharmOvertime(); - detail7.setOverNum((int) num7); - detail7.setOverDay(day7); - - long num8 = list2.stream().filter(o->o.getUharmOvertime() > 0).count(); - Integer day8 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getUharmOvertime)).get().getUharmOvertime(); - detail8.setOverNum((int) num8); - detail8.setOverDay(day8); - - long num9 = list2.stream().filter(o->o.getInuharmOvertime() > 0).count(); - Integer day9 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getInuharmOvertime)).get().getInuharmOvertime(); - detail9.setOverNum((int) num9); - detail9.setOverDay(day9); - } - List details = Arrays.asList(detail1, detail2, detail3, detail4, detail5, detail6, detail7, detail8, detail9); - detail.setList(details); - } - result.add(detail); - } - }); + overLimitList .addAll(rStatLimitTargetDMapper.getSumTargetDetails(lineList, + param.getStartTime(), + param.getEndTime())) ; } + //获取部门 + List deptList = deptFeignClient.getDepSonDetailByDeptId(param.getDeptIndex()).getData(); + deptList.forEach(item -> { + EvaluationLevelVo.EvaluationDetail detail = new EvaluationLevelVo.EvaluationDetail(); + detail.setDeptId(item.getId()); + detail.setDeptName(item.getName()); + EvaluationLevelVo.TargetDetail detail1 = new EvaluationLevelVo.TargetDetail(); + detail1.setTargetName(DicDataEnum.FREQUENCY_DEV.getName()); + detail1.setOverDay(0); + detail1.setOverNum(0); + EvaluationLevelVo.TargetDetail detail2 = new EvaluationLevelVo.TargetDetail(); + detail2.setTargetName(DicDataEnum.VOLTAGE_DEV.getName()); + detail2.setOverDay(0); + detail2.setOverNum(0); + EvaluationLevelVo.TargetDetail detail3 = new EvaluationLevelVo.TargetDetail(); + detail3.setTargetName(DicDataEnum.THD_V.getName()); + detail3.setOverDay(0); + detail3.setOverNum(0); + EvaluationLevelVo.TargetDetail detail4 = new EvaluationLevelVo.TargetDetail(); + detail4.setTargetName(DicDataEnum.FLICKER.getName()); + detail4.setOverDay(0); + detail4.setOverNum(0); + EvaluationLevelVo.TargetDetail detail5 = new EvaluationLevelVo.TargetDetail(); + detail5.setTargetName(DicDataEnum.phase_Voltage.getName()); + detail5.setOverDay(0); + detail5.setOverNum(0); + EvaluationLevelVo.TargetDetail detail6 = new EvaluationLevelVo.TargetDetail(); + detail6.setTargetName(DicDataEnum.NEG_CURRENT.getName()); + detail6.setOverDay(0); + detail6.setOverNum(0); + EvaluationLevelVo.TargetDetail detail7 = new EvaluationLevelVo.TargetDetail(); + detail7.setTargetName(DicDataEnum.HARMONIC_CURRENT.getName()); + detail7.setOverDay(0); + detail7.setOverNum(0); + EvaluationLevelVo.TargetDetail detail8 = new EvaluationLevelVo.TargetDetail(); + detail8.setTargetName(DicDataEnum.HARMONIC_VOLTAGE.getName()); + detail8.setOverDay(0); + detail8.setOverNum(0); + EvaluationLevelVo.TargetDetail detail9 = new EvaluationLevelVo.TargetDetail(); + detail9.setTargetName(DicDataEnum.INTERHARMONIC_VOLTAGE.getName()); + detail9.setOverDay(0); + detail9.setOverNum(0); + if (lineMap.containsKey(item.getId())) { + if (CollUtil.isNotEmpty(lineMap.get(item.getId()))) { + List ll = lineMap.get(item.getId()); + detail.setOnlineNum(ll.size()); + //筛选当前部门下监测点的超标数据 + List list2 = overLimitList.stream().filter(it -> ll.contains(it.getLineId())).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(list2)) { + //筛选出9项指标(电压偏差、频率偏差、电压总谐波畸变率、电压闪变、三相电压不平衡度、负序电流、谐波电流、间谐波电压、谐波电压)超标监测点 + long allNum = list2.stream().filter(o -> o.getAllOvertime() > 0 || o.getFlickerAllTime() > 0).count(); + detail.setOverNum((int) allNum); + detail.setOverRatio(PubUtils.doubleRound(2, detail.getOverNum() * 100.0 / detail.getOnlineNum())); + //筛选出电压偏差超标监测点 + long num1 = list2.stream().filter(o -> o.getFreqDevOvertime() > 0).count(); + Integer day1 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getFreqDevOvertime)).get().getFreqDevOvertime(); + detail1.setOverNum((int) num1); + detail1.setOverDay(day1); + + //筛选出频率偏差超标监测点 + long num2 = list2.stream().filter(o -> o.getVoltageDevOvertime() > 0).count(); + Integer day2 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getVoltageDevOvertime)).get().getVoltageDevOvertime(); + detail2.setOverNum((int) num2); + detail2.setOverDay(day2); + + //筛选出电压总谐波畸变率超标监测点 + long num3 = list2.stream().filter(o -> o.getUaberranceOvertime() > 0).count(); + Integer day3 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getUaberranceOvertime)).get().getUaberranceOvertime(); + detail3.setOverNum((int) num3); + detail3.setOverDay(day3); + + //筛选出电压闪变超标监测点 + long num4 = list2.stream().filter(o -> o.getFlickerOvertime() > 0).count(); + Integer day4 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getFlickerOvertime)).get().getFlickerOvertime(); + detail4.setOverNum((int) num4); + detail4.setOverDay(day4); + + //筛选出三相电压不平衡度超标监测点 + long num5 = list2.stream().filter(o -> o.getUbalanceOvertime() > 0).count(); + Integer day5 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getUbalanceOvertime)).get().getUbalanceOvertime(); + detail5.setOverNum((int) num5); + detail5.setOverDay(day5); + + //筛选出负序电流超标监测点 + long num6 = list2.stream().filter(o -> o.getINegOvertime() > 0).count(); + Integer day6 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getINegOvertime)).get().getINegOvertime(); + detail6.setOverNum((int) num6); + detail6.setOverDay(day6); + + long num7 = list2.stream().filter(o -> o.getIharmOvertime() > 0).count(); + Integer day7 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getIharmOvertime)).get().getIharmOvertime(); + detail7.setOverNum((int) num7); + detail7.setOverDay(day7); + + long num8 = list2.stream().filter(o -> o.getUharmOvertime() > 0).count(); + Integer day8 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getUharmOvertime)).get().getUharmOvertime(); + detail8.setOverNum((int) num8); + detail8.setOverDay(day8); + + long num9 = list2.stream().filter(o -> o.getInuharmOvertime() > 0).count(); + Integer day9 = list2.stream().max(Comparator.comparingInt(RStatLimitTargetVO::getInuharmOvertime)).get().getInuharmOvertime(); + detail9.setOverNum((int) num9); + detail9.setOverDay(day9); + } + } + } + List details = Arrays.asList(detail1, detail2, detail3, detail4, detail5, detail6, detail7, detail8, detail9); + detail.setList(details); + result.add(detail); + }); return result; } @@ -601,7 +617,7 @@ public class GridServiceImpl implements IGridService { deptGetLineParam.setLineRunFlag(0); List list = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData(); //获取监测点集合 - Map> lineMap = this.getLineMap(list, param.getIsUpToGrid(), null); + Map> lineMap = this.getLineMap(list, param.getIsUpToGrid(), null); List lineList = lineMap.values().stream() .flatMap(List::stream) .distinct() @@ -609,9 +625,9 @@ public class GridServiceImpl implements IGridService { //获取基础台账信息 List baseLineInfos = generalDeviceInfoClient.getBaseLineInfo(lineList).getData(); //获取越限详情 - List overLimitList = rStatLimitRateDMapper.getAssessTargetRate(lineList,param.getStartTime(),param.getEndTime()); - Map map = overLimitList.stream().collect(Collectors.toMap(RStatLimitRateDPO::getLineId,Function.identity())); - baseLineInfos.forEach(item->{ + List overLimitList = rStatLimitRateDMapper.getAssessTargetRate(lineList, param.getStartTime(), param.getEndTime()); + Map map = overLimitList.stream().collect(Collectors.toMap(RStatLimitRateDPO::getLineId, Function.identity())); + baseLineInfos.forEach(item -> { EvaluationLevelVo.QualifiedDetail qualifiedDetail = new EvaluationLevelVo.QualifiedDetail(); qualifiedDetail.setAreaName(item.getGdName()); qualifiedDetail.setLineName(item.getLineName()); @@ -626,7 +642,7 @@ public class GridServiceImpl implements IGridService { }); if (CollUtil.isNotEmpty(result)) { return result.stream().sorted(Comparator.comparing(EvaluationLevelVo.QualifiedDetail::getAreaName) - .thenComparing(EvaluationLevelVo.QualifiedDetail::getSubstationName)) + .thenComparing(EvaluationLevelVo.QualifiedDetail::getSubstationName)) .collect(Collectors.toList()); } return result; @@ -637,7 +653,7 @@ public class GridServiceImpl implements IGridService { public EvaluationLevelVo.QualifiedDetail getLineQualifiedDetail(String lineId, String startTime, String endTime) { EvaluationLevelVo.QualifiedDetail detail = new EvaluationLevelVo.QualifiedDetail(); List lineList = Collections.singletonList(lineId); - List overLimitList = rStatLimitRateDMapper.getAssessTargetRate(lineList,startTime,endTime); + List overLimitList = rStatLimitRateDMapper.getAssessTargetRate(lineList, startTime, endTime); if (CollUtil.isNotEmpty(overLimitList)) { RStatLimitRateDPO dpo = overLimitList.get(0); addQualifiedDetail(detail, dpo); @@ -652,17 +668,17 @@ public class GridServiceImpl implements IGridService { qualifiedDetail.setVThd(PubUtils.doubleRound(2, 100.0 - (item2.getUaberranceOvertime() * 100.0 / item2.getAllTime()))); qualifiedDetail.setUbalance(PubUtils.doubleRound(2, 100.0 - (item2.getUbalanceOvertime() * 100.0 / item2.getAllTime()))); //谐波电压 - List list1 = getList(2,25,"getUharm",item2); + List list1 = getList(2, 25, "getUharm", item2); Integer maxValue1 = list1.stream().max(Integer::compareTo).orElse(null); - qualifiedDetail.setUHarm(Objects.isNull(maxValue1) ? null : PubUtils.doubleRound(2,100.0 - (maxValue1*100.0 / item2.getAllTime()))); + qualifiedDetail.setUHarm(Objects.isNull(maxValue1) ? null : PubUtils.doubleRound(2, 100.0 - (maxValue1 * 100.0 / item2.getAllTime()))); //谐波电流 - List list2 = getList(2,25,"getIharm",item2); + List list2 = getList(2, 25, "getIharm", item2); Integer maxValue2 = list2.stream().max(Integer::compareTo).orElse(null); - qualifiedDetail.setIHarm(Objects.isNull(maxValue2) ? null : PubUtils.doubleRound(2,100.0 - (maxValue2*100.0 / item2.getAllTime()))); + qualifiedDetail.setIHarm(Objects.isNull(maxValue2) ? null : PubUtils.doubleRound(2, 100.0 - (maxValue2 * 100.0 / item2.getAllTime()))); //间谐波电压 - List list3 = getList(1,16,"getInuharm",item2); + List list3 = getList(1, 16, "getInuharm", item2); Integer maxValue3 = list3.stream().max(Integer::compareTo).orElse(null); - qualifiedDetail.setInuHarm(Objects.isNull(maxValue3) ? null : PubUtils.doubleRound(2,100.0 - (maxValue3*100.0 / item2.getAllTime()))); + qualifiedDetail.setInuHarm(Objects.isNull(maxValue3) ? null : PubUtils.doubleRound(2, 100.0 - (maxValue3 * 100.0 / item2.getAllTime()))); qualifiedDetail.setINeg(PubUtils.doubleRound(2, 100.0 - (item2.getINegOvertime() * 100.0 / item2.getAllTime()))); } if (item2.getFlickerAllTime() > 0) { @@ -696,63 +712,63 @@ public class GridServiceImpl implements IGridService { * 获取监测点频率偏差 T相最大值 */ public List getList1(List lineList, String startTime, String endTime) { - return statDataVDMapper.getFreqDev(lineList,startTime,endTime); + return statDataVDMapper.getFreqDev(lineList, startTime, endTime); } /** * 获取监测点电压偏差 使用电压上偏差A、B、C三相最大值的平均值 */ public List getList2(List lineList, String startTime, String endTime) { - return statDataVDMapper.getVuDev(lineList,startTime,endTime); + return statDataVDMapper.getVuDev(lineList, startTime, endTime); } /** * 获取监测点电压总谐波畸变率 A、B、C三相Cp95的平均值 */ public List getList3(List lineList, String startTime, String endTime) { - return statDataVDMapper.getVthd(lineList,startTime,endTime); + return statDataVDMapper.getVthd(lineList, startTime, endTime); } /** * 获取监测点闪变 A、B、C三相最大值的平均值 */ public List getList4(List lineList, String startTime, String endTime) { - return statDataPltDMapper.getPlt(lineList,startTime,endTime); + return statDataPltDMapper.getPlt(lineList, startTime, endTime); } /** * 获取监测点三相电压不平衡度 T相 CP95 */ public List getList5(List lineList, String startTime, String endTime) { - return statDataVDMapper.getUnbalance(lineList,startTime,endTime); + return statDataVDMapper.getUnbalance(lineList, startTime, endTime); } /** * 谐波电压含有率 A、B、C三相最大值的平均值 */ private List getList6(List lineList, String startTime, String endTime) { - return statDataVDMapper.getV(lineList,startTime,endTime); + return statDataVDMapper.getV(lineList, startTime, endTime); } /** * 谐波电流 A、B、C三相最大值的平均值 */ private List getList7(List lineList, String startTime, String endTime) { - return statDataIDMapper.getI(lineList,startTime,endTime); + return statDataIDMapper.getI(lineList, startTime, endTime); } /** * 间谐波电压含有率 A、B、C三相最大值的平均值 */ private List getList8(List lineList, String startTime, String endTime) { - return rStatDataInharmVDMapper.getV(lineList,startTime,endTime); + return rStatDataInharmVDMapper.getV(lineList, startTime, endTime); } /** * 获取监测点负序电流 A、B、C三相最大值的平均值 */ public List getList9(List lineList, String startTime, String endTime) { - return statDataIDMapper.getINeg(lineList,startTime,endTime); + return statDataIDMapper.getINeg(lineList, startTime, endTime); } /** @@ -761,7 +777,7 @@ public class GridServiceImpl implements IGridService { public Double targetSd(List list, Double avg) { double sum = list.stream().mapToDouble(number -> Math.pow(number - avg, 2)).sum(); double variance = sum / list.size(); - return PubUtils.doubleRound(2,Math.sqrt(variance)); + return PubUtils.doubleRound(2, Math.sqrt(variance)); } @@ -775,100 +791,100 @@ public class GridServiceImpl implements IGridService { List filteredList0 = limitRateList.stream() .filter(data -> data.getFreqDevOvertime() + data.getVoltageDevOvertime() + data.getFlickerOvertime() + data.getUaberranceOvertime() + data.getUbalanceOvertime() > 0) .collect(Collectors.toList()); - children.setRatio(PubUtils.doubleRound(2,filteredList0.size()*100.0/limitRateList.size())); + children.setRatio(PubUtils.doubleRound(2, filteredList0.size() * 100.0 / limitRateList.size())); break; //电压偏差 case 1: List filteredList1 = limitRateList.stream() .filter(data -> data.getVoltageDevOvertime() > 0) .collect(Collectors.toList()); - children.setRatio(PubUtils.doubleRound(2,filteredList1.size()*100.0/limitRateList.size())); + children.setRatio(PubUtils.doubleRound(2, filteredList1.size() * 100.0 / limitRateList.size())); break; //频率偏差 case 2: List filteredList2 = limitRateList.stream() .filter(data -> data.getFreqDevOvertime() > 0) .collect(Collectors.toList()); - children.setRatio(PubUtils.doubleRound(2,filteredList2.size()*100.0/limitRateList.size())); + children.setRatio(PubUtils.doubleRound(2, filteredList2.size() * 100.0 / limitRateList.size())); break; //电压总谐波畸变率 case 3: List filteredList3 = limitRateList.stream() .filter(data -> data.getUaberranceOvertime() > 0) .collect(Collectors.toList()); - children.setRatio(PubUtils.doubleRound(2,filteredList3.size()*100.0/limitRateList.size())); + children.setRatio(PubUtils.doubleRound(2, filteredList3.size() * 100.0 / limitRateList.size())); break; //电压闪变 case 4: List filteredList4 = limitRateList.stream() .filter(data -> data.getFlickerOvertime() > 0) .collect(Collectors.toList()); - children.setRatio(PubUtils.doubleRound(2,filteredList4.size()*100.0/limitRateList.size())); + children.setRatio(PubUtils.doubleRound(2, filteredList4.size() * 100.0 / limitRateList.size())); break; //三相电压不平衡度 case 5: List filteredList5 = limitRateList.stream() .filter(data -> data.getUbalanceOvertime() > 0) .collect(Collectors.toList()); - children.setRatio(PubUtils.doubleRound(2,filteredList5.size()*100.0/limitRateList.size())); + children.setRatio(PubUtils.doubleRound(2, filteredList5.size() * 100.0 / limitRateList.size())); break; //谐波电压 case 6: List filteredList6 = limitRateList.stream() - .filter(x->getLimitRateStats(x,2,26,"uharm","Overtime")) + .filter(x -> getLimitRateStats(x, 2, 26, "uharm", "Overtime")) .collect(Collectors.toList()); - children.setRatio(PubUtils.doubleRound(2,filteredList6.size()*100.0/limitRateList.size())); + children.setRatio(PubUtils.doubleRound(2, filteredList6.size() * 100.0 / limitRateList.size())); break; //谐波电流 case 7: List filteredList7 = limitRateList.stream() - .filter(x->getLimitRateStats(x,2,26,"iharm","Overtime")) + .filter(x -> getLimitRateStats(x, 2, 26, "iharm", "Overtime")) .collect(Collectors.toList()); - children.setRatio(PubUtils.doubleRound(2,filteredList7.size()*100.0/limitRateList.size())); + children.setRatio(PubUtils.doubleRound(2, filteredList7.size() * 100.0 / limitRateList.size())); break; //间谐波电压 case 8: List filteredList8 = limitRateList.stream() - .filter(x->getLimitRateStats(x,1,16,"inuharm","Overtime")) + .filter(x -> getLimitRateStats(x, 1, 16, "inuharm", "Overtime")) .collect(Collectors.toList()); - children.setRatio(PubUtils.doubleRound(2,filteredList8.size()*100.0/limitRateList.size())); + children.setRatio(PubUtils.doubleRound(2, filteredList8.size() * 100.0 / limitRateList.size())); break; //负序电流 case 9: List filteredList9 = limitRateList.stream() .filter(data -> data.getINegOvertime() > 0) .collect(Collectors.toList()); - children.setRatio(PubUtils.doubleRound(2,filteredList9.size()*100.0/limitRateList.size())); + children.setRatio(PubUtils.doubleRound(2, filteredList9.size() * 100.0 / limitRateList.size())); break; default: break; } } - public AssessDetailVo getAssessData(String deptId, String deptName, List lineList, List list1, List list2, List list3) { + public AssessDetailVo getAssessData(String deptId, String deptName, List lineList, List list1, List list2, List list3) { AssessDetailVo comAssess = new AssessDetailVo(); comAssess.setDeptId(deptId); comAssess.setDeptName(deptName); //处理区域各个指标的稳态评估 - if (CollUtil.isNotEmpty(list1)){ - List list11 = list1.stream().filter(it->lineList.contains(it.getLineId())).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(list1)) { + List list11 = list1.stream().filter(it -> lineList.contains(it.getLineId())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(list11)) { - this.chanelTargetAssess(list11,comAssess); + this.chanelTargetAssess(list11, comAssess); } } //处理区域综合稳态评估 - if (CollUtil.isNotEmpty(list2)){ - List list22 = list2.stream().filter(it->lineList.contains(it.getLineId())).collect(Collectors.toList()); - if (CollUtil.isNotEmpty(list22)){ - List communicateList = BeanUtil.copyToList(list22,PqsComasses.class); + if (CollUtil.isNotEmpty(list2)) { + List list22 = list2.stream().filter(it -> lineList.contains(it.getLineId())).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(list22)) { + List communicateList = BeanUtil.copyToList(list22, PqsComasses.class); float synData = comAssesUtil.getAllComAss(communicateList); - comAssess.setAssessData(PubUtils.floatRound(2,synData)); + comAssess.setAssessData(PubUtils.floatRound(2, synData)); comAssess.setAssessLevel(getLevel(synData)); } } //处理区域总指标合格率、各个指标合格率 - if (CollUtil.isNotEmpty(list3)){ - List list33 = list3.stream().filter(it->lineList.contains(it.getLineId())).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(list3)) { + List list33 = list3.stream().filter(it -> lineList.contains(it.getLineId())).collect(Collectors.toList()); if (CollUtil.isNotEmpty(list33)) { //总指标次数 int allTime = list33.stream() @@ -894,12 +910,12 @@ public class GridServiceImpl implements IGridService { int ubalanceTime = list33.stream() .mapToInt(RStatLimitRateDPO::getUbalanceOvertime) .sum(); - comAssess.setQualifyData(allTime <= 0 ? 3.14159:PubUtils.doubleRound(2,100-(devTime+freqTime+thdTime+pltTime+ubalanceTime)*100.0/(allTime*5))); - comAssess.setVDevQualifyData(allTime <= 0 ? 3.14159:PubUtils.doubleRound(2,100-devTime*100.0/allTime)); - comAssess.setFreqQualifyData(allTime <= 0 ? 3.14159:PubUtils.doubleRound(2,100-freqTime*100.0/allTime)); - comAssess.setHarmQualifyData(allTime <= 0 ? 3.14159:PubUtils.doubleRound(2,100-thdTime*100.0/allTime)); - comAssess.setFlickerQualifyData(allTime <= 0 ? 3.14159:PubUtils.doubleRound(2,100-pltTime*100.0/allTime)); - comAssess.setUnbalanceQualifyData(allTime <= 0 ? 3.14159:PubUtils.doubleRound(2,100-ubalanceTime*100.0/allTime)); + comAssess.setQualifyData(allTime <= 0 ? 3.14159 : PubUtils.doubleRound(2, 100 - (devTime + freqTime + thdTime + pltTime + ubalanceTime) * 100.0 / (allTime * 5))); + comAssess.setVDevQualifyData(allTime <= 0 ? 3.14159 : PubUtils.doubleRound(2, 100 - devTime * 100.0 / allTime)); + comAssess.setFreqQualifyData(allTime <= 0 ? 3.14159 : PubUtils.doubleRound(2, 100 - freqTime * 100.0 / allTime)); + comAssess.setHarmQualifyData(allTime <= 0 ? 3.14159 : PubUtils.doubleRound(2, 100 - thdTime * 100.0 / allTime)); + comAssess.setFlickerQualifyData(allTime <= 0 ? 3.14159 : PubUtils.doubleRound(2, 100 - pltTime * 100.0 / allTime)); + comAssess.setUnbalanceQualifyData(allTime <= 0 ? 3.14159 : PubUtils.doubleRound(2, 100 - ubalanceTime * 100.0 / allTime)); } } return comAssess; @@ -910,94 +926,95 @@ public class GridServiceImpl implements IGridService { .mapToDouble(RStatAssesDPO::getVuDev) .average() .orElse(0.0); - comAssess.setVDevAssessData(PubUtils.doubleRound(2,vuDev)); - comAssess.setVDevAssessLevel(getLevel(vuDev,0f,2.5f,5f,7.5f,10f,12.5f,15f,17.5f)); + comAssess.setVDevAssessData(PubUtils.doubleRound(2, vuDev)); + comAssess.setVDevAssessLevel(getLevel(vuDev, 0f, 2.5f, 5f, 7.5f, 10f, 12.5f, 15f, 17.5f)); double freqDev = list.stream() .mapToDouble(RStatAssesDPO::getFreqDev) .average() .orElse(0.0); - comAssess.setFreqAssessData(PubUtils.doubleRound(2,freqDev)); - comAssess.setFreqAssessLevel(getLevel(freqDev,0f,0.05f,0.1f,0.15f,0.2f,0.25f,0.30f,0.35f)); + comAssess.setFreqAssessData(PubUtils.doubleRound(2, freqDev)); + comAssess.setFreqAssessLevel(getLevel(freqDev, 0f, 0.05f, 0.1f, 0.15f, 0.2f, 0.25f, 0.30f, 0.35f)); double dataPlt = list.stream() .mapToDouble(RStatAssesDPO::getDataPlt) .average() .orElse(0.0); - comAssess.setFlickerAssessData(PubUtils.doubleRound(2,dataPlt)); - comAssess.setFlickerAssessLevel(getLevel(dataPlt,0f,0.05f,0.1f,0.15f,0.2f,0.25f,0.30f,0.35f)); + comAssess.setFlickerAssessData(PubUtils.doubleRound(2, dataPlt)); + comAssess.setFlickerAssessLevel(getLevel(dataPlt, 0f, 0.05f, 0.1f, 0.15f, 0.2f, 0.25f, 0.30f, 0.35f)); double vUnbalanceCp95 = list.stream() .mapToDouble(RStatAssesDPO::getVUnbalanceCp95) .average() .orElse(0.0); - comAssess.setUnbalanceAssessData(PubUtils.doubleRound(2,vUnbalanceCp95)); - comAssess.setUnbalanceAssessLevel(getLevel(vUnbalanceCp95,0f,0.5f,1f,1.5f,2f,2.5f,3f,3.5f)); + comAssess.setUnbalanceAssessData(PubUtils.doubleRound(2, vUnbalanceCp95)); + comAssess.setUnbalanceAssessLevel(getLevel(vUnbalanceCp95, 0f, 0.5f, 1f, 1.5f, 2f, 2.5f, 3f, 3.5f)); double vThdCp95 = list.stream() .mapToDouble(RStatAssesDPO::getVThdCp95) .average() .orElse(0.0); - comAssess.setHarmAssessData(PubUtils.doubleRound(2,vThdCp95)); - comAssess.setHarmAssessLevel(getLevel(vThdCp95,0f,0.5f,1f,1.5f,2f,2.5f,3f,3.5f)); + comAssess.setHarmAssessData(PubUtils.doubleRound(2, vThdCp95)); + comAssess.setHarmAssessLevel(getLevel(vThdCp95, 0f, 0.5f, 1f, 1.5f, 2f, 2.5f, 3f, 3.5f)); } /** - * 获取综合评估等级 + * 获取综合评估等级 */ private String getLevel(float synDatas) { - if(synDatas==3.14159f){ + if (synDatas == 3.14159f) { return "暂无数据"; } - if(0<=synDatas&&synDatas<2){ + if (0 <= synDatas && synDatas < 2) { return "极差"; - }else if(2<=synDatas&&synDatas<3){ + } else if (2 <= synDatas && synDatas < 3) { return "较差"; - }else if(3<=synDatas&&synDatas<4){ + } else if (3 <= synDatas && synDatas < 4) { return "合格"; - }else if(4<=synDatas&&synDatas<4.5){ + } else if (4 <= synDatas && synDatas < 4.5) { return "良好"; - }else{ - return "优质"; + } else { + return "优质"; } } /** - * 获取各个指标对应的等级 + * 获取各个指标对应的等级 */ - private String getLevel(double value,float f1,float f2,float f3,float f4,float f5,float f6,float f7,float f8) { + private String getLevel(double value, float f1, float f2, float f3, float f4, float f5, float f6, float f7, float f8) { String level; - if(f1<=value&&value<=f2){ - level="特质"; - }else if(f2> getLineMap(List list, Integer type, String voltage) { - Map> map = new HashMap<>(); - list.forEach(it->{ + public Map> getLineMap(List list, Integer type, String voltage) { + Map> map = new HashMap<>(); + list.forEach(it -> { // 默认不过滤 Predicate uploadFilter = item -> true; if (Objects.equals(type, 1)) { @@ -1005,12 +1022,12 @@ public class GridServiceImpl implements IGridService { } Predicate voltageFilter = item -> true; - if (!Objects.isNull(voltage) && !Objects.equals(voltage,"")) { + if (!Objects.isNull(voltage) && !Objects.equals(voltage, "")) { voltageFilter = item -> Objects.equals(item.getVoltageLevel(), voltage); } // 组合两个过滤条件 Predicate combinedFilter = uploadFilter.and(voltageFilter); - map.put(it.getUnitId(),it.getLineBaseList().stream() + map.put(it.getUnitId(), it.getLineBaseList().stream() .filter(combinedFilter) .map(LineDevGetDTO::getPointId) .distinct()