| package com.dy.pipIrrModel.modelCalculate; | 
|   | 
| import com.dy.common.util.DateTime; | 
| import com.dy.common.util.IDLongGenerator; | 
| import com.dy.pipIrrGlobal.daoMd.MdCropsMapper; | 
| import com.dy.pipIrrGlobal.daoMd.MdEt0Mapper; | 
| import com.dy.pipIrrGlobal.daoPr.PrStWeatherMapper; | 
| import com.dy.pipIrrGlobal.daoRm.RmWeatherHistoryMapper; | 
| import com.dy.pipIrrGlobal.pojoMd.MdEt0; | 
| import com.dy.pipIrrGlobal.voMd.VoCrops; | 
| import com.dy.pipIrrGlobal.voPr.VoWeather; | 
| import com.dy.pipIrrGlobal.voRm.VoWeatherMaxMinTmp; | 
| import lombok.extern.slf4j.Slf4j; | 
| import org.apache.ibatis.annotations.Param; | 
| import org.springframework.beans.factory.annotation.Autowired; | 
| import org.springframework.stereotype.Service; | 
| import org.springframework.transaction.annotation.Transactional; | 
|   | 
| import java.util.Date; | 
| import java.util.List; | 
|   | 
| /** | 
|  * @Author: liurunyu | 
|  * @Date: 2025/8/18 16:34 | 
|  * @Description | 
|  */ | 
| @Slf4j | 
| @Service | 
| public class ModelCalculatorSv { | 
|     private MdCropsMapper mdCropsDao ; | 
|     private PrStWeatherMapper prWeatherDao ; | 
|     private RmWeatherHistoryMapper rmWeatherHistoryDao; | 
|     private MdEt0Mapper mdEt0Dao; | 
|   | 
|     @Autowired | 
|     private void setDao(MdCropsMapper mdCropsDao, | 
|                         PrStWeatherMapper prWeatherDao, | 
|                         RmWeatherHistoryMapper rmWeatherHistoryDao, | 
|                         MdEt0Mapper mdEt0Dao) { | 
|         this.mdCropsDao = mdCropsDao; | 
|         this.prWeatherDao = prWeatherDao; | 
|         this.rmWeatherHistoryDao = rmWeatherHistoryDao; | 
|         this.mdEt0Dao = mdEt0Dao; | 
|     } | 
|     /** | 
|      * 查询所有作物 | 
|      * @return 包含实体集合的结果对象 | 
|      */ | 
|     @SuppressWarnings("unchecked") | 
|     public List<VoCrops> selectAllCrops(){ | 
|         return this.mdCropsDao.selectAll() ; | 
|     } | 
|   | 
|     public VoWeather getWeather(Long weatherId) throws Exception{ | 
|         return this.prWeatherDao.selectOne(weatherId) ; | 
|     } | 
|   | 
|     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) ; | 
|         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); | 
|     } | 
|   | 
|     public MdEt0 selectByCropWeatherDt(Long cropId, Long weatherId, String yesterday) throws Exception{ | 
|         return this.mdEt0Dao.selectByCropWeatherDt(cropId, weatherId, yesterday) ; | 
|     } | 
|   | 
|     @Transactional(rollbackFor=Exception.class) | 
|     public int saveEt0(Long cropId, Long weatherId, Date yesterday, Double maxAirTemperature, Double minAirTemperature, Double factor, Double et0){ | 
|         MdEt0 po = new MdEt0(); | 
|         po.cropId = cropId ; | 
|         po.weatherId = weatherId ; | 
|         po.dt = yesterday ; | 
|         po.maxTmp = maxAirTemperature ; | 
|         po.minTmp = minAirTemperature ; | 
|         po.factor = factor ; | 
|         po.et0 = et0 ; | 
|         this.mdEt0Dao.insert(po) ; | 
|         return 0 ; | 
|     } | 
| } |