From d1f1b489eea7730bb1cb78cdae24c626db835298 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Thu, 30 Apr 2020 11:24:16 +0800
Subject: [PATCH] update
---
src/main/java/com/moral/controller/ScreenController.java | 331 ++++++++++++++++++++++++++++++++----------------------
1 files changed, 194 insertions(+), 137 deletions(-)
diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index 3920b26..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;
@@ -463,7 +464,7 @@
@GetMapping("month-sensor-average")
public Map<String, Object> getMonthAverageBySensor(HttpServletRequest request) {
Map<String, Object> parameters = getParametersStartingWith(request, null);
- return historyMinutelyService.getMonthAverageBySensor(parameters);
+ return historyMinutelyService.getAverageBySensor(parameters);
}
@GetMapping("check-activate")
@@ -823,139 +824,187 @@
return new ResultBean<List<Map<String, Object>>>(list);
}
- @GetMapping("report_avg_AreaData")
- @ApiOperation(value = "������������������������������������������", notes = "������������������������������������������")
- @ApiImplicitParams(value = {
- @ApiImplicitParam(name = "monitorPoint", value = "���������id", required = true, paramType = "query", dataType = "String"),
- @ApiImplicitParam(name = "mac", value = "������mac", required = false, paramType = "query", dataType = "String"),
- @ApiImplicitParam(name = "areaCode", value = "������������", required = true, paramType = "query", dataType = "String"),
- @ApiImplicitParam(name = "sensorKey", value = "���������key", required = true, paramType = "query", dataType = "String"),
- @ApiImplicitParam(name = "time", value = "������,������(���������2018-03)", required = true, paramType = "query", dataType = "String"),})
- public ResultBean<List<Map<String, Object>>> getAreaAvgDataByAreaCode(HttpServletRequest request)
- throws Exception {
- Map<String, Object> parameters = getParametersStartingWith(request, null);
- ParameterUtils.getTimeType4Time(parameters);
- parameters.put("monitorPointId", parameters.remove("monitorPoint"));
- parameters.put("areaCode", parameters.remove("areaCode"));
- String[] sensorKeys = parameters.remove("sensorKey").toString().split(",");
- String s=sensorKeys[0];
- 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 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);
- }
-
- for (Map<String, Object> areaMap : areaList) {
- String time = areaMap.get("time").toString();
- time = time.substring(time.length() - 2);
- areaMap.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());
- } else {
- max = 0;
- }
-
- if (max1 >= max) {
- maxTime = max1;
- } else {
- maxTime = max;
- }
-
- ArrayList<Map<String, Object>> resultList = new ArrayList<>();
-
- 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> 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.remove(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);
+ @GetMapping("report_avg_AreaData")
+ @ApiOperation(value = "������������������������������������������", notes = "������������������������������������������")
+ @ApiImplicitParams(value = {
+ @ApiImplicitParam(name = "monitorPoint", value = "���������id", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "mac", value = "������mac", required = false, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "areaCode", value = "������������", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "sensorKey", value = "���������key", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "time", value = "������,������(���������2018-03)", required = true, paramType = "query", dataType = "String"),})
+ public ResultBean<List<Map<String, Object>>> getAreaAvgDataByAreaCode(HttpServletRequest request)
+ throws Exception {
+ Map<String, Object> parameters = getParametersStartingWith(request, null);
+ ParameterUtils.getTimeType4Time(parameters);
+ parameters.put("monitorPointId", parameters.remove("monitorPoint"));
+ parameters.put("areaCode", parameters.remove("areaCode"));
+ String[] sensorKeys = parameters.remove("sensorKey").toString().split(",");
+ 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);
+ }
+
+ if (areaList.isEmpty() && monitorList.isEmpty()) {
+ return new ResultBean<List<Map<String, Object>>>(resultList);
+ } else if (areaList.isEmpty()) {
+ resultList.addAll(monitorList);
+ 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));
+
+ }
+
+ 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 {
+ if (areaMax >= monitorMax) {
+ maxTime = areaMax;
+ } else {
+ maxTime = monitorMax;
+ }
+ }
+
+ for (int i = 0; i < maxTime; i++) {
+ resultList.add(null);
+ }
+
+ 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);
+ }
+
+ }
+
+ 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);
+ }
+ }
+ }
+
+ 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> 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);
}
-
- 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);
- }
- }
-
- return new ResultBean<List<Map<String, Object>>>(resultList);
-
- }
@GetMapping("getmpoint-byid")
@ApiOperation(value = "���������������������", notes = "���������������������,���������������������������������������������")
@@ -1342,7 +1391,12 @@
String et = parameters.get("endTime").toString();
String endYearAndDay = et.substring(0, et.lastIndexOf("-"));
String endHour = et.substring(et.lastIndexOf("-") + 1);
- String endTime = endYearAndDay + " " + endHour + ":00:00";
+ int endHourValue = Integer.valueOf(endHour);
+ int startHourValue = Integer.valueOf(startHour);
+ if (endHourValue <= startHourValue) {
+ endHourValue = startHourValue + 1;
+ }
+ String endTime = startYearAndDay + " " + endHourValue + ":00:00";
parameters.put("startTime", startTime);
parameters.put("endTime", endTime);
String mac = parameters.get("mac").toString();
@@ -1463,7 +1517,7 @@
@GetMapping("/carTrajectory")
@ApiOperation(value = "���������������������", notes = "���������������������")
@ApiImplicitParams(value = {
- @ApiImplicitParam(name = "mac", value = "������mac������������p5dnd7a0392082���", required = true, paramType = "query", dataType = "String"),
+ @ApiImplicitParam(name = "mac", value = "������mac������������p5dnd7a0392081���", required = true, paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "startTime", value = "������������(���������2020-03-19-14)", required = true, paramType = "query", dataType = "String"),
@ApiImplicitParam(name = "endTime", value = "������������(���������2020-03-19-17)", required = true, paramType = "query", dataType = "String")
})
@@ -1474,9 +1528,13 @@
String startHour = st.substring(st.lastIndexOf("-") + 1);
String startTime = startYearAndDay + " " + startHour + ":00:00";
String et = parameters.get("endTime").toString();
- String endYearAndDay = et.substring(0, et.lastIndexOf("-"));
String endHour = et.substring(et.lastIndexOf("-") + 1);
- String endTime = endYearAndDay + " " + endHour + ":00:00";
+ int endHourValue = Integer.valueOf(endHour);
+ int startHourValue = Integer.valueOf(startHour);
+ if (endHourValue <= startHourValue) {
+ endHourValue = startHourValue + 1;
+ }
+ String endTime = startYearAndDay + " " + endHourValue + ":00:00";
parameters.put("startTime", startTime);
parameters.put("endTime", endTime);
String mac = parameters.get("mac").toString();
@@ -1530,5 +1588,4 @@
}
return new ResultBean<List<Map<String, Object>>>(list);
}
-
}
--
Gitblit v1.8.0