From e786ed5d01635555dac37c69003bdbbf757d69d8 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Wed, 18 Nov 2020 17:46:21 +0800
Subject: [PATCH] 从history获取数据接口更新为从history日表获取

---
 src/main/java/com/moral/service/impl/HistoryServiceImpl.java |   12 ++++--------
 src/main/resources/mapper/HistoryMapper.xml                  |   10 +++++-----
 2 files changed, 9 insertions(+), 13 deletions(-)

diff --git a/src/main/java/com/moral/service/impl/HistoryServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
index 3f5d6d6..8007e0a 100644
--- a/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HistoryServiceImpl.java
@@ -74,12 +74,10 @@
         Map<String, Object> resultMap = new LinkedHashMap<String, Object>();
         accountService.setOrgIdsByAccount(parameters);
         LocalDateTime time = LocalDateTime.now();
-        // ������������ -10������
-        LocalDateTime start = time.minusMinutes(10);
-        parameters.put("start", start);
+        parameters.put("end", time);
         // ������������ -5������
-        LocalDateTime end = time.minusMinutes(5);
-        parameters.put("end", end);
+        LocalDateTime start = time.minusMinutes(5);
+        parameters.put("start", start);
         List<Sensor> Sensors = sensorMapper.getSensorsByCriteria(parameters);
         List<String> sensorKeys = new ArrayList<String>();
         for (Sensor sensor : Sensors) {
@@ -87,7 +85,7 @@
         }
         parameters.put("sensorKeys", sensorKeys);
         DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyyMM");
-        parameters.put("timeUnits", "minutely_" + df.format(start));
+        parameters.put("timeUnits", "five_minutely_" + df.format(time));
         List<Map<String, Object>> list = historyMapper.getAreaAllDataByAccount(parameters);
         resultMap.putAll(list.get(0));
         return resultMap;
@@ -111,7 +109,6 @@
         parameters.put("sensorKeys", sensorKeys);
         parameters.put("timeUnits", "hourly");
         List<Map<String, Object>> list = historyMapper.getAreaAllDataByAccount(parameters);
-
         for (Map<String, Object> map : list) {
             result.put((String) map.get("name"), map.get(macKey.toString()));
         }
@@ -386,7 +383,6 @@
             resultMap.put(map.remove("sensor_key").toString(), map);
         }
         return resultMap;
-
     }
 
     @Override
diff --git a/src/main/resources/mapper/HistoryMapper.xml b/src/main/resources/mapper/HistoryMapper.xml
index 0fd5fcf..7d08573 100644
--- a/src/main/resources/mapper/HistoryMapper.xml
+++ b/src/main/resources/mapper/HistoryMapper.xml
@@ -13,7 +13,7 @@
             d.`name`,
         </if>
         <foreach collection="sensorKeys" separator="," item="sensorKey">
-            AVG(h.`value` ->'$.${sensorKey}') AS '${sensorKey}'
+            AVG(h.json ->'$.${sensorKey}[0]') AS '${sensorKey}'
         </foreach>
         FROM
         history_${timeUnits} h,
@@ -164,7 +164,7 @@
     </select>
 
     <select id="getAVGValueByMacAndTimeslot" 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
+		SELECT AVG(JSON_EXTRACT(value,'$.e1')) e1,AVG(JSON_EXTRACT(value,'$.e2')) e2,AVG(JSON_EXTRACT(value,'$.e10')) e10,AVG(JSON_EXTRACT(value,'$.e11')) e11,AVG(JSON_EXTRACT(value,'$.e16')) e16,AVG(JSON_EXTRACT(value,'$.e15')) e15
 		FROM history_${timeUnits}
 		WHERE mac = #{mac}
 		AND time >= #{starttime}
@@ -196,7 +196,7 @@
     </select>
 
     <select id="getAVGSensorRankByMonitorPointIdList" resultType="java.util.Map">
-        SELECT mp.name, AVG(JSON_EXTRACT(h.value,'$.${sensor}[0]')) sensor
+        SELECT mp.name, AVG(JSON_EXTRACT(h.value,'$.${sensor}')) sensor
         FROM device d, history_${timeUnits} h, monitor_point mp
         WHERE d.mac=h.mac
         And mp.id=d.monitor_point_id
@@ -206,11 +206,11 @@
         </foreach>
         AND h.time BETWEEN #{before5Time} AND #{endTime}
         GROUP BY d.monitor_point_id
-        ORDER BY AVG(JSON_EXTRACT(h.value,'$.${sensor}[0]')) DESC
+        ORDER BY AVG(JSON_EXTRACT(h.value,'$.${sensor}')) 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
+    	SELECT AVG(JSON_EXTRACT(value,'$.e1')) e1,AVG(JSON_EXTRACT(value,'$.e2')) e2,AVG(JSON_EXTRACT(value,'$.e10')) e10,AVG(JSON_EXTRACT(value,'$.e11')) e11,AVG(JSON_EXTRACT(value,'$.e16')) e16,AVG(JSON_EXTRACT(value,'$.e15')) e15
 		FROM device d,history_${timeUnits} h
 		WHERE d.monitor_point_id = #{monitor_point_id}
 		AND d.mac = h.mac

--
Gitblit v1.8.0