lixing 4 роки тому
батько
коміт
c8b047abc4

+ 8 - 4
src/main/java/com/persagy/job/AlarmExpireJob.java

@@ -5,8 +5,8 @@ import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import com.persagy.cache.AlarmInfoCache;
 import com.persagy.client.GroupNettyClient;
-import com.persagy.entity.AlarmRecord;
 import com.persagy.entity.AlarmDefineState;
+import com.persagy.entity.AlarmRecord;
 import com.persagy.entity.NettyMessage;
 import com.persagy.entity.ZktAlarmRecordDO;
 import com.persagy.repository.AlarmRecordRepository;
@@ -19,7 +19,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.scheduling.quartz.QuartzJobBean;
 
-import java.util.Arrays;
 import java.util.Collections;
 import java.util.Date;
 import java.util.concurrent.atomic.AtomicLong;
@@ -102,20 +101,24 @@ public class AlarmExpireJob extends QuartzJobBean {
     @Override
     protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
         try {
+            String jobType = "2".equals(state) ? "恢复" : "过期";
             JobDataMap mergedJobDataMap = context.getMergedJobDataMap();
-            log.info("----------------开始---------------------{}", alarmRecord);
+            log.info("定时任务开始{}", alarmRecord);
+            log.info("定时任务为{}任务", jobType);
             log.warn("refireCount:[{}],过期/恢复时间:[{}/{}],实际执行时间:[{}]", context.getRefireCount(), StringUtil.getString(expireTime), StringUtil.getString(endTime), DateUtil.format(context.getFireTime(), DatePattern.ISO8601_PATTERN));
             if (StringUtils.isNotBlank(alarmRecord)) {
                 ZktAlarmRecordDO zktAlarmRecordDO = StringUtil.tranferItemToDTO(alarmRecord, ZktAlarmRecordDO.class);
-                //立即过期,过期的时候可能还没有报警记录ID,需要重新执行下
+                // 立即过期的场景,过期的时候可能还没有报警记录ID,需要重新执行下
                 String alarmId = alarmRecordRepository.findById(zktAlarmRecordDO.getDefinitionId()).orElse(new ZktAlarmRecordDO()).getAlarmId();
                 if (StringUtil.isEmpty(alarmId)) {
+                    log.info("未获取到报警记录id, 定时任务将在5分钟后重新执行");
                     log.info("refire:[{}]", refire);
                     mergedJobDataMap.put("refire", String.valueOf(StringUtil.getInt(refire) + 1));
                     reFireJob(context, mergedJobDataMap);
                     log.info("----------------结束---------------------");
                     return;
                 }
+
                 log.info("报警参数为:[{}]", zktAlarmRecordDO.toString());
                 NettyMessage<AlarmRecord> nettyMessage = new NettyMessage<>(6, zktAlarmRecordDO.getProjectId());
                 nettyMessage.setStreamId(nums.getAndIncrement());
@@ -131,6 +134,7 @@ public class AlarmExpireJob extends QuartzJobBean {
                 }
                 nettyMessage.setContent(Collections.singletonList(message));
                 //{"id","123", "state":1, "groupCode":"wd", "projectId":"Pj123"}
+                log.info("定时任务执行完成,向云端推送{}消息", jobType);
                 groupNettyClient.sendMessage(nettyMessage.toString());
                 //已经过期的时候删除掉这条报警定义了,保证不会再次产生报警
                 AlarmDefineState alarmState = new AlarmDefineState(defineId);

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

@@ -240,7 +240,7 @@ public class AlarmHandleServiceImpl implements AlarmHandleService {
                 JobDataMap jobDataMap = new JobDataMap();
                 jobDataMap.put("alarmRecord", alarmRecordDO.toString());
                 jobDataMap.put("refire", "0");
-                jobDataMap.put("alarmSuspendStartTime", dataTime);
+                jobDataMap.put("endTime", dataTime);
                 jobDataMap.put("endInfo", JSONObject.toJSONString(paramMap));
                 jobDataMap.put("defineId", defineId);
                 //恢复