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