首先在数据库中执行 alarm_data_table.sql 文件,创建报警数据表:
-- 报警数据表
CREATE TABLE IF NOT EXISTS `alarm_data` (
`id` varchar(64) NOT NULL COMMENT '主键',
`device_name` varchar(255) DEFAULT NULL COMMENT '设备名称',
`device_code` varchar(255) DEFAULT NULL COMMENT '设备编码',
`device_type` varchar(100) DEFAULT NULL COMMENT '设备类型',
`warning_type` varchar(100) DEFAULT NULL COMMENT '预警类型',
`warning_code` varchar(100) DEFAULT NULL COMMENT '预警编码',
`warning_value` decimal(10,2) DEFAULT NULL COMMENT '预警阈值',
`actual_value` decimal(10,2) DEFAULT NULL COMMENT '实际值',
`alarm_status` int(1) DEFAULT 0 COMMENT '报警状态 0-未处理 1-已处理',
`alarm_time` datetime DEFAULT NULL COMMENT '报警时间',
`handle_time` datetime DEFAULT NULL COMMENT '处理时间',
`handle_user` varchar(255) DEFAULT NULL COMMENT '处理人',
`handle_remark` text COMMENT '处理备注',
`remark` text COMMENT '备注',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`id`),
KEY `idx_device_code` (`device_code`),
KEY `idx_alarm_status` (`alarm_status`),
KEY `idx_alarm_time` (`alarm_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报警数据表';
启动 zk-api-service 服务。
GET /alarmTest/simulateManhole
模拟井盖设备采集数据,会随机生成温度和倾斜角度,超过阈值时自动创建报警记录。
GET /alarmTest/simulateGas
模拟可燃气体设备采集数据,会随机生成温度、湿度和气体浓度,超过阈值时自动创建报警记录。
GET /alarmTest/simulateEnvironment
模拟环境设备采集数据,会随机生成温度和湿度,超过阈值时自动创建报警记录。
POST /alarmTest/customAlarm
Content-Type: application/json
{
"deviceName": "自定义设备",
"deviceCode": "CUSTOM-001",
"deviceType": "custom",
"warningType": "自定义预警",
"warningCode": "WARN-CUSTOM",
"warningValue": 100,
"actualValue": 150,
"remark": "自定义测试报警"
}
GET /alarmData/findByPage?pageNum=1&pageSize=10
分页查询报警数据。
POST /alarmData/handle
Content-Type: application/json
{
"id": "报警记录ID",
"handleUser": "处理人",
"handleRemark": "处理备注"
}
对于其他服务(audio-service, firefighting-pressure-service, radar-service, telemetry-service, water-level-service),可以按照以下步骤集成:
AlarmUtil.java 工具类(参考已有的实现)AlarmUtil