|
@@ -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);
|