Browse Source

增加todo注释

lixing 3 years ago
parent
commit
1ae5340360

+ 70 - 0
src/main/java/com/persagy/entity/v2/DmpMessage.java

@@ -0,0 +1,70 @@
+package com.persagy.entity.v2;
+
+import com.alibaba.fastjson.JSONObject;
+import com.persagy.utils.DateUtils;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @description:中台消息队列格式
+ * @author:LuoGuangyi
+ * @company:PersagyTechnologyCo.,Ltd
+ * @since:2020/10/28 002816:10
+ * @version:V1.0
+ **/
+@Data
+public class DmpMessage {
+    private String mid;
+    /**
+     *  type = alarmConfigsChange
+     *  报警消息变化
+     */
+    private String type;
+    private String groupCode;
+    private String projectId;
+    private String targetId;
+    private Integer int1;
+    private Integer int2;
+    private String str1;
+    private String str2;
+    private String sendTime;
+    private String expireTime;
+    private String appId;
+    private String userId;
+    /**
+     * 分别存放新增和修改的报警定义条目
+     * {
+     *     "createdConfigUniques": [
+     *         {
+     *             "itemCode": "报警条目编码",
+     *             "objId": "对象id"
+     *         }
+     *     ],
+     *     "deletedConfigUniques": [
+     *         {
+     *             "itemCode": "报警条目编码",
+     *             "objId": "对象id"
+     *         }
+     *     ]
+     * }
+     */
+    private JSONObject exts;
+
+    @Override
+    public String toString() {
+        return JSONObject.toJSONString(this);
+    }
+
+    /**
+     * 设置默认值
+     *
+     * @author lixing
+     * @version V1.0 2021/11/17 10:07 上午
+     */
+    public void setDefaultValue() {
+        this.setAppId("alarm-engine");
+        this.setSendTime(DateUtils.formatDate(new Date()));
+        this.setUserId("system");
+    }
+}

+ 13 - 7
src/main/java/com/persagy/job/AlarmExpireJob.java

@@ -3,6 +3,7 @@ package com.persagy.job;
 import cn.hutool.core.date.DatePattern;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.persagy.cache.AlarmInfoCache;
 import com.persagy.cache.CreatedAlarmIdsCache;
 import com.persagy.client.GroupNettyClient;
@@ -10,6 +11,7 @@ import com.persagy.entity.AlarmConditionState;
 import com.persagy.entity.AlarmRecord;
 import com.persagy.entity.NettyMessage;
 import com.persagy.entity.ZktAlarmRecordDO;
+import com.persagy.entity.v2.DmpMessage;
 import com.persagy.enumeration.AlarmDefineStateEnum;
 import com.persagy.enumeration.NettyMsgTypeEnum;
 import com.persagy.repository.AlarmRecordRepository;
@@ -140,10 +142,8 @@ public class AlarmExpireJob extends QuartzJobBean {
                     return;
                 }
 
-                log.info("报警参数为:[{}]", zktAlarmRecordDO.toString());
-                NettyMessage<AlarmRecord> nettyMessage = new NettyMessage<>(
-                        NettyMsgTypeEnum.UPDATE_RECORD_STATE, zktAlarmRecordDO.getProjectId());
-                nettyMessage.setStreamId(nums.getAndIncrement());
+                log.info("报警参数为:[{}]", zktAlarmRecordDO);
+
                 AlarmRecord message = AlarmRecord.builder()
                         .id(alarmId)
                         .state(StringUtil.getInt(state))
@@ -155,11 +155,17 @@ public class AlarmExpireJob extends QuartzJobBean {
                     message.setEndInfo(endInfo);
                     message.setEndTime(DateUtils.parseDate(endTime));
                 }
-                nettyMessage.setContent(Collections.singletonList(message));
+
+                DmpMessage dmpMessage = new DmpMessage();
+                dmpMessage.setDefaultValue();
+                dmpMessage.setMid(alarmId);
+                dmpMessage.setProjectId(zktAlarmRecordDO.getProjectId());
+                dmpMessage.setGroupCode(groupCode);
+                dmpMessage.setExts(JSONObject.parseObject(JSONObject.toJSONString(message)));
                 //{"id","123", "state":1, "groupCode":"wd", "projectId":"Pj123"}
                 log.info("定时任务执行完成,向云端推送{}消息", jobType);
-                groupNettyClient.sendMessage(nettyMessage.toString());
-
+                // TODO: 2021/11/17 向mq推送消息
+                // TODO: 2021/11/17 移除缓存信息,将报警定义状态更新到redis
                 // 删除缓存中报警id
                 createdAlarmIdsCache.remove(alarmId);
 

