modbus本地设备数据读取失败,告警等级修改为“一般”,读到数据后自恢复

This commit is contained in:
zq
2026-01-27 17:37:42 +08:00
parent 9f2c303047
commit d19f07c4e8
3 changed files with 43 additions and 8 deletions

View File

@ -103,4 +103,6 @@ public interface IEmsAlarmRecordsService
public void dealSyncData(String content, String operateType);
public void addDeviceOfflineRecord(String siteId, String deviceNumber);
public void deleteDeviceOfflineRecord(String siteId, String deviceNumber);
}

View File

@ -227,7 +227,8 @@ public class EmsAlarmRecordsServiceImpl implements IEmsAlarmRecordsService
@Override
public void addEmptyDataAlarmRecord(String siteId, String topicDevice) {
EmsAlarmRecords emsAlarmRecords = redisCache.getCacheObject(RedisKeyConstants.TOPIC_EMPTY_ALARM_RECORD + siteId + "_" + topicDevice);
String key = getRedisKeyForTopicEmptyAlarm(siteId, topicDevice);
EmsAlarmRecords emsAlarmRecords = redisCache.getCacheObject(key);
if (emsAlarmRecords != null) {
return;
}
@ -235,7 +236,7 @@ public class EmsAlarmRecordsServiceImpl implements IEmsAlarmRecordsService
emsAlarmRecordsMapper.insertEmsAlarmRecords(emsAlarmRecords);
// 存redis-防止重复插入-有效期一天
redisCache.setCacheObject(RedisKeyConstants.TOPIC_EMPTY_ALARM_RECORD + siteId + "_" + topicDevice, emsAlarmRecords,1, TimeUnit.DAYS);
redisCache.setCacheObject(key, emsAlarmRecords,1, TimeUnit.DAYS);
}
private EmsAlarmRecords createAlarmAtPcs(String siteId, String deviceId,String content,String level) {
@ -254,7 +255,7 @@ public class EmsAlarmRecordsServiceImpl implements IEmsAlarmRecordsService
@Override
public void deleteEmptyDataAlarmRecord(String siteId, String topicDevice) {
String key = RedisKeyConstants.TOPIC_EMPTY_ALARM_RECORD + siteId + "_" + topicDevice;
String key = getRedisKeyForTopicEmptyAlarm(siteId, topicDevice);
EmsAlarmRecords emsAlarmRecords = redisCache.getCacheObject(key);
if (emsAlarmRecords == null) {
return;
@ -330,16 +331,41 @@ public class EmsAlarmRecordsServiceImpl implements IEmsAlarmRecordsService
@Override
public void addDeviceOfflineRecord(String siteId, String deviceId) {
EmsAlarmRecords emsAlarmRecords = redisCache.getCacheObject(RedisKeyConstants.MODBUS_OFFLINE_ALARM_RECORD + siteId + "_" + deviceId);
String key = getRedisKeyForModbusFailAlarm(siteId, deviceId);
EmsAlarmRecords emsAlarmRecords = redisCache.getCacheObject(key);
if (emsAlarmRecords != null) {
return;
}
emsAlarmRecords = createAlarmAtPcs(siteId, deviceId,"modbus连接设备失败", AlarmLevelStatus.EMERGENCY.getCode());
emsAlarmRecords = createAlarmAtPcs(siteId, deviceId,"modbus连接设备失败", AlarmLevelStatus.GENERAL.getCode());
emsAlarmRecordsMapper.insertEmsAlarmRecords(emsAlarmRecords);
// 存redis-防止重复插入-有效期一天
redisCache.setCacheObject(RedisKeyConstants.MODBUS_OFFLINE_ALARM_RECORD + siteId + "_" + deviceId, emsAlarmRecords,1, TimeUnit.DAYS);
redisCache.setCacheObject(key, emsAlarmRecords,1, TimeUnit.DAYS);
}
@Override
public void deleteDeviceOfflineRecord(String siteId, String deviceId) {
String key = getRedisKeyForModbusFailAlarm(siteId, deviceId);
EmsAlarmRecords emsAlarmRecords = redisCache.getCacheObject(key);
if (emsAlarmRecords == null) {
return;
}
emsAlarmRecords.setStatus(AlarmStatus.DONE.getCode());
emsAlarmRecords.setUpdateTime(new Date());
emsAlarmRecords.setAlarmEndTime(new Date());
emsAlarmRecordsMapper.updateEmsAlarmRecords(emsAlarmRecords);
redisCache.deleteObject(key);
}
private String getRedisKeyForTopicEmptyAlarm(String siteId, String topicDevice) {
return RedisKeyConstants.TOPIC_EMPTY_ALARM_RECORD + siteId + "_" + topicDevice;
}
private String getRedisKeyForModbusFailAlarm(String siteId, String deviceId) {
return RedisKeyConstants.MODBUS_OFFLINE_ALARM_RECORD + siteId + "_" + deviceId;
}
}