refactor(dataDocking): 优化设备监控报警逻辑并清理冗余代码
- 移除了多个不必要的空行,提升代码可读性 - 简化了报警检查逻辑,删除关于REPORT_ID的特殊处理 - 优化报警确认机制和持续时间判断逻辑 - 统一了日志打印格式,便于问题追踪 - 清理了重复和无用的代码段,减少维护成本 - 保持核心功能不变,提高代码执行效率dev
parent
391164a205
commit
6066557d99
|
|
@ -44,34 +44,34 @@ public class MesDataScheduled extends IJobHandler {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private MesDeviceMonitoringMapper mesDeviceMonitoringMapper;
|
private MesDeviceMonitoringMapper mesDeviceMonitoringMapper;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private DeviceMonitoringAlarmSrevice deviceMonitoringAlarmSrevice;
|
private DeviceMonitoringAlarmSrevice deviceMonitoringAlarmSrevice;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private RedisUtil redisUtil;
|
private RedisUtil redisUtil;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private TbIronWarnInfoDao tbIronWarnInfoDao;
|
private TbIronWarnInfoDao tbIronWarnInfoDao;
|
||||||
|
|
||||||
// 用于跟踪设备节点的报警状态
|
// 用于跟踪设备节点的报警状态
|
||||||
private final Map<String, PageData> alarmStatusMap = new ConcurrentHashMap<>();
|
private final Map<String, PageData> alarmStatusMap = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
// 用于报警延时确认机制的计数器
|
// 用于报警延时确认机制的计数器
|
||||||
private final Map<String, Integer> alarmConfirmCount = new ConcurrentHashMap<>();
|
private final Map<String, Integer> alarmConfirmCount = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
// 用于跟踪报警开始时间的映射
|
// 用于跟踪报警开始时间的映射
|
||||||
private final Map<String, Long> alarmStartTimeMap = new ConcurrentHashMap<>();
|
private final Map<String, Long> alarmStartTimeMap = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
// 用于跟踪报警恢复开始时间的映射
|
// 用于跟踪报警恢复开始时间的映射
|
||||||
private final Map<String, Long> alarmRecoverStartTimeMap = new ConcurrentHashMap<>();
|
private final Map<String, Long> alarmRecoverStartTimeMap = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
// 用于存储当前报警信息的映射(避免存入过期的报警信息)
|
// 用于存储当前报警信息的映射(避免存入过期的报警信息)
|
||||||
private final Map<String, Map<String, Object>> currentAlarmInfo = new ConcurrentHashMap<>();
|
private final Map<String, Map<String, Object>> currentAlarmInfo = new ConcurrentHashMap<>();
|
||||||
|
|
||||||
// 报警确认次数阈值
|
// 报警确认次数阈值
|
||||||
private static final int ALARM_CONFIRM_THRESHOLD = 3;
|
private static final int ALARM_CONFIRM_THRESHOLD = 3;
|
||||||
|
|
||||||
// 最小报警持续时间(毫秒),默认30秒
|
// 最小报警持续时间(毫秒),默认30秒
|
||||||
private static final long MIN_ALARM_DURATION = 30 * 1000;
|
private static final long MIN_ALARM_DURATION = 30 * 1000;
|
||||||
|
|
||||||
|
|
@ -253,7 +253,7 @@ public class MesDataScheduled extends IJobHandler {
|
||||||
// 当suffix为B1且A枪工作位_1不为0时,处理B1数据
|
// 当suffix为B1且A枪工作位_1不为0时,处理B1数据
|
||||||
shouldProcess = true;
|
shouldProcess = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (shouldProcess) {
|
if (shouldProcess) {
|
||||||
// 使用zl1TargetList中A1的配置项进行匹配
|
// 使用zl1TargetList中A1的配置项进行匹配
|
||||||
final String targetKey;
|
final String targetKey;
|
||||||
|
|
@ -340,22 +340,10 @@ public class MesDataScheduled extends IJobHandler {
|
||||||
// 检查是否需要报警
|
// 检查是否需要报警
|
||||||
// 根据需求调整报警检查逻辑:
|
// 根据需求调整报警检查逻辑:
|
||||||
// 1. 除尘器设备不检查(最高优先级)
|
// 1. 除尘器设备不检查(最高优先级)
|
||||||
// 2. REPORT_ID不为空且不为空串时必须检查(次优先级)
|
// 2. OPEN_ALARM为0时检查为1不检查(第二优先级)
|
||||||
// 3. OPEN_ALARM为0时检查为1不检查(第三优先级)
|
|
||||||
if (!key.contains("除尘器")) {
|
if (!key.contains("除尘器")) {
|
||||||
String reportId = pageData.getString("REPORT_ID");
|
|
||||||
String openAlarm = pageData.getString("OPEN_ALARM");
|
String openAlarm = pageData.getString("OPEN_ALARM");
|
||||||
|
if ("0".equals(openAlarm)) {
|
||||||
// REPORT_ID不为空且不为空串时必须检查(即使OPEN_ALARM为1也检查)
|
|
||||||
if (reportId != null && !"".equals(reportId.trim())) {
|
|
||||||
checkThresholdWithDelayConfirmation(mesData);
|
|
||||||
}
|
|
||||||
// OPEN_ALARM为1时不检查
|
|
||||||
else if ("1".equals(openAlarm)) {
|
|
||||||
// 不检查报警
|
|
||||||
}
|
|
||||||
// 其他情况正常检查(OPEN_ALARM为0或其他值)
|
|
||||||
else {
|
|
||||||
checkThresholdWithDelayConfirmation(mesData);
|
checkThresholdWithDelayConfirmation(mesData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -444,7 +432,7 @@ public class MesDataScheduled extends IJobHandler {
|
||||||
|
|
||||||
double currentValue = Double.parseDouble(currentValueStr);
|
double currentValue = Double.parseDouble(currentValueStr);
|
||||||
String equipmentKey = equipmentId + "_" + plcId;
|
String equipmentKey = equipmentId + "_" + plcId;
|
||||||
|
|
||||||
boolean isAlarm = false;
|
boolean isAlarm = false;
|
||||||
String alarmType = "";
|
String alarmType = "";
|
||||||
|
|
||||||
|
|
@ -485,24 +473,24 @@ public class MesDataScheduled extends IJobHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
long currentTimestamp = System.currentTimeMillis();
|
long currentTimestamp = System.currentTimeMillis();
|
||||||
|
|
||||||
// 处理报警确认逻辑
|
// 处理报警确认逻辑
|
||||||
if (isAlarm) {
|
if (isAlarm) {
|
||||||
// 如果超过阈值,增加计数
|
// 如果超过阈值,增加计数
|
||||||
int currentCount = alarmConfirmCount.getOrDefault(equipmentKey, 0) + 1;
|
int currentCount = alarmConfirmCount.getOrDefault(equipmentKey, 0) + 1;
|
||||||
alarmConfirmCount.put(equipmentKey, currentCount);
|
alarmConfirmCount.put(equipmentKey, currentCount);
|
||||||
|
|
||||||
// 记录首次报警时间
|
// 记录首次报警时间
|
||||||
if (!alarmStartTimeMap.containsKey(equipmentKey)) {
|
if (!alarmStartTimeMap.containsKey(equipmentKey)) {
|
||||||
alarmStartTimeMap.put(equipmentKey, currentTimestamp);
|
alarmStartTimeMap.put(equipmentKey, currentTimestamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 清除恢复计时(如果有的话)
|
// 清除恢复计时(如果有的话)
|
||||||
alarmRecoverStartTimeMap.remove(equipmentKey);
|
alarmRecoverStartTimeMap.remove(equipmentKey);
|
||||||
|
|
||||||
// 保存当前报警信息,确保后续处理的是最新的报警数据
|
// 保存当前报警信息,确保后续处理的是最新的报警数据
|
||||||
currentAlarmInfo.put(equipmentKey, new HashMap<>(data));
|
currentAlarmInfo.put(equipmentKey, new HashMap<>(data));
|
||||||
|
|
||||||
// 检查是否满足最小持续时间要求
|
// 检查是否满足最小持续时间要求
|
||||||
Long startTime = alarmStartTimeMap.get(equipmentKey);
|
Long startTime = alarmStartTimeMap.get(equipmentKey);
|
||||||
if (startTime != null) {
|
if (startTime != null) {
|
||||||
|
|
@ -512,7 +500,7 @@ public class MesDataScheduled extends IJobHandler {
|
||||||
if (currentCount >= ALARM_CONFIRM_THRESHOLD) {
|
if (currentCount >= ALARM_CONFIRM_THRESHOLD) {
|
||||||
data.put("WARNING", 1);
|
data.put("WARNING", 1);
|
||||||
data.put("OVERVIEW_OF_ALERTS", alarmType);
|
data.put("OVERVIEW_OF_ALERTS", alarmType);
|
||||||
XxlJobHelper.log("设备 {} 触发报警: {} (值: {},持续时间: {}ms)",
|
XxlJobHelper.log("设备 {} 触发报警: {} (值: {},持续时间: {}ms)",
|
||||||
equipmentKey, alarmType, currentValue, duration);
|
equipmentKey, alarmType, currentValue, duration);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -530,10 +518,10 @@ public class MesDataScheduled extends IJobHandler {
|
||||||
alarmConfirmCount.remove(equipmentKey);
|
alarmConfirmCount.remove(equipmentKey);
|
||||||
alarmStartTimeMap.remove(equipmentKey);
|
alarmStartTimeMap.remove(equipmentKey);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 清除当前报警信息
|
// 清除当前报警信息
|
||||||
currentAlarmInfo.remove(equipmentKey);
|
currentAlarmInfo.remove(equipmentKey);
|
||||||
|
|
||||||
// 确保WARNING字段为0,表示未报警
|
// 确保WARNING字段为0,表示未报警
|
||||||
data.put("WARNING", 0);
|
data.put("WARNING", 0);
|
||||||
data.put("OVERVIEW_OF_ALERTS", "");
|
data.put("OVERVIEW_OF_ALERTS", "");
|
||||||
|
|
@ -576,11 +564,11 @@ public class MesDataScheduled extends IJobHandler {
|
||||||
private void processAlarmData(ArrayList<Map<String, Object>> mesSaveList) {
|
private void processAlarmData(ArrayList<Map<String, Object>> mesSaveList) {
|
||||||
ArrayList<PageData> alarmLogArrayList = new ArrayList<>();
|
ArrayList<PageData> alarmLogArrayList = new ArrayList<>();
|
||||||
ArrayList<PageData> activeAlarms = new ArrayList<>();
|
ArrayList<PageData> activeAlarms = new ArrayList<>();
|
||||||
|
|
||||||
for (Map<String, Object> item : mesSaveList) {
|
for (Map<String, Object> item : mesSaveList) {
|
||||||
// 检查是否有报警且是模拟量
|
// 检查是否有报警且是模拟量
|
||||||
Object warningObj = item.get("WARNING");
|
Object warningObj = item.get("WARNING");
|
||||||
|
|
||||||
if (warningObj != null && "1".equals(String.valueOf(warningObj))) {
|
if (warningObj != null && "1".equals(String.valueOf(warningObj))) {
|
||||||
// 只有当WARNING为1时才创建报警记录,这表示已经通过了延时确认机制
|
// 只有当WARNING为1时才创建报警记录,这表示已经通过了延时确认机制
|
||||||
PageData itemPageData = new PageData();
|
PageData itemPageData = new PageData();
|
||||||
|
|
@ -603,28 +591,28 @@ public class MesDataScheduled extends IJobHandler {
|
||||||
itemPageData.put("CREATTIME", DateUtil.date2Str(new Date()));
|
itemPageData.put("CREATTIME", DateUtil.date2Str(new Date()));
|
||||||
itemPageData.put("REPORT_ID", item.get("REPORT_ID"));
|
itemPageData.put("REPORT_ID", item.get("REPORT_ID"));
|
||||||
alarmLogArrayList.add(itemPageData);
|
alarmLogArrayList.add(itemPageData);
|
||||||
|
|
||||||
// 添加到活跃报警列表,用于处理warninfo表
|
// 添加到活跃报警列表,用于处理warninfo表
|
||||||
activeAlarms.add(itemPageData);
|
activeAlarms.add(itemPageData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 把报警的数据转存到数据库里
|
// 把报警的数据转存到数据库里
|
||||||
if (!alarmLogArrayList.isEmpty()) {
|
if (!alarmLogArrayList.isEmpty()) {
|
||||||
deviceMonitoringAlarmSrevice.saveBatch(alarmLogArrayList);
|
deviceMonitoringAlarmSrevice.saveBatch(alarmLogArrayList);
|
||||||
XxlJobHelper.log("成功保存{}条报警数据到报警表", alarmLogArrayList.size());
|
XxlJobHelper.log("成功保存{}条报警数据到报警表", alarmLogArrayList.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
// 将报警数据存入Redis
|
// 将报警数据存入Redis
|
||||||
if (!activeAlarms.isEmpty()) {
|
if (!activeAlarms.isEmpty()) {
|
||||||
redisUtil.set("MES_ALARM_DATA_LIST", JSONObject.toJSONString(activeAlarms));
|
redisUtil.set("MES_ALARM_DATA_LIST", JSONObject.toJSONString(activeAlarms));
|
||||||
XxlJobHelper.log("成功将{}条报警数据存入Redis", activeAlarms.size());
|
XxlJobHelper.log("成功将{}条报警数据存入Redis", activeAlarms.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
// 处理告警信息表(tb_iron_warninfo)
|
// 处理告警信息表(tb_iron_warninfo)
|
||||||
processWarnInfo(activeAlarms, mesSaveList);
|
processWarnInfo(activeAlarms, mesSaveList);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理告警信息表(tb_iron_warninfo)
|
* 处理告警信息表(tb_iron_warninfo)
|
||||||
* @param activeAlarms 当前活跃的报警
|
* @param activeAlarms 当前活跃的报警
|
||||||
|
|
@ -634,14 +622,14 @@ public class MesDataScheduled extends IJobHandler {
|
||||||
// 获取当前时间
|
// 获取当前时间
|
||||||
String currentTime = DateUtil.date2Str(new Date());
|
String currentTime = DateUtil.date2Str(new Date());
|
||||||
long currentTimestamp = System.currentTimeMillis();
|
long currentTimestamp = System.currentTimeMillis();
|
||||||
|
|
||||||
// 用于存储消警数据的列表
|
// 用于存储消警数据的列表
|
||||||
ArrayList<PageData> recoverAlarms = new ArrayList<>();
|
ArrayList<PageData> recoverAlarms = new ArrayList<>();
|
||||||
|
|
||||||
// 处理新产生的报警
|
// 处理新产生的报警
|
||||||
for (PageData alarm : activeAlarms) {
|
for (PageData alarm : activeAlarms) {
|
||||||
String key = alarm.getString("EQUIPMENT_ID") + "_" + alarm.getString("PLC_ID") + "_" + alarm.getString("PLC_NAME");
|
String key = alarm.getString("EQUIPMENT_ID") + "_" + alarm.getString("PLC_ID") + "_" + alarm.getString("PLC_NAME");
|
||||||
|
|
||||||
// 检查该监测点是否已有报警记录
|
// 检查该监测点是否已有报警记录
|
||||||
if (!alarmStatusMap.containsKey(key)) {
|
if (!alarmStatusMap.containsKey(key)) {
|
||||||
// 新报警,创建告警信息
|
// 新报警,创建告警信息
|
||||||
|
|
@ -671,14 +659,14 @@ public class MesDataScheduled extends IJobHandler {
|
||||||
|
|
||||||
// 保存到数据库
|
// 保存到数据库
|
||||||
tbIronWarnInfoDao.saveWarnInfo(warnInfo);
|
tbIronWarnInfoDao.saveWarnInfo(warnInfo);
|
||||||
|
|
||||||
// 保存到alarmStatusMap中,用于跟踪状态
|
// 保存到alarmStatusMap中,用于跟踪状态
|
||||||
alarmStatusMap.put(key, warnInfo);
|
alarmStatusMap.put(key, warnInfo);
|
||||||
|
|
||||||
// 清除恢复计时(如果有的话)
|
// 清除恢复计时(如果有的话)
|
||||||
alarmRecoverStartTimeMap.remove(key);
|
alarmRecoverStartTimeMap.remove(key);
|
||||||
|
|
||||||
XxlJobHelper.log("创建新的告警信息: 设备ID={}, PLC_ID={}, 报警内容={}",
|
XxlJobHelper.log("创建新的告警信息: 设备ID={}, PLC_ID={}, 报警内容={}",
|
||||||
alarm.get("EQUIPMENT_ID"), alarm.get("PLC_ID"), alarm.get("OVERVIEW_OF_ALERTS"));
|
alarm.get("EQUIPMENT_ID"), alarm.get("PLC_ID"), alarm.get("OVERVIEW_OF_ALERTS"));
|
||||||
} else {
|
} else {
|
||||||
// 已存在报警,更新当前值和时间
|
// 已存在报警,更新当前值和时间
|
||||||
|
|
@ -686,26 +674,26 @@ public class MesDataScheduled extends IJobHandler {
|
||||||
existingWarn.put("MESSAGE", "设备名称:"+ alarm.get("DEVICE_ID")+",监测节点:"+ alarm.get("PLC_NAME")+",报警内容:"+ alarm.get("OVERVIEW_OF_ALERTS"));
|
existingWarn.put("MESSAGE", "设备名称:"+ alarm.get("DEVICE_ID")+",监测节点:"+ alarm.get("PLC_NAME")+",报警内容:"+ alarm.get("OVERVIEW_OF_ALERTS"));
|
||||||
existingWarn.put("OPERATTIME", currentTime);
|
existingWarn.put("OPERATTIME", currentTime);
|
||||||
alarmStatusMap.put(key, existingWarn);
|
alarmStatusMap.put(key, existingWarn);
|
||||||
|
|
||||||
// 清除恢复计时(如果有的话)
|
// 清除恢复计时(如果有的话)
|
||||||
alarmRecoverStartTimeMap.remove(key);
|
alarmRecoverStartTimeMap.remove(key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查是否有报警恢复的节点
|
// 检查是否有报警恢复的节点
|
||||||
Set<String> activeAlarmKeys = new HashSet<>();
|
Set<String> activeAlarmKeys = new HashSet<>();
|
||||||
for (PageData alarm : activeAlarms) {
|
for (PageData alarm : activeAlarms) {
|
||||||
String key = alarm.getString("EQUIPMENT_ID") + "_" + alarm.getString("PLC_ID") + "_" + alarm.getString("PLC_NAME");
|
String key = alarm.getString("EQUIPMENT_ID") + "_" + alarm.getString("PLC_ID") + "_" + alarm.getString("PLC_NAME");
|
||||||
activeAlarmKeys.add(key);
|
activeAlarmKeys.add(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查之前报警但现在不报警的节点
|
// 检查之前报警但现在不报警的节点
|
||||||
Iterator<Map.Entry<String, PageData>> iterator = alarmStatusMap.entrySet().iterator();
|
Iterator<Map.Entry<String, PageData>> iterator = alarmStatusMap.entrySet().iterator();
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
Map.Entry<String, PageData> entry = iterator.next();
|
Map.Entry<String, PageData> entry = iterator.next();
|
||||||
String key = entry.getKey();
|
String key = entry.getKey();
|
||||||
PageData warnInfo = entry.getValue();
|
PageData warnInfo = entry.getValue();
|
||||||
|
|
||||||
if (!activeAlarmKeys.contains(key)) {
|
if (!activeAlarmKeys.contains(key)) {
|
||||||
// 检查是否满足最小恢复持续时间要求
|
// 检查是否满足最小恢复持续时间要求
|
||||||
Long recoverStartTime = alarmRecoverStartTimeMap.get(key);
|
Long recoverStartTime = alarmRecoverStartTimeMap.get(key);
|
||||||
|
|
@ -713,7 +701,7 @@ public class MesDataScheduled extends IJobHandler {
|
||||||
long recoverDuration = currentTimestamp - recoverStartTime;
|
long recoverDuration = currentTimestamp - recoverStartTime;
|
||||||
if (recoverDuration < MIN_ALARM_DURATION) {
|
if (recoverDuration < MIN_ALARM_DURATION) {
|
||||||
// 未达到最小恢复持续时间,暂不处理消警
|
// 未达到最小恢复持续时间,暂不处理消警
|
||||||
XxlJobHelper.log("设备 {} 恢复未达到最小持续时间 {}ms,当前持续时间 {}ms,暂不消警",
|
XxlJobHelper.log("设备 {} 恢复未达到最小持续时间 {}ms,当前持续时间 {}ms,暂不消警",
|
||||||
key, MIN_ALARM_DURATION, recoverDuration);
|
key, MIN_ALARM_DURATION, recoverDuration);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
@ -723,24 +711,24 @@ public class MesDataScheduled extends IJobHandler {
|
||||||
XxlJobHelper.log("设备 {} 开始恢复计时", key);
|
XxlJobHelper.log("设备 {} 开始恢复计时", key);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 该节点之前报警,现在已经满足恢复条件,需要更新状态为已消警
|
// 该节点之前报警,现在已经满足恢复条件,需要更新状态为已消警
|
||||||
warnInfo.put("WARN_STATUS", "1"); // 1表示已消警
|
warnInfo.put("WARN_STATUS", "1"); // 1表示已消警
|
||||||
warnInfo.put("END_TIME", currentTime); // 预警结束时间
|
warnInfo.put("END_TIME", currentTime); // 预警结束时间
|
||||||
warnInfo.put("OPERATTIME", currentTime);
|
warnInfo.put("OPERATTIME", currentTime);
|
||||||
|
|
||||||
// 更新数据库中的记录
|
// 更新数据库中的记录
|
||||||
tbIronWarnInfoDao.updateWarnInfo(warnInfo);
|
tbIronWarnInfoDao.updateWarnInfo(warnInfo);
|
||||||
|
|
||||||
// 添加到消警列表中,用于存储到Redis
|
// 添加到消警列表中,用于存储到Redis
|
||||||
recoverAlarms.add(warnInfo);
|
recoverAlarms.add(warnInfo);
|
||||||
|
|
||||||
XxlJobHelper.log("更新告警信息为已消警: 设备ID={}, PLC_ID={}, 报警内容={}",
|
XxlJobHelper.log("更新告警信息为已消警: 设备ID={}, PLC_ID={}, 报警内容={}",
|
||||||
warnInfo.get("EQUIPMENT_ID"), warnInfo.get("PLC_ID"), warnInfo.get("OVERVIEW_OF_ALERTS"));
|
warnInfo.get("EQUIPMENT_ID"), warnInfo.get("PLC_ID"), warnInfo.get("OVERVIEW_OF_ALERTS"));
|
||||||
|
|
||||||
// 从跟踪map中移除
|
// 从跟踪map中移除
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
|
|
||||||
// 同时清除报警确认计数器、开始时间记录和恢复开始时间记录
|
// 同时清除报警确认计数器、开始时间记录和恢复开始时间记录
|
||||||
alarmConfirmCount.remove(key);
|
alarmConfirmCount.remove(key);
|
||||||
alarmStartTimeMap.remove(key);
|
alarmStartTimeMap.remove(key);
|
||||||
|
|
@ -748,7 +736,7 @@ public class MesDataScheduled extends IJobHandler {
|
||||||
currentAlarmInfo.remove(key);
|
currentAlarmInfo.remove(key);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 将消警数据存入Redis
|
// 将消警数据存入Redis
|
||||||
if (!recoverAlarms.isEmpty()) {
|
if (!recoverAlarms.isEmpty()) {
|
||||||
// 获取现有的消警数据
|
// 获取现有的消警数据
|
||||||
|
|
@ -766,4 +754,4 @@ public class MesDataScheduled extends IJobHandler {
|
||||||
XxlJobHelper.log("成功将{}条消警数据存入Redis", recoverAlarms.size());
|
XxlJobHelper.log("成功将{}条消警数据存入Redis", recoverAlarms.size());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue