diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/impl/PqTypicalSourceCreatePOServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/impl/PqTypicalSourceCreatePOServiceImpl.java index 0e6197cdc..1d75bebaf 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/impl/PqTypicalSourceCreatePOServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/send/impl/PqTypicalSourceCreatePOServiceImpl.java @@ -136,6 +136,7 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl + AND compute_date is not null AND provinceId = #{param.provinceId} @@ -115,6 +116,7 @@ FROM pq_typical_source_create + AND compute_date is not null AND provinceId = #{param.provinceId} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadPointStatisticalDataDServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadPointStatisticalDataDServiceImpl.java index e5a5cf8d4..f5e3c3c81 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadPointStatisticalDataDServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadPointStatisticalDataDServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO; @@ -146,7 +147,7 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl list = this.baseMapper.pointStatisticalMonthData(beginMonth,startTime,endTime,"02"); - if (CollUtil.isNotEmpty(list)){ - list.forEach(item->{ - item.setId(IdUtil.simpleUUID()); - item.setComputeDate(calculatedParam.getDataDate()); - }); - this.saveOrUpdateBatchByMultiId(list,1000); - } + dataProcessing(calculatedParam,list); } @Override @@ -293,6 +288,115 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl list = this.baseMapper.pointStatisticalMonthData(beginMonth,startTime,endTime,"01"); + dataProcessing(calculatedParam,list); + } + + /** + * + * @param calculatedParam + * @param list 数据处理 + */ + private void dataProcessing(CalculatedParam calculatedParam,List list) { + + //数据分组 + Map> listMap = list.stream().collect(Collectors.groupingBy(x -> x.getProvinceId() + x.getCityId() + x.getCountyId())); + //获取省级单位id + Dept root = deptFeignClient.getRootDept().getData(); + String provinceId = deptFeignClient.getDepSonIdByDeptId(root.getId()).getData().get(0); + Dept dept = deptFeignClient.getDeptById(provinceId).getData(); + + //获取所有单位 + List deptList = deptFeignClient.getAllDept().getData(); + Map> deptMap = deptList.stream().collect(Collectors.groupingBy(Dept::getCode)); + + //查询所有一级树字典 + List sysDicTreePOList = dictTreeFeignClient.queryAll().getData(); + List 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()) + ).collect(Collectors.toList()); + //站别大类 + List dictDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.Station_Type.getCode()).getData(); + Map dictDataMap = dictDataList.stream().collect(Collectors.toMap(DictData::getCode,Function.identity())); + //获取对象类型下字类型 + Map> mapKey = new HashMap<>(); + List otherIds = new ArrayList<>(); + for(SysDicTreePO sysDicTreePO : temTreeList){ + List temList = sysDicTreePOList.stream().filter(item->item.getPid().equals(sysDicTreePO.getId())).collect(Collectors.toList()); + List ids = temList.stream().map(SysDicTreePO::getId).distinct().collect(Collectors.toList()); + ids.add(sysDicTreePO.getId()); + mapKey.put(sysDicTreePO.getCode(),ids); + otherIds.addAll(ids); + } + RUploadPointStatisticalDataD data; + for (DeptGetChildrenMoreDTO item : calculatedParam.getIdList()) { + //获取国网上送监测点 + List temBaseList = item.getLineBaseList().stream().filter(o -> Objects.equals(o.getIsUpToGrid(), 1)).collect(Collectors.toList()); + long monitorCount = temBaseList.stream().map(LineDevGetDTO::getPointId).distinct().count(); + long devCount = temBaseList.stream().map(LineDevGetDTO::getDevId).distinct().count(); + //其他类型 + List otherMonitor = item.getLineBaseList().stream().filter(me->!otherIds.contains(me.getObjType())).collect(Collectors.toList()); + data=new RUploadPointStatisticalDataD(); + data.setProvinceId(dept.getCode()); + data.setProvinceName(dept.getName()); + judgeLevel(item.getDeptLevel(), data, item.getUnitId(), item.getUnitName(), deptList, deptMap); + + if(listMap.containsKey(data.getProvinceId() + data.getCityId() + data.getCountyId())){ + List orgData = listMap.get(data.getProvinceId() + data.getCityId() + data.getCountyId()); + //根据所属站别进行分类 + Map stationTypeMap = orgData.stream().collect(Collectors.toMap(x -> x.getStationType(), Function.identity())); + mapKey.forEach((key, val) -> { + List keyItem = temBaseList.stream().filter(o -> val.contains(o.getObjType())).collect(Collectors.toList()); + String stationType = ""; + switch (key){ + case "2100": + stationType=dictDataMap.get(DicDataEnum.Trans_Sub.getCode()).getId(); + break; + case "1200": + stationType=dictDataMap.get(DicDataEnum.Converter.getCode()).getId(); + break; + case "1300": + stationType=dictDataMap.get(DicDataEnum.Ele_Railways.getCode()).getId(); + break; + case "1401": + stationType=dictDataMap.get(DicDataEnum.Wind_Farms.getCode()).getId(); + break; + case "1402": + stationType=dictDataMap.get(DicDataEnum.Power_Station.getCode()).getId(); + break; + case "2300": + stationType=dictDataMap.get(DicDataEnum.Smelting_Load.getCode()).getId(); + break; + case "2400": + stationType=dictDataMap.get(DicDataEnum.Imp_Users.getCode()).getId(); + break; + } + if(stationTypeMap.containsKey(stationType)){ + long pointCount = keyItem.stream().map(LineDevGetDTO::getPointId).distinct().count(); + RUploadPointStatisticalDataD rUploadPointStatisticalDataD = stationTypeMap.get(stationType); + if(ObjectUtil.isNull(devCount)){ + System.out.println(); + } + rUploadPointStatisticalDataD.setRunTerminalNum((int) devCount); + rUploadPointStatisticalDataD.setOnlineMonitorNum((int) monitorCount); + rUploadPointStatisticalDataD.setRunMonitorNum((int) monitorCount); + rUploadPointStatisticalDataD.setStationMonitorNum((int)pointCount); + } + + }); + //其他类型 + if(stationTypeMap.containsKey(dictDataMap.get(DicDataEnum.Station_Other.getCode()).getId())){ + long pointCount = otherMonitor.stream().map(LineDevGetDTO::getPointId).distinct().count(); + RUploadPointStatisticalDataD rUploadPointStatisticalDataD = stationTypeMap.get(dictDataMap.get(DicDataEnum.Station_Other.getCode()).getId()); + rUploadPointStatisticalDataD.setRunTerminalNum((int) devCount); + rUploadPointStatisticalDataD.setOnlineMonitorNum((int) monitorCount); + rUploadPointStatisticalDataD.setRunMonitorNum((int) monitorCount); + rUploadPointStatisticalDataD.setStationMonitorNum((int)pointCount); + } + + } + } if (CollUtil.isNotEmpty(list)){ list.forEach(item->{ item.setId(IdUtil.simpleUUID()); @@ -302,6 +406,10 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl