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> selectSome(CropsQo qo){ Map params = (Map) PojoUtils.generalize(qo) ; Long itemTotal = this.mdCropsDao.selectTotal(params) ; QueryResultVo> rsVo = new QueryResultVo<>() ; rsVo.pageSize = qo.pageSize ; rsVo.pageCurr = qo.pageCurr ; rsVo.calculateAndSet(itemTotal, params); List 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 selectAll(){ List 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) ; } } }