From 8bf855c04a807a9fbca86844bbfc30273d8d383e Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Mon, 07 Sep 2020 11:45:57 +0800
Subject: [PATCH] update
---
src/main/java/com/moral/service/impl/WeatherServiceImpl.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 49 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/moral/service/impl/WeatherServiceImpl.java b/src/main/java/com/moral/service/impl/WeatherServiceImpl.java
index 072c542..11efcb7 100644
--- a/src/main/java/com/moral/service/impl/WeatherServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/WeatherServiceImpl.java
@@ -10,11 +10,13 @@
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
+import org.apache.jasper.compiler.JspUtil;
import org.dom4j.Element;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
@@ -283,10 +285,13 @@
@Override
public List<Map<String, Object>> getWeatherData(Map<String, Object> parameters) throws ParseException {
parameters.put("typeFormat", "%Y-%m-%d %H:%i:%s");
+ if (parameters.get("city") == null) {
+ return new ArrayList<Map<String, Object>>();
+ }
String cityName = parameters.get("city").toString();
Area area = areaMapper.getAreaByName(cityName);
- Integer code = 0;
- String name = "";
+ Integer code;
+ String name;
if (area == null) {
City city = cityMapper.getCityByName(cityName);
if (city == null) {
@@ -307,6 +312,7 @@
String time = parameters.get("time").toString();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH");
Date now = new Date();
Date selectTime = sdf1.parse(time + " 01:00:00");
Calendar cal = Calendar.getInstance();
@@ -314,13 +320,13 @@
cal.add(Calendar.DAY_OF_MONTH, 1);
Date end = cal.getTime();
cal.setTime(sdf.parse(time));
- Date time1 = cal.getTime();
cal.add(Calendar.DAY_OF_MONTH, -1);
String beforeDay = sdf.format(cal.getTime());
parameters.put("start", selectTime);
parameters.put("end", end);
Integer fcode = 0;
List<Map<String, Object>> forecastList = forecastWeatherMapper.getForecast(parameters);
+
if (forecastList.size() == 0) {
List<Area> areaList = areaMapper.getAreaByCityCode(code);
for (Area area1 : areaList) {
@@ -411,6 +417,9 @@
}
String ac = parameters.get("cityCode").toString();
+ if(name.equals("���������")){
+ ac="130900";
+ }
List<Map<String, Object>> aqiList = hangzhouAqiMapper.getAqi(parameters);
if (aqiList.size() == 0) {
parameters.put("cityCode", code);
@@ -459,8 +468,8 @@
} else {
params.put("areaCode", Integer.valueOf(ac));
}
- List<MonitorPoint> monitorList = monitorPointMapper.getMonitorList(params);
+ List<MonitorPoint> monitorList = monitorPointMapper.getMonitorList(params);
List<Integer> pointList = new ArrayList<>();
for (MonitorPoint point : monitorList) {
Integer pointId = point.getId();
@@ -535,7 +544,7 @@
if (ttime.equals(rtime)) {
Double tvoc = Double.valueOf(tvocMap.get("TVOC").toString());
BigDecimal bd = new BigDecimal(tvoc);
- tvoc = bd.setScale(3,BigDecimal.ROUND_HALF_UP).doubleValue();
+ tvoc = bd.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
realMap.put("TVOC", tvoc);
}
}
@@ -584,6 +593,16 @@
}
List<Map<String, Object>> resultList = new ArrayList<>();
+
+ if (foreList.size() == 0) {
+ for (Map<String, Object> map : realWeatherList) {
+ Map<String,Object> hashMap=new LinkedHashMap<>();
+ hashMap.put("time",map.get("time").toString());
+ hashMap.put("type","������");
+ hashMap.put("city",map.get("city").toString());
+ foreList.add(hashMap);
+ }
+ }
for (Map<String, Object> foreMap : foreList) {
for (Map<String, Object> realMap : list) {
@@ -649,10 +668,19 @@
//���4���������������
double value = 160.0 * 8;
int nowHour = Integer.valueOf(sdf1.format(now).substring(11, 13));
+ int nowMinute = Integer.valueOf(sdf1.format(now).substring(14, 16));
String format = sdf1.format(now).substring(0, 13) + ":00:00";
if (nowHour < 8) {
return resultList;
}
+
+ if (nowMinute >= 46) {
+ nowHour = nowHour + 1;
+ cal.setTime(now);
+ cal.add(Calendar.HOUR_OF_DAY, 1);
+ format = sdf1.format(cal.getTime()).substring(0, 13) + ":00:00";
+ }
+
for (Map<String, Object> resultMap : resultList) {
if (resultMap.get("type").equals("������")) {
if (sdf.parse(time).getTime() == sdf.parse(sdf.format(now)).getTime()) {
@@ -669,6 +697,7 @@
if (rhour == 0) {
rhour = 24;
}
+
if (rhour == nowHour) {
Map<String, Object> sumO3Map = hangzhouAqiMapper.getSumO3(hashMap);
double v = value - Double.valueOf(sumO3Map.get("O3Sum").toString());
@@ -709,15 +738,22 @@
}
}
+ //������������
Map<String, Object> point = shAreaMapper.getgeography(name);
for (Map<String, Object> map : resultList) {
double longitude = Double.valueOf(point.get("lng").toString());
double latitude = Double.valueOf(point.get("lat").toString());
- map.put("longitude",df.format(longitude));
- map.put("latitude",df.format(latitude));
- map.put("altitude",point.get("altitude").toString());
- map.put("vegetation",point.get("vegetation").toString());
- map.put("river",point.get("river").toString());
+ map.put("longitude", df.format(longitude));
+ map.put("latitude", df.format(latitude));
+ if (point.get("altitude") != null) {
+ map.put("altitude", point.get("altitude").toString());
+ }
+ if (point.get("vegetation") != null) {
+ map.put("vegetation", point.get("vegetation").toString());
+ }
+ if (point.get("river") != null) {
+ map.put("river", point.get("river").toString());
+ }
}
return resultList;
}
@@ -759,4 +795,7 @@
}
}
}
+
+
+
}
--
Gitblit v1.8.0