liurunyu
5 天以前 e1f1023dee5d094fcb1e428f36cce09211c4542a
pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/modelCalculate/ModelCalculator.java
@@ -1,5 +1,6 @@
package com.dy.pipIrrModel.modelCalculate;
import com.dy.common.multiDataSource.DataSourceContext;
import com.dy.common.util.DateTime;
import com.dy.pipIrrGlobal.pojoMd.MdEt0;
import com.dy.pipIrrGlobal.voMd.VoCrops;
@@ -32,6 +33,7 @@
    }
    public void execute(){
        String orgTag = DataSourceContext.get() ;
        List<VoCrops> crops = this.sv.selectAllCrops() ;
        if(crops != null && crops.size() > 0){
            for (VoCrops crop : crops) {
@@ -42,11 +44,12 @@
                            this.executeOnCrop(crop, voWeather);
                        }
                    }catch (Exception e){
                        log.error("计算作物(id=" + crop.id + ")蒸腾数据时异常", e);
                        log.error("计算作物(id=" + crop.id + ")蒸散数据时异常", e);
                    }
                }
            }
        }
        orgTag = DataSourceContext.get() ;
    }
    private void executeOnCrop(VoCrops vo, VoWeather voWeather) throws Exception{
        String yesterday_ymd = DateTime.yesterday_yyyy_MM_dd(Integer.parseInt(DateTime.yyyy()), Integer.parseInt(DateTime.MM()), Integer.parseInt(DateTime.dd())) ; //昨天
@@ -56,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) ;//计算蒸腾数据
                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) ;
                }
            }
        }
    }
@@ -120,11 +125,12 @@
        return et0 ;
    }
    private void saveEt0(String yesterday_ymd, VoCrops vo, VoWeather voWeather, VoWeatherMaxMinTmp voMmTmp, Double factor, Double et0)throws Exception{
    private Integer saveEt0(String yesterday_ymd, VoCrops vo, VoWeather voWeather, VoWeatherMaxMinTmp voMmTmp, Double factor, Double et0)throws Exception{
        MdEt0 po = this.sv.selectByCropWeatherDt(vo.id, voWeather.id, yesterday_ymd);
        if(po != null){
        if(po == null){
            Date yesterday = DateTime.dateFrom_yyyy_MM_dd(yesterday_ymd) ;
            this.sv.saveEt0(vo.id, voWeather.id, yesterday, voMmTmp.maxAirTemperature, voMmTmp.minAirTemperature, factor, et0) ;
            return this.sv.saveEt0(vo.id, voWeather.id, yesterday, voMmTmp.maxAirTemperature, voMmTmp.minAirTemperature, factor, et0) ;
        }
        return null ;
    }
}