变电站污区图算法调整,增加新能源场站信息

This commit is contained in:
wr
2025-04-30 16:12:21 +08:00
parent d35c210d9c
commit 4b10860997

View File

@@ -104,12 +104,12 @@ public class PollutionServiceImpl implements IPollutionService {
List<DataPollutionD> pollutionList = processPollutionList(local, idList, dictData, harmonicVoltageList, harmonicCurrentList, frequencyDeviationList, voltageDeviationList,
threePhaseVoltageList, negativeSequenceList, interHarmonicVoltageList, voltageFlickerList);
//TODO 插入数据库
if (CollUtil.isNotEmpty(pollutionList)) {
dataPollutionFeignClient.batchInsertion(pollutionList);
}
});
System.gc();
}
@@ -143,6 +143,7 @@ public class PollutionServiceImpl implements IPollutionService {
if (CollUtil.isNotEmpty(info)) {
dataPollutionFeignClient.batchInsertionOrgD(info);
}
System.gc();
}
@Override
@@ -174,6 +175,7 @@ public class PollutionServiceImpl implements IPollutionService {
if (CollUtil.isNotEmpty(info)) {
dataPollutionFeignClient.batchInsertionOrgM(info);
}
System.gc();
}
@Override
@@ -202,6 +204,7 @@ public class PollutionServiceImpl implements IPollutionService {
if (CollUtil.isNotEmpty(info)) {
dataPollutionFeignClient.batchInsertionOrgQ(info);
}
System.gc();
}
@Override
@@ -230,6 +233,7 @@ public class PollutionServiceImpl implements IPollutionService {
if (CollUtil.isNotEmpty(info)) {
dataPollutionFeignClient.batchInsertionOrgY(info);
}
System.gc();
}
@Override
@@ -242,26 +246,39 @@ public class PollutionServiceImpl implements IPollutionService {
LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate());
for (String substationId : calculatedParam.getIdList()) {
LineDevGetBandDTO data = commTerminalGeneralClient.substationGetLine(substationId).getData();
Collection<LineDevGetDTO> union = CollectionUtils.union(Optional.ofNullable(data.getPwList()).orElse(new ArrayList<>()),
Collection<LineDevGetDTO> union = CollectionUtils.union(Optional.ofNullable(data.getPwList())
.orElse(new ArrayList<>()),
Optional.ofNullable(data.getZwList()).orElse(new ArrayList<>()));
List<String> lindIds = union.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
if (CollUtil.isNotEmpty(lindIds)) {
lineParam.setLineId(lindIds);
List<DataPollutionD> pollutionDS = dataPollutionFeignClient.getRawData(lineParam).getData();
Map<String, List<DataPollutionD>> pollutionMap = pollutionDS.stream().collect(Collectors.groupingBy(DataPollutionD::getPollutionType));
pollutionMap.forEach((key, value) -> {
DataPollutionSubstationD orgD = new DataPollutionSubstationD();
orgD.setSubstationId(substationId);
orgD.setDataDate(localDate);
orgD.setPollutionType(key);
orgD.setValue(value.stream().max(Comparator.comparing(DataPollutionD::getValue)).get().getValue());
info.add(orgD);
if(CollUtil.isNotEmpty(union)){
List<String> lineIds = union.stream().filter(x -> StrUtil.isBlank(x.getObjId())).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
if (CollUtil.isNotEmpty(lineIds)) {
setPollution(info, lineParam, localDate, substationId, lineIds);
}
Map<String, List<String>> newEnergyMap = union.stream().filter(x -> StrUtil.isNotBlank(x.getObjId()))
.collect(Collectors.groupingBy(LineDevGetDTO::getObjId, Collectors.mapping(LineDevGetDTO::getPointId, Collectors.toList())));
newEnergyMap.forEach((subId,line)->{
setPollution(info, lineParam, localDate, subId, line);
});
}
}
if (CollUtil.isNotEmpty(info)) {
dataPollutionFeignClient.batchInsertionSubstationD(info);
}
System.gc();
}
private void setPollution(List<DataPollutionSubstationD> info, LineCountEvaluateParam lineParam, LocalDate localDate, String substationId, List<String> lineIds) {
lineParam.setLineId(lineIds);
List<DataPollutionD> pollutionDS = dataPollutionFeignClient.getRawData(lineParam).getData();
Map<String, List<DataPollutionD>> pollutionMap = pollutionDS.stream().collect(Collectors.groupingBy(DataPollutionD::getPollutionType));
pollutionMap.forEach((key, value) -> {
DataPollutionSubstationD orgD = new DataPollutionSubstationD();
orgD.setSubstationId(substationId);
orgD.setDataDate(localDate);
orgD.setPollutionType(key);
orgD.setValue(value.stream().max(Comparator.comparing(DataPollutionD::getValue)).get().getValue());
info.add(orgD);
});
}
@Override
@@ -290,6 +307,7 @@ public class PollutionServiceImpl implements IPollutionService {
if (CollUtil.isNotEmpty(info)) {
dataPollutionFeignClient.batchInsertionSubstationM(info);
}
System.gc();
}
@Override
@@ -318,6 +336,7 @@ public class PollutionServiceImpl implements IPollutionService {
if (CollUtil.isNotEmpty(info)) {
dataPollutionFeignClient.batchInsertionSubstationQ(info);
}
System.gc();
}
@Override
@@ -346,6 +365,7 @@ public class PollutionServiceImpl implements IPollutionService {
if (CollUtil.isNotEmpty(info)) {
dataPollutionFeignClient.batchInsertionSubstationY(info);
}
System.gc();
}
/**