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) ;
|
}
|
}
|
|
}
|