From 22eb0d07b7230bfdb9542a3d6d24d5163b14c5ac Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Thu, 20 Aug 2020 16:19:44 +0800
Subject: [PATCH] 预测数据中加入经纬度字段

---
 src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java |   73 +++++++++++++++++++++++++++++++++++-
 1 files changed, 71 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java
index 2fabdce..710920a 100644
--- a/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HistoryHourlyServiceImpl.java
@@ -16,6 +16,7 @@
 import com.moral.service.DeviceService;
 import com.moral.service.HistoryHourlyService;
 import com.moral.service.SensorService;
+
 import javax.annotation.Resource;
 
 @Service
@@ -55,13 +56,81 @@
     }
 
     @Override
+    public Map<String, Object> getPollutionSourceDataByHour(Map<String, Object> parameters) throws Exception {
+        List<Sensor> sensors = sensorMapper.getSensorsByMac(parameters);
+        List<String> sensorKeys = new ArrayList<>();
+        for (Sensor sensor : sensors) {
+            sensorKeys.add(sensor.getSensorKey());
+        }
+        parameters.put("sensorKeys", sensorKeys);
+        Map<String, Object> pollutionSourceData = historyHourlyMapper.getPollutionSourceDataByHour(parameters);
+        if (MapUtils.isNotEmpty(pollutionSourceData)) {
+            Map<String, String> sensorsMap = sensorService.getSensorsMap(parameters);
+            String selectSensorKey = parameters.get("sensorKey").toString();
+            for (Map.Entry<String, String> s : sensorsMap.entrySet()) {
+                if (selectSensorKey.equals(s.getKey())) {
+                    selectSensorKey = s.getValue();
+                }
+            }
+            pollutionSourceData.put("selectSensorKey", selectSensorKey);
+        }
+        return pollutionSourceData;
+    }
+
+    @Override
+    public Map<String, Object> getPollutionSourceDataAll(Map<String, Object> parameters) throws Exception {
+        List<Sensor> sensors = sensorMapper.getSensorsByMac(parameters);
+        List<String> sensorKeys = new ArrayList<>();
+        for (Sensor sensor : sensors) {
+            sensorKeys.add(sensor.getSensorKey());
+        }
+        parameters.put("sensorKeys", sensorKeys);
+        Map<String, Object> pollutionSourceData = historyHourlyMapper.getPollutionSourceDataAll(parameters);
+        if (MapUtils.isNotEmpty(pollutionSourceData)) {
+            Map<String, String> sensorsMap = sensorService.getSensorsMap(parameters);
+            String selectSensorKey = parameters.get("sensorKey").toString();
+            for (Map.Entry<String, String> s : sensorsMap.entrySet()) {
+                if (selectSensorKey.equals(s.getKey())) {
+                    selectSensorKey = s.getValue();
+                }
+            }
+            pollutionSourceData.put("selectSensorKey", selectSensorKey);
+        }
+        return pollutionSourceData;
+    }
+
+    @Override
+    public String getTVOCByMac(String mac,String time,String sensor) {
+        return historyHourlyMapper.getTVOCByMac(mac,time,sensor);
+    }
+
+    @Override
+    public String getPressureByMac(String mac, String time) {
+        return historyHourlyMapper.getPressureByMac(mac,time);
+    }
+
+    @Override
+    public Map<String,Object> getDataByMac(String mac, String time) {
+        return historyHourlyMapper.getDataByMac(mac,time);
+    }
+
+    @Override
+    public List<Map<String, Object>> getDataByTimeSlot(String mac, String startTime, String endTime) throws Exception {
+        List<Map<String, Object>> resultMap = historyHourlyMapper.getDataByTimeSlot(mac,startTime,endTime);
+        return resultMap;
+    }
+
+    @Override
     public Point getDirPoint(Map<String, Object> parameters) throws Exception {
-        Map<String, Object> pollutionSourceData = getPollutionSourceData(parameters);
+        Map<String, Object> pollutionSourceData = getPollutionSourceDataByHour(parameters);
+        if (MapUtils.isEmpty(pollutionSourceData)) {
+            pollutionSourceData = getPollutionSourceDataAll(parameters);
+        }
         String mac = parameters.get("mac").toString();
         Device device = deviceService.getDeviceByMac(mac, false);
         Point pointEnd = new Point();
         if (MapUtils.isNotEmpty(pollutionSourceData)) {
-            if (pollutionSourceData.get("e18") != null && pollutionSourceData.get("e23") != null && pollutionSourceData.get("e6") != null) {
+            if (pollutionSourceData.get("e18") != null && pollutionSourceData.get("e23") != null) {
                 double windSpeed = Double.valueOf(pollutionSourceData.get("e18").toString());
                 double winDir = Double.valueOf(pollutionSourceData.get("e23").toString());
                 double distance = windSpeed * 3600;

--
Gitblit v1.8.0