dev #2

Merged
dashixiong merged 349 commits from dev into main 2026-02-11 01:55:46 +00:00
374 changed files with 55520 additions and 1130 deletions
Showing only changes of commit 3f4d3772b0 - Show all commits

View File

@ -1726,32 +1726,62 @@ public class DeviceDataProcessServiceImpl extends AbstractBatteryDataProcessor i
// 遍历数据map
for (Map.Entry<String, Object> entry : obj.entrySet()) {
if (entry.getValue() == null) {
continue;
}
String key = entry.getKey();
Integer value = (Integer) entry.getValue();
Long value = (Long) 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;
}
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且在当前告警里面 - 更新告警已处理
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);
} else {
if (isCurrentAlarm) {
// 在当前告警里面 - 更新告警已处理
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);
}
}
}
// // 值为 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);
// }
// }
}
// 批量处理插入和更新操作

View File

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