|  |  |  | 
|---|
|  |  |  | @GetMapping("alarm-levels") | 
|---|
|  |  |  | public Object getAlarmLevels(HttpServletRequest request, Optional<Integer> orgId, Optional<Integer> mpId) { | 
|---|
|  |  |  | List<Map<String,Object>> sensorAlarmList = null; | 
|---|
|  |  |  | Map<String,AlarmSensorLevel> alarmLevelMap = null; | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | AlarmConfig alarmConfig = null; | 
|---|
|  |  |  | if(orgId.isPresent()){ | 
|---|
|  |  |  | AlarmConfigValue alarmConfigValue = alarmConfigService.queryValueByOrganizationId(orgId.get()).get(); | 
|---|
|  |  |  | alarmLevelMap = alarmConfigValue.getAlarmLevels(); | 
|---|
|  |  |  | alarmConfig = alarmConfigService.queryValueByOrganizationId(orgId.get()).get(); | 
|---|
|  |  |  | }else if(mpId.isPresent()){ | 
|---|
|  |  |  | AlarmConfig alarmConfig = alarmConfigService.queryByMonitorPointId(mpId.get()).get(); | 
|---|
|  |  |  | alarmLevelMap = alarmConfig.getValue().getAlarmLevels(); | 
|---|
|  |  |  | alarmConfig = alarmConfigService.queryByMonitorPointId(mpId.get()).get(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | //返回值处理 | 
|---|
|  |  |  | if(alarmConfig.getValue()!=null&&alarmConfig.getValue().getAlarmLevels()!=null){ | 
|---|
|  |  |  | Map<String, AlarmSensorLevel> alarmLevelMap = alarmConfig.getValue().getAlarmLevels(); | 
|---|
|  |  |  | // 当前非取默认值,未设值将用默认值覆盖 | 
|---|
|  |  |  | Map<String,AlarmSensorLevel> defaultSensorLevelMap = null; | 
|---|
|  |  |  | if(alarmConfig.getId()!=null){ | 
|---|
|  |  |  | AlarmConfigValue defaultAlarmValue = alarmConfigService.getDefaultAlarmConfigValue(); | 
|---|
|  |  |  | Map<String,AlarmSensorLevel> defaultSensorLevelMap = defaultAlarmValue.getAlarmLevels(); | 
|---|
|  |  |  | Map<String,AlarmSensorLevel> alarmSensorLevelMapNotZO = alarmLevelMap.entrySet().stream().collect( | 
|---|
|  |  |  | HashMap::new, | 
|---|
|  |  |  | (map,entry) -> { | 
|---|
|  |  |  | AlarmSensorLevel alarmSensorLevel = entry.getValue(); | 
|---|
|  |  |  | if(alarmSensorLevel.isEnable()||alarmSensorLevel.isDegressEnable()){ | 
|---|
|  |  |  | map.put(entry.getKey(),entry.getValue()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | (oMap,nMap) -> { | 
|---|
|  |  |  | oMap.putAll(nMap); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ); | 
|---|
|  |  |  | // 已设置的选项覆盖默认选项 | 
|---|
|  |  |  | defaultSensorLevelMap.putAll(alarmSensorLevelMapNotZO); | 
|---|
|  |  |  | alarmLevelMap = defaultSensorLevelMap; | 
|---|
|  |  |  | defaultSensorLevelMap = defaultAlarmValue.getAlarmLevels(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(alarmLevelMap!=null){ | 
|---|
|  |  |  | Map<String, AlarmSensorLevel> finalDefaultSensorLevelMap = defaultSensorLevelMap; | 
|---|
|  |  |  | alarmLevelMap.entrySet().stream().forEach(entry -> { | 
|---|
|  |  |  | //当 increment都为0时,替换为默认值 | 
|---|
|  |  |  | AlarmSensorLevel alarmSensorLevel = entry.getValue(); | 
|---|
|  |  |  | boolean isAllZero = alarmSensorLevel.getIncrement().stream().allMatch(item ->  item == 0); | 
|---|
|  |  |  | if(isAllZero){ | 
|---|
|  |  |  | AlarmSensorLevel defaultAlarmSensorLevel = finalDefaultSensorLevelMap==null?null:finalDefaultSensorLevelMap.get(entry.getKey()); | 
|---|
|  |  |  | if(defaultAlarmSensorLevel!=null){ | 
|---|
|  |  |  | alarmSensorLevel.setIncrement(defaultAlarmSensorLevel.getIncrement()); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | List<Float> tempList = Arrays.asList(0.0f,200.0f,500.0f); | 
|---|
|  |  |  | alarmSensorLevel.setIncrement(tempList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | //map to list | 
|---|
|  |  |  | Map<String, AlarmSensorLevel> finalAlarmLevelMap = alarmLevelMap; | 
|---|
|  |  |  | sensorAlarmList = alarmLevelMap.keySet().stream().map(key -> { | 
|---|