From fb8d02cd7e4950de5a0d90e538aec66e40344007 Mon Sep 17 00:00:00 2001 From: wr <1754607820@qq.com> Date: Thu, 14 Mar 2024 11:28:30 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=9B=BD=E7=BD=91=E4=B8=8A=E9=80=81=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=A2=9E=E5=8A=A0=E9=9D=9E=E7=A9=BA=E5=88=A4=E6=96=AD?= =?UTF-8?q?=202.=E8=B0=83=E6=95=B4=E5=9B=BD=E7=BD=91=E4=B8=8A=E9=80=81?= =?UTF-8?q?=E4=B8=BB=E7=BD=91=E7=9B=91=E6=B5=8B=E7=82=B9=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E5=92=8C=E5=85=B8=E5=9E=8B=E6=BA=90=E8=8D=B7=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E7=9A=84=E7=AE=97=E6=B3=95=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PqTypicalSourceCreatePOServiceImpl.java | 2 + .../impl/PointStatisticalDataServiceImpl.java | 2 + .../impl/REvaluationDataServiceImpl.java | 2 + ...RSubstationStatisticalDataServiceImpl.java | 4 +- .../mapping/PqTypicalSourceCreatePOMapper.xml | 2 + ...ploadPointStatisticalDataDServiceImpl.java | 124 ++++++++++++++++-- .../com/njcn/system/enums/DicTreeEnum.java | 3 +- 7 files changed, 128 insertions(+), 11 deletions(-) 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