From 00d2837b0056d84394df6ebcb4e779698c283c0d Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Mon, 19 Mar 2018 16:45:22 +0800
Subject: [PATCH] 数据查看功能

---
 src/main/java/com/moral/service/HistoryMinutelyService.java          |    2 +-
 src/main/resources/mapper/HistoryMinutelyMapper.xml                  |   18 ++++++++++--------
 src/main/java/com/moral/entity/charts/LineChartCriteria.java         |    2 +-
 src/main/webapp/img/ico04_bak.png                                    |    0 
 src/main/java/com/moral/controller/ReportController.java             |    2 +-
 src/main/webapp/img/ico_coo04_bak.png                                |    0 
 src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java |   27 ++++++++++++++-------------
 7 files changed, 27 insertions(+), 24 deletions(-)

diff --git a/src/main/java/com/moral/controller/ReportController.java b/src/main/java/com/moral/controller/ReportController.java
index f2058a8..d5dd547 100644
--- a/src/main/java/com/moral/controller/ReportController.java
+++ b/src/main/java/com/moral/controller/ReportController.java
@@ -35,7 +35,7 @@
 		return new ResultBean<Map<String,List<Object>>>(demo);
 	}
 	@PostMapping("line-chart")
-	public ResultBean <List<List<PairData>>> lineChart(@RequestBody LineChartCriteria lineChartCriteria){
+	public ResultBean <Map<String, List<List<PairData>>>> lineChart(@RequestBody LineChartCriteria lineChartCriteria){
 		return  new ResultBean<>(historyMinutelyService.queryLineChartDateByCrieria(lineChartCriteria));
 	}
 	@GetMapping("excel")
diff --git a/src/main/java/com/moral/entity/charts/LineChartCriteria.java b/src/main/java/com/moral/entity/charts/LineChartCriteria.java
index 589a25e..6472203 100644
--- a/src/main/java/com/moral/entity/charts/LineChartCriteria.java
+++ b/src/main/java/com/moral/entity/charts/LineChartCriteria.java
@@ -6,7 +6,7 @@
 
 @Data
 public class LineChartCriteria {
-      private String sensorKey;//���������������
+      private List<String> sensorKeys;//���������������
       private TimePeriod timePeriod;//������������
       private List<DataCondition> dataConditions;//������������������
 }
diff --git a/src/main/java/com/moral/service/HistoryMinutelyService.java b/src/main/java/com/moral/service/HistoryMinutelyService.java
index ec3f36d..6fee90d 100644
--- a/src/main/java/com/moral/service/HistoryMinutelyService.java
+++ b/src/main/java/com/moral/service/HistoryMinutelyService.java
@@ -17,5 +17,5 @@
 	Map<String, Object> getMonthAverageBySensor(Map<String, Object> parameters);
 
 
-    List<List<PairData>> queryLineChartDateByCrieria(LineChartCriteria lineChartCriteria);
+    Map<String, List<List<PairData>>> queryLineChartDateByCrieria(LineChartCriteria lineChartCriteria);
 }
diff --git a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java
index 0a73e54..43104c6 100644
--- a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java
@@ -9,7 +9,6 @@
 import java.time.temporal.TemporalAdjusters;
 import java.util.ArrayList;
 import java.util.Arrays;
-import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Date;
@@ -27,8 +26,6 @@
 import java.util.concurrent.ExecutorCompletionService;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
-import java.util.stream.Collector;
-import java.util.stream.Collectors;
 
 import javax.annotation.Resource;
 
@@ -452,16 +449,20 @@
 	 * @return
 	 */
 	@Override
