diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadEvaluationDataDServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadEvaluationDataDServiceImpl.java index 4fa43cd61..7a644ab0f 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadEvaluationDataDServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadEvaluationDataDServiceImpl.java @@ -39,7 +39,10 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; /** @@ -184,10 +187,68 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl list = this.baseMapper.evaluationMonthData(beginMonth,startTime,endTime,"02"); + + //获取监测点信息 + List list1 = this.getPmsMonitor(); + //获取中台母线信息 + List list2 = this.getBusBarInfo(); + //获取灿能母线信息 + List list3 = this.getCnBusBarInfo(list1); + + //获取单位下各电压等级数据 + DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); + Dept data = deptFeignClient.getRootDept().getData(); + deptGetLineParam.setDeptId(data.getId()); + List barDto = commTerminalGeneralClient.deptBusBar(deptGetLineParam).getData(); + + + List busBarList = new ArrayList<>(); + for(DeptGetBusBarDTO deptGetBusBarDTO : barDto){ + BusBarDto busBarDto = new BusBarDto(); + busBarDto.setOrgId(deptGetBusBarDTO.getUnitId()); + Integer online = (int)list3.stream().map(GeneratrixWire::getId).filter(id ->deptGetBusBarDTO.getBusBarIds().contains(id)).distinct().count(); + busBarDto.setAllMonitorBusNum(online); + Integer all = (int)list2.stream().filter(item->deptGetBusBarDTO.getUnitChildrenList().contains(item.getSectionId())).count(); + busBarDto.setAllOnlineBusNum(all); + + if(all>0){ + busBarDto.setAllMonitorRate(BigDecimal.valueOf((double) online/all).setScale(4,RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)).doubleValue()); + } + busBarList.add(busBarDto); + } + Map mapBus = busBarList.stream().collect(Collectors.toMap(BusBarDto::getOrgId, Function.identity())); + + if (CollUtil.isNotEmpty(list)){ + list.forEach(item->{ + item.setId(IdUtil.simpleUUID()); item.setComputeDate(calculatedParam.getDataDate()); + + String statisticalLevel = item.getStatisticalLevel(); + String id = null; + if ("5".equals(statisticalLevel)) { + id = item.getCountyId(); + } else if ("4".equals(statisticalLevel)) { + id = item.getCityId(); + } else if ("3".equals(statisticalLevel)) { + id = item.getProvinceId(); + } else { + + } + + if (mapBus.containsKey(id)) { + BusBarDto busStats = mapBus.get(id); + item.setMonitorBusNum(busStats.getAllMonitorBusNum()); + item.setOnlineBusNum(busStats.getAllOnlineBusNum()); + item.setMonitorBusRate(busStats.getAllMonitorRate()); + } else { + item.setMonitorBusNum(0); + item.setOnlineBusNum(0); + item.setMonitorBusRate(0.0); + } + }); this.saveOrUpdateBatchByMultiId(list,1000); } @@ -199,6 +260,38 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl calculatedParam) { + //获取监测点信息 + List list1 = this.getPmsMonitor(); + //获取中台母线信息 + List list2 = this.getBusBarInfo(); + //获取灿能母线信息 + List list3 = this.getCnBusBarInfo(list1); + + //获取单位下各电压等级数据 + DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); + Dept data = deptFeignClient.getRootDept().getData(); + deptGetLineParam.setDeptId(data.getId()); + List barDto = commTerminalGeneralClient.deptBusBar(deptGetLineParam).getData(); + + + List busBarList = new ArrayList<>(); + for(DeptGetBusBarDTO deptGetBusBarDTO : barDto){ + BusBarDto busBarDto = new BusBarDto(); + busBarDto.setOrgId(deptGetBusBarDTO.getUnitId()); + Integer online = (int)list3.stream().map(GeneratrixWire::getId).filter(id ->deptGetBusBarDTO.getBusBarIds().contains(id)).distinct().count(); + busBarDto.setAllMonitorBusNum(online); + Integer all = (int)list2.stream().filter(item->deptGetBusBarDTO.getUnitChildrenList().contains(item.getSectionId())).count(); + busBarDto.setAllOnlineBusNum(all); + + if(all>0){ + busBarDto.setAllMonitorRate(BigDecimal.valueOf((double) online/all).setScale(4,RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)).doubleValue()); + } + busBarList.add(busBarDto); + } + Map mapBus = busBarList.stream().collect(Collectors.toMap(BusBarDto::getOrgId, Function.identity())); + + + //开始年 String begin = DateUtil.format(DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_YEAR_PATTERN)), DatePattern.NORM_YEAR_PATTERN); //起始时间 @@ -211,6 +304,30 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl{ item.setId(IdUtil.simpleUUID()); item.setComputeDate(calculatedParam.getDataDate()); + + String statisticalLevel = item.getStatisticalLevel(); + String id = null; + if ("5".equals(statisticalLevel)) { + id = item.getCountyId(); + } else if ("4".equals(statisticalLevel)) { + id = item.getCityId(); + } else if ("3".equals(statisticalLevel)) { + id = item.getProvinceId(); + } else { + + } + + if (mapBus.containsKey(id)) { + BusBarDto busStats = mapBus.get(id); + item.setMonitorBusNum(busStats.getAllMonitorBusNum()); + item.setOnlineBusNum(busStats.getAllOnlineBusNum()); + item.setMonitorBusRate(busStats.getAllMonitorRate()); + } else { + item.setMonitorBusNum(0); + item.setOnlineBusNum(0); + item.setMonitorBusRate(0.0); + } + }); this.saveOrUpdateBatchByMultiId(list,1000); } @@ -531,4 +648,4 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl temTreeList = sysDicTreePOList.stream().filter(item -> Objects.equals(item.getCode(), DicTreeEnum.Trans_Sub.getCode()) || Objects.equals(item.getCode(), DicTreeEnum.Converter.getCode()) || Objects.equals(item.getCode(), DicTreeEnum.Ele_Railways.getCode()) || Objects.equals(item.getCode(), DicTreeEnum.Wind_Farms.getCode()) || Objects.equals(item.getCode(), DicTreeEnum.Power_Station.getCode()) - || Objects.equals(item.getCode(), DicTreeEnum.Smelting_Load.getCode()) || Objects.equals(item.getCode(), DicTreeEnum.Imp_Users.getCode()) + || Objects.equals(item.getCode(), DicTreeEnum.Imp_Users.getCode()) ).collect(Collectors.toList()); Map> mapKey = new HashMap<>(); @@ -91,7 +91,7 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl());