沈斌
2018-06-09 938b35db33710afcbf42fe0b0b1137a6c6a0d7b4
src/main/java/com/moral/controller/ScreenController.java
@@ -36,7 +36,6 @@
import org.springframework.web.servlet.ModelAndView;
import org.xml.sax.InputSource;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.moral.common.bean.Constants;
@@ -157,36 +156,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 -> {
@@ -371,10 +373,8 @@
   @RequestMapping(value = "/map-page", method = RequestMethod.GET)
   public ModelAndView map(ModelAndView model, @RequestParam("areaCode")int code, @RequestParam("accountId")int accountId){
      Account account = accountService.getAccountById(accountId);
      String regionName = areaService.selectFullNameByCode(code);
      String regionName = areaService.queryFullNameByCode(code);
      if(account!=null&&regionName!=null){
          //去除空格
            regionName = regionName.replace(" ","");
         Object sensors = sensorService.queryAll();
         JSONObject params = new JSONObject();
         params.put("regionCode",code);
@@ -524,4 +524,14 @@
      List<Map<String, Object>> list = (List<Map<String, Object>>) pieData.get(sensorKey);
      return new ResultBean<List<Map<String, Object>>>(list);
   }
   /**
    * 根据监控点id获取所属设备version数据集
    * @param mptid
    * @return
    */
   @GetMapping("getvers")
   public ResultBean<List<Integer>> getVersions(Integer mptid){
      return  new ResultBean<>(monitorPointService.queryVersionsById(mptid));
   }
}