jinpengyong
2020-09-08 adde1ed1a99622c80a95dea83e294711d295c55c
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,6 +285,9 @@
    @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;
@@ -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();
@@ -320,6 +326,7 @@
        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) {
@@ -410,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);
@@ -458,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();
@@ -584,6 +594,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) {
                if (foreMap.get("time").equals(realMap.get("time"))) {
@@ -653,6 +673,14 @@
        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()) {
@@ -668,10 +696,6 @@
                    hashMap.put("end", endTime);
                    if (rhour == 0) {
                        rhour = 24;
                    }
                    if (nowMinute >= 46) {
                        nowHour = nowHour + 1;
                    }
                    if (rhour == nowHour) {
@@ -771,4 +795,32 @@
            }
        }
    }
    @Override
    public List<Map<String, Object>> getWeatherDataByDay(Map<String, Object> parameters) throws ParseException {
        String selectTime = parameters.get("time").toString();
        String cityName = parameters.get("city").toString();
        Area area = areaMapper.getAreaByName(cityName);
        Integer code;
        String name;
        if (area == null) {
            City city = cityMapper.getCityByName(cityName);
            if (city == null) {
                Province province = provinceMapper.getProvinceByName(cityName);
                code = province.getProvinceCode();
                name = province.getProvinceName();
            } else {
                code = city.getCityCode();
                name = city.getCityName();
            }
        } else {
            code = area.getAreaCode();
            name = area.getAreaName();
        }
        parameters.put("cityCode", code);
        parameters.put("name", name);
        return null;
    }
}