From a8532c88680e4ab213c269ec91da5b223f62332f Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Wed, 07 Feb 2018 14:12:26 +0800
Subject: [PATCH] 地图相关资源

---
 src/main/java/com/moral/service/AlarmConfigService.java          |    7 ++-
 src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java |   52 +++++++++++++++++++++++---
 src/main/webapp/view/map.jsp                                     |    8 +++
 src/main/java/com/moral/controller/AlarmConfigController.java    |    2 
 src/main/java/com/moral/controller/ScreenController.java         |   38 +++++++++++-------
 src/main/resources/system/alarmLevels.json                       |    2 
 6 files changed, 83 insertions(+), 26 deletions(-)

diff --git a/src/main/java/com/moral/controller/AlarmConfigController.java b/src/main/java/com/moral/controller/AlarmConfigController.java
index 70e1121..7d5cecd 100644
--- a/src/main/java/com/moral/controller/AlarmConfigController.java
+++ b/src/main/java/com/moral/controller/AlarmConfigController.java
@@ -17,7 +17,7 @@
     AlarmConfigService alarmConfigService;
        @GetMapping("get-by-oid")
       public ResultBean<AlarmConfig> getAlarmConfigByOrganizationId(int organizationId){
-          AlarmConfig alarmConfig = alarmConfigService.SelectByOrganizationId(organizationId);
+          AlarmConfig alarmConfig = alarmConfigService.queryByOrganizationId(organizationId).get();
           ResultBean resultBean = new ResultBean();
           resultBean.setCode(ResultBean.SUCCESS);
            resultBean.setData(alarmConfig);
diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index 88efaf1..e8bd1c8 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -6,7 +6,9 @@
 import static com.moral.common.util.WebUtils.getParametersStartingWith;
 
 import java.io.*;
+import java.lang.reflect.InvocationTargetException;
 import java.util.*;
+import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
@@ -19,7 +21,10 @@
 import com.moral.entity.Device;
 import com.moral.entity.MapBounds;
 import com.moral.entity.MonitorPoint;
+import com.moral.entity.alarm.AlarmConfigValue;
+import com.moral.entity.alarm.AlarmSensorLevel;
 import com.moral.service.*;
+import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.net.ftp.FTPClient;
@@ -46,7 +51,8 @@
 //@CrossOrigin(origins = "*", maxAge = 3600)
 public class ScreenController {
 	public  static Logger log = Logger.getLogger(ScreenController.class);
-
+    @Resource
+	AlarmConfigService alarmConfigService;
 	@Resource
 	AreaService areaService;
 
@@ -128,23 +134,25 @@
 	 */
 	@SuppressWarnings("resource")
 	@GetMapping("alarm-levels")
-	public Map<String, Object> getAlarmLevels(HttpServletRequest request,String orgId) {
-		Map<String, Object> result = new LinkedHashMap<String, Object>();
-		String key = levelKey + orgId;
+	public Object getAlarmLevels(HttpServletRequest request, Integer orgId) {
+        List<Map<String,Object>> sensorAlarmList = null;
+		AlarmConfigValue alarmConfigValue = null;
 		try {
-			if (hasKey(redisTemplate, key)) {
-				String levelConfigStr = get(redisTemplate, key);
-				result = JSON.parseObject(levelConfigStr, new TypeReference<Map<String, Object>>() {});
-			} else {
-				InputStreamReader reader = new InputStreamReader(resource.getInputStream());
-				result = new JSONReader(reader).readObject(new TypeReference<LinkedHashMap<String, Object>>() {});
-			}
-			
-		} catch (IOException e) {
+			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());
+		} catch (Exception e) {
 			e.printStackTrace();
-			result.put("msg", "���������������������������������������������������" + e.getMessage());
+			Map<String, Object> err = new LinkedHashMap<String, Object>();
+			err.put("msg", "���������������������������������������������������" + e.getMessage());
+			return  err;
 		}
-		return result;
+		return sensorAlarmList;
 	}
 
 	/**
diff --git a/src/main/java/com/moral/service/AlarmConfigService.java b/src/main/java/com/moral/service/AlarmConfigService.java
index 4080244..0701630 100644
--- a/src/main/java/com/moral/service/AlarmConfigService.java
+++ b/src/main/java/com/moral/service/AlarmConfigService.java
@@ -1,9 +1,12 @@
 package com.moral.service;
 
 import com.moral.entity.alarm.AlarmConfig;
+import com.moral.entity.alarm.AlarmConfigValue;
+
+import java.util.Optional;
 
 public interface AlarmConfigService {
-     public AlarmConfig SelectByOrganizationId(int organizationId);
-
+    public Optional<AlarmConfigValue> queryValueByOrganizationId(int organizationId);
+    public Optional<AlarmConfig> queryByOrganizationId(int organizationId);
     void addOrModify(AlarmConfig alarmConfig);
 }
diff --git a/src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java b/src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java
index d4720d9..8b9651c 100644
--- a/src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/AlarmConfigServiceImpl.java
@@ -1,5 +1,7 @@
 package com.moral.service.impl;
 
+import com.alibaba.fastjson.JSONReader;
+import com.alibaba.fastjson.TypeReference;
 import com.moral.common.bean.Constants;
 import com.moral.common.util.RedisUtils;
 import com.moral.entity.alarm.AlarmConfig;
@@ -8,23 +10,61 @@
 import com.moral.entity.alarm.AlarmSensorLevel;
 import com.moral.mapper.AlarmConfigMapper;
 import com.moral.service.AlarmConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.autoconfigure.session.SessionProperties;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.*;
 
 @Service
 public class AlarmConfigServiceImpl implements AlarmConfigService{
+    /** ������������������������ .*/
+    @Value(value = "classpath:system/alarmLevels.json")
+    private org.springframework.core.io.Resource resource;
+    private static AlarmConfigValue defaultAlarmConfigValue;
+    @Autowired
+    public AlarmConfigValue getDefaultAlarmConfigValue(){
+        if(defaultAlarmConfigValue!=null){
+            return defaultAlarmConfigValue;
+        }else {
+            InputStreamReader reader = null;
+            AlarmConfigValue alarmConfigValue = null;
+            try {
+                reader = new InputStreamReader(resource.getInputStream());
+                alarmConfigValue = new JSONReader(reader).readObject(new TypeReference<AlarmConfigValue>() {});
+            } catch (IOException e) {
+                e.printStackTrace();
+            }
+            return  alarmConfigValue;
+        }
+    }
     @Resource
     RedisUtils redisUtils;
     @Resource
     AlarmConfigMapper alarmConfigMapper;
     @Override
-    public AlarmConfig SelectByOrganizationId(int organizationId) {
-         return alarmConfigMapper.selectByOrganizationId(organizationId);
+    public Optional queryValueByOrganizationId(int organizationId) {
+        String key = RedisUtils.getAlarmKey(organizationId);
+        AlarmConfigValue alarmConfigValue = redisUtils.get(key,new TypeReference<AlarmConfigValue>(){});
+        if(alarmConfigValue==null){
+            AlarmConfig alarmConfig = alarmConfigMapper.selectByOrganizationId(organizationId);
+            if(alarmConfig!=null&&alarmConfig.getValue()!=null){
+                alarmConfigValue  = alarmConfig.getValue();
+            }else{
+                alarmConfigValue = getDefaultAlarmConfigValue();
+            }
+        }
+        return Optional.of(alarmConfigValue);
+    }
+
+    @Override
+    public Optional<AlarmConfig> queryByOrganizationId(int organizationId) {
+        AlarmConfig alarmConfig = alarmConfigMapper.selectByOrganizationId(organizationId);
+        return Optional.of(alarmConfig);
     }
 
     @Override
diff --git a/src/main/resources/system/alarmLevels.json b/src/main/resources/system/alarmLevels.json
index 74a507c..7b1a534 100644
--- a/src/main/resources/system/alarmLevels.json
+++ b/src/main/resources/system/alarmLevels.json
@@ -1,6 +1,6 @@
 {
     "alarmMode": {
-        "enable": 1,
+        "enable": 0,
         "level1": [],
         "level2": [],
         "level3": []
diff --git a/src/main/webapp/view/map.jsp b/src/main/webapp/view/map.jsp
index 11ede8b..0b02bf5 100644
--- a/src/main/webapp/view/map.jsp
+++ b/src/main/webapp/view/map.jsp
@@ -333,6 +333,12 @@
 							        	alert(equStr);
 							        }
 				              }
+                    obj['mouseover'] = function (type) {
+						if(type.target.getData()==null){
+                            //��������������������������������������������������� ������������������
+                            refreshAllState();
+						}
+                    }
 				   var moralMask = new moralMap.Equipment(obj);
                    moralMap.addOverlay(moralMask);
 				}
@@ -410,7 +416,7 @@
          }
          setTimeout(function(){
             refreshAllState();
-         },2000);
+         },5000);
     }
     function stopRefreshPage(){
         window.clearInterval(_intervalNum);

--
Gitblit v1.8.0