From e8ef361dc975aeaedeee6f28dfe679489a22f9d5 Mon Sep 17 00:00:00 2001
From: ZhuDongming <773644075@qq.com>
Date: Mon, 02 Sep 2019 17:42:06 +0800
Subject: [PATCH] Merge branch 'master' of http://blit.7drlb.com:8888/r/screen_api_v2
---
src/main/java/com/moral/service/HistoryService.java | 2 +
src/main/java/com/moral/service/impl/HistoryServiceImpl.java | 35 +++++++++++++++++
src/main/java/com/moral/mapper/HistoryMapper.java | 2 +
src/main/resources/mapper/HistoryMapper.xml | 8 ++++
src/main/java/com/moral/controller/ScreenController.java | 44 ++++++++++++++++++++++
5 files changed, 91 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index 0233526..54cfd04 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -96,6 +96,7 @@
import com.moral.service.SensorService;
import com.moral.service.SensorUnitService;
import com.moral.service.WeatherService;
+import com.moral.util.AQICalculation;
import com.moral.util.TempAllocationUtils;
import io.swagger.annotations.Api;
@@ -1253,5 +1254,48 @@
model.setViewName("pollutionsource");
return model;
}
+
+ @GetMapping("getAirQualityComparison")
+ @ApiOperation(value = "������������������", notes = "������������������")
+ @ApiImplicitParams(value = {
+ @ApiImplicitParam(name = "organizationId", defaultValue = "5", value = "���������������������id", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "monitor_point_id", defaultValue = "5", value = "������������id", required = true, paramType = "query", dataType = "String")})
+ public ResultBean<Map<String, Object>> getAirQualityComparison(HttpServletRequest request) throws Exception {
+ Map<String, Object> parameters = getParametersStartingWith(request, null);
+ Map<String, Object> map = weatherService.getWeatherDataByRegion(parameters);
+ Map<String, Double> sensorMap = new HashMap<>();
+ sensorMap.put("e1", Double.parseDouble(map.get("pm25").toString()));
+ sensorMap.put("e2", Double.parseDouble(map.get("pm10").toString()));
+ sensorMap.put("e11", Double.parseDouble(map.get("so2").toString()));
+ sensorMap.put("e16", Double.parseDouble(map.get("no2").toString()));
+ sensorMap.put("e10", Double.parseDouble(map.get("co").toString()));
+ sensorMap.put("e15", Double.parseDouble(map.get("o3").toString()));
+ Map<String, Object> StateControl = AQICalculation.hourlyAQI(sensorMap);
+ System.out.println("StateControl:"+StateControl);
+ Map<String, Object> hourAqi = historyService.gitHourlyAQIByMonitorPointIdAndTimeslot(parameters);
+ System.out.println("hourAqi:"+hourAqi);
+ Map<String, Object> returnMap = new HashMap<>();
+ returnMap.put("������AQI", hourAqi.get("AQI"));
+ returnMap.put("������AQI", StateControl.get("AQI"));
+ return new ResultBean<Map<String, Object>>(returnMap);
+ }
+
+ @GetMapping("mointorPointRank")
+ @ApiOperation(value = "������������������", notes = "������������������")
+ @ApiImplicitParams(value = {
+ @ApiImplicitParam(name = "accountId", value = "������id", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "sensor", value = "������", required = true, paramType = "query", dataType = "String")
+ })
+ public ResultBean<List<Map<String, Object>>> getMointorPointRank(HttpServletRequest request){
+ Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+ String id = parameters.get("accountId").toString();
+ String sensor = parameters.get("sensor").toString();
+ Map<String, Object> account = accountService.getOrganizationIdByAccountId(id);
+ //������������id������������������������������
+ account.put("sensor", sensor);
+ List<Map<String, Object>> returnList = historyService.getMointorPointRankByOrganizationId(account);
+ return new ResultBean<List<Map<String, Object>>>(returnList);
+ }
+
}
diff --git a/src/main/java/com/moral/mapper/HistoryMapper.java b/src/main/java/com/moral/mapper/HistoryMapper.java
index 2cd3775..99ecf83 100644
--- a/src/main/java/com/moral/mapper/HistoryMapper.java
+++ b/src/main/java/com/moral/mapper/HistoryMapper.java
@@ -25,5 +25,7 @@
List<Map<String, Object>> getSensorDataToday(Map<String, Object> parameters);
List<Map<String, Object>> getAVGSensorRankByMonitorPointIdList(@Param("sensor")String sensor, @Param("monitorPointIdList") List<Object> monitorPointIdList, @Param("before5Time")String before5Time, @Param("endTime")String endTime);
+
+ Map<String, Object> getMonitorPointAVGValueByMonitorPointIdAndTimeslot(@Param("monitor_point_id")String monitor_point_id, @Param("starttime")String starttime, @Param("endtime")String endtime);
}
\ No newline at end of file
diff --git a/src/main/java/com/moral/service/HistoryService.java b/src/main/java/com/moral/service/HistoryService.java
index b41a7eb..b2e2035 100644
--- a/src/main/java/com/moral/service/HistoryService.java
+++ b/src/main/java/com/moral/service/HistoryService.java
@@ -26,5 +26,7 @@
Map<String, Object> gitHourlyAQIByMacAndTimeslot(Map<String, Object> parameters);
List<Map<String, Object>> getMointorPointRankByOrganizationId(Map<String, Object> parameters);
+
+ Map<String, Object> gitHourlyAQIByMonitorPointIdAndTimeslot(Map<String, Object> parameters);
}
diff --git a/src/main/java/com/moral/service/impl/HistoryServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
index dff8765..6238443 100644
--- a/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
@@ -438,4 +438,39 @@
List<Map<String, Object>> result = historyMapper.getAVGSensorRankByMonitorPointIdList(sensor, monitorPointIdList, before5Time, endTime);
return result;
}
+
+ @Override
+ public Map<String, Object> gitHourlyAQIByMonitorPointIdAndTimeslot(Map<String, Object> parameters) {
+ String monitor_point_id = parameters.get("monitor_point_id").toString();
+ //������������
+ LocalDate localDate = LocalDate.now();
+ Calendar c = Calendar.getInstance();//������������������������������������
+ int endHour = c.get(Calendar.HOUR_OF_DAY);
+ String endTime = localDate+" "+endHour+":00:00";
+
+ String startTime;
+ if(endHour == 0) {
+ LocalDate startDate = localDate.minusDays(1);
+ startTime = startDate+" "+"23:00:00";
+ }else {
+ int startHour = endHour-1;
+ startTime = localDate+" "+startHour+":00:00";
+ }
+ Map<String, Object> map = historyMapper.getMonitorPointAVGValueByMonitorPointIdAndTimeslot(monitor_point_id, startTime, endTime);
+ System.out.println(map);
+ Map<String, Object> returnMap = new HashMap<>();
+ if (map.isEmpty()) {
+ returnMap.put("AQI", "N/V");
+ } else {
+ Map<String, Double> AQIMap = new HashMap<>();
+ for (Map.Entry<String, Object> entry : map.entrySet()) {
+ String key = entry.getKey();
+ Double value = Double.parseDouble(entry.getValue().toString());
+ AQIMap.put(key, value);
+ }
+ returnMap = AQICalculation.hourlyAQI(AQIMap);
+ }
+
+ return returnMap;
+ }
}
diff --git a/src/main/resources/mapper/HistoryMapper.xml b/src/main/resources/mapper/HistoryMapper.xml
index ace511c..7835d14 100644
--- a/src/main/resources/mapper/HistoryMapper.xml
+++ b/src/main/resources/mapper/HistoryMapper.xml
@@ -207,5 +207,13 @@
GROUP BY d.monitor_point_id
ORDER BY AVG(JSON_EXTRACT(h.value,'$.${sensor}[0]')) DESC
</select>
+
+ <select id="getMonitorPointAVGValueByMonitorPointIdAndTimeslot" resultType="java.util.Map">
+ SELECT AVG(JSON_EXTRACT(value,'$.e1[0]')) e1,AVG(JSON_EXTRACT(value,'$.e2[0]')) e2,AVG(JSON_EXTRACT(value,'$.e10[0]')) e10,AVG(JSON_EXTRACT(value,'$.e11[0]')) e11,AVG(JSON_EXTRACT(value,'$.e16[0]')) e16,AVG(JSON_EXTRACT(value,'$.e15[0]')) e15
+ FROM device d,history h
+ WHERE d.monitor_point_id = #{monitor_point_id}
+ AND d.mac = h.mac
+ AND h.time BETWEEN #{starttime} AND #{endtime}
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.8.0