| | |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.util.ObjectUtils; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.HashMap; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.OptionalDouble; |
| | | import java.util.*; |
| | | import java.util.function.Supplier; |
| | | import java.util.stream.Collectors; |
| | | import java.util.stream.DoubleStream; |
| | |
| | | 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); |
| | | List<CityWeatherForecast> cityWeatherForecasts = Objects.isNull(cityForecast.get(cityCode))?new ArrayList<>():cityForecast.get(cityCode); |
| | | |
| | | //获取城市历史气象数据 |
| | | List<CityWeather> cityWeathers = cityHistoryWeather.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); |
| | | } |
| | | } |
| | | |
| | | } |
| | | if(forecastList.size()>0){ |
| | | forecastMapper.insertForecast(forecastList); |
| | | } |
| | | |
| | | } |
| | | |
| | | private Double calculateAvg(List<Map<String, Object>> list, String param) { |