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.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 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); 
 | 
    } 
 | 
  
 | 
    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 ; 
 | 
        return this.mdEt0Dao.insert(po) ; 
 | 
    } 
 | 
} 
 |