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