|
|
@@ -153,31 +153,46 @@ public class IotAlarmDataServiceImpl extends ServiceImpl<IotAlarmDataMapper, Iot
|
|
|
iotSensorMapper.updateById(iotSensor);
|
|
|
}
|
|
|
}
|
|
|
- if (isExpress && !isAlarm) {
|
|
|
- //报警恢复
|
|
|
- if( alarms.size() != 0){
|
|
|
- if(alarms.size()>1)
|
|
|
+ else{
|
|
|
+ // 本次上传的设备状态数据 没有生成告警
|
|
|
+ if (isExpress && !isAlarm) {
|
|
|
+ //报警恢复
|
|
|
+ if( alarms.size() != 0){
|
|
|
+ // 温湿度一个设备 存在同时2条告警的情况
|
|
|
+ if(alarms.size()>1)
|
|
|
+ {
|
|
|
+ for (IotAlarmData oldAlarm : alarms) {
|
|
|
+ oldAlarm.setEndTime(LocalDateTime.now());
|
|
|
+ this.updateById(oldAlarm);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ IotAlarmData iotAlarmData = alarms.get(0);
|
|
|
+ iotAlarmData.setEndTime(LocalDateTime.now());
|
|
|
+ this.updateById(iotAlarmData);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (ObjectUtil.notEqual(iotSensor.getState(),0)) {
|
|
|
+ iotSensor.setStateUpdateTime(LocalDateTime.now());
|
|
|
+ iotSensor.setStateStartTime(LocalDateTime.now());
|
|
|
+ iotSensor.setState(0);
|
|
|
+ iotSensorMapper.updateById(iotSensor);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 处理温湿度 一个设备 2 种告警, 可能会单个恢复的情况
|
|
|
+ else if(isAlarm && isExpress)
|
|
|
+ {
|
|
|
+ if(ObjectUtil.notEqual(list.size(),alarms.size()))
|
|
|
{
|
|
|
- for (IotAlarmData oldAlarm : alarms) {
|
|
|
+ List<IotAlarmData> noAlarmData = alarms.stream().filter(x -> !list.stream().anyMatch(y -> ObjectUtil.equal(y.getFieldCode(), x.getFieldCode()))).collect(Collectors.toList());
|
|
|
+ for (IotAlarmData oldAlarm : noAlarmData) {
|
|
|
oldAlarm.setEndTime(LocalDateTime.now());
|
|
|
this.updateById(oldAlarm);
|
|
|
}
|
|
|
}
|
|
|
- else {
|
|
|
- IotAlarmData iotAlarmData = alarms.get(0);
|
|
|
- iotAlarmData.setEndTime(LocalDateTime.now());
|
|
|
- this.updateById(iotAlarmData);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (ObjectUtil.notEqual(iotSensor.getState(),0)) {
|
|
|
- iotSensor.setStateUpdateTime(LocalDateTime.now());
|
|
|
- iotSensor.setStateStartTime(LocalDateTime.now());
|
|
|
- iotSensor.setState(0);
|
|
|
- iotSensorMapper.updateById(iotSensor);
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
@Override
|