From f28149d8183a62f87fa9c8df9ae589070d83f612 Mon Sep 17 00:00:00 2001
From: 于紫祥_1901 <email@yuzixiang_1910>
Date: Thu, 24 Dec 2020 13:47:50 +0800
Subject: [PATCH] 波动补偿
---
src/main/java/com/moral/service/impl/WeatherServiceImpl.java | 60 ++++++++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 52 insertions(+), 8 deletions(-)
diff --git a/src/main/java/com/moral/service/impl/WeatherServiceImpl.java b/src/main/java/com/moral/service/impl/WeatherServiceImpl.java
index b584f82..7ca14f4 100644
--- a/src/main/java/com/moral/service/impl/WeatherServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/WeatherServiceImpl.java
@@ -184,6 +184,50 @@
@Override
public List<Map<String, Object>> getForecastAndReal(Map<String, Object> parameters) throws ParseException {
+ ArrayList<String> sensorKeys = (ArrayList<String>) parameters.get("sensorKeys");
+ List<Map<String, Object>> resultList = new ArrayList<>();
+ for (int i = 0; i < 24; i++) {
+ Map<String, Object> map = new HashMap<>();
+ List<String> arrayList = new ArrayList<>();
+ map.put("values", arrayList);
+ map.put("time", i + 1);
+ resultList.add(map);
+ }
+
+ for (String sensorKey : sensorKeys) {
+ parameters.put("sensorKey", sensorKey);
+ List<Map<String, Object>> list = forecastAndReal(parameters);
+ for (Map<String, Object> map : list) {
+ Object time = map.get("time");
+ ArrayList<String> values = (ArrayList<String>) map.get("values");
+ for (Map<String, Object> resultMap : resultList) {
+ if (time.equals(resultMap.get("time"))) {
+ ArrayList<String> resultValues = (ArrayList<String>) resultMap.get("values");
+ resultValues.addAll(values);
+ resultMap.put("values", resultValues);
+ }
+ }
+ }
+ }
+ return resultList;
+ }
+
+ public List<Map<String, Object>> forecastAndReal(Map<String, Object> parameters) throws ParseException {
+ Object sensorKey = parameters.remove("sensorKey");
+ String sensor1;
+ String sensor2;
+ if ("e1".equals(sensorKey)) {
+ sensor1 = "PM25C";
+ sensor2 = "PM2_5";
+ } else if ("e2".equals(sensorKey)) {
+ sensor1 = "PM10C";
+ sensor2 = "PM10";
+ } else {
+ sensor1 = "O3C";
+ sensor2 = "O3";
+ }
+ parameters.put("sensor1", sensor1);
+ parameters.put("sensor2", sensor2);
parameters.put("typeFormat", "%Y-%m-%d %H:%i:%s");
String monitorPointId = parameters.get("monitorPointId").toString();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -229,8 +273,8 @@
forecastList = forecastWeatherMapper.getForecastHour(parameters);
}
for (Map<String, Object> map : aqiList) {
- int s = (int)Double.parseDouble(map.get("O3").toString().replace("\"", ""));
- map.put("O3", String.valueOf(s));
+ int s = (int) Double.parseDouble(map.get(sensor2).toString().replace("\"", ""));
+ map.put(sensor2, String.valueOf(s));
}
List<Map<String, Object>> resultList = new ArrayList<>();
@@ -246,7 +290,7 @@
}
map.put("time", Integer.valueOf(hour));
values.add("");
- values.add(aqiMap.get("O3").toString());
+ values.add(aqiMap.get(sensor2).toString());
map.put("values", values);
resultList.add(map);
}
@@ -260,8 +304,8 @@
hour = "24";
}
map.put("time", Integer.valueOf(hour));
- if (forecastMap.get("O3") != null) {
- values.add(forecastMap.get("O3").toString().replace("\"", ""));
+ if (forecastMap.get(sensor2) != null) {
+ values.add(forecastMap.get(sensor2).toString().replace("\"", ""));
} else {
values.add("");
}
@@ -278,14 +322,14 @@
hour = "24";
}
map.put("time", Integer.valueOf(hour));
- if (forecastMap.get("O3") != null) {
- values.add(forecastMap.get("O3").toString().replace("\"", ""));
+ if (forecastMap.get(sensor2) != null) {
+ values.add(forecastMap.get(sensor2).toString().replace("\"", ""));
} else {
values.add("");
}
for (Map<String, Object> aqiMap : aqiList) {
if (forecastMap.get("time").equals(aqiMap.get("time"))) {
- values.add(aqiMap.get("O3").toString());
+ values.add(aqiMap.get(sensor2).toString());
}
}
map.put("values", values);
--
Gitblit v1.8.0