dev #2
@ -1726,23 +1726,30 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i
|
||||
|
||||
// 遍历数据map
|
||||
for (Map.Entry<String, Object> entry : obj.entrySet()) {
|
||||
String key = entry.getKey();
|
||||
Integer value = (Integer) entry.getValue();
|
||||
Boolean isCurrentAlarm = currentAlarmKeys.contains(key);
|
||||
|
||||
// 值为 1且不在当前告警里面 - 新增告警
|
||||
if (value == 1 && !isCurrentAlarm) {
|
||||
String matchRedisKey = category + "_" + key;
|
||||
Object cacheObj = alarmInfoData.get(matchRedisKey);
|
||||
if (cacheObj == null) {
|
||||
// 处理空数据逻辑
|
||||
return;
|
||||
if (entry.getValue() == null) {
|
||||
continue;
|
||||
}
|
||||
String key = entry.getKey();
|
||||
Long value = (Long) entry.getValue();
|
||||
Boolean isCurrentAlarm = currentAlarmKeys.contains(key);
|
||||
String matchRedisKey = siteId + "_" + category + "_" + key;
|
||||
// 默认告警值0是正常,1是异常
|
||||
Long alarmData = 1L;
|
||||
Object cacheObj = alarmInfoData.get(matchRedisKey);
|
||||
if (cacheObj != null) {
|
||||
EmsAlarmMatchData matchInfo = JSON.toJavaObject(cacheObj, EmsAlarmMatchData.class);
|
||||
alarmData = matchInfo.getAlarmData();
|
||||
}
|
||||
// 处理告警
|
||||
if (value.equals(alarmData) && !isCurrentAlarm) {
|
||||
// 上送值和匹配值相同,新增告警
|
||||
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且在当前告警里面 - 更新告警已处理
|
||||
} else {
|
||||
if (isCurrentAlarm) {
|
||||
// 在当前告警里面 - 更新告警已处理
|
||||
EmsAlarmRecords existingAlarm = needUpdateMap.get(key);
|
||||
if (existingAlarm != null) {
|
||||
existingAlarm.setStatus(AlarmStatus.DONE.getCode());
|
||||
@ -1753,6 +1760,29 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i
|
||||
}
|
||||
}
|
||||
}
|
||||
// // 值为 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);
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
// 批量处理插入和更新操作
|
||||
if (CollectionUtils.isNotEmpty(saveOrUpdateList)) {
|
||||
|
||||
@ -265,7 +265,7 @@ public class EmsAlarmRecordsServiceImpl implements IEmsAlarmRecordsService
|
||||
List<EmsAlarmMatchData> alarmPointList = emsAlarmMatchDataMapper.selectEmsAlarmMatchDataList(null);
|
||||
Map<String, EmsAlarmMatchData> resultMap = alarmPointList.stream()
|
||||
.collect(Collectors.toMap(
|
||||
data->data.getDeviceCategory()+"_"+data.getPoint(),
|
||||
data->data.getSiteId()+"_"+data.getDeviceCategory()+"_"+data.getPoint(),
|
||||
data->data,
|
||||
(existing, replacement) -> replacement
|
||||
));
|
||||
|
||||
Reference in New Issue
Block a user