fix(alarm): 修复告警数据显示问题

- 移除多余的代码行和空行
- 添加完整性检测和在线率告警的默认数据构建逻辑
- 实现buildDefaultAlarmData方法为缺失数据提供默认结构
- 确保告警详情显示的完整性和一致性
This commit is contained in:
xy
2026-07-08 10:05:16 +08:00
parent f185fa4706
commit b265e95bdf

View File

@@ -185,9 +185,7 @@ public class CsAlarmServiceImpl extends ServiceImpl<CsAlarmMapper, CsAlarm> impl
for (int i = 0; i < devIds.length; i++) { for (int i = 0; i < devIds.length; i++) {
for (int i1 = 0; i1 < param.getDevList().size(); i1++) { for (int i1 = 0; i1 < param.getDevList().size(); i1++) {
if (Objects.equals(devIds[i], param.getDevList().get(i1))) { if (Objects.equals(devIds[i], param.getDevList().get(i1))) {
CsLedgerVO csLedgerVO = ledgerMap.get(devIds[i]); CsLedgerVO csLedgerVO = ledgerMap.get(devIds[i]);
AlarmVO.AlarmDetail alarmDetail = new AlarmVO.AlarmDetail(); AlarmVO.AlarmDetail alarmDetail = new AlarmVO.AlarmDetail();
alarmDetail.setEngineeringName(ledgerMap.get(csLedgerVO.getPids().split(",")[1]).getName()); alarmDetail.setEngineeringName(ledgerMap.get(csLedgerVO.getPids().split(",")[1]).getName());
alarmDetail.setProjectName(ledgerMap.get(csLedgerVO.getPids().split(",")[2]).getName()); alarmDetail.setProjectName(ledgerMap.get(csLedgerVO.getPids().split(",")[2]).getName());
@@ -243,6 +241,36 @@ public class CsAlarmServiceImpl extends ServiceImpl<CsAlarmMapper, CsAlarm> impl
} }
} }
} }
//特殊处理,如果完整性和在线率没有告警,需要特殊处理下,模拟数据
if (CollectionUtil.isNotEmpty(result)) {
result.forEach(item->{
if (Objects.isNull(item.getDataDetails())) {
item.setDataDetails(buildDefaultAlarmData(item.getDevName()));
}
});
}
return result; return result;
} }
/**
* 构建默认的告警数据详情
* @param deviceId 设备ID
* @return 默认结构的 CsAlarmData
*/
private CsAlarmData buildDefaultAlarmData(String deviceId) {
CsAlarmData defaultData = new CsAlarmData();
defaultData.setDeviceId(deviceId);
// 构建 onlineRate 默认结构
CsAlarmData.OnlineRateAlarm onlineRate = new CsAlarmData.OnlineRateAlarm();
onlineRate.setValue(0.0);
onlineRate.setThreshold(0.0);
onlineRate.setIsAbnormal(false);
defaultData.setOnlineRate(onlineRate);
// 构建 integrity 默认结构
CsAlarmData.IntegrityAlarm integrity = new CsAlarmData.IntegrityAlarm();
integrity.setThreshold(0.0);
integrity.setMonitorPoints(new ArrayList<>());
defaultData.setIntegrity(integrity);
return defaultData;
}
} }