设备告警点位解析修改
This commit is contained in:
@ -1726,32 +1726,62 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i
|
|||||||
|
|
||||||
// 遍历数据map
|
// 遍历数据map
|
||||||
for (Map.Entry<String, Object> entry : obj.entrySet()) {
|
for (Map.Entry<String, Object> entry : obj.entrySet()) {
|
||||||
|
if (entry.getValue() == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
String key = entry.getKey();
|
String key = entry.getKey();
|
||||||
Integer value = (Integer) entry.getValue();
|
Long value = (Long) entry.getValue();
|
||||||
Boolean isCurrentAlarm = currentAlarmKeys.contains(key);
|
Boolean isCurrentAlarm = currentAlarmKeys.contains(key);
|
||||||
|
String matchRedisKey = siteId + "_" + category + "_" + key;
|
||||||
// 值为 1且不在当前告警里面 - 新增告警
|
// 默认告警值0是正常,1是异常
|
||||||
if (value == 1 && !isCurrentAlarm) {
|
Long alarmData = 1L;
|
||||||
String matchRedisKey = category + "_" + key;
|
Object cacheObj = alarmInfoData.get(matchRedisKey);
|
||||||
Object cacheObj = alarmInfoData.get(matchRedisKey);
|
if (cacheObj != null) {
|
||||||
if (cacheObj == null) {
|
EmsAlarmMatchData matchInfo = JSON.toJavaObject(cacheObj, EmsAlarmMatchData.class);
|
||||||
// 处理空数据逻辑
|
alarmData = matchInfo.getAlarmData();
|
||||||
return;
|
}
|
||||||
}
|
// 处理告警
|
||||||
|
if (value.equals(alarmData) && !isCurrentAlarm) {
|
||||||
|
// 上送值和匹配值相同,新增告警
|
||||||
EmsAlarmMatchData matchInfo = JSON.toJavaObject(cacheObj, EmsAlarmMatchData.class);
|
EmsAlarmMatchData matchInfo = JSON.toJavaObject(cacheObj, EmsAlarmMatchData.class);
|
||||||
EmsAlarmRecords emsAlarmRecord = convertAlarmRecord(siteId, deviceId, matchInfo);
|
EmsAlarmRecords emsAlarmRecord = convertAlarmRecord(siteId, deviceId, matchInfo);
|
||||||
saveOrUpdateList.add(emsAlarmRecord);
|
saveOrUpdateList.add(emsAlarmRecord);
|
||||||
newAddRecordList.add(emsAlarmRecord);
|
newAddRecordList.add(emsAlarmRecord);
|
||||||
} else if (value == 0 && isCurrentAlarm) {// 值为 0且在当前告警里面 - 更新告警已处理
|
} else {
|
||||||
EmsAlarmRecords existingAlarm = needUpdateMap.get(key);
|
if (isCurrentAlarm) {
|
||||||
if (existingAlarm != null) {
|
// 在当前告警里面 - 更新告警已处理
|
||||||
existingAlarm.setStatus(AlarmStatus.DONE.getCode());
|
EmsAlarmRecords existingAlarm = needUpdateMap.get(key);
|
||||||
existingAlarm.setUpdateTime(new Date());
|
if (existingAlarm != null) {
|
||||||
existingAlarm.setAlarmEndTime(new Date());
|
existingAlarm.setStatus(AlarmStatus.DONE.getCode());
|
||||||
saveOrUpdateList.add(existingAlarm);
|
existingAlarm.setUpdateTime(new Date());
|
||||||
toRemoveFromRedis.add(key);
|
existingAlarm.setAlarmEndTime(new Date());
|
||||||
|
saveOrUpdateList.add(existingAlarm);
|
||||||
|
toRemoveFromRedis.add(key);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// // 值为 1且不在当前告警里面 - 新增告警
|
||||||
|
// if (value == 1 && !isCurrentAlarm) {
|
||||||
|
// String matchRedisKey = category + "_" + key;
|
||||||
|
// Object cacheObj = alarmInfoData.get(matchRedisKey);
|
||||||
|
// if (cacheObj == null) {
|
||||||
|
// // 处理空数据逻辑
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
// EmsAlarmMatchData matchInfo = JSON.toJavaObject(cacheObj, EmsAlarmMatchData.class);
|
||||||
|
// EmsAlarmRecords emsAlarmRecord = convertAlarmRecord(siteId, deviceId, matchInfo);
|
||||||
|
// saveOrUpdateList.add(emsAlarmRecord);
|
||||||
|
// newAddRecordList.add(emsAlarmRecord);
|
||||||
|
// } else if (value == 0 && isCurrentAlarm) {// 值为 0且在当前告警里面 - 更新告警已处理
|
||||||
|
// EmsAlarmRecords existingAlarm = needUpdateMap.get(key);
|
||||||
|
// if (existingAlarm != null) {
|
||||||
|
// existingAlarm.setStatus(AlarmStatus.DONE.getCode());
|
||||||
|
// existingAlarm.setUpdateTime(new Date());
|
||||||
|
// existingAlarm.setAlarmEndTime(new Date());
|
||||||
|
// saveOrUpdateList.add(existingAlarm);
|
||||||
|
// toRemoveFromRedis.add(key);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
// 批量处理插入和更新操作
|
// 批量处理插入和更新操作
|
||||||
|
|||||||
@ -265,7 +265,7 @@ public class EmsAlarmRecordsServiceImpl implements IEmsAlarmRecordsService
|
|||||||
List<EmsAlarmMatchData> alarmPointList = emsAlarmMatchDataMapper.selectEmsAlarmMatchDataList(null);
|
List<EmsAlarmMatchData> alarmPointList = emsAlarmMatchDataMapper.selectEmsAlarmMatchDataList(null);
|
||||||
Map<String, EmsAlarmMatchData> resultMap = alarmPointList.stream()
|
Map<String, EmsAlarmMatchData> resultMap = alarmPointList.stream()
|
||||||
.collect(Collectors.toMap(
|
.collect(Collectors.toMap(
|
||||||
data->data.getDeviceCategory()+"_"+data.getPoint(),
|
data->data.getSiteId()+"_"+data.getDeviceCategory()+"_"+data.getPoint(),
|
||||||
data->data,
|
data->data,
|
||||||
(existing, replacement) -> replacement
|
(existing, replacement) -> replacement
|
||||||
));
|
));
|
||||||
|
|||||||
Reference in New Issue
Block a user