This commit is contained in:
wr
2025-09-11 15:31:50 +08:00
parent c1dca815e7
commit 6815e1df4b
6 changed files with 33 additions and 32 deletions

View File

@@ -1001,7 +1001,7 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
}
// 获取所有监测点的元信息
List<PollutionLineInfoDTO> lineInfoDTOList = commLineClient.getPollutionLineInfo(lineIdList).getData();
Map<String, PollutionLineInfoDTO> lineMap = lineInfoDTOList.stream().collect(Collectors.toMap(PollutionLineInfoDTO::getLineId, Function.identity()));
//获取监测点的数据完整性
OnlineRateParam onlineRateParam = new OnlineRateParam();
onlineRateParam.setStartTime(startDate);
@@ -1021,34 +1021,23 @@ public class PollutionSubstationServiceImpl extends ServiceImpl<RStatPollutionSu
}
if (CollUtil.isNotEmpty(lineIdList)) {
// 获取谐波电压数据&总畸变率&越限限值计算基础污染值
for (int i = 0; i < lineIdList.size(); i++) {
String lineId = lineIdList.get(i);
LinePollution linePollution = new LinePollution();
linePollution.setLineId(lineId);
//获取监测点数据完整性
linePollution.setIntegrity(Objects.isNull(integrityMap.get(lineId)) ? 0.0 : integrityMap.get(lineId)>100?100.0:integrityMap.get(lineId));
//获取监测点限值
Overlimit overlimit = commTerminalGeneralClient.getOverLimitData(lineId).getData();
LineDevGetDTO lineDetailData = commTerminalGeneralClient.getMonitorDetail(lineId).getData();
if (Objects.isNull(overlimit) || Objects.isNull(lineDetailData)) {
// 如果没有查到限值跳过,后期需要记录这种异常
continue;
}
linePollution.setLineName(lineDetailData.getPointName());
linePollution.setInterval(lineDetailData.getInterval());
// 计算谐波的污染值
linePollution.setHarmonicValue(calcMap.containsKey(lineId)?calcMap.get(lineId)>100?100.0:integrityMap.get(lineId):0.0);
// 获取暂态数据
BeanUtil.copyProperties(eventMap.get(lineId), linePollution);
//获取该监测点其他元信息
Optional<PollutionLineInfoDTO> any = lineInfoDTOList.stream().filter(item -> item.getLineId().equals(lineId)).findAny();
if (any.isPresent()) {
PollutionLineInfoDTO data = any.get();
for (String lineId: lineIdList) {
if(lineMap.containsKey(lineId)){
PollutionLineInfoDTO data = lineMap.get(lineId);
LinePollution linePollution = new LinePollution();
// 获取暂态数据
BeanUtil.copyProperties(eventMap.get(lineId), linePollution);
BeanUtil.copyProperties(data, linePollution, true);
//监测点在线率
Float vo2 = onlineRateMap.get(data.getDeviceId());
linePollution.setOnlineRate(Objects.isNull(vo2) ? 0.0f : vo2);
//获取监测点数据完整性
linePollution.setIntegrity(Objects.isNull(integrityMap.get(lineId)) ? 0.0 : integrityMap.get(lineId)>100?100.0:integrityMap.get(lineId));
// 计算谐波的污染值
linePollution.setHarmonicValue(calcMap.containsKey(lineId)?calcMap.get(lineId)>100?100.0:integrityMap.get(lineId):0.0);
linePollution.setInterval(data.getTimeInterval());
linePollutionList.add(linePollution);
}
linePollutionList.add(linePollution);
}
}
return linePollutionList;