|
@@ -0,0 +1,136 @@
|
|
|
+package vip.xiaonuo.coldchain.core.alarm.bean;
|
|
|
+
|
|
|
+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.google.common.collect.Lists;
|
|
|
+import io.swagger.v3.oas.annotations.media.Schema;
|
|
|
+import lombok.Data;
|
|
|
+import vip.xiaonuo.coldchain.core.handler.NotificationChannelListTypeHandler;
|
|
|
+import vip.xiaonuo.coldchain.core.handler.SensorAlarmUserTypeHandler;
|
|
|
+import vip.xiaonuo.common.pojo.CommonEntity;
|
|
|
+
|
|
|
+import java.util.List;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @author jackzhou
|
|
|
+ * @version 1.0
|
|
|
+ * @project jfcloud-coldchain
|
|
|
+ * @description 告警信息类,包含告警内容、告警值、告警接收人等信息。
|
|
|
+ * @date 2024/11/26
|
|
|
+ */
|
|
|
+@Data
|
|
|
+@TableName("sensor_alarm")
|
|
|
+public class SensorAlarm extends CommonEntity {
|
|
|
+ @TableId(type = IdType.ASSIGN_UUID)
|
|
|
+ private String id;
|
|
|
+ /**
|
|
|
+ * 告警内容,通常为告警的详细描述,例如温度、湿度等超标的具体信息
|
|
|
+ */
|
|
|
+ @Schema(description = "告警内容,通常为告警的详细描述,例如温度、湿度等超标的具体信息")
|
|
|
+ private String message;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 告警值,表示触发告警的实际数值,例如超标的温度值
|
|
|
+ */
|
|
|
+ @Schema(description = "告警值,表示触发告警的实际数值,例如超标的温度值")
|
|
|
+ private float value;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 告警接收人,存储告警通知的接收用户信息
|
|
|
+ */
|
|
|
+ /**
|
|
|
+ * 告警接收人,存储告警通知的接收用户信息
|
|
|
+ */
|
|
|
+ @TableField(value = "alarm_users", typeHandler = SensorAlarmUserTypeHandler.class)
|
|
|
+ @Schema(description = "告警接收人,存储告警通知的接收用户信息")
|
|
|
+ private List<SensorAlarmUser> alarmUsers = Lists.newArrayList();
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 告警类型,例如温度过高、湿度过低等
|
|
|
+ */
|
|
|
+ @Schema(description = "告警类型,例如温度过高、湿度过低等")
|
|
|
+ private String alarmType;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 告警时间,记录触发告警的时间
|
|
|
+ */
|
|
|
+ @Schema(description = "告警时间,记录触发告警的时间")
|
|
|
+ private String alarmTime;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 告警优先级,用于区分告警的紧急程度,例如高、低、紧急等
|
|
|
+ */
|
|
|
+ @Schema(description = "告警优先级,用于区分告警的紧急程度,例如高、低、紧急等")
|
|
|
+ private String priority;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 告警来源,记录告警是来自于哪个设备、传感器或系统
|
|
|
+ */
|
|
|
+ @Schema(description = "告警来源,记录告警是来自于哪个设备、传感器或系统")
|
|
|
+ private String source;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设备ID,指示告警是由哪个设备触发的
|
|
|
+ */
|
|
|
+ @Schema(description = "设备ID,指示告警是由哪个设备触发的")
|
|
|
+ private String deviceId;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设备名称,给出触发告警的设备的名称(可选)
|
|
|
+ */
|
|
|
+ @Schema(description = "设备名称,给出触发告警的设备的名称(可选)")
|
|
|
+ private String deviceName;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 告警处理状态,用于表示告警是否已经被处理,未处理、处理中、已处理等
|
|
|
+ */
|
|
|
+ @Schema(description = "告警处理状态,用于表示告警是否已经被处理,未处理、处理中、已处理等")
|
|
|
+ private String status;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设备所在位置,指明告警设备的物理位置,便于定位
|
|
|
+ */
|
|
|
+ @Schema(description = "设备所在位置,指明告警设备的物理位置,便于定位")
|
|
|
+ private String location;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 是否已通知告警接收人,标识告警是否已成功发送通知
|
|
|
+ */
|
|
|
+ @Schema(description = "是否已通知告警接收人,标识告警是否已成功发送通知")
|
|
|
+ @TableField("is_notified")
|
|
|
+ private boolean isNotified;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 用户的通知渠道设置,支持选择接收告警的多个渠道,如短信、邮件、APP通知等
|
|
|
+ */
|
|
|
+ @Schema(description = "用户的通知渠道设置,支持选择接收告警的多个渠道,如短信、邮件、APP通知等")
|
|
|
+ @TableField(value = "notification_channel", typeHandler = NotificationChannelListTypeHandler.class)
|
|
|
+ private List<NotificationChannel> notificationChannel = List.of(NotificationChannel.WECHAT);
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 用户的通知时间段,限制用户接收告警的时间范围(如仅在工作时间接收告警)
|
|
|
+ */
|
|
|
+ @Schema(description = "用户的通知时间段,限制用户接收告警的时间范围(如仅在工作时间接收告警)")
|
|
|
+ private String notificationTimeFrame;
|
|
|
+ /**
|
|
|
+ * 其他附加信息,例如报警的原因、建议措施等
|
|
|
+ */
|
|
|
+ @Schema(description = "其他附加信息,例如报警的原因、建议措施等")
|
|
|
+ private String additionalInfo;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 告警触发阈值,记录触发告警的具体阈值
|
|
|
+ */
|
|
|
+ @Schema(description = "告警触发阈值,记录触发告警的具体阈值")
|
|
|
+ private float threshold;
|
|
|
+
|
|
|
+
|
|
|
+ @Schema(description = "微信请求状态码")
|
|
|
+ private String weixinRequestCode;
|
|
|
+
|
|
|
+
|
|
|
+ public SensorAlarm() {
|
|
|
+ }
|
|
|
+}
|