1.pms公共连接点功能

This commit is contained in:
cdf
2024-08-24 20:47:15 +08:00
parent f4fd509d12
commit 6dc1b415dc
15 changed files with 608 additions and 35 deletions

View File

@@ -12,6 +12,7 @@ import com.njcn.prepare.harmonic.service.mysql.area.RStatOrgService;
import com.njcn.prepare.harmonic.service.mysql.dim.*;
import com.njcn.prepare.harmonic.service.mysql.line.PollutionService;
import com.njcn.prepare.harmonic.service.mysql.newalgorithm.*;
import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadCommPointBusService;
import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadEvaluationDataDService;
import com.njcn.prepare.harmonic.service.mysql.send.ConverterIndexStatisticsPOService;
import com.njcn.prepare.harmonic.service.mysql.send.PqTypicalSourceCreatePOService;
@@ -50,11 +51,6 @@ public class OrgPointExecutor extends BaseExecutor{
private final RAlarmCountService rAlarmCountService;
private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
private final RDimStationHarmnicDPOService rDimStationHarmnicDPOService;
private final RDimStationTargetDPOService rDimStationTargetDPOService;
private final RDimStationTargetMPOService rDimStationTargetMPOService;
private final RDimStationTargetYPOService rDimStationTargetYPOService;
private final RDimBusTargetDPOService rDimBusTargetDPOService;
private final RDimBusTargetMPOService rDimBusTargetMPOService;
@@ -77,6 +73,8 @@ public class OrgPointExecutor extends BaseExecutor{
private final ConverterIndexStatisticsPOService converterIndexStatisticsPOService;
private final PqTypicalSourceCreatePOService pqTypicalSourceCreatePOService;
private final IRUploadEvaluationDataDService irUploadEvaluationDataDService;
private final IRUploadCommPointBusService irUploadCommPointBusService;
/**
*
* 3.3.2. 单位标数据质量
@@ -714,4 +712,24 @@ public class OrgPointExecutor extends BaseExecutor{
}
}
@LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rUploadCommPoint", nodeType = NodeTypeEnum.COMMON)
public boolean rUploadCommPointAccess(NodeComponent bindCmp) {
return isAccess(bindCmp);
}
@LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rUploadCommPoint", nodeType = NodeTypeEnum.COMMON)
public void rUploadCommPointProcess(NodeComponent bindCmp) {
String tag = bindCmp.getTag();
CalculatedParam<DeptGetChildrenMoreDTO> calculatedParam = bindCmp.getRequestData();
if (tag.equalsIgnoreCase("r_upload_comm_point_d")) {
//日表
irUploadCommPointBusService.handlerDay(calculatedParam.getDataDate());
} else if (tag.equalsIgnoreCase("r_upload_comm_point_m")) {
//月表
irUploadCommPointBusService.handlerMonth(calculatedParam.getDataDate());
} else if (tag.equalsIgnoreCase("r_upload_comm_point_y")) {
//月表
irUploadCommPointBusService.handlerYear(calculatedParam.getDataDate());
}
}
}

View File

@@ -24,4 +24,6 @@ public class CommPointController {
}
}

View File

@@ -14,4 +14,10 @@ public interface IRUploadCommPointBusService extends IService<RUploadCommPointBu
void handlerDay(String date);
void handlerMonth(String date);
void handlerYear(String date);
}

View File

@@ -2,6 +2,9 @@ package com.njcn.prepare.harmonic.service.mysql.upload.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -82,7 +85,6 @@ public class RUploadCommPointBusServiceImpl extends MppServiceImpl<RUploadCommPo
@Override
@Async("asyncExecutor")
public void handlerDay(String date){
List<RUploadCommPointBus> poLIst = new ArrayList<>();
@@ -177,6 +179,7 @@ public class RUploadCommPointBusServiceImpl extends MppServiceImpl<RUploadCommPo
rUploadCommPointBus.setMonitorId(point.getMonitorId());
rUploadCommPointBus.setDataSource("01");
rUploadCommPointBus.setCnMonitorId(point.getId());
rUploadCommPointBus.setUploadStatus(DataStateEnum.DELETED.getCode());
poLIst.add(rUploadCommPointBus);
});
@@ -202,7 +205,7 @@ public class RUploadCommPointBusServiceImpl extends MppServiceImpl<RUploadCommPo
}
if(cpMap.containsKey(item.getCnMonitorId())){
RStatDataVDPO rStatDataVDPO = cpMap.get(item.getCnMonitorId());
item.setGVrms(rStatDataVDPO.getRms());
item.setgVrms(rStatDataVDPO.getRms());
}
Integer limitDay = 0;
@@ -254,6 +257,158 @@ public class RUploadCommPointBusServiceImpl extends MppServiceImpl<RUploadCommPo
}
public void handlerMonth(String date){
DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(date, DatePattern.NORM_DATE_PATTERN));
DateTime end = DateUtil.parse(date, DatePattern.NORM_DATE_PATTERN);
String month = DateUtil.format(end,DatePattern.NORM_MONTH_PATTERN);
LambdaQueryWrapper<RUploadCommPointBus> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.between(RUploadCommPointBus::getStatisticalDate,begin,end).eq(RUploadCommPointBus::getStatisticalType,DicDataEnum.STATISTICAL_TYPE_D.getCode());
List<RUploadCommPointBus> rUploadCommPointBusList = this.list(lambdaQueryWrapper);
List<RUploadCommPointBus> poLIst = new ArrayList<>();
Map<String,List<RUploadCommPointBus>> map = rUploadCommPointBusList.stream().collect(Collectors.groupingBy(RUploadCommPointBus::getBusId));
map.forEach((busId,list)->{
RUploadCommPointBus one = list.get(0);
RUploadCommPointBus rUploadCommPointBus = new RUploadCommPointBus();
rUploadCommPointBus.setObjId(IdUtil.simpleUUID());
rUploadCommPointBus.setBusId(busId);
rUploadCommPointBus.setBusName(one.getBusName());
rUploadCommPointBus.setBusVoltageLevel(one.getBusVoltageLevel());
rUploadCommPointBus.setStatisticalType(DicDataEnum.STATISTICAL_TYPE_M.getCode());
rUploadCommPointBus.setStatisticalDate(month);
rUploadCommPointBus.setProvinceOrg(one.getProvinceOrg());
rUploadCommPointBus.setProvinceOrgName(one.getProvinceOrgName());
rUploadCommPointBus.setCityOrg(one.getCityOrg());
rUploadCommPointBus.setCityOrgName(one.getCityOrgName());
rUploadCommPointBus.setMaintOrg(one.getMaintOrg());
rUploadCommPointBus.setMaintOrgName(one.getMaintOrgName());
rUploadCommPointBus.setStationType("zf01");
rUploadCommPointBus.setStationId(one.getStationId());
rUploadCommPointBus.setStationName(one.getStationName());
rUploadCommPointBus.setStationVoltageLevel(one.getStationVoltageLevel());
rUploadCommPointBus.setDataSource("01");
List<String> temList = list.stream().map(RUploadCommPointBus::getMonitorId).collect(Collectors.toList());
String point = findMostFrequentString(temList);
rUploadCommPointBus.setMonitorId(point);
rUploadCommPointBus.setAvgVrms(list.stream().filter(item->Objects.nonNull(item.getAvgVrms())).mapToDouble(RUploadCommPointBus::getAvgVrms).average().orElse(0.0));
rUploadCommPointBus.setgVrms(list.stream().filter(item->Objects.nonNull(item.getgVrms())).mapToDouble(RUploadCommPointBus::getgVrms).average().orElse(0.0));
rUploadCommPointBus.setHarmVOvDuration(list.stream().filter(item->Objects.nonNull(item.getHarmVOvDuration())).mapToInt(RUploadCommPointBus::getHarmVOvDuration).sum());
rUploadCommPointBus.setHarmVOvDays(list.stream().filter(item->Objects.nonNull(item.getHarmVOvDays())).mapToInt(RUploadCommPointBus::getHarmVOvDays).sum());
rUploadCommPointBus.setVunbanOvDuration(list.stream().filter(item->Objects.nonNull(item.getVunbanOvDuration())).mapToInt(RUploadCommPointBus::getVunbanOvDuration).sum());
rUploadCommPointBus.setVunbanOvDays(list.stream().filter(item->Objects.nonNull(item.getVunbanOvDays())).mapToInt(RUploadCommPointBus::getVunbanOvDays).sum());
rUploadCommPointBus.setPltOvDuration(list.stream().filter(item->Objects.nonNull(item.getPltOvDuration())).mapToInt(RUploadCommPointBus::getPltOvDuration).sum());
rUploadCommPointBus.setPltOvDays(list.stream().filter(item->Objects.nonNull(item.getPltOvDays())).mapToInt(RUploadCommPointBus::getPltOvDays).sum());
rUploadCommPointBus.setOvDays(list.stream().filter(item->Objects.nonNull(item.getOvDays())).mapToInt(RUploadCommPointBus::getOvDays).sum());
rUploadCommPointBus.setUploadStatus(DataStateEnum.DELETED.getCode());
poLIst.add(rUploadCommPointBus);
});
if(CollUtil.isNotEmpty(poLIst)){
this.saveOrUpdateBatchByMultiId(poLIst);
}
}
public void handlerYear(String date){
DateTime begin = DateUtil.beginOfYear(DateUtil.parse(date, DatePattern.NORM_DATE_PATTERN));
DateTime end = DateUtil.parse(date, DatePattern.NORM_DATE_PATTERN);
String year = DateUtil.format(end,DatePattern.NORM_YEAR_PATTERN);
LambdaQueryWrapper<RUploadCommPointBus> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.between(RUploadCommPointBus::getStatisticalDate,begin,end).eq(RUploadCommPointBus::getStatisticalType,DicDataEnum.STATISTICAL_TYPE_D.getCode());
List<RUploadCommPointBus> rUploadCommPointBusList = this.list(lambdaQueryWrapper);
List<RUploadCommPointBus> poLIst = new ArrayList<>();
Map<String,List<RUploadCommPointBus>> map = rUploadCommPointBusList.stream().collect(Collectors.groupingBy(RUploadCommPointBus::getBusId));
map.forEach((busId,list)->{
RUploadCommPointBus one = list.get(0);
RUploadCommPointBus rUploadCommPointBus = new RUploadCommPointBus();
rUploadCommPointBus.setStatisticalType(DicDataEnum.STATISTICAL_TYPE_Y.getCode());
rUploadCommPointBus.setStatisticalDate(year);
rUploadCommPointBus.setObjId(IdUtil.simpleUUID());
rUploadCommPointBus.setBusId(busId);
rUploadCommPointBus.setBusName(one.getBusName());
rUploadCommPointBus.setBusVoltageLevel(one.getBusVoltageLevel());
rUploadCommPointBus.setProvinceOrg(one.getProvinceOrg());
rUploadCommPointBus.setProvinceOrgName(one.getProvinceOrgName());
rUploadCommPointBus.setCityOrg(one.getCityOrg());
rUploadCommPointBus.setCityOrgName(one.getCityOrgName());
rUploadCommPointBus.setMaintOrg(one.getMaintOrg());
rUploadCommPointBus.setMaintOrgName(one.getMaintOrgName());
rUploadCommPointBus.setStationType("zf01");
rUploadCommPointBus.setStationId(one.getStationId());
rUploadCommPointBus.setStationName(one.getStationName());
rUploadCommPointBus.setStationVoltageLevel(one.getStationVoltageLevel());
rUploadCommPointBus.setDataSource("01");
List<String> temList = list.stream().map(RUploadCommPointBus::getMonitorId).collect(Collectors.toList());
String point = findMostFrequentString(temList);
rUploadCommPointBus.setMonitorId(point);
rUploadCommPointBus.setAvgVrms(list.stream().filter(item->Objects.nonNull(item.getAvgVrms())).mapToDouble(RUploadCommPointBus::getAvgVrms).average().orElse(0.0));
rUploadCommPointBus.setgVrms(list.stream().filter(item->Objects.nonNull(item.getgVrms())).mapToDouble(RUploadCommPointBus::getgVrms).average().orElse(0.0));
rUploadCommPointBus.setHarmVOvDuration(list.stream().filter(item->Objects.nonNull(item.getHarmVOvDuration())).mapToInt(RUploadCommPointBus::getHarmVOvDuration).sum());
rUploadCommPointBus.setHarmVOvDays(list.stream().filter(item->Objects.nonNull(item.getHarmVOvDays())).mapToInt(RUploadCommPointBus::getHarmVOvDays).sum());
rUploadCommPointBus.setVunbanOvDuration(list.stream().filter(item->Objects.nonNull(item.getVunbanOvDuration())).mapToInt(RUploadCommPointBus::getVunbanOvDuration).sum());
rUploadCommPointBus.setVunbanOvDays(list.stream().filter(item->Objects.nonNull(item.getVunbanOvDays())).mapToInt(RUploadCommPointBus::getVunbanOvDays).sum());
rUploadCommPointBus.setPltOvDuration(list.stream().filter(item->Objects.nonNull(item.getPltOvDuration())).mapToInt(RUploadCommPointBus::getPltOvDuration).sum());
rUploadCommPointBus.setPltOvDays(list.stream().filter(item->Objects.nonNull(item.getPltOvDays())).mapToInt(RUploadCommPointBus::getPltOvDays).sum());
rUploadCommPointBus.setOvDays(list.stream().filter(item->Objects.nonNull(item.getOvDays())).mapToInt(RUploadCommPointBus::getOvDays).sum());
rUploadCommPointBus.setUploadStatus(DataStateEnum.DELETED.getCode());
poLIst.add(rUploadCommPointBus);
});
if(CollUtil.isNotEmpty(poLIst)){
this.saveOrUpdateBatchByMultiId(poLIst);
}
}
public String findMostFrequentString(List<String> strings) {
if (strings == null || strings.isEmpty()) {
throw new IllegalArgumentException("输入的列表不能为空");
}
// 使用HashMap来记录每个字符串及其出现次数
Map<String, Integer> frequencyMap = new HashMap<>();
for (String str : strings) {
frequencyMap.put(str, frequencyMap.getOrDefault(str, 0) + 1);
}
// 初始化最大出现次数和对应的字符串
int maxCount = 0;
String mostFrequent = strings.get(0); // 假设列表不为空,则取第一个字符串作为初始值
// 遍历HashMap找到出现次数最多的字符串
for (Map.Entry<String, Integer> entry : frequencyMap.entrySet()) {
if (entry.getValue() > maxCount) {
maxCount = entry.getValue();
mostFrequent = entry.getKey();
}
}
return mostFrequent;
}
/***
* 获取越限最大值
* @param object
@@ -306,13 +461,6 @@ public class RUploadCommPointBusServiceImpl extends MppServiceImpl<RUploadCommPo
return monitorRes;
}
public void handlerMonth(String date){
}
public void handlerYear(String date){
}
}

View File

@@ -124,13 +124,13 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl<RUploadEva
List<DeptGetChildrenMoreDTO> list = calculatedParam.getIdList();
list.forEach(item -> {
if (Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_1.getCode()), item.getDeptLevel())) {
if (Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_1.getCode()), item.getDeptLevel())
//县数据
|| Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_4.getCode()),item.getDeptLevel())
|| Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_4.getCode()), item.getDeptLevel())) {
return;
}
if(item.getUnitId().equals("13B9B47F1E4F3324E05338297A0A0595")){
System.out.println("555");
}
BusBarDto busBarDto = allDept.stream().filter(o -> Objects.equals(o.getOrgId(), item.getUnitId())).findFirst().orElse(null);