From 6d1d123f7dc9747f7951d25d3fe167a172b47a27 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Thu, 30 Apr 2020 09:30:34 +0800
Subject: [PATCH] update
---
src/main/java/com/moral/controller/ScreenController.java | 175 ++++++++++++++++++++++++++++++++++++----------------------
1 files changed, 108 insertions(+), 67 deletions(-)
diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index 93fe8e5..fea81f7 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -17,6 +17,7 @@
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;
@@ -842,19 +843,8 @@
parameters.put("sensors", Arrays.asList(sensorKeys));
parameters.put("sensors2", s);
List<Map<String, Object>> monitorList = historyMinutelyService.getMonitorPointOrDeviceAvgData(parameters);
- for (Map<String, Object> monitorMap : monitorList) {
- String time = monitorMap.get("time").toString();
- time = time.substring(time.length() - 2);
- monitorMap.put("time", Integer.valueOf(time));
- }
- Integer maxTime = 0;
- Integer max1 = 0;
- if (monitorList.size() != 0) {
- Map<String, Object> monitorMap = monitorList.get(monitorList.size() - 1);
- max1 = Integer.valueOf(monitorMap.get("time").toString());
- } else {
- max1 = 0;
- }
+ String type = parameters.get("type").toString();
+ ArrayList<Map<String, Object>> resultList = new ArrayList<>();
String sensorKey1 = s;
switch (s) {
case "e1":
@@ -889,80 +879,131 @@
areaList = historyMinutelyService.getAreaAvgDataByAreaCode(parameters);
}
- for (Map<String, Object> areaMap : areaList) {
- String time = areaMap.get("time").toString();
- time = time.substring(time.length() - 2);
- areaMap.put("time", Integer.valueOf(time));
- }
-
- ArrayList<Map<String, Object>> resultList = new ArrayList<>();
- if (areaList.isEmpty()) {
+ if (areaList.isEmpty() && monitorList.isEmpty()) {
+ return new ResultBean<List<Map<String, Object>>>(resultList);
+ } else if (areaList.isEmpty()) {
resultList.addAll(monitorList);
- for (Map<String, Object> map : monitorList) {
- ArrayList<String> values = new ArrayList<>();
- values.add(null);
- values.add(map.remove(s).toString());
- map.put("values", values);
+ for (Map<String, Object> resultMap : resultList) {
+ String time = resultMap.get("time").toString();
+ time = time.substring(time.length() - 2);
+ resultMap.put("time", Integer.valueOf(time));
+ List<String> values = new ArrayList<>();
+ values.add("");
+ values.add(resultMap.remove(s).toString());
+ resultMap.put("values", values);
}
return new ResultBean<List<Map<String, Object>>>(resultList);
+ } else if (monitorList.isEmpty()) {
+ resultList.addAll(areaList);
+ for (Map<String, Object> resultMap : resultList) {
+ String time = resultMap.get("time").toString();
+ time = time.substring(time.length() - 2);
+ resultMap.put("time", Integer.valueOf(time));
+ List<String> values = new ArrayList<>();
+ values.add(resultMap.remove(s).toString());
+ values.add("");
+ resultMap.put("values", values);
+ }
+ return new ResultBean<List<Map<String, Object>>>(resultList);
+ }
+
+ for (Map<String, Object> map : areaList) {
+ String time = map.get("time").toString();
+ time = time.substring(time.length() - 2);
+ map.put("time", Integer.valueOf(time));
}
- Integer max = 0;
- if (areaList.size() != 0) {
- Map<String, Object> areaMap = areaList.get(areaList.size() - 1);
- max = Integer.valueOf(areaMap.get("time").toString());
+ for (Map<String, Object> m : monitorList) {
+ String time = m.get("time").toString();
+ time = time.substring(time.length() - 2);
+ m.put("time", Integer.valueOf(time));
+ }
+
+ Integer maxTime = 0;
+ 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);
+ Integer monitorMax = Integer.valueOf(monitorMap.get("time").toString());
+
+ if (type.equals("day")) {
+ if (areaMax >= monitorMax) {
+ maxTime = areaMax + 1;
+ } else {
+ maxTime = monitorMax + 1;
+ }
} else {
- max = 0;
+ if (areaMax >= monitorMax) {
+ maxTime = areaMax;
+ } else {
+ maxTime = monitorMax;
+ }
}
- if (max1 >= max) {
- maxTime = max1;
- } else {
- maxTime = max;
- }
-
- for (int i = 0; i <= maxTime; i++) {
+ for (int i = 0; i < maxTime; i++) {
resultList.add(null);
}
- for (Map<String, Object> areaMap : areaList) {
- Integer time = Integer.valueOf(areaMap.get("time").toString());
- resultList.set(time, areaMap);
+ for (Map<String, Object> map : areaList) {
+ Integer time = Integer.valueOf(map.get("time").toString());
+ if (type.equals("day")) {
+ resultList.set(time, map);
+ } else {
+ resultList.set(time - 1, map);
+ }
+
}
- for (Map<String, Object> resultMap : resultList) {
- for (Map<String, Object> monitorMap : monitorList) {
- ArrayList<String> values = new ArrayList<>();
- String monitorTime = monitorMap.get("time").toString();
- if (resultMap != null) {
- String resultTime = resultMap.get("time").toString();
- if (resultTime.equals(monitorTime)) {
- String value = resultMap.remove(s).toString();
- String value1 = monitorMap.get(s).toString();
- values.add(value);
- values.add(value1);
- resultMap.put("values", values);
- }
- } else {
- String value1 = monitorMap.get(s).toString();
- values.add(null);
- values.add(value1);
+ if (type.equals("day")) {
+ for (int i = 0; i < resultList.size(); i++) {
+ if (resultList.get(i) == null) {
+ Map<String, Object> hashMap = new HashMap<>();
+ 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<>();
+ hashMap.put("time", i + 1);
+ hashMap.put(s, "");
+ resultList.set(i, hashMap);
}
}
}
- resultList.removeAll(Collections.singleton(null));
-
- for (Map<String, Object> resultMap : resultList) {
- if (resultMap.containsKey(s)) {
- ArrayList<String> values = new ArrayList<>();
- values.add(resultMap.remove(s).toString());
- values.add(null);
- resultMap.put("values", values);
+ 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);
+ }
}
}
- return new ResultBean<List<Map<String, Object>>>(resultList);
+
+ for (Map<String, Object> map : resultList) {
+ List<Object> values = new ArrayList<>();
+ if (map.containsKey(s)) {
+ values.add(map.remove(s));
+ 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);
+ }
+ }
+
+ return new ResultBean<List<Map<String, Object>>>(mapList);
}
@GetMapping("getmpoint-byid")
--
Gitblit v1.8.0