From 66fd957202742202804a614c766b9b973a26d836 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Thu, 07 May 2020 17:15:04 +0800
Subject: [PATCH] update

---
 src/main/java/com/moral/controller/ScreenController.java |  110 ++++++++++++++++++-------------------------------------
 1 files changed, 36 insertions(+), 74 deletions(-)

diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index fea81f7..63ba21f 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -17,7 +17,6 @@
 
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.collections.MapUtils;
-import org.apache.commons.lang.StringUtils;
 import org.apache.commons.net.ftp.FTPClient;
 import org.apache.log4j.Logger;
 import org.dom4j.Document;
@@ -839,45 +838,15 @@
         parameters.put("monitorPointId", parameters.remove("monitorPoint"));
         parameters.put("areaCode", parameters.remove("areaCode"));
         String[] sensorKeys = parameters.remove("sensorKey").toString().split(",");
+        String type = parameters.get("type").toString();
         String s = sensorKeys[0];
         parameters.put("sensors", Arrays.asList(sensorKeys));
         parameters.put("sensors2", s);
-        List<Map<String, Object>> monitorList = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters);
-        String type = parameters.get("type").toString();
-        ArrayList<Map<String, Object>> resultList = new ArrayList<>();
-        String sensorKey1 = s;
-        switch (s) {
-            case "e1":
-                sensorKey1 = "PM2_5";
-                break;
-            case "e2":
-                sensorKey1 = "PM10";
-                break;
-            case "e10":
-                sensorKey1 = "CO";
-                break;
-            case "e11":
-                sensorKey1 = "SO2";
-                break;
-            case "e15":
-                sensorKey1 = "O3";
-                break;
-            case "e16":
-                sensorKey1 = "NO2";
-                break;
-            default:
-                break;
-        }
 
-        parameters.put("sensors1", sensorKey1);
-        List<Map<String, Object>> areaList = historyMinutelyService.getAreaAvgDataByAreaCode(parameters);
-        if (areaList.isEmpty()) {
-            Integer areaCode = Integer.valueOf(request.getParameter("areaCode"));
-            areaCode = hangzhouAqiService.queryCityCode(areaCode);
-            parameters.remove("areaCode");
-            parameters.put("areaCode", String.valueOf(areaCode));
-            areaList = historyMinutelyService.getAreaAvgDataByAreaCode(parameters);
-        }
+        ArrayList<Map<String, Object>> resultList = new ArrayList<>();
+
+        List<Map<String, Object>> monitorList = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters);
+        List<Map<String, Object>> areaList = hangzhouAqiService.getAreaAvgDataByAreaCode(parameters);
 
         if (areaList.isEmpty() && monitorList.isEmpty()) {
             return new ResultBean<List<Map<String, Object>>>(resultList);
@@ -911,7 +880,6 @@
             String time = map.get("time").toString();
             time = time.substring(time.length() - 2);
             map.put("time", Integer.valueOf(time));
-
         }
 
         for (Map<String, Object> m : monitorList) {
@@ -920,7 +888,7 @@
             m.put("time", Integer.valueOf(time));
         }
 
-        Integer maxTime = 0;
+        Integer maxTime;
         Map<String, Object> areaMap = areaList.get(areaList.size() - 1);
         Integer areaMax = Integer.valueOf(areaMap.get("time").toString());
         Map<String, Object> monitorMap = monitorList.get(monitorList.size() - 1);
@@ -951,59 +919,53 @@
             } else {
                 resultList.set(time - 1, map);
             }
-
         }
 
-        if (type.equals("day")) {
-            for (int i = 0; i < resultList.size(); i++) {
-                if (resultList.get(i) == null) {
-                    Map<String, Object> hashMap = new HashMap<>();
+        for (int i = 0; i <resultList.size() ; i++) {
+            if (resultList.get(i) == null) {
+                Map<String, Object> hashMap = new HashMap<>();
+                if(type.equals("day")){
                     hashMap.put("time", i);
-                    hashMap.put(s, "");
-                    resultList.set(i, hashMap);
-                }
-            }
-        } else {
-            for (int i = 0; i < resultList.size(); i++) {
-                if (resultList.get(i) == null) {
-                    Map<String, Object> hashMap = new HashMap<>();
+                }else {
                     hashMap.put("time", i + 1);
-                    hashMap.put(s, "");
-                    resultList.set(i, hashMap);
                 }
+                hashMap.put(s, "");
+                resultList.set(i, hashMap);
             }
         }
 
-        for (Map<String, Object> map : resultList) {
-            List<Object> values = new ArrayList<>();
-            for (Map<String, Object> map1 : monitorList) {
-                if (map.get("time").toString().equals(map1.get("time").toString())) {
-                    values.add(map.remove(s));
-                    values.add(map1.remove(s));
-                    map.put("values", values);
-                }
+        for (Map<String, Object> map1 : monitorList) {
+            ArrayList<String> values = new ArrayList<>();
+            Integer time = Integer.valueOf(map1.get("time").toString());
+            Map<String, Object> map;
+            if (type.equals("day")) {
+                map = resultList.get(time);
+            } else {
+                map = resultList.get(time - 1);
             }
+            values.add(map.remove(s).toString());
+            values.add(map1.get(s).toString());
+            map.put("values", values);
         }
 
         for (Map<String, Object> map : resultList) {
-            List<Object> values = new ArrayList<>();
             if (map.containsKey(s)) {
-                values.add(map.remove(s));
+                ArrayList<String> values = new ArrayList<>();
+                values.add(map.remove(s).toString());
                 values.add("");
-                map.put("values", values);
-            }
-        }
-        List<Map<String, Object>> mapList = new ArrayList<>();
-        for (Map<String, Object> map : resultList) {
-            String values = map.get("values").toString();
-            String string = StringUtils.strip(values, "[]");
-            String[] strings = string.split(",");
-            if (!strings[0].equals("") || !strings[1].equals(" ")) {
-                mapList.add(map);
+                map.put("values",values);
             }
         }
 
-        return new ResultBean<List<Map<String, Object>>>(mapList);
+        Iterator<Map<String, Object>> it = resultList.iterator();
+        while(it.hasNext()){
+            Map<String, Object> next = it.next();
+            ArrayList<String> values = (ArrayList<String>)next.get("values");
+            if(values.get(0).equals("")&&values.get(1).equals("")){
+                it.remove();
+            }
+        }
+        return new ResultBean<List<Map<String, Object>>>(resultList);
     }
 
     @GetMapping("getmpoint-byid")

--
Gitblit v1.8.0