功能调整

This commit is contained in:
xy
2025-07-16 10:51:30 +08:00
parent dc9958b249
commit 030384333e

View File

@@ -296,18 +296,15 @@ public class DataServiceImpl implements IDataService {
EleEpdPqd epdPqd = epdFeignClient.findByName(item.getTag()).getData(); EleEpdPqd epdPqd = epdFeignClient.findByName(item.getTag()).getData();
EachModuleVO.HarmonicVo vo = new EachModuleVO.HarmonicVo(); EachModuleVO.HarmonicVo vo = new EachModuleVO.HarmonicVo();
vo.setTime(item.getStartTime()); vo.setTime(item.getStartTime());
//查询事件状态 如果往前查寻没有数据、则往后查询事件
if (Objects.equals("Alm_Apf_ModConnect",item.getTag())) { if (Objects.equals("Alm_Apf_ModConnect",item.getTag())) {
if (ObjectUtil.isNotEmpty(list1)) { if (ObjectUtil.isNotEmpty(list1)) {
Optional<EachModuleVO.HarmonicVo> optional = list1.stream() Optional<EachModuleVO.HarmonicVo> optional = list1.stream()
// 筛选时间早于参考时间且目标字段等于指定值的记录 // 筛选时间早于参考时间且目标字段等于指定值的记录
.filter(vo1 -> vo1.getTime().isBefore(item.getStartTime())) .filter(vo1 -> vo1.getTime().isBefore(item.getStartTime()))
.filter(vo2 -> vo2.getDataType() == 0) .filter(vo2 -> vo2.getDataType() == 0)
.max(Comparator.comparing(EachModuleVO.HarmonicVo::getTime)); .findFirst();
if (optional.isPresent()) { optional.ifPresent(harmonicVo -> vo.setStateDesc(harmonicVo.getStateDesc()));
vo.setStateDesc(optional.get().getStateDesc());
} else {
vo.setStateDesc("无状态");
}
} }
} else { } else {
vo.setStateDesc(channelState2(item.getTag())); vo.setStateDesc(channelState2(item.getTag()));
@@ -326,6 +323,22 @@ public class DataServiceImpl implements IDataService {
List<EachModuleVO.HarmonicVo> dataList = list1.stream() List<EachModuleVO.HarmonicVo> dataList = list1.stream()
.sorted(Comparator.comparing(EachModuleVO.HarmonicVo::getTime)) .sorted(Comparator.comparing(EachModuleVO.HarmonicVo::getTime))
.collect(Collectors.toList()); .collect(Collectors.toList());
//处理APF模块连接事件状态
dataList.forEach(item->{
if (Objects.equals(item.getEventCode(),"Alm_Apf_ModConnect")) {
Optional<EachModuleVO.HarmonicVo> optional = dataList.stream()
// 筛选时间早于参考时间且目标字段等于指定值的记录
.filter(vo1 -> vo1.getTime().isAfter(item.getTime()) && vo1.getDataType() == 1)
.filter(vo2 -> !Objects.equals("Alm_Apf_ModDisConnect",vo2.getEventCode()) && !Objects.equals("Alm_Apf_ModConnect",vo2.getEventCode()))
.findFirst();
if (optional.isPresent()) {
item.setStateDesc(optional.get().getStateDesc());
} else {
item.setStateDesc("无状态");
}
}
});
EachModuleVO.HarmonicVo last = dataList.get(dataList.size() - 1); EachModuleVO.HarmonicVo last = dataList.get(dataList.size() - 1);
moduleVO.setModuleState(last.getStateDesc()); moduleVO.setModuleState(last.getStateDesc());
//如果模块掉线超过30分钟则续上数据 //如果模块掉线超过30分钟则续上数据