# 报警功能测试说明 ## 一、数据库准备 首先在数据库中执行 `alarm_data_table.sql` 文件,创建报警数据表: ```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` 服务。 ## 三、测试接口 ### 1. 模拟井盖设备报警 ``` GET /alarmTest/simulateManhole ``` 模拟井盖设备采集数据,会随机生成温度和倾斜角度,超过阈值时自动创建报警记录。 ### 2. 模拟可燃气体设备报警 ``` GET /alarmTest/simulateGas ``` 模拟可燃气体设备采集数据,会随机生成温度、湿度和气体浓度,超过阈值时自动创建报警记录。 ### 3. 模拟环境设备报警 ``` GET /alarmTest/simulateEnvironment ``` 模拟环境设备采集数据,会随机生成温度和湿度,超过阈值时自动创建报警记录。 ### 4. 自定义报警 ``` POST /alarmTest/customAlarm Content-Type: application/json { "deviceName": "自定义设备", "deviceCode": "CUSTOM-001", "deviceType": "custom", "warningType": "自定义预警", "warningCode": "WARN-CUSTOM", "warningValue": 100, "actualValue": 150, "remark": "自定义测试报警" } ``` ### 5. 查询报警数据 ``` GET /alarmData/findByPage?pageNum=1&pageSize=10 ``` 分页查询报警数据。 ### 6. 处理报警 ``` POST /alarmData/handle Content-Type: application/json { "id": "报警记录ID", "handleUser": "处理人", "handleRemark": "处理备注" } ``` ## 四、已集成报警功能的服务 - **manhole-service** - 井盖服务 - **flammable-gas-service** - 可燃气体服务 - **environment-service** - 环境服务 ## 五、其他服务集成方式 对于其他服务(audio-service, firefighting-pressure-service, radar-service, telemetry-service, water-level-service),可以按照以下步骤集成: 1. 创建 `AlarmUtil.java` 工具类(参考已有的实现) 2. 在数据保存的 Service 中注入 `AlarmUtil` 3. 在数据保存成功后调用报警检查方法