From f415ad31e5335837007f02d68b7aa1c2f2307235 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Fri, 13 Oct 2023 13:03:21 +0800
Subject: [PATCH] Merge branch 'dev' of http://blit.7drlb.com:8888/r/moral into wb

---
 screen-job/src/main/java/com/moral/api/service/impl/ForecastServiceImpl.java |   27 +++++++++++++--------------
 1 files changed, 13 insertions(+), 14 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 944dd08..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,9 +52,9 @@
     private CityAqiService cityAqiService;
 
     @Autowired
-    private ForecastService forecastService;
+    private ForecastMapper forecastMapper;
 
-    private static Map<String, Integer> weatherScore = new HashMap<>();
+    private static final Map<String, Integer> weatherScore = new HashMap<>();
 
     static {
         weatherScore.put("���", 100);
@@ -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