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