|  |  |  | 
|---|
|  |  |  | private CityAqiService cityAqiService; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private ForecastService forecastService; | 
|---|
|  |  |  | private ForecastMapper forecastMapper; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private static final Map<String, Integer> weatherScore = new HashMap<>(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | //获取前后一小时map | 
|---|
|  |  |  | Map<Date, List<Integer>> hours = DateUtils.getBeforeAndAfterHourDate(nextDay); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Forecast forecast = new Forecast(); | 
|---|
|  |  |  | List<Forecast> forecastList = new ArrayList<>(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Map<String, Object> forecastMap = new HashMap<>(); | 
|---|
|  |  |  | for (Object obj : cityCodes) { | 
|---|
|  |  |  | Integer cityCode = Integer.parseInt(obj.toString()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | forecast.setCityCode(cityCode); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //预测 | 
|---|
|  |  |  | List<CityWeatherForecast> cityWeatherForecasts = cityForecast.get(cityCode); | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for (CityWeatherForecast cityWeatherForecast : cityWeatherForecasts) { | 
|---|
|  |  |  | Forecast forecast = new Forecast(); | 
|---|
|  |  |  | forecast.setCityCode(cityCode); | 
|---|
|  |  |  | Date time = cityWeatherForecast.getTime(); | 
|---|
|  |  |  | Map<String, Object> value = JSONObject.parseObject(cityWeatherForecast.getValue(), Map.class); | 
|---|
|  |  |  | String weather = value.get("text").toString(); | 
|---|
|  |  |  | 
|---|
|  |  |  | if (!Double.isNaN(o3Forecast)) { | 
|---|
|  |  |  | forecastMap.put("O3", AmendUtils.sciCal(o3Forecast, 0)); | 
|---|
|  |  |  | forecast.setValue(JSONObject.toJSONString(forecastMap)); | 
|---|
|  |  |  | forecastService.save(forecast); | 
|---|
|  |  |  | forecastList.add(forecast); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | forecastMapper.insertForecast(forecastList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | private Double calculateAvg(List<Map<String, Object>> list, String param) { | 
|---|