feat(alert): 优化告警消息处理逻辑
- 修改主键生成策略为 ASSIGN_ID - 添加 JSON 序列化注解确保 ID 正确序列化 - 调整告警判断逻辑以支持 switch 类型属性 - 完善告警延续机制,避免重复创建告警消息
This commit is contained in:
@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.jeelowcode.framework.utils.model.global.BaseTenantEntity;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
@@ -23,7 +25,8 @@ public class LcPowerEnvAlertMessageEntity extends BaseTenantEntity {
|
||||
/**
|
||||
* 主键
|
||||
*/
|
||||
@TableId(value = "ID", type = IdType.NONE)
|
||||
@TableId(value = "ID", type = IdType.ASSIGN_ID)
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
|
||||
@@ -47,7 +47,8 @@ public class LcPowerEnvMetricEventListener {
|
||||
List<LcPowerEnvMonitorMetricEntity> recentData = metricService.getRecentData(metric.getDeviceUid(), metric.getPropertyCode(), metric.getCreateTime().minusMinutes(3));
|
||||
LcPowerEnvAlertMessageEntity alertMessage = alertService.getLatestAlertMessage(metric.getDeviceUid(), metric.getPropertyCode());
|
||||
|
||||
if (StrUtil.equals(metric.getMetricValue(), "true")) {
|
||||
if ((StrUtil.equals(metric.getMetricValue(), "true") && !StrUtil.equals(metric.getPropertyCode(), "switch")) ||
|
||||
(StrUtil.equals(metric.getMetricValue(), "false") && StrUtil.equals(metric.getPropertyCode(), "switch"))) {
|
||||
// 判断三分钟内是否有告警,如果有,则延续告警消息,延长告警消息时间,如果没有则创建新的告警消息
|
||||
if (CollUtil.isNotEmpty(recentData)
|
||||
&& StrUtil.equals(CollUtil.getFirst(recentData).getMetricValue(), "true")) {
|
||||
|
||||
Reference in New Issue
Block a user