From e2236bdb285884a32b8c58f0873deb603261f4c3 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Thu, 10 May 2018 15:17:39 +0800
Subject: [PATCH] 获取 报警levels,提供 mpID监控点id,orgId组织id,皆为可选参数

---
 src/main/java/com/moral/controller/ScreenController.java |   95 ++++++++++++++++++++++-------------------------
 1 files changed, 44 insertions(+), 51 deletions(-)

diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index 4c54351..8cc897a 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -7,11 +7,7 @@
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
 import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
@@ -25,6 +21,7 @@
 import org.dom4j.Element;
 import org.dom4j.io.SAXReader;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.cglib.beans.BeanMap;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.util.ObjectUtils;
@@ -158,17 +155,49 @@
 	 * @return the alarm levels
 	 */
 	@GetMapping("alarm-levels")
-	public Object getAlarmLevels(HttpServletRequest request, Integer orgId) {
+	public Object getAlarmLevels(HttpServletRequest request, Optional<Integer> orgId, Optional<Integer> mpId) {
         List<Map<String,Object>> sensorAlarmList = null;
-		try {
-			AlarmConfigValue alarmConfigValue = alarmConfigService.queryValueByOrganizationId(orgId).get();
-			Map<String,AlarmSensorLevel> alarmLevelMap = alarmConfigValue.getAlarmLevels();
-			sensorAlarmList = alarmLevelMap.keySet().stream().map(key -> {
-				 AlarmSensorLevel alarmSensorLevel = alarmLevelMap.get(key);
-				JSONObject alarmSensorLevelMap = (JSONObject) JSON.toJSON(alarmSensorLevel);
-				alarmSensorLevelMap.put("key",key);
-				return alarmSensorLevelMap;
-			}).collect(Collectors.toList());
+        Map<String,AlarmSensorLevel> alarmLevelMap = null;
+        try {
+             if(orgId.isPresent()){
+                 AlarmConfigValue alarmConfigValue = alarmConfigService.queryValueByOrganizationId(orgId.get()).get();
+                 alarmLevelMap = alarmConfigValue.getAlarmLevels();
+             }else if(mpId.isPresent()){
+                 AlarmConfig alarmConfig = alarmConfigService.queryByMonitorPointId(mpId.get()).get();
+                 alarmLevelMap = alarmConfig.getValue().getAlarmLevels();
+                 // ������������������������������������������������������
+                 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;
+                 }
+             }
+             if(alarmLevelMap!=null){
+                 //map to list
+                 Map<String, AlarmSensorLevel> finalAlarmLevelMap = alarmLevelMap;
+                 sensorAlarmList = alarmLevelMap.keySet().stream().map(key -> {
+                     AlarmSensorLevel alarmSensorLevel = finalAlarmLevelMap.get(key);
+                     Map<String,Object> alarmSensorLevelMap = new HashMap<>(BeanMap.create(alarmSensorLevel));
+                     alarmSensorLevelMap.put("key",key);
+                     return alarmSensorLevelMap;
+                 }).collect(Collectors.toList());
+             }else{
+                 return  new ResultBean<>("���������������������������������������������",ResultBean.FAIL);
+             }
 		} catch (Exception e) {
 			e.printStackTrace();
 			Map<String, Object> err = new LinkedHashMap<String, Object>();
@@ -494,41 +523,5 @@
 		Map pieData = alarmDailyService.getPieData(parameters);
 		List<Map<String, Object>> list = (List<Map<String, Object>>) pieData.get(sensorKey);
 		return new ResultBean<List<Map<String, Object>>>(list);
-	}
-
-	/**
-	 * ������������������
-	 * @param mpid
-	 * @return
-	 */
-	@GetMapping("getalevels")
-	public ResultBean<Map<String,AlarmSensorLevel>> getAlarmLevelByMonitorPointId(int mpid){
-		AlarmConfig alarmConfig = alarmConfigService.queryByMonitorPointId(mpid).get();
-        Map<String,AlarmSensorLevel> alarmSensorLevelMap = alarmConfig.getValue().getAlarmLevels();
-        // ������������������������������������������������������
-        if(alarmConfig.getId()!=null){
-            AlarmConfigValue defaultAlarmValue = alarmConfigService.getDefaultAlarmConfigValue();
-            Map<String,AlarmSensorLevel> defaultSensorLevelMap = defaultAlarmValue.getAlarmLevels();
-            Map<String,AlarmSensorLevel> alarmSensorLevelMapNotZO = alarmSensorLevelMap.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);
-            alarmSensorLevelMap = defaultSensorLevelMap;
-        }
-
-		ResultBean<Map<String,AlarmSensorLevel>> resultBean = new ResultBean();
-		resultBean.setCode(ResultBean.SUCCESS);
-		resultBean.setData(alarmSensorLevelMap);
-		return resultBean;
 	}
 }

--
Gitblit v1.8.0