From 6bff0b135589d238084b592cc9f4b90185426b2f Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Thu, 13 Jun 2019 16:39:20 +0800
Subject: [PATCH] AI

---
 src/main/java/com/moral/service/impl/SensorServiceImpl.java |    6 +++
 src/main/resources/mapper/SensorMapper.xml                  |    6 +++
 src/main/java/com/moral/service/SensorService.java          |    3 +
 src/main/java/com/moral/mapper/SensorMapper.java            |    2 +
 src/main/java/com/moral/controller/ScreenController.java    |   79 +++++++++++++++++++++++++++++++--------
 5 files changed, 79 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index 99a7cea..4b19fc3 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -970,17 +970,69 @@
 	})
 	public ResultBean<List<Map<String, Object>>> AIForecast (HttpServletRequest request) throws Exception {
 		Map<String, Object> parameters = getParametersStartingWith(request, null);
-		ParameterUtils.getTimeType4Time(parameters);
+        ParameterUtils.getTimeType4Time(parameters);
 		String monitor_point_id = (String) parameters.get("monitorPoint");
-		parameters.put("monitorPointId", parameters.remove("monitorPoint"));
-		Object sensorKey = parameters.remove("sensorKey");
-		parameters.put("sensors", Arrays.asList(sensorKey));
-		List<Map<String, Object>> list = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters);
-		System.out.println("ScreenController-----AIForecast-----list:"+list);
+        parameters.put("monitorPointId", parameters.remove("monitorPoint"));
+        String[] sensorKeys = parameters.remove("sensorKey").toString().split(",");
+        System.out.println("ScreenController-----AIForecast-----sensorKeys:"+sensorKeys.toString());
+        parameters.put("sensors", Arrays.asList(sensorKeys));
+        // monitorPointService.isCompensateCalculation(parameters);
+        List<Map<String, Object>> list = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters);
+        System.out.println("ScreenController-----AIForecast-----list:"+list);
+        
+        //������������������
+      	Map<String, Map<String, Object>> sensorUnitMap = sensorUnitService.getSensorsByMonitPointId(monitor_point_id);
+      	
+      	/*if(sensorUnitMap!=null && !sensorUnitMap.isEmpty()) {
+      		for (Map<String, Object> map : list) {
+                String time = map.get("time").toString();
+                time = time.substring(time.length() - 2);
+                map.put("time", Integer.valueOf(time));
+                List<Number> values = new ArrayList<Number>();
+                for (String string : sensorKeys) {
+                    values.add((Number) map.remove(string));
+                }
+                map.put("values", values);
+            }
+      	}else {
+      		for (Map<String, Object> map : list) {
+                String time = map.get("time").toString();
+                time = time.substring(time.length() - 2);
+                map.put("time", Integer.valueOf(time));
+                List<Number> values = new ArrayList<Number>();
+                for (String string : sensorKeys) {
+                    values.add((Number) map.remove(string));
+                }
+                map.put("values", values);
+            }
+      	}*/
+
+        for (Map<String, Object> map : list) {
+            String time = map.get("time").toString();
+            time = time.substring(time.length() - 2);
+            map.put("time", Integer.valueOf(time));
+            List<Number> values = new ArrayList<Number>();
+            List<String> units = new ArrayList<String>();
+            for (String string : sensorKeys) {
+            	if(sensorUnitMap!=null && !sensorUnitMap.isEmpty()) {
+            		if(sensorUnitMap.get(string)!=null) {
+            			units.add(sensorUnitMap.get(string).get("name").toString());
+            		}else {
+            			Map<String, Object> sensorMap = sensorService.getSensorBySensorKey(string);
+            			units.add(sensorMap.get("unit").toString());
+            		}
+            	}else {
+            		Map<String, Object> sensorMap = sensorService.getSensorBySensorKey(string);
+        			units.add(sensorMap.get("unit").toString());
+            	}
+                values.add((Number) map.remove(string));
+            }
+            map.put("values", values);
+            map.put("units", units);
+        }
 		
-		//������������������
-		Map<String, Map<String, Object>> sensorMap = sensorUnitService.getSensorsByMonitPointId(monitor_point_id);
 		
+		/*
 		if(sensorMap!=null && !sensorMap.isEmpty()) {
 			for (Map<String, Object> map : list) {
 				System.out.println("ScreenController-----AIForecast-----map:"+map);
@@ -997,16 +1049,9 @@
 					map.put("unit", "mg/m��");
 				}
 			}
-		}else {
-			for (Map<String, Object> map : list) {
-				String time = map.get("time").toString();
-				time = time.substring(time.length() - 2);
-				map.put("time", Integer.valueOf(time));
-				map.put("value", map.remove(sensorKey));
-				map.put("unit", "mg/m��");
-			}
-		}
+		}*/
 		//return null;
+        System.out.println("ScreenController-----AIForecast-----list:"+list);
 		return new ResultBean<List<Map<String, Object>>>(list);
 	}
 
diff --git a/src/main/java/com/moral/mapper/SensorMapper.java b/src/main/java/com/moral/mapper/SensorMapper.java
index be79476..ce38a83 100644
--- a/src/main/java/com/moral/mapper/SensorMapper.java
+++ b/src/main/java/com/moral/mapper/SensorMapper.java
@@ -19,5 +19,7 @@
 	List<Map<String, Object>> getSensorsByDeviceVersionId(Map<String, Object> parameters);
 	
     List<Sensor> getSensorsByCriteria(Map<String, Object> parameters);
+    
+    Map<String,Object> getSensorBySensorKey(@Param("sensorKey")String sensorKey);
 
 }
\ No newline at end of file
diff --git a/src/main/java/com/moral/service/SensorService.java b/src/main/java/com/moral/service/SensorService.java
index dd0f733..1eb869d 100644
--- a/src/main/java/com/moral/service/SensorService.java
+++ b/src/main/java/com/moral/service/SensorService.java
@@ -1,6 +1,7 @@
 package com.moral.service;
 
 import java.util.List;
+import java.util.Map;
 
 import com.moral.common.bean.PageBean;
 import com.moral.entity.Sensor;
@@ -24,4 +25,6 @@
     List<Sensor> queryByOrgId(Integer organizationId);
 
     public List<Sensor> getAllSensors();
+    
+    Map<String, Object> getSensorBySensorKey(String SensorKey);
 }
diff --git a/src/main/java/com/moral/service/impl/SensorServiceImpl.java b/src/main/java/com/moral/service/impl/SensorServiceImpl.java
index c088849..fc9b469 100644
--- a/src/main/java/com/moral/service/impl/SensorServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/SensorServiceImpl.java
@@ -11,6 +11,7 @@
 import javax.annotation.Resource;
 import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 
 @Service
 public class SensorServiceImpl implements SensorService{
@@ -83,4 +84,9 @@
 	public List<Sensor> getAllSensors() {
 		return sensorMapper.selectAll();
 	}
+	@Override
+	public Map<String, Object> getSensorBySensorKey(String sensorKey) {
+		Map<String, Object> map = sensorMapper.getSensorBySensorKey(sensorKey);
+		return map;
+	}
 }
diff --git a/src/main/resources/mapper/SensorMapper.xml b/src/main/resources/mapper/SensorMapper.xml
index 054e376..ecfc2a0 100644
--- a/src/main/resources/mapper/SensorMapper.xml
+++ b/src/main/resources/mapper/SensorMapper.xml
@@ -122,4 +122,10 @@
 			  )
 			 order by sen.id asc
 	</select>
+	
+	<select id="getSensorBySensorKey" resultType="java.util.Map">
+		SELECT *
+		FROM sensor
+		WHERE sensor_key = #{sensor_key}
+	</select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0