+ 19 - 14
src/main/java/com/persagy/service/impl/AlarmHandleServiceImpl.java

@@ -13,6 +13,7 @@ import com.persagy.cache.CreatedAlarmIdsCache;
 import com.persagy.client.GroupNettyClient;
 import com.persagy.entity.*;
 import com.persagy.entity.v2.AlarmCondition;
+import com.persagy.entity.v2.DmpMessage;
 import com.persagy.entity.v2.ItemCodeCondition;
 import com.persagy.entity.v2.ObjConditionInfo;
 import com.persagy.enumeration.NettyMsgTypeEnum;
@@ -212,7 +213,6 @@ public class AlarmHandleServiceImpl implements AlarmHandleService {
                 return;
             }
 
-            // redis加锁 // TODO: 2021/11/15  
             synchronized (alarmDefine.getId().intern()) {
 
                 //报警产生值满足(这里的满足不考虑报警持续时间)
@@ -469,9 +469,8 @@ public class AlarmHandleServiceImpl implements AlarmHandleService {
      * @since: 2021/2/7 10:03 上午
      * @version: V1.0
      */
-    private NettyMessage<AlarmRecord> sendAlarmRecoverMessage(
-            String projectId, String recoverTime, HashMap<String, Object> paramMap, String alarmId)
-            throws InterruptedException {
+    private void sendAlarmRecoverMessage(
+            String projectId, String recoverTime, HashMap<String, Object> paramMap, String alarmId) {
         //报警恢复参数
         AlarmRecord alarmRecoverRecord = AlarmRecord.builder()
                 .state(2)
@@ -481,11 +480,14 @@ public class AlarmHandleServiceImpl implements AlarmHandleService {
                 .endInfo(JSONObject.toJSONString(paramMap))
                 .build();
         alarmRecoverRecord.setId(alarmId);
-        NettyMessage<AlarmRecord> nettyMessage = new NettyMessage<>(
-                NettyMsgTypeEnum.UPDATE_RECORD_STATE, projectId);
-        nettyMessage.setContent(Collections.singletonList(alarmRecoverRecord));
-        groupNettyClient.sendMessage(nettyMessage.toString());
-        return nettyMessage;
+
+        DmpMessage dmpMessage = new DmpMessage();
+        dmpMessage.setDefaultValue();
+        dmpMessage.setMid(alarmId);
+        dmpMessage.setProjectId(projectId);
+        dmpMessage.setGroupCode(groupCode);
+        dmpMessage.setExts(JSONObject.parseObject(JSONObject.toJSONString(alarmRecoverRecord)));
+        // TODO: 2021/11/17 向mq发送消息
     }
 
     /**
@@ -603,6 +605,7 @@ public class AlarmHandleServiceImpl implements AlarmHandleService {
                 long lastTime = DateUtils.betweenTwoTimeSecond(alarmStartTime, dataTime);
                 String alarmId = alarmRecordRepository.findById(defineId).orElse(new ZktAlarmRecordDO()).getAlarmId();
                 if (StringUtils.isNotBlank(alarmId)) {
+                    // TODO: 2021/11/17 移除alarmLastTimeCache,向mq发送报警持续消息
                     alarmLastTimeCache.put(alarmId, Integer.valueOf(String.valueOf(lastTime)));
                     log.debug("开始拼装报警持续消息");
                     initAlarmContinueMsg(alarmId, lastTime, paramMap, alarmDefine.getProjectId());
@@ -807,10 +810,12 @@ public class AlarmHandleServiceImpl implements AlarmHandleService {
                 .createUser(systemId)
                 .treatState(1)
                 .build();
-        NettyMessage<AlarmRecord> nettyMessage = new NettyMessage<>(
-                NettyMsgTypeEnum.CREATE_RECORD, alarmDefine.getProjectId());
-        nettyMessage.setContent(Collections.singletonList(alarmRecord));
-        //推送一条报警记录给远端
-        groupNettyClient.sendMessage(nettyMessage.toString());
+        DmpMessage dmpMessage = new DmpMessage();
+        dmpMessage.setDefaultValue();
+        dmpMessage.setMid(alarmId);
+        dmpMessage.setProjectId(alarmDefine.getProjectId());
+        dmpMessage.setGroupCode(groupCode);
+        dmpMessage.setExts(JSONObject.parseObject(JSONObject.toJSONString(alarmRecord)));
+        // TODO: 2021/11/16 消息发送至mq
     }
 }