liurunyu
2025-08-28 7d42f93be8077ec79b7569cb57a03d2a1f61d433
pipIrr-platform/pipIrr-web/pipIrr-web-model/src/main/java/com/dy/pipIrrModel/crops/CropsSv.java
@@ -1,9 +1,12 @@
package com.dy.pipIrrModel.crops;
import com.dy.common.util.DateTime;
import com.dy.common.webUtil.QueryResultVo;
import com.dy.pipIrrGlobal.daoMd.MdCropsMapper;
import com.dy.pipIrrGlobal.daoPr.PrStWeatherMapper;
import com.dy.pipIrrGlobal.pojoMd.MdCrops;
import com.dy.pipIrrGlobal.voMd.VoCrops;
import com.dy.pipIrrGlobal.voPr.VoWeather;
import lombok.extern.slf4j.Slf4j;
import org.apache.dubbo.common.utils.PojoUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -23,9 +26,13 @@
public class CropsSv {
    private MdCropsMapper mdCropsDao ;
    private PrStWeatherMapper prStWeatherDao;
    @Autowired
    private void setDao(MdCropsMapper dao) { this.mdCropsDao = dao; }
    private void setDao(MdCropsMapper mdCropsDao, PrStWeatherMapper prStWeatherDao) {
        this.mdCropsDao = mdCropsDao;
        this.prStWeatherDao = prStWeatherDao;
    }
    /**
     * 得到一个实体
@@ -36,8 +43,15 @@
        VoCrops vo = this.mdCropsDao.selectById(id) ;
        if(vo != null){
            this.setStoppedStr(vo) ;
            this.setLife(vo) ;
            if(vo.weatherId != null){
                VoWeather wVo = this.prStWeatherDao.selectOne(vo.weatherId) ;
                if(wVo != null){
                    vo.weatherName = wVo.getName() ;
                }
            }
        }
        return this.mdCropsDao.selectById(id) ;
        return vo ;
    }
    /**
@@ -58,6 +72,7 @@
        if(list != null && list.size() > 0){
            for(VoCrops vo : list){
                this.setStoppedStr(vo) ;
                this.setLife(vo) ;
            }
        }
        rsVo.obj = list ;
@@ -74,6 +89,7 @@
        if(list != null && list.size() > 0){
            for(VoCrops vo : list){
                this.setStoppedStr(vo) ;
                this.setLife(vo) ;
            }
        }
        return list ;
@@ -115,5 +131,62 @@
            vo.stoppedStr = "" ;
        }
    }
    private void setLife(VoCrops vo){
        vo.lifeLenStr = "--" ;
        vo.lifeCur = "--" ;
        vo.lifeFactorStr = "--" ;
        try{
            if(vo.startDt != null && vo.endDt != null){
                String start = DateTime.yyyy() + "-" + vo.startDt ;
                String now = DateTime.yyyy_MM_dd() ;
                Long days = DateTime.daysBetweenyyyy_MM_dd(now, start) ;
                if(days > 0){
                    vo.lifeLen = days.intValue() ;
                    vo.lifeLenStr = "" + days + "天" ;
                    if(vo.life4Start != null && vo.life4End != null){
                        if(days >= vo.life4Start && days <= vo.life4End){
                            vo.lifeCur = "生长末期" ;
                            vo.lifeFactor = vo.life4Factor ;
                            vo.lifeFactorStr = "" + vo.lifeFactor ;
                        }
                        if(days > vo.life4End){
                            vo.lifeCur = "已结束" ;
                            vo.lifeLenStr = "--" ;
                        }
                    }
                    if(vo.life3Start != null && vo.life3End != null){
                        if(days >= vo.life3Start && days <= vo.life3End){
                            vo.lifeCur = "生长中期" ;
                            vo.lifeFactor = vo.life3Factor ;
                            vo.lifeFactorStr = "" + vo.lifeFactor ;
                        }
                    }
                    if(vo.life2Start != null && vo.life2End != null){
                        if(days >= vo.life2Start && days <= vo.life2End){
                            vo.lifeCur = "快速生长期" ;
                            vo.lifeFactor = vo.life2Factor ;
                            vo.lifeFactorStr = "" + vo.lifeFactor ;
                        }
                    }
                    if(vo.life1Start != null && vo.life1End != null){
                        if(days >= vo.life1Start && days <= vo.life1End){
                            vo.lifeCur = "生长初期" ;
                            vo.lifeFactor = vo.life1Factor ;
                            vo.lifeFactorStr = "" + vo.lifeFactor ;
                        }
                        if(days < vo.life1Start){
                            vo.lifeCur = "未开始" ;
                            vo.lifeLenStr = "--" ;
                        }
                    }
                }else{
                    vo.lifeCur = "未开始" ;
                    vo.lifeLenStr = "--" ;
                }
            }
        }catch (Exception e){
            log.error("计算作物生命周期失败", e) ;
        }
    }
}