package com.shlanbao.tzsc.pms.cos.matassess.service.impl; import java.util.ArrayList; import java.util.Date; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.shlanbao.tzsc.base.dao.CosMatAssessDaoI; import com.shlanbao.tzsc.base.dao.MdEqpTypeDaoI; import com.shlanbao.tzsc.base.dao.MdMatDaoI; import com.shlanbao.tzsc.base.mapping.CosMatAssess; import com.shlanbao.tzsc.base.mapping.MdEqpType; import com.shlanbao.tzsc.base.mapping.MdMat; import com.shlanbao.tzsc.base.model.DataGrid; import com.shlanbao.tzsc.base.model.PageParams; import com.shlanbao.tzsc.pms.cos.matassess.bean.CosMatAssessBean; import com.shlanbao.tzsc.pms.cos.matassess.service.CosMatAssessServiceI; import com.shlanbao.tzsc.utils.extents.DateFmtAnnotation; import com.shlanbao.tzsc.utils.tools.BeanConvertor; import com.shlanbao.tzsc.utils.tools.DateUtil; import com.shlanbao.tzsc.utils.tools.StringUtil; /** * * @ClassName: CosMatAssessServiceImpl * @Description: 辅料考核版本控制ServiceImpl * @author luoliang * @date 2015-1-7 上午10:44:37 * */ @Service public class CosMatAssessServiceImpl implements CosMatAssessServiceI{ private static final String STATUS1="新建"; private static final String STATUS2="生效"; private static final String STATUS3="归档"; @Autowired private CosMatAssessDaoI cosMatAssessDao; @Autowired private MdMatDaoI mdMatDao; @Autowired private MdEqpTypeDaoI mdEqpTypeDao; //添加或修改Bean @Override public boolean addOrUpdateBean(CosMatAssessBean bean) throws Exception { CosMatAssess cosMatAssess=new CosMatAssess(); if(!StringUtil.notNull(bean.getId())){ bean.setId(null); cosMatAssess.setStatus(STATUS1); cosMatAssess.setStatusLasting(DateUtil.getNowDateTime(null)); }else{ cosMatAssess=getBeanByIds(bean.getId()); } BeanConvertor.copyProperties(bean,cosMatAssess); if(StringUtil.notNull(bean.getMdMatId())){ MdMat mat=mdMatDao.findById(MdMat.class, bean.getMdMatId()); if(mat!=null){ cosMatAssess.setMdMat(mat); } }else{ throw new Exception(); } if(StringUtil.notNull(bean.getEqpTypeID())){ MdEqpType mdEqpType=mdEqpTypeDao.findById(MdEqpType.class, bean.getEqpTypeID()); if(mdEqpType!=null){ cosMatAssess.setEqpType(mdEqpType); } } cosMatAssessDao.saveOrUpdate(cosMatAssess); return true; } //根据ID获取mapping bean @Override public CosMatAssess getBeanByIds(String id) throws Exception { return cosMatAssessDao.findById(CosMatAssess.class, id); } //版本生效 @Override public boolean editStatus(String id) throws Exception{ CosMatAssess cosMatAssess=getBeanByIds(id); //查询当前 机型、牌号有没有生效的版本 CosMatAssess bean=new CosMatAssess(); bean.setStatus(STATUS2); bean.setEqpType(cosMatAssess.getEqpType()); bean.setMdMat(cosMatAssess.getMdMat()); List oldBeans=queryBeans(bean,new PageParams()); //如果存在已经生效的版本,则修改状态为生效状态,并且修改状态变化日期 for(CosMatAssess c:oldBeans){ c.setStatus(STATUS3); c.setStatusLasting(DateUtil.getNowDateTime(null)); cosMatAssessDao.saveOrUpdate(c); } //生效当前 cosMatAssess.setStatus(STATUS2); cosMatAssess.setStatusLasting(DateUtil.getNowDateTime(null)); cosMatAssessDao.saveOrUpdate(cosMatAssess); return true; } //根据ID获取bean @Override public CosMatAssessBean getBeanById(String id) throws Exception { if(!StringUtil.notNull(id)){ return null; } CosMatAssess c = cosMatAssessDao.findById(CosMatAssess.class, id); CosMatAssessBean b=new CosMatAssessBean(); BeanConvertor.copyProperties(c,b); b.setMdMatId(c.getMdMat().getId()); b.setMdMatName(c.getMdMat().getName()); b.setEqpTypeName(c.getEqpType().getName()); b.setEqpTypeID(c.getEqpType().getId()); b.setEqpTypeDes(c.getEqpType().getDes()); return b; } //查询 @Override public List queryBeans(CosMatAssess bean,PageParams pageParams){ String hql="from CosMatAssess o where 1=1 "; StringBuffer params = new StringBuffer(); if(StringUtil.notNull(bean.getId())) params.append(" and o.id='" + bean.getId() + "'"); if(StringUtil.notNull(bean.getStatus())) params.append(" and o.status='" + bean.getStatus() + "'"); if(bean.getEqpType()!=null) params.append(" and o.eqpType.id='" + bean.getEqpType().getId() + "'"); if(bean.getMdMat()!=null) params.append(" and o.mdMat.id='" + bean.getMdMat().getId() + "'"); return cosMatAssessDao.queryByPage(hql.concat(params.toString()),pageParams); } //界面中翻页查询 @Override public DataGrid queryBean(CosMatAssess bean, PageParams pageParams) throws Exception { String hql="from CosMatAssess o where 1=1 "; StringBuffer params = new StringBuffer(); if(StringUtil.notNull(bean.getId())) params.append(" and o.id='" + bean.getId() + "'"); if(StringUtil.notNull(bean.getStatus())) params.append(" and o.status='" + bean.getStatus() + "'"); if(bean.getEqpType()!=null&&StringUtil.notNull(bean.getEqpType().getId())) params.append(" and o.eqpType.id='" + bean.getEqpType().getId() + "'"); if(bean.getMdMat()!=null&&StringUtil.notNull(bean.getMdMat().getId())) params.append(" and o.mdMat.id='" + bean.getMdMat().getId() + "'"); List oldbeans = cosMatAssessDao.queryByPage(hql.concat(params.toString()),pageParams); List beans=new ArrayList(); for(CosMatAssess c:oldbeans){ CosMatAssessBean b=new CosMatAssessBean(); BeanConvertor.copyProperties(c, b); b.setMdMatId(c.getMdMat().getId()); b.setMdMatName(c.getMdMat().getName()); b.setEqpTypeName(c.getEqpType().getName()); b.setEqpTypeID(c.getEqpType().getId()); b.setEqpTypeDes(c.getEqpType().getDes()); beans.add(b); } hql = "select count(*) from CosMatAssess o where 1=1 "; long total = cosMatAssessDao.queryTotal(hql.concat(params.toString())); return new DataGrid(beans,total); } //界面中翻页查询 @Override public DataGrid queryBeanByExtends(CosMatAssessBean bean, PageParams pageParams) throws Exception { String hql="from CosMatAssess o where 1=1 "; StringBuffer params = new StringBuffer(); if(StringUtil.notNull(bean.getId())) params.append(" and o.id='" + bean.getId() + "'"); if(StringUtil.notNull(bean.getStatus())) params.append(" and o.status='" + bean.getStatus() + "'"); if(StringUtil.notNull(bean.getEqpTypeID())) params.append(" and o.eqpType.id='" + bean.getEqpTypeID() + "'"); if(StringUtil.notNull(bean.getMdMatId())) params.append(" and o.mdMat.id='" + bean.getMdMatId() + "'"); List oldbeans = cosMatAssessDao.queryByPage(hql.concat(params.toString()),pageParams); List beans=new ArrayList(); for(CosMatAssess c:oldbeans){ CosMatAssessBean b=new CosMatAssessBean(); BeanConvertor.copyProperties(c, b); b.setMdMatId(c.getMdMat().getId()); b.setMdMatName(c.getMdMat().getName()); b.setEqpTypeName(c.getEqpType().getName()); b.setEqpTypeID(c.getEqpType().getId()); b.setEqpTypeDes(c.getEqpType().getDes()); beans.add(b); } hql = "select count(*) from CosMatAssess o where 1=1 "; long total = cosMatAssessDao.queryTotal(hql.concat(params.toString())); return new DataGrid(beans,total); } }