From 148727793cc4ab3e7038c1bdcd6a217217b37e03 Mon Sep 17 00:00:00 2001
From: ZhuDongming <773644075@qq.com>
Date: Thu, 22 Aug 2019 16:55:42 +0800
Subject: [PATCH] 添加污染传播来源接口

---
 src/main/java/com/moral/controller/ScreenController.java |   79 ++++++++++++++++++++++++++++++++++++---
 1 files changed, 72 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index f932cb4..19f2c5e 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -8,6 +8,9 @@
 import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.text.DecimalFormat;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -365,9 +368,12 @@
     
     @GetMapping("hour-aqi")
     @ApiOperation(value = "���������������AQI", notes = "���������������AQI")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "mac", value = "������mac������", required = true, paramType = "query", dataType = "String")
+    })
     public Map<String, Object> getHourAQIByDevice(HttpServletRequest request) {
     	Map<String, Object> parameters = getParametersStartingWith(request, null);
-    	return historyMinutelyService.getHourAQIByDevice(parameters);
+    	return historyService.gitHourlyAQIByMacAndTimeslot(parameters);
     }
 
     /**
@@ -858,7 +864,9 @@
             @ApiImplicitParam(name = "organizationId", defaultValue = "5", value = "���������������������id", required = true, paramType = "query", dataType = "Integer"),
             @ApiImplicitParam(name = "time", defaultValue = "2019", value = "���������������", required = true, paramType = "query", dataType = "String"),
             @ApiImplicitParam(name = "sensorKey", defaultValue = "e27", value = "������������������������key", required = true, paramType = "query", dataType = "String"),
-            @ApiImplicitParam(name = "regionCode", defaultValue = "130000", value = "���������", required = true, paramType = "query", dataType = "String")})
+            @ApiImplicitParam(name = "regionCode", defaultValue = "130000", value = "���������", required = true, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "monitorPointId", value = "���������id", required = false, paramType = "query", dataType = "int"),
+            @ApiImplicitParam(name = "mac", value = "������mac", required = false, paramType = "query", dataType = "String")})
     public ResultBean<List<Map<String, Object>>> getemissionsData(HttpServletRequest request) throws Exception {
         Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
         List<Map<String, Object>> result = historyDailyService.getEmissionsData(parameters);
@@ -1161,21 +1169,43 @@
     @ApiOperation(value = "���������������������������", notes = "���������������������������")
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "mac", value = "������mac������������p5dnd7a0392068���", required = true, paramType = "query", dataType = "String"),
-            @ApiImplicitParam(name = "startTime", value = "������������(���������2019-07-17 17:07:00)", required = false, paramType = "query", dataType = "String"),
-            @ApiImplicitParam(name = "endTime", value = "������������(���������2019-07-17 17:07:00)", required = false, paramType = "query", dataType = "String")
+            @ApiImplicitParam(name = "startTime", value = "������������(���������2019-07-17-17)", required = true, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "endTime", value = "������������(���������2019-07-17-18)", required = true, paramType = "query", dataType = "String")
     })
     public ModelAndView uavTrajectory(ModelAndView model, HttpServletRequest request) throws Exception {
         Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+        String st = parameters.get("startTime").toString();
+        String startYearAndDay = st.substring(0, st.lastIndexOf("-"));
+        String startHour = st.substring(st.lastIndexOf("-") + 1);
+        String startTime = startYearAndDay + " " + startHour + ":00:00";
+        String et = parameters.get("endTime").toString();
+        String endYearAndDay = et.substring(0, et.lastIndexOf("-"));
+        String endHour = et.substring(et.lastIndexOf("-") + 1);
+        String endTime = endYearAndDay + " " + endHour + ":00:00";
+        parameters.put("startTime", startTime);
+        parameters.put("endTime", endTime);
         String mac = parameters.get("mac").toString();
         if (mac != null && mac.length() != 0) {
-            List<Map<String, Object>> sensorList = historyMinutelyService.getSensorData(parameters);
+            List<List<Map<String, Object>>> sensorData = historyMinutelyService.getSensorData(parameters);
+            Map<String, String> sensorsMap = sensorService.getSensorsMap(parameters);
+            List<Map<String, Object>> sensorList = new ArrayList<>();
+            List<Map<String, Object>> sensorListMin = new ArrayList<>();
+            List<Map<String, Object>> sensorListMax = new ArrayList<>();
+            if (sensorData.size() == 3) {
+                sensorList = sensorData.get(0);
+                sensorListMin = sensorData.get(1);
+                sensorListMax = sensorData.get(2);
+            }
             JSONObject params = new JSONObject();
             params.put("sensorInfo", sensorList);
+            params.put("sensorInfoMin", sensorListMin);
+            params.put("sensorInfoMax", sensorListMax);
+            params.put("sensorsMap",sensorsMap);
             String paramsJson = params.toJSONString();
             model.addObject("uavTrajectoryParams", paramsJson);
-            model.setViewName("uavTrajectory");
+            model.setViewName("uavtrajectory");
             return model;
-        }else {
+        } else {
             StringBuilder msg = new StringBuilder();
             msg.append(" param[0] mac:");
             msg.append(mac);
@@ -1185,4 +1215,39 @@
         }
     }
 
+    @GetMapping("/pollutionSource")
+    @ApiOperation(value = "������������������", notes = "������������������")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "organizationId", defaultValue = "5", value = "���������������������id", required = true, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "mac", value = "������mac������(������p5dnd7a0391972)", required = true, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "time", value = "������������(���������2019-08-22)", required = true, paramType = "query", dataType = "String")})
+    public ModelAndView pollutionSource(ModelAndView model, HttpServletRequest request) throws Exception {
+        Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
+        LocalDate today=LocalDate.now();
+        String time=parameters.get("time").toString();
+        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
+        LocalDate selectTime = LocalDate.parse(time, dateTimeFormatter);
+        LocalDate yesterday=today.minusDays(1);
+        LocalDate futureDay=today.plusDays(14);
+        Boolean isAfterYesterday=selectTime.isAfter(yesterday)||selectTime.isEqual(yesterday);
+        Boolean isAfterFutureDay=selectTime.isAfter(futureDay);
+        Map<String, Object> weatherInfoToday=weatherService.getWeatherDataByRegion(parameters);
+        Map<String, Object> weatherInfoForecast=new HashMap<>();
+        if(isAfterYesterday&&!isAfterFutureDay){
+            weatherInfoForecast= weatherService.get15DayWeatherDataByRegion(parameters);
+        }
+        Boolean isToday=selectTime.isEqual(today);
+        String mac=parameters.get("mac").toString();
+        Device device = deviceService.getDeviceByMac(mac, false);
+        JSONObject params = new JSONObject();
+        params.put("weatherInfoToday", weatherInfoToday);
+        params.put("weatherInfoForecast", weatherInfoForecast);
+        params.put("device", device);
+        params.put("isToday",isToday);
+        String paramsJson = params.toJSONString();
+        model.addObject("pollutionSourceParams", paramsJson);
+        model.setViewName("pollutionsource");
+        return model;
+    }
+
 }

--
Gitblit v1.8.0