From b6b10b7d89092147ebd5ae1d3cc318205206ab8a Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Fri, 18 Dec 2020 14:48:03 +0800
Subject: [PATCH] 走航车轨迹区域数据显示

---
 src/main/java/com/moral/controller/ScreenController.java |   74 ++++++++++++++++++++++++++++++++-----
 1 files changed, 64 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index a617066..e34c786 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -1633,6 +1633,50 @@
         }
     }
 
+    @GetMapping("/carTrajectoryNew")
+    @ApiOperation(value = "���������������������", notes = "���������������������")
+    @ApiImplicitParams(value = {
+            @ApiImplicitParam(name = "mac", value = "������mac������������p5dnd7a0392081���", required = true, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "startTime", value = "������������(���������2020-03-19-14)", required = true, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "endTime", value = "������������(���������2020-03-19-17)", required = true, paramType = "query", dataType = "String")
+    })
+    public ModelAndView carTrajectoryNew(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, st.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<List<Map<String, Object>>> sensorData = historyService.getCarSensorData(parameters);
+            Map<String, String> sensorsMap = sensorService.getSensorsMap(parameters);
+            List<Map<String, Object>> sensorList = new ArrayList<>();
+            if (sensorData.size() == 3) {
+                sensorList = sensorData.get(0);
+            }
+            JSONObject params = new JSONObject();
+            params.put("sensorInfo", sensorList);
+            params.put("sensorsMap", sensorsMap);
+            String paramsJson = params.toJSONString();
+            model.addObject("carTrajectoryParams", paramsJson);
+            model.setViewName("cartrajectoryNew");
+            return model;
+        } else {
+            StringBuilder msg = new StringBuilder();
+            msg.append(" param[0] mac:");
+            msg.append(mac);
+            log.warn(msg);
+            model.setViewName("403");
+            return model;
+        }
+    }
+
     @GetMapping("/trajectoryDataShow")
     @ApiOperation(value = "���������������", notes = "���������������")
     @ApiImplicitParams(value = {
@@ -3013,6 +3057,7 @@
     @ApiImplicitParams(value = {
             @ApiImplicitParam(name = "monitorPointId", value = "������Id", required = true, paramType = "query", dataType = "String"),
             @ApiImplicitParam(name = "sensorKey", value = "������", required = true, paramType = "query", dataType = "String"),
+            @ApiImplicitParam(name = "realTime", value = "������", required = true, paramType = "query", dataType = "String"),
             @ApiImplicitParam(name = "accountId", value = "������id", required = false, paramType = "query", dataType = "String")})
     public ModelAndView unorganizedEmissionsBackupsV2(HttpServletRequest request, ModelAndView model) {
         Map<String, Object> parameters = WebUtils.getParametersStartingWith(request, null);
@@ -3023,9 +3068,18 @@
         List<Device> deviceList = deviceService.getDevicesByMonitorPointId(539);
         //���������������������
         Map<String,Object> pa = new HashMap<>();
+        //���������������������������������
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        Calendar beforeTime = Calendar.getInstance();
+        Date newTime = beforeTime.getTime();
+        beforeTime.add(Calendar.MINUTE,-5);
+        Date startTime = beforeTime.getTime();
+        beforeTime.add(Calendar.MINUTE,6);
+        Date endTime = beforeTime.getTime();
         //pa.put("sensorKey","e1");
-        pa.put("yearAndMonth","202012");
-        pa.put("time","2020-12-03 10:10:00");
+        pa.put("yearAndMonth",sdf.format(newTime).substring(0,7).replace("-",""));
+        pa.put("startTime",startTime);
+        pa.put("endTime",endTime);
         List<String> macs = new ArrayList<>();
         List<String> sensorKeys = new ArrayList<>();
         for (Device device:deviceList) {
@@ -3036,15 +3090,18 @@
         sensorKeys.add("e23");
         pa.put("macs",macs);
         pa.put("sensorKeys",sensorKeys);
-        List<Map<String, Object>> fiveMinuteDataList = historyFiveMinutelyService.getFiveMinutesSersorDataByMacsAndTime(pa);
+        pa.put("macNumber",macs.size());
+        List<Map<String, Object>> fiveMinuteDataList = historyFiveMinutelyService.getFiveMinutesDataByMacsAndTimeSolt(pa);
         //������������������������������������������
         double[] allDeviceData = new double[fiveMinuteDataList.size()];
-        System.out.println(fiveMinuteDataList);
         int i = 0;
         //������������
         List<Map<String,Object>> windList = new ArrayList<>();
         for (Map map:fiveMinuteDataList) {
             String[] wind_speed = map.get("e18").toString().split(",");
+            if (!map.containsKey("e23")){
+                continue;
+            }
             String[] wind_direction = map.get("e23").toString().split(",");
             Map<String,Object> windMap = new HashMap<>();
             windMap.put("wind_speed",wind_speed[0].substring(1,wind_speed[0].length()));
@@ -3111,15 +3168,13 @@
         //���������������������������������������������
         double distance = mapUtils.getDistance(pollutionSourcePoint.getLongitude(),pollutionSourcePoint.getLatitude(),referenceDevice.getLongitude(),referenceDevice.getLatitude());
         //���������������������������x,y
-        double x = Math.cos(minDisparity.get().getValue())*distance;
-        double y = Math.sin(minDisparity.get().getValue())*distance;
+        double x = Math.cos(Math.toRadians(minDisparity.get().getValue()))*distance;
+        double y = Math.sin(Math.toRadians(minDisparity.get().getValue()))*distance;
         //���������������������
-        String[] fiveMinuteData = fiveMinuteDataMap.get("e21").toString().split(",");
+        String[] fiveMinuteData = fiveMinuteDataMap.get(sensorKey).toString().split(",");
         double c = Double.parseDouble(fiveMinuteData[0].substring(1,fiveMinuteData[0].length()))-deviceDataAvg;
-        System.out.println(c);
         //������������
         double pollutionSourceIntensity = EmissionDataUtil.getPollutionSourceIntensity(c,x,y,res.get("wind_speed"));
-        System.out.println(pollutionSourceIntensity);
 
         //���������������������
         Map<String,Object> center = new HashMap<>();
@@ -3163,7 +3218,6 @@
         numericalValueMap7.put("lat",31.450588);
         numericalValueMap7.put("count",0.10);
         numericalValueList.add(numericalValueMap7);
-        System.out.println(numericalValueList.toString());
 
 
         JSONObject params = new JSONObject();

--
Gitblit v1.8.0