浏览代码

报警记录 监听处理

miaolijing 3 年之前
父节点
当前提交
bd1979aac2

+ 1 - 1
AlarmEngineStarter/src/main/java/com/persagy/apm/energyalarmstarter/alarmengine/jms/AlarmEngineMsgHandler.java

@@ -106,7 +106,7 @@ public class AlarmEngineMsgHandler extends ChannelInboundHandlerAdapter {
      */
     public void syncUpdatedCondition(DmpMessage msg) {
         AlarmCondition alarmCondition = JSONObject.parseObject(msg.getStr1(), AlarmCondition.class);
-        // TODO : 2021/11/16  更新redis
+        // TODO: 2021/11/16  更新redis
     }
 
     /**

+ 51 - 0
AlarmEngineStarter/src/main/java/com/persagy/apm/energyalarmstarter/alarmengine/jms/JmsAlarmRecordEnum.java

@@ -0,0 +1,51 @@
+package com.persagy.apm.energyalarmstarter.alarmengine.jms;
+
+import com.persagy.apm.common.model.annotation.SwaggerDisplayEnum;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.lang.StringUtils;
+
+/**
+ * 报警记录
+ */
+@SwaggerDisplayEnum
+@AllArgsConstructor
+public enum JmsAlarmRecordEnum {
+    /**
+     * 字典类型
+     */
+    NEW_ALARMRECORD("new_alarmRecord", "新增报警记录"),
+    UPDATE_ALARMRECORD("update_alarmRecord", "更新报警记录"),
+    CONDITION_ALARM("continue_alarm", "报警持续处理");
+
+    @Setter
+    @Getter
+    private String type;
+    @Setter
+    @Getter
+    private String desc;
+
+    /**
+     * 根据type获取到枚举对象
+     *
+     * @param type 报告状态编码
+     * @return 报告状态枚举对象
+     * @author lixing
+     * @version V1.0 2021/5/31 4:06 下午
+     */
+    public static JmsAlarmRecordEnum getByType(String type) {
+        if (StringUtils.isBlank(type)) {
+            return null;
+        }
+        JmsAlarmRecordEnum[] enums = JmsAlarmRecordEnum.values();
+        for (JmsAlarmRecordEnum item : enums) {
+            if (type.equals(item.getType())) {
+                return item;
+            }
+        }
+        return null;
+    }
+}
+
+

+ 40 - 1
AlarmEngineStarter/src/main/java/com/persagy/apm/energyalarmstarter/alarmengine/jms/JmsConfig.java

@@ -43,6 +43,11 @@ public class JmsConfig {
     private final String objConditionRelRoutingKey = "obj-condition-rel-routing-key";
 
     /**
+     * 报警记录 路由键
+     */
+    private final String alarmRecordRoutingKey = "alarm-record-routing-key";
+
+    /**
      * 报警条件队列
      */
     private final String conditionQueue = "condition-queue";
@@ -51,6 +56,10 @@ public class JmsConfig {
      * 设备与报警条件关联关系队列
      */
     private final String objConditionRelQueue = "obj-condition-rel-queue";
+    /**
+     * 报警记录队列
+     */
+    private final String alarmRecordQueue = "alarm-record-queue";
 
     @Bean
     public Queue conditionQueue() {
@@ -63,6 +72,11 @@ public class JmsConfig {
     }
 
     @Bean
+    public Queue alarmRecordQueue() {
+        return new Queue(alarmRecordQueue, true);
+    }
+
+    @Bean
     public TopicExchange alarmServiceExchange() {
         return new TopicExchange(exchange);
     }
@@ -77,6 +91,11 @@ public class JmsConfig {
         return BindingBuilder.bind(objConditionRelQueue()).to(alarmServiceExchange()).with(objConditionRelRoutingKey);
     }
 
+    @Bean
+    public Binding alarmRecordBinding() {
+        return BindingBuilder.bind(alarmRecordQueue()).to(alarmServiceExchange()).with(alarmRecordRoutingKey);
+    }
+
     @RabbitHandler
     @RabbitListener(queues = {conditionQueue, objConditionRelQueue})
     public void dealMsg(DmpMessage msg, Channel channel, Message message) throws Exception {
@@ -98,7 +117,27 @@ public class JmsConfig {
                 msgHandler.syncDeletedObjConditionRelList(msg);
             }
         } catch (Exception e) {
-            log.error("消息消费失败,{}", e.getMessage());
+            log.error("报警条件消息消费失败,{}", e.getMessage());
+        }
+        channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
+    }
+
+    @RabbitHandler
+    @RabbitListener(queues = {alarmRecordQueue})
+    public void setAlarmRecordMsg(DmpMessage msg, Channel channel, Message message) throws Exception {
+        try {
+            log.debug("============================== Receive:" + msg);
+            if (JmsAlarmRecordEnum.NEW_ALARMRECORD.getType().equals(msg.getType())) {
+                msgHandler.createAlarmRecordAndSendRecordId(msg);
+            }
+            if (JmsAlarmRecordEnum.UPDATE_ALARMRECORD.getType().equals(msg.getType())) {
+                msgHandler.updateAlarmRecord(msg);
+            }
+            if (JmsAlarmRecordEnum.CONDITION_ALARM.getType().equals(msg.getType())) {
+                msgHandler.alarmContinue(msg);
+            }
+        } catch (Exception e) {
+            log.error("报警记录消息消费失败,{}", e.getMessage());
         }
         channel.basicAck(message.getMessageProperties().getDeliveryTag(), false);
     }