河北超高压算法调整

This commit is contained in:
2024-01-05 14:00:19 +08:00
parent 0bd25daf60
commit c3afc49eef
4 changed files with 81 additions and 16 deletions

View File

@@ -14,6 +14,7 @@ import com.njcn.prepare.harmonic.mapper.mysql.area.ROperatingIndexDPOMapper;
import com.njcn.prepare.harmonic.mapper.mysql.day.RStatIntegrityDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.upload.RUploadPointStatisticalDataDMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.pojo.dto.UploadPointStatisticalParam;
import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadPointStatisticalDataDService;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
@@ -49,20 +50,31 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl<RUpl
@Override
public void insertPointStatisticalDataDay(CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam) {
List<RUploadPointStatisticalDataD> result = new ArrayList<>();
List<UploadPointStatisticalParam> paramList = new ArrayList<>();
//获取省级单位id
Dept data = deptFeignClient.getRootDept().getData();
String provinceId = deptFeignClient.getDepSonIdByDeptId(data.getId()).getData().get(0);
Dept dept = deptFeignClient.getDeptById(provinceId).getData();
//获取监测点、终端个数
List<ROperatingIndexDPO> devList = getOperatingIndexData(calculatedParam.getDataDate());
Map<String,List<ROperatingIndexDPO>> devMap = devList.stream().collect(Collectors.groupingBy(ROperatingIndexDPO::getOrgNo));
//筛选国网上送监测点
List<DeptGetChildrenMoreDTO> l1 = calculatedParam.getIdList();
l1.forEach(item->{
List<LineDevGetDTO> newList = item.getLineBaseList().stream().filter(o ->Objects.equals(o.getIsUpToGrid(),1)).collect(Collectors.toList());
item.setLineBaseList(newList);
UploadPointStatisticalParam uploadPointStatisticalParam = new UploadPointStatisticalParam();
uploadPointStatisticalParam.setOrgId(item.getUnitId());
List<LineDevGetDTO> lineInfo = item.getLineBaseList();
uploadPointStatisticalParam.setOnlineMonitorNum(lineInfo.size());
uploadPointStatisticalParam.setRunMonitorNum(lineInfo.size());
uploadPointStatisticalParam.setRunTerminalNum((int)lineInfo.stream().map(LineDevGetDTO::getDevId).distinct().count());
paramList.add(uploadPointStatisticalParam);
});
Map<String,List<UploadPointStatisticalParam>> devMap = paramList.stream().collect(Collectors.groupingBy(UploadPointStatisticalParam::getOrgId));
//获取数据个数
List<RStatIntegrityD> dataList = getStatIntegrityData(calculatedParam.getDataDate());
//获取所有单位
List<Dept> deptList = deptFeignClient.getAllDept().getData();
Map<String,List<Dept>> deptMap = deptList.stream().collect(Collectors.groupingBy(Dept::getCode));
List<DeptGetChildrenMoreDTO> list = calculatedParam.getIdList();
list.forEach(item->{
l1.forEach(item->{
if (Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_1.getCode()),item.getDeptLevel())){
return;
}
@@ -77,13 +89,13 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl<RUpl
rUploadPointStatisticalDataD.setDistributionFlag(UploadEnum.DISTRIBUTION_FLAG_01.getCode());
//fixme over
judgeLevel(item.getDeptLevel(),rUploadPointStatisticalDataD,item.getUnitId(),item.getUnitName(),deptList,deptMap);
List<ROperatingIndexDPO> l1 = devMap.get(item.getUnitId());
if (CollectionUtil.isNotEmpty(l1)){
ROperatingIndexDPO po = l1.get(0);
rUploadPointStatisticalDataD.setRunTerminalNum(po.getOnlineMeasurementPoints());
rUploadPointStatisticalDataD.setOnlineMonitorNum(po.getTransitMeasurementPoints());
rUploadPointStatisticalDataD.setRunMonitorNum(po.getMeasurementRunPoints());
rUploadPointStatisticalDataD.setOnlineMonitorRate(po.getMeasurementRunPoints()==0?0d:BigDecimal.valueOf(po.getTransitMeasurementPoints()*100.0/po.getMeasurementRunPoints()).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
List<UploadPointStatisticalParam> l11 = devMap.get(item.getUnitId());
if (CollectionUtil.isNotEmpty(l11)){
UploadPointStatisticalParam po = l11.get(0);
rUploadPointStatisticalDataD.setRunTerminalNum(po.getRunTerminalNum());
rUploadPointStatisticalDataD.setOnlineMonitorNum(po.getOnlineMonitorNum());
rUploadPointStatisticalDataD.setRunMonitorNum(po.getRunMonitorNum());
rUploadPointStatisticalDataD.setOnlineMonitorRate(po.getOnlineMonitorNum()==0?0d:BigDecimal.valueOf(po.getOnlineMonitorNum()*100.0/po.getRunMonitorNum()).setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
}
//获取当前单位下所有的监测点,匹配监测点数据
List<LineDevGetDTO> l2 = item.getLineBaseList();

View File

@@ -22,10 +22,12 @@ import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* <p>
@@ -59,11 +61,11 @@ public class RUploadSubstationStatisticalDataDServiceImpl extends MppServiceImpl
Map<String,List<Dept>> deptMap = deptList.stream().collect(Collectors.groupingBy(Dept::getCode));
deptMap.forEach((k,v)->{
List<String> list = Arrays.stream(v.get(0).getPids().split(",")).map(String::trim).collect(Collectors.toList());
if (list.size() > 2){
if (list.size() > 1){
RUploadSubstationStatisticalDataD rUploadSubstationStatisticalDataD = new RUploadSubstationStatisticalDataD();
rUploadSubstationStatisticalDataD.setId(IdUtil.simpleUUID());
rUploadSubstationStatisticalDataD.setStatisticalDate(calculatedParam.getDataDate());
rUploadSubstationStatisticalDataD.setStatisticalType(UploadEnum.STATISTICAL_TYPE_03.getCode());
rUploadSubstationStatisticalDataD.setStatisticalType(UploadEnum.STATISTICAL_TYPE_02.getCode());
rUploadSubstationStatisticalDataD.setProvinceId(dept.getCode());
rUploadSubstationStatisticalDataD.setProvinceName(dept.getName());
rUploadSubstationStatisticalDataD.setUploadStatus(Integer.parseInt(UploadEnum.UPLOAD_STATUS_0.getCode()));
@@ -104,6 +106,26 @@ public class RUploadSubstationStatisticalDataDServiceImpl extends MppServiceImpl
*/
public void getDeptLevel(List<String> list, RUploadSubstationStatisticalDataD rUploadSubstationStatisticalDataD, List<Dept> deptList, Map<String,List<Dept>> map, String code, Map<String,List<StatationStat>> subMap) {
switch (list.size()) {
//省级
case 2:
rUploadSubstationStatisticalDataD.setCityId("");
rUploadSubstationStatisticalDataD.setCountyId("");
int ct = 0;
//处理基础数据
String i = deptList.stream().filter(o->Objects.equals(o.getCode(),code)).findAny().orElse(null).getId();
List<String> cList = deptList.stream().filter(o->Objects.equals(o.getPid(),i)).map(Dept::getCode).collect(Collectors.toList());
List<String> idList = deptList.stream().filter(o->Objects.equals(o.getPid(),i)).map(Dept::getId).collect(Collectors.toList());
List<String> cList2 = deptList.stream().filter(o->idList.contains(o.getPid())).map(Dept::getCode).collect(Collectors.toList());
List<String> cList3 = Stream.concat(cList.stream(), cList2.stream()).collect(Collectors.toList());
for (String item : cList3) {
List<StatationStat> l = subMap.get(item);
if (CollectionUtil.isNotEmpty(l)){
ct = ct + l.size();
}
}
rUploadSubstationStatisticalDataD.setSubstationCount(ct == 0 ? null:ct);
break;
//市级
case 3:
int count = 0;