فهرست منبع

添加倾斜等告警

fuyuchuan 5 روز پیش
والد
کامیت
ced20a1dc7

+ 10 - 0
service-cdi/service-cdi-biz/src/main/java/com/usky/cdi/controller/AlarmDataController.java

@@ -2,6 +2,7 @@ package com.usky.cdi.controller;
 
 import com.usky.cdi.service.impl.AlarmDataTransferService;
 import com.usky.cdi.service.vo.alarm.AlarmMessage1VO;
+import com.usky.cdi.service.vo.alarm.AlarmMessage2VO;
 import com.usky.cdi.service.vo.alarm.AlarmMessageVO;
 import com.usky.cdi.service.vo.base.EngineeringBaseVO;
 import lombok.extern.slf4j.Slf4j;
@@ -43,4 +44,13 @@ public class AlarmDataController {
         boolean success = alarmDataTransferService.sendAlarmMessage1(vo);
         return success ? "上报成功" : "上报失败";
     }
+
+    /**
+     * 上报倾斜、位移、裂缝监测事件
+     */
+    @PostMapping("/alarmMessage2")
+    public String sendAlarmMessage2(@RequestBody AlarmMessage2VO vo) {
+        boolean success = alarmDataTransferService.sendAlarmMessage2(vo);
+        return success ? "上报成功" : "上报失败";
+    }
 }

+ 24 - 0
service-cdi/service-cdi-biz/src/main/java/com/usky/cdi/service/impl/AlarmDataTransferService.java

@@ -6,6 +6,7 @@ import com.alibaba.nacos.shaded.com.google.gson.Gson;
 import com.usky.cdi.service.config.mqtt.MqttOutConfig;
 import com.usky.cdi.service.util.SnowflakeIdGenerator;
 import com.usky.cdi.service.vo.alarm.AlarmMessage1VO;
+import com.usky.cdi.service.vo.alarm.AlarmMessage2VO;
 import com.usky.cdi.service.vo.alarm.AlarmMessageVO;
 import com.usky.cdi.service.vo.base.FloorPlaneVO;
 import lombok.extern.slf4j.Slf4j;
@@ -41,6 +42,7 @@ public class AlarmDataTransferService {
         // 使用默认的workerId和datacenterId,实际项目中可以从配置读取
         this.idGenerator = new SnowflakeIdGenerator(1L, 1L);
     }
+
     /**
      * 获取当前时间字符串
      */
@@ -136,4 +138,26 @@ public class AlarmDataTransferService {
             return false;
         }
     }
+
+    public boolean sendAlarmMessage2(AlarmMessage2VO vo) {
+        try {
+            if (vo.getDataPacketID() == null) {
+                vo.setDataPacketID(generateDataPacketID());
+            }
+            if (vo.getPublishTime() == null) {
+                vo.setPublishTime(getCurrentTime());
+            }
+
+            JSONObject jsonObject = (JSONObject) JSON.toJSON(vo);
+            String json = jsonObject.toJSONString();
+            System.out.println(json);
+            String topic = "alarm/message";
+            mqttGateway.sendToMqtt(topic, json);
+
+            return true;
+        } catch (Exception e) {
+            log.error("发送告警信息失败,AlarmID: {}", vo.getAlarmID(), e);
+            return false;
+        }
+    }
 }

+ 69 - 0
service-cdi/service-cdi-biz/src/main/java/com/usky/cdi/service/vo/alarm/AlarmMessage2VO.java

@@ -0,0 +1,69 @@
+package com.usky.cdi.service.vo.alarm;
+
+import lombok.Data;
+
+@Data
+public class AlarmMessage2VO {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 数据包ID
+     */
+    private Long dataPacketID;
+
+    /**
+     * 人防工程ID
+     */
+    private Long engineeringID;
+
+    /**
+     * 事件ID
+     */
+    private Integer alarmID;
+
+    /**
+     * 事件来源
+     */
+    private Integer alarmSource;
+
+    /**
+     * 防护单元
+     */
+    private String unitName;
+
+    /**
+     * 事件类型
+     */
+    private String alarmType;
+
+    /**
+     * 事件状态
+     */
+    private Integer alarmStatus;
+
+    /**
+     * 倾斜、位移、裂缝监测结果
+     */
+    private Double sensorValue;
+
+    /**
+     * 事件发生/更新时间
+     */
+    private String alarmUpdateTime;
+
+    /**
+     * 监测对象编号
+     */
+    private String monitorObjNo;
+
+    /**
+     * 事件描述
+     */
+    private String alarmDesc;
+
+    /**
+     * 上报时间
+     */
+    private String publishTime;
+
+}

+ 1 - 1
service-cdi/service-cdi-biz/src/main/resources/mapper/cdi/DmpDeviceMapper.xml

@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.usky.alarm.mapper.DmpDeviceMapper">
+<mapper namespace="com.usky.cdi.mapper.DmpDeviceMapper">
 
     <!-- 通用查询映射结果 -->
     <resultMap id="BaseResultMap" type="com.usky.cdi.domain.DmpDevice">