|
@@ -84,77 +84,79 @@ public class ReceiveData {
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- String devcieCode =jsonObject .getString("unitIdentifier");
|
|
|
- JSONObject receiveData =JSONObject.parseObject(jsonObject .getString("parsedData"));
|
|
|
-
|
|
|
- if(StringUtils.isNotBlank(devcieCode)){
|
|
|
- //获取需要验证的报警条件
|
|
|
-
|
|
|
- List<DeviceCheckAlarmDto> deviceCheckAlarmDtos = alarmDetailMapper.selectDeviceForCheckAlarm(devcieCode,"参数报警");
|
|
|
- //有设置报警参数
|
|
|
- if(deviceCheckAlarmDtos.size()>0 && StringUtils.isNotBlank(deviceCheckAlarmDtos.get(0).getIdentifiter())){
|
|
|
- Integer deviceId= deviceCheckAlarmDtos.get(0).getDeviceId();
|
|
|
- //系统中已存在的报警信息
|
|
|
- List<AlarmDetailsDto> alarmDetailsDtos = alarmDetailMapper.selectStateAlarm(deviceId,"参数报警");
|
|
|
- //已存在的报警信息转为map方便匹配
|
|
|
- Map<String,AlarmDetailsDto> alarmDetailsDtoMap = alarmDetailsDtos.stream().collect(Collectors.toMap(AlarmDetailsDto::getMapKey, a -> a,(k1, k2)->k1));
|
|
|
-
|
|
|
- List<AlarmDetailsEntity> insert =new ArrayList<>();
|
|
|
- List<AlarmDetailsDto> update =new ArrayList<>();
|
|
|
- List<AlarmDetailsDto> delete =new ArrayList<>();
|
|
|
-
|
|
|
- //校验各参数异常情况
|
|
|
- for(DeviceCheckAlarmDto deviceCheckAlarmDto:deviceCheckAlarmDtos){
|
|
|
- //获取参数接收值
|
|
|
- String receivedValue = receiveData.getString(deviceCheckAlarmDto.getIdentifiter());
|
|
|
- if(deviceCheckAlarmDto.checkdeviceAttributeAlarm(receivedValue)){
|
|
|
- //判断报警是否已存在
|
|
|
- if(alarmDetailsDtoMap.containsKey(deviceCheckAlarmDto.getDeviceId()+"_"+deviceCheckAlarmDto.getAttributeId())){
|
|
|
- AlarmDetailsDto alarmDetailsDto = alarmDetailsDtoMap.get(deviceCheckAlarmDto.getDeviceId()+"_"+deviceCheckAlarmDto.getAttributeId());
|
|
|
- alarmDetailsDto.setAlarmValue(Double.valueOf(receivedValue));
|
|
|
- alarmDetailsDto.setAlarmContent(deviceCheckAlarmDto.getAlarminfo(receivedValue));
|
|
|
- alarmDetailsDto.setMinValue(alarmDetailsDto.getMinValue()<Double.valueOf(receivedValue)?alarmDetailsDto.getMinValue():Double.valueOf(receivedValue));
|
|
|
- alarmDetailsDto.setMaxValue(alarmDetailsDto.getMaxValue()>Double.valueOf(receivedValue)?alarmDetailsDto.getMaxValue():Double.valueOf(receivedValue));
|
|
|
+ String devcieCode =jsonObject .getString("unitIdentifier");
|
|
|
+ JSONObject receiveData =JSONObject.parseObject(jsonObject .getString("parsedData"));
|
|
|
+ //修改设备上报时间
|
|
|
+ alarmDetailMapper.udpateLastUpdateTime(devcieCode,receiveDateTime);
|
|
|
+
|
|
|
+ if(StringUtils.isNotBlank(devcieCode)){
|
|
|
+ //获取需要验证的报警条件
|
|
|
+
|
|
|
+ List<DeviceCheckAlarmDto> deviceCheckAlarmDtos = alarmDetailMapper.selectDeviceForCheckAlarm(devcieCode,"参数报警");
|
|
|
+ //有设置报警参数
|
|
|
+ if(deviceCheckAlarmDtos.size()>0 && StringUtils.isNotBlank(deviceCheckAlarmDtos.get(0).getIdentifiter())){
|
|
|
+ Integer deviceId= deviceCheckAlarmDtos.get(0).getDeviceId();
|
|
|
+ //系统中已存在的报警信息
|
|
|
+ List<AlarmDetailsDto> alarmDetailsDtos = alarmDetailMapper.selectStateAlarm(deviceId,"参数报警");
|
|
|
+ //已存在的报警信息转为map方便匹配
|
|
|
+ Map<String,AlarmDetailsDto> alarmDetailsDtoMap = alarmDetailsDtos.stream().collect(Collectors.toMap(AlarmDetailsDto::getMapKey, a -> a,(k1, k2)->k1));
|
|
|
+
|
|
|
+ List<AlarmDetailsEntity> insert =new ArrayList<>();
|
|
|
+ List<AlarmDetailsDto> update =new ArrayList<>();
|
|
|
+ List<AlarmDetailsDto> delete =new ArrayList<>();
|
|
|
+
|
|
|
+ //校验各参数异常情况
|
|
|
+ for(DeviceCheckAlarmDto deviceCheckAlarmDto:deviceCheckAlarmDtos){
|
|
|
+ //获取参数接收值
|
|
|
+ String receivedValue = receiveData.getString(deviceCheckAlarmDto.getIdentifiter());
|
|
|
+ if(deviceCheckAlarmDto.checkdeviceAttributeAlarm(receivedValue)){
|
|
|
+ //判断报警是否已存在
|
|
|
+ if(alarmDetailsDtoMap.containsKey(deviceCheckAlarmDto.getDeviceId()+"_"+deviceCheckAlarmDto.getAttributeId())){
|
|
|
+ AlarmDetailsDto alarmDetailsDto = alarmDetailsDtoMap.get(deviceCheckAlarmDto.getDeviceId()+"_"+deviceCheckAlarmDto.getAttributeId());
|
|
|
+ alarmDetailsDto.setAlarmValue(Double.valueOf(receivedValue));
|
|
|
+ alarmDetailsDto.setAlarmContent(deviceCheckAlarmDto.getAlarminfo(receivedValue));
|
|
|
+ alarmDetailsDto.setMinValue(alarmDetailsDto.getMinValue()<Double.valueOf(receivedValue)?alarmDetailsDto.getMinValue():Double.valueOf(receivedValue));
|
|
|
+ alarmDetailsDto.setMaxValue(alarmDetailsDto.getMaxValue()>Double.valueOf(receivedValue)?alarmDetailsDto.getMaxValue():Double.valueOf(receivedValue));
|
|
|
// update.add(alarmDetailsDto);
|
|
|
- alarmDetailMapper.update(alarmDetailsDto);
|
|
|
- //已存在的修改后从集合移除
|
|
|
- alarmDetailsDtoMap.remove(deviceCheckAlarmDto.getDeviceId()+"_"+deviceCheckAlarmDto.getAttributeId());
|
|
|
- }else{
|
|
|
- AlarmDetailsEntity alarmDetailsEntity = new AlarmDetailsDto();
|
|
|
- alarmDetailsEntity.setTenantId(deviceCheckAlarmDto.getTenantId());
|
|
|
- alarmDetailsEntity.setDeviceId(deviceCheckAlarmDto.getDeviceId());
|
|
|
- alarmDetailsEntity.setCompanyOrgId(deviceCheckAlarmDto.getCompanyOrgId());
|
|
|
- alarmDetailsEntity.setDeptOrgId(deviceCheckAlarmDto.getDeptOrgId());
|
|
|
- alarmDetailsEntity.setAlarmType(deviceCheckAlarmDto.getAlarmType());
|
|
|
- alarmDetailsEntity.setAttributeId(deviceCheckAlarmDto.getAttributeId());
|
|
|
- alarmDetailsEntity.setAlarmValue(Double.valueOf(receivedValue));
|
|
|
- alarmDetailsEntity.setAlarmStartTime(receiveDateTime);
|
|
|
- alarmDetailsEntity.setAlarmContent(deviceCheckAlarmDto.getAlarminfo(receivedValue));
|
|
|
- alarmDetailsEntity.setState(1);
|
|
|
- alarmDetailsEntity.setOpState(1);
|
|
|
- alarmDetailsEntity.setMinValue(Double.valueOf(receivedValue));
|
|
|
- alarmDetailsEntity.setMaxValue(Double.valueOf(receivedValue));
|
|
|
- alarmDetailsEntity.setStatus(1);
|
|
|
- alarmDetailsEntity.setDateCreate(new Date());
|
|
|
- alarmDetailsEntity.setDateUpdate(new Date());
|
|
|
- alarmDetailsEntity.setCreateBy("system");
|
|
|
- alarmDetailsEntity.setUpdateBy("system");
|
|
|
- insert.add(alarmDetailsEntity);
|
|
|
- }
|
|
|
- }
|
|
|
- //处理完成后,剩下的标记为历史数据
|
|
|
- for(AlarmDetailsDto alarmDetailsDto:alarmDetailsDtoMap.values()){
|
|
|
- alarmDetailsDto.setState(0);
|
|
|
- alarmDetailsDto.setAlarmEndTime(receiveDateTime);
|
|
|
alarmDetailMapper.update(alarmDetailsDto);
|
|
|
+ //已存在的修改后从集合移除
|
|
|
+ alarmDetailsDtoMap.remove(deviceCheckAlarmDto.getDeviceId()+"_"+deviceCheckAlarmDto.getAttributeId());
|
|
|
+ }else{
|
|
|
+ AlarmDetailsEntity alarmDetailsEntity = new AlarmDetailsDto();
|
|
|
+ alarmDetailsEntity.setTenantId(deviceCheckAlarmDto.getTenantId());
|
|
|
+ alarmDetailsEntity.setDeviceId(deviceCheckAlarmDto.getDeviceId());
|
|
|
+ alarmDetailsEntity.setCompanyOrgId(deviceCheckAlarmDto.getCompanyOrgId());
|
|
|
+ alarmDetailsEntity.setDeptOrgId(deviceCheckAlarmDto.getDeptOrgId());
|
|
|
+ alarmDetailsEntity.setAlarmType(deviceCheckAlarmDto.getAlarmType());
|
|
|
+ alarmDetailsEntity.setAttributeId(deviceCheckAlarmDto.getAttributeId());
|
|
|
+ alarmDetailsEntity.setAlarmValue(Double.valueOf(receivedValue));
|
|
|
+ alarmDetailsEntity.setAlarmStartTime(receiveDateTime);
|
|
|
+ alarmDetailsEntity.setAlarmContent(deviceCheckAlarmDto.getAlarminfo(receivedValue));
|
|
|
+ alarmDetailsEntity.setState(1);
|
|
|
+ alarmDetailsEntity.setOpState(1);
|
|
|
+ alarmDetailsEntity.setMinValue(Double.valueOf(receivedValue));
|
|
|
+ alarmDetailsEntity.setMaxValue(Double.valueOf(receivedValue));
|
|
|
+ alarmDetailsEntity.setStatus(1);
|
|
|
+ alarmDetailsEntity.setDateCreate(new Date());
|
|
|
+ alarmDetailsEntity.setDateUpdate(new Date());
|
|
|
+ alarmDetailsEntity.setCreateBy("system");
|
|
|
+ alarmDetailsEntity.setUpdateBy("system");
|
|
|
+ insert.add(alarmDetailsEntity);
|
|
|
}
|
|
|
- //批量插入新增报警
|
|
|
- if(insert.size()>0){
|
|
|
- alarmDetailMapper.batchInsert(insert);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+ }
|
|
|
+ //处理完成后,剩下的标记为历史数据
|
|
|
+ for(AlarmDetailsDto alarmDetailsDto:alarmDetailsDtoMap.values()){
|
|
|
+ alarmDetailsDto.setState(0);
|
|
|
+ alarmDetailsDto.setAlarmEndTime(receiveDateTime);
|
|
|
+ alarmDetailMapper.update(alarmDetailsDto);
|
|
|
+ }
|
|
|
+ //批量插入新增报警
|
|
|
+ if(insert.size()>0){
|
|
|
+ alarmDetailMapper.batchInsert(insert);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
}
|