From e5025d27ea3bbaad002227c7f4b2871f0d9e12df Mon Sep 17 00:00:00 2001
From: liurunyu <lry9898@163.com>
Date: 星期三, 27 八月 2025 17:02:23 +0800
Subject: [PATCH] 1、作物蒸腾量定时计算任务修改逻辑,以保证数据源准确性;2、修改null值bug。

---
 pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/modelCalculate/ModelCalculatorSv.java |    5 +++--
 pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/timingTask/ModelListener.java         |   11 +++++------
 pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/timingTask/CalculateJob.java          |   20 +++++++++++++-------
 pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/modelCalculate/ModelCalculator.java   |    6 ++++--
 4 files changed, 25 insertions(+), 17 deletions(-)

diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/modelCalculate/ModelCalculator.java b/pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/modelCalculate/ModelCalculator.java
index cac5e02..bd02b1c 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/modelCalculate/ModelCalculator.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/modelCalculate/ModelCalculator.java
@@ -59,8 +59,10 @@
             List<VoWeatherMaxMinTmp> tmps = this.sv.selectYesterdayMaxMinTemperature(vo.weatherId) ;
             if(tmps != null && tmps.size() > 0){
                 VoWeatherMaxMinTmp voMmTmp = tmps.get(0);//鍙兘鏈変竴鏉¤褰�
-                Double et0 = this.calculateEt0(yesterday_ymd, vo, voWeather, voMmTmp, factor) ;//璁$畻钂歌吘鏁版嵁
-                Integer count = this.saveEt0(yesterday_ymd, vo, voWeather, voMmTmp, factor, et0) ;
+                if(voMmTmp != null && voMmTmp.maxAirTemperature != null && voMmTmp.minAirTemperature != null){
+                    Double et0 = this.calculateEt0(yesterday_ymd, vo, voWeather, voMmTmp, factor) ;//璁$畻钂歌吘鏁版嵁
+                    this.saveEt0(yesterday_ymd, vo, voWeather, voMmTmp, factor, et0) ;
+                }
             }
         }
     }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/modelCalculate/ModelCalculatorSv.java b/pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/modelCalculate/ModelCalculatorSv.java
index bd69a74..6cc7280 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/modelCalculate/ModelCalculatorSv.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/modelCalculate/ModelCalculatorSv.java
@@ -55,8 +55,9 @@
     }
 
     public List<VoWeatherMaxMinTmp> selectYesterdayMaxMinTemperature(Long weatherId) throws Exception{
-        String ymd = DateTime.yesterday_yyyy_MM_dd(Integer.parseInt(DateTime.yyyy()), Integer.parseInt(DateTime.MM()), Integer.parseInt(DateTime.dd())) ; //鏄ㄥぉ
-        int[] ymdGrp = DateTime.yyyy_MM_dd_2_ymdGroup(ymd) ;
+        String yesterday = DateTime.lastXDay_yyyy_MM_dd(1) ; //鏄ㄥぉ
+        // String yesterday = DateTime.yesterday_yyyy_MM_dd(Integer.parseInt(DateTime.yyyy()), Integer.parseInt(DateTime.MM()), Integer.parseInt(DateTime.dd())) ; //鏄ㄥぉ
+        int[] ymdGrp = DateTime.yyyy_MM_dd_2_ymdGroup(yesterday) ;
         Long startId = IDLongGenerator.generateOneDayStartId(ymdGrp[0], ymdGrp[1], ymdGrp[2]) ;
         Long endId = IDLongGenerator.generateOneDayEndId(ymdGrp[0], ymdGrp[1], ymdGrp[2]) ;
         return this.rmWeatherHistoryDao.selectMaxMinTemperature(weatherId, startId, endId);
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/timingTask/CalculateJob.java b/pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/timingTask/CalculateJob.java
index c5c184a..601daa7 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/timingTask/CalculateJob.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/timingTask/CalculateJob.java
@@ -3,12 +3,15 @@
 import com.dy.common.multiDataSource.DataSourceContext;
 import com.dy.common.schedulerTask.TaskJob;
 import com.dy.common.springUtil.SpringContextUtil;
+import com.dy.pipIrrGlobal.util.Org;
 import com.dy.pipIrrModel.modelCalculate.ModelCalculator;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.quartz.JobDataMap;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
+
+import java.util.List;
 
 /**
  * @Author: liurunyu
@@ -19,21 +22,24 @@
 
     private static Logger log = LogManager.getLogger(CalculateJob.class.getName()) ;
 
-    private String orgTag ;
+    private List<Org.OrgVo> orgList ;
 
     @Override
     public void execute(JobExecutionContext ctx) throws JobExecutionException {
         JobDataMap jobDataMap = ctx.getJobDetail().getJobDataMap() ;
         if(jobDataMap != null){
-            orgTag = (String)jobDataMap.get(ModelListener.orgKey) ;
+            orgList = (List<Org.OrgVo>)jobDataMap.get(ModelListener.orgListKey) ;
         }
-        if(orgTag == null){
+        if(orgList == null){
             return ;
         }
-        DataSourceContext.set(orgTag);//璁剧疆鏁版嵁婧�
-        ModelCalculator bean = (ModelCalculator)SpringContextUtil.getBean(ModelCalculator.selfBeanName);
-        if(bean != null){
-            bean.execute();
+
+        for(Org.OrgVo vo : orgList){
+            DataSourceContext.set(vo.tag);//璁剧疆鏁版嵁婧�
+            ModelCalculator bean = (ModelCalculator)SpringContextUtil.getBean(ModelCalculator.selfBeanName);
+            if(bean != null){
+                bean.execute();
+            }
         }
     }
 }
diff --git a/pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/timingTask/ModelListener.java b/pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/timingTask/ModelListener.java
index f0ae894..b61e846 100644
--- a/pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/timingTask/ModelListener.java
+++ b/pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/timingTask/ModelListener.java
@@ -25,7 +25,7 @@
 @Component
 public class ModelListener extends OrgListenerSupport implements ApplicationListener<ApplicationReadyEvent> {
 
-    protected static final String orgKey = "tag" ;
+    protected static final String orgListKey = "tagList" ;
     private static final String JobName = "modelCalculateJob" ;
     private static final String JobGroupName = "modelCalculateGroup" ;
     private static final Integer ThreadPoolMaxCount = 1 ;//绾跨▼姹犵嚎绋嬫渶澶т釜鏁�
@@ -74,11 +74,10 @@
         List<Org.OrgVo> orgList = Org.OrgList ;
         if(orgList != null && orgList.size() >0){
             SchedulerTaskSupport.setThreadPoolPro(ThreadPoolMaxCount * orgList.size(), ThreadPoolPriority);
-            for(Org.OrgVo vo : orgList){
-                HashMap<String , Object> jobDataMap	= new HashMap<String , Object>() ;
-                jobDataMap.put(orgKey, vo.tag) ;
-                SchedulerTaskSupport.addDailyJob(JobName + vo.tag, JobGroupName, CalculateJob.class, jobDataMap, startHour, startMinute ) ;
-            }
+            HashMap<String , Object> jobDataMap	= new HashMap<String , Object>() ;
+            jobDataMap.put(orgListKey,orgList) ;
+            SchedulerTaskSupport.addDailyJob(JobName, JobGroupName, CalculateJob.class, jobDataMap, startHour, startMinute ) ;
+
         }
     }
 }

--
Gitblit v1.8.0