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; 
 | 
import org.springframework.stereotype.Service; 
 | 
  
 | 
import java.util.List; 
 | 
import java.util.Map; 
 | 
  
 | 
/** 
 | 
 * @Author: liurunyu 
 | 
 * @Date: 2025/8/6 11:11 
 | 
 * @Description 
 | 
 */ 
 | 
  
 | 
@Slf4j 
 | 
@Service 
 | 
public class CropsSv { 
 | 
  
 | 
    private MdCropsMapper mdCropsDao ; 
 | 
    private PrStWeatherMapper prStWeatherDao; 
 | 
  
 | 
    @Autowired 
 | 
    private void setDao(MdCropsMapper mdCropsDao, PrStWeatherMapper prStWeatherDao) { 
 | 
        this.mdCropsDao = mdCropsDao; 
 | 
        this.prStWeatherDao = prStWeatherDao; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 得到一个实体 
 | 
     * @param id 实体ID 
 | 
     * @return 实体 
 | 
     */ 
 | 
    public VoCrops selectById(Long id){ 
 | 
        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 vo ; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 查询一些实体 
 | 
     * @param qo 查询条件值对象 
 | 
     * @return 包含实体集合的结果对象 
 | 
     */ 
 | 
    @SuppressWarnings("unchecked") 
 | 
    public QueryResultVo<List<VoCrops>> selectSome(CropsQo qo){ 
 | 
        Map<String, Object> params = (Map<String, Object>) PojoUtils.generalize(qo) ; 
 | 
        Long itemTotal = this.mdCropsDao.selectTotal(params) ; 
 | 
  
 | 
        QueryResultVo<List<VoCrops>> rsVo = new QueryResultVo<>() ; 
 | 
        rsVo.pageSize = qo.pageSize ; 
 | 
        rsVo.pageCurr = qo.pageCurr ; 
 | 
        rsVo.calculateAndSet(itemTotal, params); 
 | 
        List<VoCrops> list = this.mdCropsDao.selectSome(params) ; 
 | 
        if(list != null && list.size() > 0){ 
 | 
            for(VoCrops vo : list){ 
 | 
                this.setStoppedStr(vo) ; 
 | 
                this.setLife(vo) ; 
 | 
            } 
 | 
        } 
 | 
        rsVo.obj = list ; 
 | 
  
 | 
        return rsVo ; 
 | 
    } 
 | 
    /** 
 | 
     * 查询所有实体 
 | 
     * @return 包含实体集合的结果对象 
 | 
     */ 
 | 
    @SuppressWarnings("unchecked") 
 | 
    public List<VoCrops> selectAll(){ 
 | 
        List<VoCrops> list = this.mdCropsDao.selectAll() ; 
 | 
        if(list != null && list.size() > 0){ 
 | 
            for(VoCrops vo : list){ 
 | 
                this.setStoppedStr(vo) ; 
 | 
                this.setLife(vo) ; 
 | 
            } 
 | 
        } 
 | 
        return list ; 
 | 
    } 
 | 
    /** 
 | 
     * 添加实体 
 | 
     * @param po 实体 
 | 
     * @return 实体ID 
 | 
     */ 
 | 
    public Integer save(MdCrops po){ 
 | 
        return mdCropsDao.insert(po); 
 | 
    } 
 | 
    /** 
 | 
     * 修改实体 
 | 
     * @param po 
 | 
     * @return 
 | 
     */ 
 | 
    public int update(MdCrops po) { 
 | 
        return mdCropsDao.updateByPrimaryKeySelective(po); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 根据实体ID逻辑删除实体 
 | 
     * @param id 实体 
 | 
     * @return 
 | 
     */ 
 | 
    public Integer delete(Long id) { 
 | 
        return mdCropsDao.deleteById(id); 
 | 
    } 
 | 
  
 | 
    private void setStoppedStr(VoCrops vo) { 
 | 
        if (vo.stopped != null) { 
 | 
            if(vo.stopped == 0){ 
 | 
                vo.stoppedStr = "否"; 
 | 
            }else{ 
 | 
                vo.stoppedStr = "是"; 
 | 
            } 
 | 
        }else{ 
 | 
            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) ; 
 | 
        } 
 | 
    } 
 | 
  
 | 
} 
 |