fengxiang
2018-05-11 fd13d232df7292d93172d1200235a77f286f64ed
src/main/java/com/moral/controller/ScreenController.java
@@ -157,36 +157,39 @@
   @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();
                     if(alarmSensorLevel.getIncrement()!=null){
                         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 -> {