| | |
| | | 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; |
| | |
| | | } |
| | | |
| | | public void execute(){ |
| | | String orgTag = DataSourceContext.get() ; |
| | | List<VoCrops> crops = this.sv.selectAllCrops() ; |
| | | if(crops != null && crops.size() > 0){ |
| | | for (VoCrops crop : crops) { |
| | |
| | | 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())) ; //昨天 |
| | |
| | | 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) ; |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | 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 ; |
| | | } |
| | | } |