Bladeren bron

云端修改边缘端为已恢复的时候要删除已过期的定时任务

易涛 3 jaren geleden
bovenliggende
commit
604a07730d

+ 16 - 0
src/main/java/com/persagy/service/impl/AlarmDefineServiceImpl.java

@@ -6,7 +6,9 @@ import com.alibaba.fastjson.JSONObject;
 import com.persagy.cache.AlarmInfoCache;
 import com.persagy.entity.AlarmDefine;
 import com.persagy.entity.AlarmState;
+import com.persagy.entity.ExpireAlarmMessage;
 import com.persagy.entity.ZktAlarmRecordDO;
+import com.persagy.job.ExpireAlarmQueue;
 import com.persagy.repository.AlarmRecordRepository;
 import com.persagy.service.AlarmDefineService;
 import lombok.extern.slf4j.Slf4j;
@@ -145,6 +147,20 @@ public class AlarmDefineServiceImpl implements AlarmDefineService {
                 zktAlarmRecordDO.setItemId(stateItem.getString("itemId"));
                 zktAlarmRecordDO.setState(stateItem.getString("state"));
                 alarmRecordRepository.save(zktAlarmRecordDO);
+                if("2".equals(state)||"3".equals(state)) {
+                    try {
+                        ExpireAlarmMessage em = new ExpireAlarmMessage();
+                        //取消过期消息
+                        em.setType("2");
+                        em.setJobName(defineId);
+                        em.setJobGroupName("expire");
+                        ExpireAlarmQueue.getExpireAlarmMessageQueue().produce(em);
+                        //报警恢复,报警状态重置回默认
+                        alarmState.reset();
+                    }catch (Exception e){
+                        log.error("取消过期定时任务失败",e);
+                    }
+                }
             }
         }
     }

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

@@ -197,7 +197,7 @@ public class AlarmHandleServiceImpl implements AlarmHandleService {
             int uphold = condition.getEndUphold();
             //超过报警恢复设置的持续时间
             if (DateUtils.betweenTwoTimeSecond(endTime, dateTime) >= uphold) {
-                log.error("产生一条报警恢复消息[{}]>[{}]", DateUtils.betweenTwoTimeSecond(endTime, dateTime), uphold);
+                log.info("产生一条报警恢复消息[{}]>[{}]", DateUtils.betweenTwoTimeSecond(endTime, dateTime), uphold);
                 NettyMessage<AlarmRecord> nettyMessage = new NettyMessage<>(6);
                 ZktAlarmRecordDO alarmRecordDO = alarmRecordRepository.findById(AlarmInfoCache.getAlarmDefineId(alarmDefine)).orElse(new ZktAlarmRecordDO());
                 alarmRecordDO.setDefinitionId(defineId);