From aafe57b555359e4a5ff347ce5e495d9d40d7dd42 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Wed, 19 Aug 2020 17:20:58 +0800
Subject: [PATCH] update
---
src/main/java/com/moral/service/impl/ForecastWeatherServiceImpl.java | 89 ++++++++++++++++++++++++++------------------
1 files changed, 52 insertions(+), 37 deletions(-)
diff --git a/src/main/java/com/moral/service/impl/ForecastWeatherServiceImpl.java b/src/main/java/com/moral/service/impl/ForecastWeatherServiceImpl.java
index 949895d..52a8dd6 100644
--- a/src/main/java/com/moral/service/impl/ForecastWeatherServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/ForecastWeatherServiceImpl.java
@@ -21,6 +21,7 @@
import com.moral.entity.Area;
import com.moral.entity.City;
import com.moral.entity.MonitorPoint;
+import com.moral.entity.Province;
import com.moral.mapper.AQIMapper;
import com.moral.mapper.AreaMapper;
import com.moral.mapper.CityMapper;
@@ -78,22 +79,28 @@
String parentName = "";
String name1 = "";
Integer code = 0;
+ Integer parentCode = 0;
if (areaCode != null) {
Area area = areaMapper.getAreaByAreaCode(areaCode);
City city = cityMapper.getCityByCityCode(cityCode);
name1 = area.getAreaName();
parentName = city.getCityName();
+ parentCode = city.getCityCode();
code = areaCode;
if ("���������".equals(name1)) {
name1 = parentName;
- parentName = provinceMapper.getProvinceByProvinceCode(provinceCode).getProvinceName();
+ Province province = provinceMapper.getProvinceByProvinceCode(provinceCode);
+ parentName = province.getProvinceName();
+ parentCode = province.getProvinceCode();
code = cityCode;
}
} else {
City city = cityMapper.getCityByCityCode(cityCode);
name1 = city.getCityName();
- parentName = provinceMapper.getProvinceByProvinceCode(provinceCode).getProvinceName();
+ Province province = provinceMapper.getProvinceByProvinceCode(provinceCode);
+ parentName = province.getProvinceName();
code = cityCode;
+ parentCode = province.getProvinceCode();
if ("���������".equals(name1)) {
name1 = parentName;
parentName = "";
@@ -103,6 +110,7 @@
hashMap.put("name1", name1);
hashMap.put("parentName", parentName);
hashMap.put("cityCode", code);
+ hashMap.put("parentCode", parentCode);
hashSet.add(hashMap);
}
List<Element> elements = Dom4jUtils.readDocument();
@@ -136,9 +144,11 @@
Date startTime = sdf.parse(sdf.format(c.getTime()));
for (Map<String, Object> hashmap : hashSet) {
- hashmap.put("typeFormat", "%Y-%m-%d %H:%i:%s");
- hashmap.put("startTime", startTime);
- hashmap.put("endTime", endTime);
+ Map<String, Object> map1 = new HashMap<>();
+ map1.put("typeFormat", "%Y-%m-%d %H:%i:%s");
+ map1.put("startTime", startTime);
+ map1.put("endTime", endTime);
+ map1.put("cityCode", Integer.valueOf(hashmap.get("cityCode").toString()));
List<List<Map<String, Object>>> list1 = new ArrayList<>();
List<List<Map<String, Object>>> list2 = new ArrayList<>();
@@ -146,18 +156,21 @@
List<Map<String, Object>> list3 = new ArrayList<>();
List<Map<String, Object>> list4 = new ArrayList<>();
if (i < 10) {
- hashmap.put("time", "0" + i + ":00:00");
+ map1.put("time", "0" + i + ":00:00");
} else {
- hashmap.put("time", i + ":00:00");
+ map1.put("time", i + ":00:00");
}
- List<Map<String, Object>> tempList = realWeatherMapper.getTemp(hashmap);
- List<Map<String, Object>> O3List = aqiMapper.getO3(hashmap);
+ List<Map<String, Object>> tempList = realWeatherMapper.getTemp(map1);
+ List<Map<String, Object>> O3List = aqiMapper.getO3(map1);
+ if (O3List.size() == 0) {
+ map1.put("cityCode", Integer.valueOf(hashmap.get("parentCode").toString()));
+ O3List = aqiMapper.getO3(map1);
+ }
list3.addAll(tempList);
list4.addAll(O3List);
list1.add(list3);
list2.add(list4);
}
-
List<List<Map<String, Object>>> list = new ArrayList<>();
if (list2.get(0).size() == 0) {
list = list1;
@@ -183,34 +196,37 @@
}
}
- if (list.get(0).get(0).size() > 2) {
- List<Map<String, Object>> constantList = new ArrayList<>();
- for (int i = 0; i < list.size(); i++) {
- List<Map<String, Object>> mapList = list.get(i);
- double tempSum = 0;//���������
- double O3Sum = 0;//O3���
- double sum = 0;//
- double sum1 = 0;
- int length = mapList.size();
- Map<String, Object> cmap = new HashMap<>();
- cmap.put("time", i);
- for (Map<String, Object> map : mapList) {
- double temp = Double.valueOf(map.get("temp").toString().replace("\"", "").split("\\.")[0]);
- double O3 = Double.valueOf(map.get("O3").toString().replace("\"", "").split("\\.")[0]);
- tempSum = tempSum + temp;
- O3Sum = O3Sum + O3;
- sum = sum + temp * O3;
- sum1 = sum1 + temp * temp;
+ if (list.get(0).size()!=0) {
+
+ if (list.get(0).get(0).size() > 2) {
+ List<Map<String, Object>> constantList = new ArrayList<>();
+ for (int i = 0; i < list.size(); i++) {
+ List<Map<String, Object>> mapList = list.get(i);
+ double tempSum = 0;//���������
+ double O3Sum = 0;//O3���
+ double sum = 0;//
+ double sum1 = 0;
+ int length = mapList.size();
+ Map<String, Object> cmap = new HashMap<>();
+ cmap.put("time", i);
+ for (Map<String, Object> map : mapList) {
+ double temp = Double.valueOf(map.get("temp").toString().replace("\"", "").split("\\.")[0]);
+ double O3 = Double.valueOf(map.get("O3").toString().replace("\"", "").split("\\.")[0]);
+ tempSum = tempSum + temp;
+ O3Sum = O3Sum + O3;
+ sum = sum + temp * O3;
+ sum1 = sum1 + temp * temp;
+ }
+ double tempAvg = tempSum / length;
+ double O3Avg = O3Sum / length;
+ double b = (sum - length * tempAvg * O3Avg) / (sum1 - length * tempAvg * tempAvg);
+ double a = O3Avg - (b * tempAvg);
+ cmap.put("a", a);
+ cmap.put("b", b);
+ constantList.add(cmap);
}
- double tempAvg = tempSum / length;
- double O3Avg = O3Sum / length;
- double b = (sum - length * tempAvg * O3Avg) / (sum1 - length * tempAvg * tempAvg);
- double a = O3Avg - (b * tempAvg);
- cmap.put("a", a);
- cmap.put("b", b);
- constantList.add(cmap);
+ hashmap.put("constants", constantList);
}
- hashmap.put("constants", constantList);
}
}
@@ -236,7 +252,6 @@
if (hour1.equals(nextNextDay)) {
nextDayList.add(hourlyMap);
}
-
map.put("data", nextDayList);
}
}
--
Gitblit v1.8.0