From ed8f0aeffb619c0540b16420320973207c55f015 Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Fri, 23 Mar 2018 08:52:49 +0800
Subject: [PATCH] 地图点击关闭弹窗

---
 src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java |   80 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 79 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryMinutelyServiceImpl.java
index bf84e4a..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;
@@ -30,6 +29,11 @@
 
 import javax.annotation.Resource;
 
+import com.moral.common.util.ReportTimeFormat;
+import com.moral.entity.charts.DataCondition;
+import com.moral.entity.charts.LineChartCriteria;
+import com.moral.entity.charts.PairData;
+import com.moral.entity.charts.TimePeriod;
 import org.apache.commons.lang3.time.DateUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.util.ObjectUtils;
@@ -140,6 +144,10 @@
 		Map<String, List<Object>> resultMap = new HashMap<String, List<Object>>();
 		List<Map<String, Object>> list = JSON.parseObject((String)parameters.get("items"), new TypeReference<List<Map<String, Object>>>() {});
 		parameters.remove("items");
+		Map<String, Object> timeType = JSON.parseObject((String)parameters.get("timeType"), new TypeReference<Map<String, Object>>() {});
+		parameters.remove("timeType");
+		parameters.putAll(timeType);
+		
 		ExecutorService threadPool = Executors.newCachedThreadPool();
 		CompletionService<Map<String, List<Object>>> cs = new ExecutorCompletionService<Map<String, List<Object>>>(threadPool);
 
@@ -435,4 +443,74 @@
 		return result;
 	}
 
+	/**
+	 * ������������������������������������������������������������������
+	 * @param lineChartCriteria
+	 * @return
+	 */
+	@Override
+	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;
+	}
+
+	/**
+	 * ������������������������������������������������������������������
+	 * @param sensorKey
+	 * @param timePeriod
+	 * @param dataCondition
+	 * @return
+	 */
+	public List<PairData> queryOneLineChartDateByCrieria(String sensorKey, TimePeriod timePeriod, DataCondition dataCondition){
+		List<String> timeList = ReportTimeFormat.makeTimeList(timePeriod);
+		List<PairData> lineChartDatas = historyMinutelyMapper.selectLineChartDateByCrieria(sensorKey,timePeriod,dataCondition);
+		List<PairData> lineChartDatasWithEmpty = new ArrayList<>();
+		int m = 0;
+		int dataLength = lineChartDatas.size()-1;
+		m = dataLength>-1?0:-1;
+		if(m>-1){
+			for(int n =0;n<timeList.size();n++){
+				String time = timeList.get(n);
+				if(m>-1){
+					PairData pairData = lineChartDatas.get(m);
+					String keyTime = pairData.getCategory();
+					if(time.equals(keyTime)){
+						lineChartDatasWithEmpty.add(pairData);
+						m = m<dataLength ? m+1 : -1;
+					}else{
+						lineChartDatasWithEmpty.add(generateEmptyData(time));
+					}
+				}else {
+					    lineChartDatasWithEmpty.add(generateEmptyData(time));
+				}
+
+			}
+		}else{
+			fillEmptyDataToList(timeList,lineChartDatasWithEmpty);
+		}
+		return  lineChartDatasWithEmpty;
+	}
+	private PairData generateEmptyData(String time) {
+		PairData pairData = new PairData();
+		pairData.setCategory(time);
+		pairData.setValue(null);
+		return pairData;
+	}
+	private void fillEmptyDataToList(List<String> timeList,List<PairData> lineChartDatasWithEmpty){
+        timeList.forEach( time ->{
+			PairData pairData = generateEmptyData(time);
+        	lineChartDatasWithEmpty.add(pairData);
+		});
+	}
 }

--
Gitblit v1.8.0