feat(ems): 添加安全警报设备与警报记录管理功能

- 新增安全警报设备实体类 EmsAlarmDevice 及相关业务对象
- 新增警报记录实体类 EmsAlarmRecord 及相关业务对象
- 实现安全警报设备的增删改查接口及业务逻辑
- 实现警报记录的增删改查接口及业务逻辑- 添加设备与记录的关联查询支持
- 配置 MyBatis Mapper 文件及分页查询逻辑
- 添加 Excel 导出功能及相关 VO 视图对象
- 添加基础校验与删除前校验逻辑占位方法
This commit is contained in:
2025-09-30 10:49:22 +08:00
parent 8b31f9bf84
commit bada7a2486
16 changed files with 1165 additions and 0 deletions

View File

@@ -0,0 +1,65 @@
package com.klp.ems.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 安全警报设备对象 ems_alarm_device
*
* @author klp
* @date 2025-09-30
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("ems_alarm_device")
public class EmsAlarmDevice extends BaseEntity {
private static final long serialVersionUID=1L;
/**
*
*/
@TableId(value = "device_id")
private Long deviceId;
/**
* 设备名称
*/
private String deviceName;
/**
* 设备编码
*/
private String deviceCode;
/**
* 设备类型
*/
private String deviceType;
/**
* 绑定的能源位置区域ID
*/
private Long locationId;
/**
* 设备状态0=正常 1=故障 2=离线)
*/
private Long status;
/**
* 设备IP地址
*/
private String ipAddress;
/**
* 固件版本
*/
private String firmwareVer;
/**
* 删除标志0=存在 2=删除)
*/
@TableLogic
private String delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,75 @@
package com.klp.ems.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 警报记录对象 ems_alarm_record
*
* @author klp
* @date 2025-09-30
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("ems_alarm_record")
public class EmsAlarmRecord extends BaseEntity {
private static final long serialVersionUID=1L;
/**
*
*/
@TableId(value = "record_id")
private Long recordId;
/**
* 绑定的设备ID
*/
private Long deviceId;
/**
* 警报类型
*/
private String alarmType;
/**
* 警报级别1=低 2=中 3=高)
*/
private Long alarmLevel;
/**
* 警报内容
*/
private String alarmContent;
/**
* 警报发生时间
*/
private Date alarmTime;
/**
* 处理状态0=未处理 1=处理中 2=已处理)
*/
private Long handleStatus;
/**
* 处理人
*/
private String handleUser;
/**
* 处理时间
*/
private Date handleTime;
/**
* 处理备注
*/
private String handleNotes;
/**
* 删除标志0=存在 2=删除)
*/
@TableLogic
private String delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,66 @@
package com.klp.ems.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
/**
* 安全警报设备业务对象 ems_alarm_device
*
* @author klp
* @date 2025-09-30
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class EmsAlarmDeviceBo extends BaseEntity {
/**
*
*/
private Long deviceId;
/**
* 设备名称
*/
private String deviceName;
/**
* 设备编码
*/
private String deviceCode;
/**
* 设备类型
*/
private String deviceType;
/**
* 绑定的能源位置区域ID
*/
private Long locationId;
/**
* 设备状态0=正常 1=故障 2=离线)
*/
private Long status;
/**
* 设备IP地址
*/
private String ipAddress;
/**
* 固件版本
*/
private String firmwareVer;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,78 @@
package com.klp.ems.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 警报记录业务对象 ems_alarm_record
*
* @author klp
* @date 2025-09-30
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class EmsAlarmRecordBo extends BaseEntity {
/**
*
*/
private Long recordId;
/**
* 绑定的设备ID
*/
private Long deviceId;
/**
* 警报类型
*/
private String alarmType;
/**
* 警报级别1=低 2=中 3=高)
*/
private Long alarmLevel;
/**
* 警报内容
*/
private String alarmContent;
/**
* 警报发生时间
*/
private Date alarmTime;
/**
* 处理状态0=未处理 1=处理中 2=已处理)
*/
private Long handleStatus;
/**
* 处理人
*/
private String handleUser;
/**
* 处理时间
*/
private Date handleTime;
/**
* 处理备注
*/
private String handleNotes;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,81 @@
package com.klp.ems.domain.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat;
import com.klp.common.convert.ExcelDictConvert;
import lombok.Data;
/**
* 安全警报设备视图对象 ems_alarm_device
*
* @author klp
* @date 2025-09-30
*/
@Data
@ExcelIgnoreUnannotated
public class EmsAlarmDeviceVo {
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "")
private Long deviceId;
/**
* 设备名称
*/
@ExcelProperty(value = "设备名称")
private String deviceName;
/**
* 设备编码
*/
@ExcelProperty(value = "设备编码")
private String deviceCode;
/**
* 设备类型
*/
@ExcelProperty(value = "设备类型")
private String deviceType;
/**
* 绑定的能源位置区域ID
*/
@ExcelProperty(value = "绑定的能源位置区域ID")
private Long locationId;
/**
* 设备状态0=正常 1=故障 2=离线)
*/
@ExcelProperty(value = "设备状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "0==正常,1==故障,2==离线")
private Long status;
/**
* 设备IP地址
*/
@ExcelProperty(value = "设备IP地址")
private String ipAddress;
/**
* 固件版本
*/
@ExcelProperty(value = "固件版本")
private String firmwareVer;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
//联查位置名称
private String locationName;
}

View File

@@ -0,0 +1,98 @@
package com.klp.ems.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat;
import com.klp.common.convert.ExcelDictConvert;
import lombok.Data;
/**
* 警报记录视图对象 ems_alarm_record
*
* @author klp
* @date 2025-09-30
*/
@Data
@ExcelIgnoreUnannotated
public class EmsAlarmRecordVo {
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "")
private Long recordId;
/**
* 绑定的设备ID
*/
@ExcelProperty(value = "绑定的设备ID")
private Long deviceId;
/**
* 警报类型
*/
@ExcelProperty(value = "警报类型")
private String alarmType;
/**
* 警报级别1=低 2=中 3=高)
*/
@ExcelProperty(value = "警报级别", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "1==低,2==中,3==高")
private Long alarmLevel;
/**
* 警报内容
*/
@ExcelProperty(value = "警报内容")
private String alarmContent;
/**
* 警报发生时间
*/
@ExcelProperty(value = "警报发生时间")
private Date alarmTime;
/**
* 处理状态0=未处理 1=处理中 2=已处理)
*/
@ExcelProperty(value = "处理状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "0==未处理,1==处理中,2==已处理")
private Long handleStatus;
/**
* 处理人
*/
@ExcelProperty(value = "处理人")
private String handleUser;
/**
* 处理时间
*/
@ExcelProperty(value = "处理时间")
private Date handleTime;
/**
* 处理备注
*/
@ExcelProperty(value = "处理备注")
private String handleNotes;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
//联查设备名称
private String deviceName;
private String deviceCode;
private String deviceType;
private String locationName;
}