From 65b70cf13a2ec91013d876771be878c165cae3a4 Mon Sep 17 00:00:00 2001 From: cjl <909710561@qq.com> Date: Tue, 23 Apr 2024 15:32:45 +0800 Subject: [PATCH] fix:补充提交 --- screen-job/src/main/java/com/moral/api/service/impl/ForecastServiceImpl.java | 22 +++++++++++----------- 1 files changed, 11 insertions(+), 11 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 2615ac9..d1bd8ab 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; @@ -130,15 +125,13 @@ Map<Date, List<Integer>> hours = DateUtils.getBeforeAndAfterHourDate(nextDay); List<Forecast> forecastList = new ArrayList<>(); - Forecast forecast = new Forecast(); + 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); @@ -171,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(); @@ -194,6 +189,8 @@ int size = weatherMaps.size(); Double tempAvg = calculateAvg(weatherMaps, "temp"); Double o3Avg = calculateAvg(weatherMaps, "O3"); + if(tempAvg == null || o3Avg == null) + continue; Double sum1 = calculateProduct(weatherMaps, "temp", "O3"); Double sum2 = calculateProduct(weatherMaps, "temp", "temp"); double b = (sum1 - size * tempAvg * o3Avg) / (sum2 - size * tempAvg * tempAvg); @@ -210,7 +207,10 @@ } } } - forecastMapper.insertForecast(forecastList); + if(forecastList.size()>0){ + forecastMapper.insertForecast(forecastList); + } + } private Double calculateAvg(List<Map<String, Object>> list, String param) { -- Gitblit v1.8.0