-	public List<List<PairData>> queryLineChartDateByCrieria(LineChartCriteria lineChartCriteria){
-        String sensorKey = lineChartCriteria.getSensorKey();
-        TimePeriod timePeriod = lineChartCriteria.getTimePeriod();
-		List<DataCondition> dataConditionList = lineChartCriteria.getDataConditions();
-		List<List<PairData>> list =  new ArrayList<>();
-		dataConditionList.forEach(item -> {
-			List<PairData> pairDataList =  queryOneLineChartDateByCrieria(sensorKey,timePeriod,item);
-			list.add(pairDataList);
-		});
-		return  list;
+	public Map<String, List<List<PairData>>> queryLineChartDateByCrieria(LineChartCriteria lineChartCriteria){
+	    Map<String,List<List<PairData>>> listMap = new HashMap<>();
+	    for(String sensorKey:lineChartCriteria.getSensorKeys()){
+            TimePeriod timePeriod = lineChartCriteria.getTimePeriod();
+            List<DataCondition> dataConditionList = lineChartCriteria.getDataConditions();
+            List<List<PairData>> list =  new ArrayList<>();
+            dataConditionList.forEach(item -> {
+                List<PairData> pairDataList =  queryOneLineChartDateByCrieria(sensorKey,timePeriod,item);
+                list.add(pairDataList);
+            });
+            listMap.put(sensorKey,list);
+        }
+
+		return  listMap;
 	}
 
 	/**
diff --git a/src/main/resources/mapper/HistoryMinutelyMapper.xml b/src/main/resources/mapper/HistoryMinutelyMapper.xml
index 2bbb17b..797834d 100644
--- a/src/main/resources/mapper/HistoryMinutelyMapper.xml
+++ b/src/main/resources/mapper/HistoryMinutelyMapper.xml
@@ -43,12 +43,14 @@
 	</select>
 	<select id="selectLineChartDateByCrieria" resultMap="PairDataResultMap">
 			SELECT
-		     <if test='"MINUTE"!=dataCondition.timeUnits.toString()'>
-		         AVG(json->'$.${sensorKey}[0]')
-		     </if>
-		     <if test='"MINUTE"==dataCondition.timeUnits.toString()'>
-				 json->'$.${sensorKey}[0]'
-			 </if>
+				<choose>
+					<when test="'MINUTE'==dataCondition.timeUnits.toString() and 'DEVICE'==dataCondition.areaRange.toString()">
+						json->'$.${sensorKey}[0]'
+					</when>
+					<otherwise>
+						AVG(json->'$.${sensorKey}[0]')
+					</otherwise>
+				</choose>
 		      as value,
 		     DATE_FORMAT(time,'${@com.moral.common.util.ReportTimeFormat@toMySqlTimeFormat(timePeriod.timeUnits)}') as format_time
 		     FROM
@@ -70,7 +72,7 @@
 						and mpt.id = #{dataCondition.areaRangeId}
 					</if>
 					<if test='"PROVINCE"==dataCondition.areaRange.toString()'>
-						and mpt.provice_code = #{dataCondition.areaRangeId}
+						and mpt.province_code = #{dataCondition.areaRangeId}
 					</if>
 					<if test='"CITY"==dataCondition.areaRange.toString()'>
 						and mpt.city_code = #{dataCondition.areaRangeId}
@@ -81,7 +83,7 @@
 				</where>
 				)
 			</where>
-			<if test='"MINUTE"!=dataCondition.timeUnits.toString()'>
+			<if test="'MINUTE'!=dataCondition.timeUnits.toString() or 'DEVICE'!=dataCondition.areaRange.toString()">
 				GROUP BY format_time
 			</if>
 		    ORDER BY format_time asc
diff --git a/src/main/webapp/img/ico04_bak.png b/src/main/webapp/img/ico04_bak.png
new file mode 100644
index 0000000..9c64a6a
--- /dev/null
+++ b/src/main/webapp/img/ico04_bak.png
Binary files differ
diff --git a/src/main/webapp/img/ico_coo04_bak.png b/src/main/webapp/img/ico_coo04_bak.png
new file mode 100644
index 0000000..2885216
--- /dev/null
+++ b/src/main/webapp/img/ico_coo04_bak.png
Binary files differ

--
Gitblit v1.8.0