Compare commits
2 Commits
80a44540d8
...
247ad09a58
Author | SHA1 | Date | |
---|---|---|---|
247ad09a58 | |||
333fadf6df |
@ -4,6 +4,8 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.dromara.sis.domain.AlarmRecord;
|
||||
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.ISisAlarmEventsService;
|
||||
import org.springframework.http.HttpStatus;
|
||||
@ -46,7 +48,7 @@ public class AlarmPushController {
|
||||
} catch (Exception e) {
|
||||
log.error("处理单条告警推送失败: {}", e.getMessage(), e);
|
||||
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
|
||||
.body(Collections.singletonMap("error", "处理告警数据失败: " + e.getMessage()));
|
||||
.body(Collections.singletonMap("error", "处理告警数据失败: " + e.getMessage()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -72,12 +74,13 @@ public class AlarmPushController {
|
||||
} catch (Exception e) {
|
||||
log.error("处理批量告警推送失败: {}", e.getMessage(), e);
|
||||
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR)
|
||||
.body(Collections.singletonMap("error", "处理告警数据失败: " + e.getMessage()));
|
||||
.body(Collections.singletonMap("error", "处理告警数据失败: " + e.getMessage()));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理告警数据并保存到数据库
|
||||
*
|
||||
* @param alarmDataList 告警数据列表
|
||||
* @return 处理成功的数量
|
||||
*/
|
||||
@ -86,8 +89,8 @@ public class AlarmPushController {
|
||||
|
||||
// 转换报警记录
|
||||
List<AlarmRecord> records = alarmDataList.stream()
|
||||
.map(alarmRecordService::convertFromMap)
|
||||
.collect(Collectors.toList());
|
||||
.map(alarmRecordService::convertFromMap)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 提取操作记录数据
|
||||
Map<Long, List<Map<String, Object>>> operatorMap = new HashMap<>();
|
||||
@ -131,6 +134,9 @@ public class AlarmPushController {
|
||||
|
||||
// 转换类型和级别
|
||||
// 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")));
|
||||
|
||||
// 设备信息
|
||||
|
@ -32,12 +32,12 @@ public class SisAlarmEvents extends TenantEntity {
|
||||
/**
|
||||
* 事件大类
|
||||
*/
|
||||
private Long bigType;
|
||||
private Integer bigType;
|
||||
|
||||
/**
|
||||
* 事件小类
|
||||
*/
|
||||
private Long smallType;
|
||||
private Integer smallType;
|
||||
|
||||
/**
|
||||
* 报警记录级别(0:特急;1:紧急;2:普通)
|
||||
@ -69,6 +69,16 @@ public class SisAlarmEvents extends TenantEntity {
|
||||
*/
|
||||
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:紧急)
|
||||
@ -70,6 +70,17 @@ public class SisAlarmEventsBo extends BaseEntity {
|
||||
@NotNull(message = "设备告警时间不能为空", groups = {AddGroup.class, EditGroup.class})
|
||||
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
|
||||
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, "人员睡岗"),
|
||||
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, "人员徘徊"),
|
||||
|
||||
OUTHER_REPORT_FKWFJR(5001, "访客无法进入"),
|
||||
|
||||
|
||||
;
|
||||
|
@ -2,6 +2,8 @@ package org.dromara.sis.domain.vo;
|
||||
|
||||
import java.util.Date;
|
||||
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 cn.idev.excel.annotation.ExcelIgnoreUnannotated;
|
||||
import cn.idev.excel.annotation.ExcelProperty;
|
||||
@ -30,21 +32,32 @@ public class SisAlarmEventsVo implements Serializable {
|
||||
@Serial
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long id;
|
||||
|
||||
/**
|
||||
* 事件大类
|
||||
*/
|
||||
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:紧急)
|
||||
*/
|
||||
@ExcelProperty(value = "报警记录级别(0:特急;1:紧急;2:普通)")
|
||||
private Long level;
|
||||
@ExcelProperty(value = "报警记录级别(1:特急;2:紧急;3:普通)")
|
||||
private Integer level;
|
||||
|
||||
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "level", other = "alarm_level")
|
||||
private String levelName;
|
||||
|
||||
/**
|
||||
* 报警设备ip
|
||||
@ -76,11 +89,24 @@ public class SisAlarmEventsVo implements Serializable {
|
||||
@ExcelProperty(value = "设备告警时间")
|
||||
private Date reportTime;
|
||||
|
||||
/**
|
||||
* 开始处理时间
|
||||
*/
|
||||
private Date processSt;
|
||||
|
||||
/**
|
||||
* 结束处理时间
|
||||
*/
|
||||
private Date processEt;
|
||||
|
||||
/**
|
||||
* 事件状态
|
||||
*/
|
||||
private Integer state;
|
||||
|
||||
@Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "state", other = "alarm_state")
|
||||
private String stateName;
|
||||
|
||||
/**
|
||||
* 工单id
|
||||
*/
|
||||
|
@ -17,6 +17,9 @@ import org.dromara.sis.domain.SisAlarmEventAttachments;
|
||||
import org.dromara.sis.domain.SisAlarmEvents;
|
||||
import org.dromara.sis.domain.SisDeviceManage;
|
||||
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.mapper.SisAlarmEventsMapper;
|
||||
import org.dromara.sis.service.ISisAlarmEventAttachmentsService;
|
||||
@ -160,15 +163,15 @@ public class SisAlarmEventsServiceImpl implements ISisAlarmEventsService {
|
||||
}
|
||||
// 生成时间信息
|
||||
SisAlarmEvents alarmEvents = new SisAlarmEvents();
|
||||
//
|
||||
alarmEvents.setBigType(10L);
|
||||
alarmEvents.setSmallType(1008L);
|
||||
alarmEvents.setBigType(EventBigTypeEnum.EQUIPMENT_UP.getCode());
|
||||
//TODO 处理上报小类型
|
||||
alarmEvents.setSmallType(EventSmallTypeEnum.EQP_REPORT_SBSB.getCode());
|
||||
alarmEvents.setLevel(Long.valueOf(level));
|
||||
alarmEvents.setDeviceIp(deviceIp);
|
||||
alarmEvents.setDeviceName(sisDeviceManage.getDeviceName());
|
||||
alarmEvents.setDeviceGroupId(sisDeviceManage.getId());
|
||||
alarmEvents.setReportTime(new Date());
|
||||
alarmEvents.setState(1);
|
||||
alarmEvents.setState(AlarmStatus.REPORTED.getCode());
|
||||
alarmEvents.setTenantId(sisDeviceManage.getTenantId());
|
||||
alarmEvents.setCreateDept(sisDeviceManage.getCreateDept());
|
||||
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.SisAlarmEvents;
|
||||
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.ApiService;
|
||||
import org.dromara.sis.service.ISisAlarmEventsService;
|
||||
@ -86,7 +88,9 @@ public class DataSyncTask {
|
||||
//同步成功后,将两张表的数据合并到alarmEvents表中
|
||||
SisAlarmEventsBo sisAlarmEvents = new SisAlarmEventsBo();
|
||||
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.setDeviceIp((String) recordMap.get("DeviceSipNum"));
|
||||
sisAlarmEvents.setDeviceName(recordMap.get("DeviceName").toString());
|
||||
|
Loading…
Reference in New Issue
Block a user