From 63ec97fc0ff6cdfb9dd3c9c0287ce784f0c2aaf5 Mon Sep 17 00:00:00 2001
From: ZhuDongming <773644075@qq.com>
Date: Tue, 31 Mar 2020 09:52:18 +0800
Subject: [PATCH] update指定设备发送任务

---
 src/main/java/com/moral/service/DeviceService.java          |    2 ++
 src/main/java/com/moral/mapper/HistoryMapper.java           |    2 ++
 src/main/resources/mapper/HistoryMapper.xml                 |   21 +++++++++++++++++++++
 src/main/java/com/moral/task/HistoryTableInsertTask.java    |    2 +-
 src/main/java/com/moral/service/impl/DeviceServiceImpl.java |    5 +++++
 5 files changed, 31 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/moral/mapper/HistoryMapper.java b/src/main/java/com/moral/mapper/HistoryMapper.java
index fd4026f..d9ac919 100644
--- a/src/main/java/com/moral/mapper/HistoryMapper.java
+++ b/src/main/java/com/moral/mapper/HistoryMapper.java
@@ -18,6 +18,8 @@
 
     List<Map<String, Object>> getSensorDataByMac(Map<String,Object> parameters);
 
+    List<Map<String, Object>> getSensorDataByMacOnce(Map<String,Object> parameters);
+
     List<Map<String, Object>> getSensorDataOnce(Map<String,Object> parameters);
 	
 	Map<String, Object> getMinData(Map<String,Object> parameters);
diff --git a/src/main/java/com/moral/service/DeviceService.java b/src/main/java/com/moral/service/DeviceService.java
index a91d4d6..0ef2920 100644
--- a/src/main/java/com/moral/service/DeviceService.java
+++ b/src/main/java/com/moral/service/DeviceService.java
@@ -11,6 +11,8 @@
 
     List<Map<String, Object>> getSensorDataByMac(Map<String, Object> parameters);
 
+    List<Map<String, Object>> getSensorDataByMacOnce(Map<String, Object> parameters);
+
     List<String> getMacs();
 
     List<String> getMacByOrganizationid(List<Object> organizationIdList);
diff --git a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
index 304b3e4..280914b 100644
--- a/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/DeviceServiceImpl.java
@@ -38,6 +38,11 @@
     }
 
     @Override
+    public List<Map<String, Object>> getSensorDataByMacOnce(Map<String, Object> parameters) {
+        return historyMapper.getSensorDataByMacOnce(parameters);
+    }
+
+    @Override
     public List<String> getMacs() {
         return deviceMapper.getMacs();
     }
diff --git a/src/main/java/com/moral/task/HistoryTableInsertTask.java b/src/main/java/com/moral/task/HistoryTableInsertTask.java
index ea5796f..fe94ff9 100644
--- a/src/main/java/com/moral/task/HistoryTableInsertTask.java
+++ b/src/main/java/com/moral/task/HistoryTableInsertTask.java
@@ -810,7 +810,7 @@
         devices.put("start", startTime);
         devices.put("end", endTime);
         try {
-            List<Map<String, Object>> minutelyData = deviceService.getSensorDataByMac(devices);
+            List<Map<String, Object>> minutelyData = deviceService.getSensorDataByMacOnce(devices);
             XxlJobLogger.log("historyMinutelyData:" + minutelyData.size());
             List<Map<String, Object>> minutelyDataList = new ArrayList<>();
             for (Map<String, Object> deviceData : minutelyData) {
diff --git a/src/main/resources/mapper/HistoryMapper.xml b/src/main/resources/mapper/HistoryMapper.xml
index 4e677f0..823b530 100644
--- a/src/main/resources/mapper/HistoryMapper.xml
+++ b/src/main/resources/mapper/HistoryMapper.xml
@@ -120,6 +120,27 @@
         h.mac
     </select>
 
+    <select id="getSensorDataByMacOnce" resultType="java.util.LinkedHashMap">
+        SELECT
+        h.mac,DATE_FORMAT(time,'%Y-%m-%dT%H:%i') time,
+        <foreach  collection="sensorKeys" separator="," item="sensorKey">
+            AVG(value->'$.${sensorKey}') AS '${sensorKey}',
+            MAX(cast(h.value ->'$.${sensorKey}' as decimal(11,3))) AS 'MAX${sensorKey}',
+            MIN(cast(h.value ->'$.${sensorKey}' as decimal(11,3))) AS 'MIN${sensorKey}'
+        </foreach>
+        FROM
+        history h
+        WHERE
+        h.time >= #{start}
+        AND h.time <![CDATA[<]]> #{end}
+        and h.mac in
+        <foreach collection="macList" index="index" item="mac" open="(" separator="," close=")">
+            #{mac}
+        </foreach>
+        group by
+        h.mac,DATE_FORMAT(time,'%Y-%m-%dT%H:%i')
+    </select>
+
     <select id="getSensorDataOnce" resultType="java.util.LinkedHashMap">
         SELECT
         h.mac,DATE_FORMAT(time,'%Y-%m-%dT%H:%i') time,

--
Gitblit v1.8.0