feat(alarm): 更新告警系统以支持在线率和完整性监控
- 移除原有的中断计数功能,改为在线率和完整性告警判断 - 新增CsAlarmData类用于存储在线率和完整性详细数据 - 更新AlarmVO数据结构,替换interruptCounts为onlineRateIsWarn和integrityIsWarn字段 - 修改告警服务实现,从JSON解析List<List<String>>改为解析CsAlarmData对象 - 新增channelRunDataAlarm方法用于运行数据告警算法,处理在线率和完整性阈值判断 - 实现完整的告警数据构建逻辑,包括设备在线率计算和监测点完整性评估 - 更新统计服务中的数据去重逻辑,避免重复计算设备和监测点数据
This commit is contained in:
@@ -43,7 +43,7 @@ public class CsAlarm implements Serializable {
|
||||
private String interruptEvent;
|
||||
|
||||
/**
|
||||
* 中断事件描述
|
||||
* 告警事件描述
|
||||
*/
|
||||
private String alarmEvent;
|
||||
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
package com.njcn.csharmonic.pojo.po;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author xy
|
||||
*/
|
||||
@Data
|
||||
public class CsAlarmData implements Serializable {
|
||||
|
||||
//设备id
|
||||
private String deviceId;
|
||||
|
||||
// 在线率异常记录
|
||||
private OnlineRateAlarm onlineRate;
|
||||
|
||||
// 完整性异常记录
|
||||
private IntegrityAlarm integrity;
|
||||
|
||||
/**
|
||||
* 在线率异常信息
|
||||
*/
|
||||
@Data
|
||||
public static class OnlineRateAlarm implements Serializable {
|
||||
// 实际在线率值
|
||||
private Double value;
|
||||
// 阈值
|
||||
private Double threshold;
|
||||
// 是否异常
|
||||
private Boolean isAbnormal;
|
||||
}
|
||||
|
||||
/**
|
||||
* 完整性异常信息
|
||||
*/
|
||||
@Data
|
||||
public static class IntegrityAlarm implements Serializable {
|
||||
// 阈值
|
||||
private Double threshold;
|
||||
// 各监测点的完整性数据
|
||||
private List<MonitorPointIntegrity> monitorPoints;
|
||||
|
||||
/**
|
||||
* 监测点完整性信息
|
||||
*/
|
||||
@Data
|
||||
public static class MonitorPointIntegrity implements Serializable {
|
||||
// 监测点ID
|
||||
private String monitorPointId;
|
||||
// 监测点名称
|
||||
private String monitorName;
|
||||
// 该监测点的完整性值
|
||||
private Double value;
|
||||
// 是否异常
|
||||
private Boolean isAbnormal;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,11 @@
|
||||
package com.njcn.csharmonic.pojo.vo;
|
||||
|
||||
|
||||
import com.njcn.csharmonic.pojo.po.CsAlarmData;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@@ -24,8 +24,11 @@ public class AlarmVO implements Serializable {
|
||||
@ApiModelProperty(value = "告警设备台数")
|
||||
private Integer warnNums;
|
||||
|
||||
@ApiModelProperty(value = "通讯中断告警次数")
|
||||
private Integer interruptCounts;
|
||||
@ApiModelProperty(value = "在线率是否告警")
|
||||
private Boolean onlineRateIsWarn;
|
||||
|
||||
@ApiModelProperty(value = "完整性是否告警")
|
||||
private Boolean integrityIsWarn;
|
||||
|
||||
@ApiModelProperty(value = "终端告警次数")
|
||||
private Integer warnCounts;
|
||||
@@ -57,11 +60,8 @@ public class AlarmVO implements Serializable {
|
||||
@ApiModelProperty(value = "告警详情")
|
||||
private List<WarnDetail> warnDetails = new ArrayList<>();
|
||||
|
||||
@ApiModelProperty(value = "中断次数")
|
||||
private Integer interruptCounts = 0;
|
||||
|
||||
@ApiModelProperty(value = "中断详情")
|
||||
private List<String> interruptDetails = new ArrayList<>();
|
||||
@ApiModelProperty(value = "在线率、完整性详情")
|
||||
private CsAlarmData dataDetails;
|
||||
|
||||
@Data
|
||||
public static class WarnDetail implements Serializable {
|
||||
|
||||
Reference in New Issue
Block a user