From f70a481c8658ae60a1827486c81d6b37ad575b07 Mon Sep 17 00:00:00 2001 From: cjl <909710561@qq.com> Date: Mon, 01 Apr 2024 10:03:37 +0800 Subject: [PATCH] fix:补充提交 --- screen-job/src/main/java/com/moral/api/service/impl/ForecastServiceImpl.java | 25 ++++++++++++------------- 1 files changed, 12 insertions(+), 13 deletions(-) diff --git a/screen-job/src/main/java/com/moral/api/service/impl/ForecastServiceImpl.java b/screen-job/src/main/java/com/moral/api/service/impl/ForecastServiceImpl.java index 4ffd928..89244a6 100644 --- a/screen-job/src/main/java/com/moral/api/service/impl/ForecastServiceImpl.java +++ b/screen-job/src/main/java/com/moral/api/service/impl/ForecastServiceImpl.java @@ -22,12 +22,7 @@ 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; @@ -57,7 +52,7 @@ private CityAqiService cityAqiService; @Autowired - private ForecastService forecastService; + private ForecastMapper forecastMapper; private static final Map<String, Integer> weatherScore = new HashMap<>(); @@ -129,15 +124,14 @@ //���������������������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); @@ -170,6 +164,8 @@ } 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(); @@ -205,11 +201,14 @@ 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) { -- Gitblit v1.8.0