Browse Source

动态处理报警等级

lixing 4 years ago
parent
commit
41a73e7468

+ 7 - 3
src/main/java/com/persagy/service/impl/AlarmHandleServiceImpl.java

@@ -258,6 +258,7 @@ public class AlarmHandleServiceImpl implements AlarmHandleService {
         nettyMessage.setContent(Lists.newArrayList(jsonObject));
         groupNettyClient.sendMessage(nettyMessage.toString());
     }
+
     /**
      * @param alarmDefine 报警定义
      * @param dateTime    :IOT数据采集时间
@@ -301,14 +302,17 @@ public class AlarmHandleServiceImpl implements AlarmHandleService {
             }
         }
         if (inEffectTime) {
-            //之前是报警状态,现在还是报警,报警值没变化
+            // 之前是报警状态,现在还是报警(可能并未产生报警记录,只是连续触发了报警条件)
             if (AlarmState.State.NOT_DEAL.getType().equals(alarmState.getState())) {
                 // 获取报警持续时间
                 String alarmStartTime = alarmState.getAlarmStartTime();
                 long lastTime = DateUtils.betweenTwoTimeSecond(alarmStartTime, dateTime);
                 String alarmId = alarmRecordRepository.findById(defineId).orElse(new ZktAlarmRecordDO()).getAlarmId();
-                // 发送报警仍在继续的消息
-                sendAlarmContinueMessage(alarmId, lastTime, paramMap, alarmDefine.getProjectId());
+                // 如果已经产生了报警记录
+                if (StringUtils.isNotBlank(alarmId)) {
+                    // 发送报警仍在继续的消息
+                    sendAlarmContinueMessage(alarmId, lastTime, paramMap, alarmDefine.getProjectId());
+                }
             }
             //之前是是正常时候
             if (AlarmState.State.NORMAL.getType().equals(alarmState.getState())) {