事件告警逻辑修改
This commit is contained in:
@@ -4,6 +4,8 @@ import lombok.RequiredArgsConstructor;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.dromara.sis.domain.AlarmRecord;
|
import org.dromara.sis.domain.AlarmRecord;
|
||||||
import org.dromara.sis.domain.bo.SisAlarmEventsBo;
|
import org.dromara.sis.domain.bo.SisAlarmEventsBo;
|
||||||
|
import org.dromara.sis.domain.enums.EventBigTypeEnum;
|
||||||
|
import org.dromara.sis.domain.enums.EventSmallTypeEnum;
|
||||||
import org.dromara.sis.service.AlarmRecordService;
|
import org.dromara.sis.service.AlarmRecordService;
|
||||||
import org.dromara.sis.service.ISisAlarmEventsService;
|
import org.dromara.sis.service.ISisAlarmEventsService;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
@@ -78,6 +80,7 @@ public class AlarmPushController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理告警数据并保存到数据库
|
* 处理告警数据并保存到数据库
|
||||||
|
*
|
||||||
* @param alarmDataList 告警数据列表
|
* @param alarmDataList 告警数据列表
|
||||||
* @return 处理成功的数量
|
* @return 处理成功的数量
|
||||||
*/
|
*/
|
||||||
@@ -128,9 +131,11 @@ public class AlarmPushController {
|
|||||||
private SisAlarmEventsBo convertToAlarmEvents(Map<String, Object> recordMap, Long recordId) {
|
private SisAlarmEventsBo convertToAlarmEvents(Map<String, Object> recordMap, Long recordId) {
|
||||||
SisAlarmEventsBo sisAlarmEvents = new SisAlarmEventsBo();
|
SisAlarmEventsBo sisAlarmEvents = new SisAlarmEventsBo();
|
||||||
sisAlarmEvents.setId(recordId);
|
sisAlarmEvents.setId(recordId);
|
||||||
|
|
||||||
// 转换类型和级别
|
// 转换类型和级别
|
||||||
sisAlarmEvents.setType(convertToLong(recordMap.get("Type")));
|
// sisAlarmEvents.setType(convertToLong(recordMap.get("Type")));
|
||||||
|
sisAlarmEvents.setBigType(EventBigTypeEnum.EQUIPMENT_UP.getCode());
|
||||||
|
sisAlarmEvents.setSmallType(EventSmallTypeEnum.EQP_REPORT_SBSB.getCode());
|
||||||
|
|
||||||
sisAlarmEvents.setLevel(convertToLong(recordMap.get("Level")));
|
sisAlarmEvents.setLevel(convertToLong(recordMap.get("Level")));
|
||||||
|
|
||||||
// 设备信息
|
// 设备信息
|
||||||
|
@@ -32,12 +32,12 @@ public class SisAlarmEvents extends TenantEntity {
|
|||||||
/**
|
/**
|
||||||
* 事件大类
|
* 事件大类
|
||||||
*/
|
*/
|
||||||
private Long bigType;
|
private Integer bigType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 事件小类
|
* 事件小类
|
||||||
*/
|
*/
|
||||||
private Long smallType;
|
private Integer smallType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 报警记录级别(0:特急;1:紧急;2:普通)
|
* 报警记录级别(0:特急;1:紧急;2:普通)
|
||||||
@@ -69,6 +69,16 @@ public class SisAlarmEvents extends TenantEntity {
|
|||||||
*/
|
*/
|
||||||
private Date reportTime;
|
private Date reportTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开始处理时间
|
||||||
|
*/
|
||||||
|
private Date processSt;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 结束处理时间
|
||||||
|
*/
|
||||||
|
private Date processEt;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 事件状态
|
* 事件状态
|
||||||
*/
|
*/
|
||||||
|
@@ -31,12 +31,12 @@ public class SisAlarmEventsBo extends BaseEntity {
|
|||||||
/**
|
/**
|
||||||
* 事件大类
|
* 事件大类
|
||||||
*/
|
*/
|
||||||
private Long bigType;
|
private Integer bigType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 事件小类
|
* 事件小类
|
||||||
*/
|
*/
|
||||||
private Long smallType;
|
private Integer smallType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 报警记录级别(1:一般,2:中级,3:紧急)
|
* 报警记录级别(1:一般,2:中级,3:紧急)
|
||||||
@@ -70,6 +70,17 @@ public class SisAlarmEventsBo extends BaseEntity {
|
|||||||
@NotNull(message = "设备告警时间不能为空", groups = {AddGroup.class, EditGroup.class})
|
@NotNull(message = "设备告警时间不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||||
private Date reportTime;
|
private Date reportTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开始处理时间
|
||||||
|
*/
|
||||||
|
private Date processSt;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 结束处理时间
|
||||||
|
*/
|
||||||
|
private Date processEt;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 事件状态
|
* 事件状态
|
||||||
*/
|
*/
|
||||||
|
@@ -0,0 +1,66 @@
|
|||||||
|
package org.dromara.sis.domain.enums;
|
||||||
|
|
||||||
|
public enum AlarmStatus {
|
||||||
|
/**
|
||||||
|
* 已上报待确认
|
||||||
|
*/
|
||||||
|
REPORTED(10, "已上报待确认"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 已确认待处理
|
||||||
|
*/
|
||||||
|
CONFIRMED(20, "已确认待处理"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理中
|
||||||
|
*/
|
||||||
|
IN_PROGRESS(30, "处理中"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 升级-转工单
|
||||||
|
*/
|
||||||
|
ESCALATED_TO_TICKET(31, "升级-转工单"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 升级-协助
|
||||||
|
*/
|
||||||
|
ESCALATED_TO_ASSISTANCE(32, "升级-协助"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 已解决
|
||||||
|
*/
|
||||||
|
RESOLVED(40, "已解决"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 已关闭
|
||||||
|
*/
|
||||||
|
CLOSED(50, "已关闭");
|
||||||
|
|
||||||
|
private final int code;
|
||||||
|
private final String description;
|
||||||
|
|
||||||
|
AlarmStatus(int code, String description) {
|
||||||
|
this.code = code;
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return description;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据状态码获取对应的枚举值
|
||||||
|
*/
|
||||||
|
public static AlarmStatus fromCode(int code) {
|
||||||
|
for (AlarmStatus status : values()) {
|
||||||
|
if (status.code == code) {
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new IllegalArgumentException("无效的报警状态码: " + code);
|
||||||
|
}
|
||||||
|
}
|
@@ -9,16 +9,49 @@ import lombok.Getter;
|
|||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
public enum EventSmallTypeEnum {
|
public enum EventSmallTypeEnum {
|
||||||
|
/*---------------------------智能相机事件上报-----------------------------------*/
|
||||||
|
SMART_REPORT_RYLG(1001, "人员离岗"),
|
||||||
|
SMART_REPORT_RYSG(1002, "人员睡岗"),
|
||||||
|
SMART_REPORT_RYDD(1003, "人员倒地"),
|
||||||
|
SMART_REPORT_CY(1004, "抽烟"),
|
||||||
|
SMART_REPORT_DDH(1005, "打电话"),
|
||||||
|
SMART_REPORT_WSJ(1006, "玩手机"),
|
||||||
|
SMART_REPORT_RYJJ(1007, "人员聚集"),
|
||||||
|
SMART_REPORT_ZJCR(1008, "周界闯入"),
|
||||||
|
SMART_REPORT_RYPH(1009, "人员徘徊"),
|
||||||
|
SMART_REPORT_FYWL(1010, "翻越围栏"),
|
||||||
|
SMART_REPORT_LJTWGS(1011, "垃圾桶未盖上"),
|
||||||
|
SMART_REPORT_WZQCDFZ(1012, "未正确穿戴服装"),
|
||||||
|
SMART_REPORT_WDKZ(1013, "未戴口罩"),
|
||||||
|
SMART_REPORT_QQRQBJ(1014, "区域入侵报警"),
|
||||||
|
SMART_REPORT_WDAQMBJ(1015, "未戴安全帽报警"),
|
||||||
|
SMART_REPORT_WCDGF(1016, "未穿工服报警"),
|
||||||
|
SMART_REPORT_DDHBJ(1017, "打电话报警"),
|
||||||
|
SMART_REPORT_DDBJ(1018, "跌倒报警"),
|
||||||
|
SMART_REPORT_LGBJ(1019, "离岗报警"),
|
||||||
|
SMART_REPORT_XYBJ(1020, "吸烟报警"),
|
||||||
|
SMART_REPORT_WCDFGF(1021, "未穿反光服报警"),
|
||||||
|
SMART_REPORT_MH(1022, "明火报警"),
|
||||||
|
SMART_REPORT_YW(1023, "烟雾报警"),
|
||||||
|
SMART_REPORT_RYSLCX(1024, "人员数量超限报警"),
|
||||||
|
EQP_REPORT_SBSB(1025, "报警设备上报"),
|
||||||
|
/* -----------------------系统报警相关-------------------------------------*/
|
||||||
|
SYS_REPORT_WLGZ(2001, "网络连接故障"),
|
||||||
|
SYS_REPORT_DLYC(2002, "用户登录异常"),
|
||||||
|
SYS_REPORT_ZFYC(2002, "支付异常"),
|
||||||
|
/* -----------------------设备相关-------------------------------------*/
|
||||||
|
EQP_REPORT_SBGG(3001, "设备故障"),
|
||||||
|
EQP_REPORT_XXCT(3002, "设备与平台信息冲突"),
|
||||||
|
EQP_REPORT_CZJG(3003, "现场处置结果"),
|
||||||
|
EQP_REPORT_XCSG(3005, "现场事故"),
|
||||||
|
EQP_REPORT_XCGF(3006, "现场纠纷"),
|
||||||
|
EQP_REPORT_XCQZ(3007, "现场求助"),
|
||||||
|
EQP_REPORT_SBXJ(3009, "设备巡检"),
|
||||||
|
EQP_REPORT_RYJD(3010, "人员监督"),
|
||||||
|
EQP_REPORT_JKQYXJ(3011, "监控区域巡检"),
|
||||||
|
|
||||||
EQP_REPORT_RYLG(1001, "人员离岗"),
|
|
||||||
EQP_REPORT_RYSG(1002, "人员睡岗"),
|
OUTHER_REPORT_FKWFJR(5001, "访客无法进入"),
|
||||||
EQP_REPORT_RYDD(1003, "人员倒地"),
|
|
||||||
EQP_REPORT_CY(1004, "抽烟"),
|
|
||||||
EQP_REPORT_DDH(1005, "打电话"),
|
|
||||||
EQP_REPORT_WSJ(1006, "玩手机"),
|
|
||||||
EQP_REPORT_RYJJ(1007, "人员聚集"),
|
|
||||||
EQP_REPORT_ZJCR(1008, "周界闯入"),
|
|
||||||
EQP_REPORT_RYPH(1009, "人员徘徊"),
|
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
|
@@ -2,6 +2,8 @@ package org.dromara.sis.domain.vo;
|
|||||||
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import org.dromara.common.translation.annotation.Translation;
|
||||||
|
import org.dromara.common.translation.constant.TransConstant;
|
||||||
import org.dromara.sis.domain.SisAlarmEvents;
|
import org.dromara.sis.domain.SisAlarmEvents;
|
||||||
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
|
import cn.idev.excel.annotation.ExcelIgnoreUnannotated;
|
||||||
import cn.idev.excel.annotation.ExcelProperty;
|
import cn.idev.excel.annotation.ExcelProperty;
|
||||||
@@ -30,21 +32,32 @@ public class SisAlarmEventsVo implements Serializable {
|
|||||||
@Serial
|
@Serial
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 事件大类
|
* 事件大类
|
||||||
*/
|
*/
|
||||||
private Long bigType;
|
private Long bigType;
|
||||||
|
|
||||||
|
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "bigType", other = "event_big_type")
|
||||||
|
private String bigTypeName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 事件小类
|
* 事件小类
|
||||||
*/
|
*/
|
||||||
private Long smallType;
|
private Integer smallType;
|
||||||
|
|
||||||
|
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "smallType", other = "event_small_type")
|
||||||
|
private String smallTypeName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 报警记录级别(1:一般,2:中级,3:紧急)
|
* 报警记录级别(1:一般,2:中级,3:紧急)
|
||||||
*/
|
*/
|
||||||
@ExcelProperty(value = "报警记录级别(0:特急;1:紧急;2:普通)")
|
@ExcelProperty(value = "报警记录级别(1:特急;2:紧急;3:普通)")
|
||||||
private Long level;
|
private Integer level;
|
||||||
|
|
||||||
|
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "level", other = "alarm_level")
|
||||||
|
private String levelName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 报警设备ip
|
* 报警设备ip
|
||||||
@@ -76,11 +89,24 @@ public class SisAlarmEventsVo implements Serializable {
|
|||||||
@ExcelProperty(value = "设备告警时间")
|
@ExcelProperty(value = "设备告警时间")
|
||||||
private Date reportTime;
|
private Date reportTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开始处理时间
|
||||||
|
*/
|
||||||
|
private Date processSt;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 结束处理时间
|
||||||
|
*/
|
||||||
|
private Date processEt;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 事件状态
|
* 事件状态
|
||||||
*/
|
*/
|
||||||
private Integer state;
|
private Integer state;
|
||||||
|
|
||||||
|
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "state", other = "alarm_state")
|
||||||
|
private String stateName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 工单id
|
* 工单id
|
||||||
*/
|
*/
|
||||||
|
@@ -17,6 +17,9 @@ import org.dromara.sis.domain.SisAlarmEventAttachments;
|
|||||||
import org.dromara.sis.domain.SisAlarmEvents;
|
import org.dromara.sis.domain.SisAlarmEvents;
|
||||||
import org.dromara.sis.domain.SisDeviceManage;
|
import org.dromara.sis.domain.SisDeviceManage;
|
||||||
import org.dromara.sis.domain.bo.SisAlarmEventsBo;
|
import org.dromara.sis.domain.bo.SisAlarmEventsBo;
|
||||||
|
import org.dromara.sis.domain.enums.AlarmStatus;
|
||||||
|
import org.dromara.sis.domain.enums.EventBigTypeEnum;
|
||||||
|
import org.dromara.sis.domain.enums.EventSmallTypeEnum;
|
||||||
import org.dromara.sis.domain.vo.SisAlarmEventsVo;
|
import org.dromara.sis.domain.vo.SisAlarmEventsVo;
|
||||||
import org.dromara.sis.mapper.SisAlarmEventsMapper;
|
import org.dromara.sis.mapper.SisAlarmEventsMapper;
|
||||||
import org.dromara.sis.service.ISisAlarmEventAttachmentsService;
|
import org.dromara.sis.service.ISisAlarmEventAttachmentsService;
|
||||||
@@ -160,15 +163,15 @@ public class SisAlarmEventsServiceImpl implements ISisAlarmEventsService {
|
|||||||
}
|
}
|
||||||
// 生成时间信息
|
// 生成时间信息
|
||||||
SisAlarmEvents alarmEvents = new SisAlarmEvents();
|
SisAlarmEvents alarmEvents = new SisAlarmEvents();
|
||||||
//
|
alarmEvents.setBigType(EventBigTypeEnum.EQUIPMENT_UP.getCode());
|
||||||
alarmEvents.setBigType(10L);
|
//TODO 处理上报小类型
|
||||||
alarmEvents.setSmallType(1008L);
|
alarmEvents.setSmallType(EventSmallTypeEnum.EQP_REPORT_SBSB.getCode());
|
||||||
alarmEvents.setLevel(Long.valueOf(level));
|
alarmEvents.setLevel(Long.valueOf(level));
|
||||||
alarmEvents.setDeviceIp(deviceIp);
|
alarmEvents.setDeviceIp(deviceIp);
|
||||||
alarmEvents.setDeviceName(sisDeviceManage.getDeviceName());
|
alarmEvents.setDeviceName(sisDeviceManage.getDeviceName());
|
||||||
alarmEvents.setDeviceGroupId(sisDeviceManage.getId());
|
alarmEvents.setDeviceGroupId(sisDeviceManage.getId());
|
||||||
alarmEvents.setReportTime(new Date());
|
alarmEvents.setReportTime(new Date());
|
||||||
alarmEvents.setState(1);
|
alarmEvents.setState(AlarmStatus.REPORTED.getCode());
|
||||||
alarmEvents.setTenantId(sisDeviceManage.getTenantId());
|
alarmEvents.setTenantId(sisDeviceManage.getTenantId());
|
||||||
alarmEvents.setCreateDept(sisDeviceManage.getCreateDept());
|
alarmEvents.setCreateDept(sisDeviceManage.getCreateDept());
|
||||||
int insert = this.baseMapper.insert(alarmEvents);
|
int insert = this.baseMapper.insert(alarmEvents);
|
||||||
|
@@ -7,6 +7,8 @@ import org.dromara.property.api.domain.vo.RemoteFloorVo;
|
|||||||
import org.dromara.sis.domain.AlarmRecord;
|
import org.dromara.sis.domain.AlarmRecord;
|
||||||
import org.dromara.sis.domain.SisAlarmEvents;
|
import org.dromara.sis.domain.SisAlarmEvents;
|
||||||
import org.dromara.sis.domain.bo.SisAlarmEventsBo;
|
import org.dromara.sis.domain.bo.SisAlarmEventsBo;
|
||||||
|
import org.dromara.sis.domain.enums.EventBigTypeEnum;
|
||||||
|
import org.dromara.sis.domain.enums.EventSmallTypeEnum;
|
||||||
import org.dromara.sis.service.AlarmRecordService;
|
import org.dromara.sis.service.AlarmRecordService;
|
||||||
import org.dromara.sis.service.ApiService;
|
import org.dromara.sis.service.ApiService;
|
||||||
import org.dromara.sis.service.ISisAlarmEventsService;
|
import org.dromara.sis.service.ISisAlarmEventsService;
|
||||||
@@ -86,7 +88,9 @@ public class DataSyncTask {
|
|||||||
//同步成功后,将两张表的数据合并到alarmEvents表中
|
//同步成功后,将两张表的数据合并到alarmEvents表中
|
||||||
SisAlarmEventsBo sisAlarmEvents = new SisAlarmEventsBo();
|
SisAlarmEventsBo sisAlarmEvents = new SisAlarmEventsBo();
|
||||||
sisAlarmEvents.setId(recordId);
|
sisAlarmEvents.setId(recordId);
|
||||||
sisAlarmEvents.setType(Long.valueOf((Integer) recordMap.get("Type")));
|
sisAlarmEvents.setBigType(EventBigTypeEnum.EQUIPMENT_UP.getCode());
|
||||||
|
sisAlarmEvents.setSmallType(EventSmallTypeEnum.EQP_REPORT_SBSB.getCode());
|
||||||
|
|
||||||
sisAlarmEvents.setLevel(Long.valueOf((Integer) recordMap.get("Level")));
|
sisAlarmEvents.setLevel(Long.valueOf((Integer) recordMap.get("Level")));
|
||||||
sisAlarmEvents.setDeviceIp((String) recordMap.get("DeviceSipNum"));
|
sisAlarmEvents.setDeviceIp((String) recordMap.get("DeviceSipNum"));
|
||||||
sisAlarmEvents.setDeviceName(recordMap.get("DeviceName").toString());
|
sisAlarmEvents.setDeviceName(recordMap.get("DeviceName").toString());
|
||||||
|
Reference in New Issue
Block a user