Forráskód Böngészése

提交告警controller

Zimo 1 napja
szülő
commit
1b86808695

+ 0 - 63
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/hik/HikAlarmController.java

@@ -1,63 +0,0 @@
-package cn.iocoder.yudao.module.pms.hik;
-
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * 海康ISAPI JSON格式告警事件接收控制器
- */
-@Slf4j
-@RestController
-@RequestMapping("/hikvision/alarm")
-public class HikAlarmController {
-
-    /**
-     * 接收海康巡检融合超脑推送的JSON格式告警事件
-     * 接口地址需配置到海康平台:http://你的服务器IP:端口/hikvision/alarm/receive-json
-     */
-    @PostMapping(value = "/receive-json", consumes = MediaType.APPLICATION_JSON_VALUE, produces = MediaType.APPLICATION_JSON_VALUE)
-    public HikAlarmResponse receiveJsonAlarm(@RequestBody HikAlarmEvent alarmEvent) {
-        try {
-            // 1. 打印告警日志,便于调试和排查问题
-            log.info("接收到海康JSON格式告警事件:{}", alarmEvent);
-
-            // 2. 核心业务处理(可抽离到Service层,异步处理)
-            processAlarmEvent(alarmEvent);
-
-            // 3. 快速返回成功响应(必须立即返回,避免设备超时重试)
-            return HikAlarmResponse.success();
-        } catch (Exception e) {
-            // 异常时记录日志,返回失败响应
-            log.error("处理海康JSON告警事件失败", e);
-            return HikAlarmResponse.fail();
-        }
-    }
-
-    /**
-     * 告警事件业务处理逻辑(示例)
-     * 可扩展:入库、消息队列推送、前端通知等
-     */
-    private void processAlarmEvent(HikAlarmEvent alarmEvent) {
-        // 示例1:根据告警类型区分处理
-        switch (alarmEvent.getEventType()) {
-            case "VMD":
-                log.info("【移动侦测告警】设备:{},时间:{}", alarmEvent.getDeviceName(), alarmEvent.getDateTime());
-                break;
-            case "LINEDETECT":
-                log.info("【越界告警】设备:{},通道:{}", alarmEvent.getDeviceID(), alarmEvent.getChannelID());
-                break;
-            default:
-                log.info("【未知类型告警】类型:{},描述:{}", alarmEvent.getEventType(), alarmEvent.getDescription());
-        }
-
-        // 示例2:告警入库(实际项目中可调用Service层操作数据库)
-        // alarmService.saveAlarm(alarmEvent);
-
-        // 示例3:异步推送至消息队列(避免阻塞响应)
-        // rabbitTemplate.convertAndSend("hik-alarm-queue", alarmEvent);
-    }
-}

+ 0 - 34
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/hik/HikAlarmEvent.java

@@ -1,34 +0,0 @@
-package cn.iocoder.yudao.module.pms.hik;
-
-import lombok.Data;
-
-/**
- * 海康ISAPI JSON格式告警事件实体(核心字段,按需扩展)
- * 字段名需与海康设备推送的JSON字段完全一致
- */
-@Data
-public class HikAlarmEvent {
-    /** 设备序列号 */
-    private String deviceID;
-
-    /** 告警事件类型(如VMD:移动侦测、LINEDETECT:越界等) */
-    private String eventType;
-
-    /** 告警状态(0:结束 1:开始) */
-    private Integer eventState;
-
-    /** 告警发生时间(格式:yyyy-MM-dd'T'HH:mm:ss+08:00) */
-    private String dateTime;
-
-    /** 设备通道号 */
-    private String channelID;
-
-    /** 告警描述信息 */
-    private String description;
-
-    /** 设备名称(可选) */
-    private String deviceName;
-
-    /** 告警等级(可选,1-5级) */
-    private Integer alarmLevel;
-}

+ 0 - 31
yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/hik/HikAlarmResponse.java

@@ -1,31 +0,0 @@
-package cn.iocoder.yudao.module.pms.hik;
-
-import lombok.Data;
-
-/**
- * 海康ISAPI JSON格式告警响应实体
- */
-@Data
-public class HikAlarmResponse {
-    /** 响应码(0:成功 非0:失败,海康标准) */
-    private Integer statusCode;
-
-    /** 响应描述 */
-    private String statusString;
-
-    // 快速创建成功响应
-    public static HikAlarmResponse success() {
-        HikAlarmResponse response = new HikAlarmResponse();
-        response.setStatusCode(0);
-        response.setStatusString("Success");
-        return response;
-    }
-
-    // 快速创建失败响应
-    public static HikAlarmResponse fail() {
-        HikAlarmResponse response = new HikAlarmResponse();
-        response.setStatusCode(1);
-        response.setStatusString("Failed");
-        return response;
-    }
-}