From d1c0c991624ecb68bf44cbae163eaf28640296df Mon Sep 17 00:00:00 2001
From: xufenglei <xufenglei>
Date: Fri, 03 Nov 2017 14:23:02 +0800
Subject: [PATCH] json  警报值接口

---
 src/main/java/com/moral/monitor/service/impl/ScreenServiceImpl.java |   19 +++++++++
 src/main/resources/mapper/HistoryEntityMapper.xml                   |   10 +++++
 src/main/java/com/moral/monitor/service/ScreenService.java          |    2 +
 src/main/java/com/moral/monitor/controller/ScreenController.java    |   39 +++++++++++++++++++
 4 files changed, 69 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/moral/monitor/controller/ScreenController.java b/src/main/java/com/moral/monitor/controller/ScreenController.java
index 9ffd60e..ab993be 100644
--- a/src/main/java/com/moral/monitor/controller/ScreenController.java
+++ b/src/main/java/com/moral/monitor/controller/ScreenController.java
@@ -1,5 +1,7 @@
 package com.moral.monitor.controller;
 
+import java.io.IOException;
+import java.io.InputStreamReader;
 import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -10,11 +12,15 @@
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.core.io.Resource;
 import org.springframework.web.bind.annotation.CrossOrigin;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
 import org.springframework.web.bind.annotation.RestController;
 
+import com.alibaba.fastjson.JSONReader;
+import com.alibaba.fastjson.TypeReference;
 import com.moral.monitor.entity.AccountEntity;
 import com.moral.monitor.service.ScreenService;
 import com.moral.monitor.util.BusinessException;
@@ -29,6 +35,9 @@
 	/** The screen service. */
 	@Autowired
 	private ScreenService screenService;
+
+	@Value(value="classpath:system/alarmLevels.json")
+    private  Resource resource; 
 
 	/**
 	 * Screen login.
@@ -144,4 +153,34 @@
 		}
 		return result;
 	}
+	
+	
+	@RequestMapping(value = "/sensor-average", method = RequestMethod.GET)
+	public Map<String, Object> getAverageBySensor(HttpServletRequest request) {
+		Map<String, Object> result = new HashMap<String, Object>();
+		try {
+			Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+			if (!(parameters.containsKey("areaCode") && parameters.containsKey("accountId") && parameters.containsKey("macKey"))) {
+				result.put("msg", "���������������������");
+			} else {
+				result = screenService.getAverageBySensor(parameters);
+			}
+		} catch (BusinessException be) {
+			be.printStackTrace();
+			result.put("msg", be.getMessage());
+		} catch (Exception e) {
+			e.printStackTrace();
+			result.put("msg", "���������������������������������������������������"+e.getMessage());
+		}
+		return result;
+	}
+
+
+	@RequestMapping(value = "/alarm-levels", method = RequestMethod.GET)
+	public Map<String,Map<String,Double>> getAlarmLevels(HttpServletRequest request) throws IOException {
+    	InputStreamReader reader=new InputStreamReader(resource.getInputStream());
+		JSONReader jsonReader = new JSONReader(reader);
+		Map<String,Map<String,Double>> result= jsonReader.readObject(new TypeReference<Map<String,Map<String,Double>>>(){});
+		return result;
+	}
 }
diff --git a/src/main/java/com/moral/monitor/service/ScreenService.java b/src/main/java/com/moral/monitor/service/ScreenService.java
index 1e9a0cc..2818cff 100644
--- a/src/main/java/com/moral/monitor/service/ScreenService.java
+++ b/src/main/java/com/moral/monitor/service/ScreenService.java
@@ -15,4 +15,6 @@
 
 	Map<String, Object> getEquipmentStates(Map<String, Object> parameters);
 
+	Map<String, Object> getAverageBySensor(Map<String, Object> parameters);
+
 }
diff --git a/src/main/java/com/moral/monitor/service/impl/ScreenServiceImpl.java b/src/main/java/com/moral/monitor/service/impl/ScreenServiceImpl.java
index 0294b49..a5f32bf 100644
--- a/src/main/java/com/moral/monitor/service/impl/ScreenServiceImpl.java
+++ b/src/main/java/com/moral/monitor/service/impl/ScreenServiceImpl.java
@@ -133,7 +133,7 @@
 		Map<String, Object> result = new LinkedHashMap<String, Object>();
 
 		setOrgIdsByAccount(parameters);
-
+		parameters.put("macKey", "all");
 		Date date = new Date();
 		// ������������ -10������
 		parameters.put("start", DateUtils.addMinutes(date, -10));
@@ -210,4 +210,21 @@
 		return (maxIAQI - minIAQI) * (avg - minMacKey) / (maxMacKey - minMacKey) + minIAQI;
 	}
 
+	@Override
+	public Map<String, Object> getAverageBySensor(Map<String, Object> parameters) {
+		Map<String, Object> result = new LinkedHashMap<String, Object>();
+
+		setOrgIdsByAccount(parameters);
+		Date date = new Date();
+		// ������������ -1������
+		parameters.put("start", DateUtils.addHours(date, -1));
+		parameters.put("end", date);
+		List<Map<String, Object>> averageByAll = historyMapper.getAverageByAll(parameters);
+
+		for (Map<String, Object> map : averageByAll) {
+			result.put((String) map.get("name"), map.get("avg"));
+		}
+		return result;
+	}
+
 }
diff --git a/src/main/resources/mapper/HistoryEntityMapper.xml b/src/main/resources/mapper/HistoryEntityMapper.xml
index ea7322f..c0d79d5 100644
--- a/src/main/resources/mapper/HistoryEntityMapper.xml
+++ b/src/main/resources/mapper/HistoryEntityMapper.xml
@@ -239,7 +239,12 @@
 
 	<select id="getAverageByAll" resultType="map">
 		SELECT
+			<if test="macKey == 'all'">
 			h.mac_key,
+			</if>	
+			<if test="macKey != null and macKey != 'all'">
+			e.name,
+			</if>	
 			AVG(h.mac_value) avg
 		FROM
 			history h,
@@ -258,8 +263,13 @@
 				#{listItem}
 			</foreach>
 		</if>
+		<if test="macKey == 'all'">
 		GROUP BY
 			h.mac_key
+		</if>	
+		<if test="macKey != null and macKey != 'all'">
+		AND	h.mac_key = #{macKey}
+		</if>	
 	</select>
 
 	<select id="getEquipmentStates" resultType="map">

--
Gitblit v1.8.0