package com.shlanbao.tzsc.pms.sch.workorder.service.impl; import java.util.ArrayList; import java.util.List; import com.shlanbao.tzsc.base.dao.SchWorkorderDaoI; import com.shlanbao.tzsc.utils.tools.FillUserInfoUtil; import com.shlanbao.tzsc.utils.tools.LogAnno; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.shlanbao.tzsc.base.dao.SchWorkorderBomDaoI; import com.shlanbao.tzsc.base.mapping.MdMat; import com.shlanbao.tzsc.base.mapping.MdUnit; import com.shlanbao.tzsc.base.mapping.SchWorkorder; import com.shlanbao.tzsc.base.mapping.SchWorkorderBom; import com.shlanbao.tzsc.base.model.DataGrid; import com.shlanbao.tzsc.base.service.BaseService; import com.shlanbao.tzsc.pms.sch.workorder.beans.BomBean; import com.shlanbao.tzsc.pms.sch.workorder.service.BomServiceI; import javax.servlet.http.HttpServletRequest; @Service public class BomServiceImpl extends BaseService implements BomServiceI{ @Autowired private SchWorkorderBomDaoI schWorkorderBomDao; @Autowired private SchWorkorderDaoI workorderDaoI; @Autowired private HttpServletRequest request; @Override public DataGrid queryBomByWorkOrder(String workOrderId) { SchWorkorder workorder = workorderDaoI.findById(SchWorkorder.class,workOrderId); try { String hql = "from SchWorkorderBom o join fetch o.mdMat m join fetch o.mdUnit u where o.bom_lot_id=?"; List schWorkorderBoms = schWorkorderBomDao.query(hql, workorder.getBomVersion()); List bomBeans = new ArrayList(); for (SchWorkorderBom schWorkorderBom : schWorkorderBoms) { BomBean bean = new BomBean(); bean.setId(schWorkorderBom.getId()); bean.setMat(schWorkorderBom.getMdMat().getSimpleName()); bean.setQty(schWorkorderBom.getQty()); bean.setUnit(schWorkorderBom.getMdUnit().getName()); bean.setMatId(schWorkorderBom.getMdMat().getCode()); bomBeans.add(bean); } return new DataGrid(bomBeans, 0L); } catch (Exception e) { log.error("查询工单ID:["+workOrderId+"]的BOM异常", e); } return null; } @Override public void addBom(BomBean bomBean) { SchWorkorderBom o = new SchWorkorderBom(); o.setMdMat(new MdMat(bomBean.getMat())); o.setQty(bomBean.getQty()); o.setMdUnit(new MdUnit(bomBean.getUnit())); o.setSchWorkorder(new SchWorkorder(bomBean.getOrderId())); schWorkorderBomDao.save(o); } @LogAnno(operateType = "投料信息编辑") @Override public void editBom(BomBean bomBean) { SchWorkorderBom o = schWorkorderBomDao.findById(SchWorkorderBom.class, bomBean.getId()); o.setMdMat(new MdMat(bomBean.getMat())); o.setQty(bomBean.getQty()); o.setMdUnit(new MdUnit(bomBean.getUnit())); FillUserInfoUtil.fillUpdateUserInfo(o,request); //o.setSchWorkorder(new SchWorkorder(bomBean.getOrderId())); } @LogAnno(operateType = "投料信息删除") @Override public void deleteBom(String id) { schWorkorderBomDao.deleteById(id, SchWorkorderBom.class); } @Override public BomBean getBomById(String id) { SchWorkorderBom schWorkorderBom = schWorkorderBomDao.findById(SchWorkorderBom.class, id); BomBean bean = new BomBean(); bean.setId(schWorkorderBom.getId()); bean.setMat(schWorkorderBom.getMdMat().getSimpleName()); bean.setMatId(schWorkorderBom.getMdMat().getId()); bean.setQty(schWorkorderBom.getQty()); bean.setUnit(schWorkorderBom.getMdUnit().getName()); bean.setUnitId(schWorkorderBom.getMdUnit().getId()); return bean; } /** * 查询 * @author wanchanghuang * @create 2019年5月6日16:54:32 * @param schWkBom */ @Override public long querySchWkOrderBom (SchWorkorderBom schWkBom) { try { String hql="from SchWorkorderBom o where o.bom_lot_id=? and o.mdMat.id=?"; List list=schWorkorderBomDao.query(hql, schWkBom.getBom_lot_id(),schWkBom.getMdMat().getId()); if(list!=null) { return list.size(); } } catch (Exception e) { e.printStackTrace(); } return 0; } /** *插入 * @author wanchanghuang * @create 2019年5月6日16:54:32 * @param schWkBom */ @Override public void addSchWkOrderBom(SchWorkorderBom schWkBom) { schWorkorderBomDao.save(schWkBom); } /** *查询 * @author wanchanghuang * @create 2019年5月6日16:54:32 * @param schWkBom */ @Override public List querySchWorkBomByBomId(SchWorkorder schWk) { String hql="from SchWorkorderBom o where o.bom_lot_id=? and o.del=1 ";//1表示数采关键物料 List list=schWorkorderBomDao.query(hql, schWk.getBomVersion()); return list; } @Override public void deleteBomByBomId(String schWkBom) { String sql = "delete from sch_workorder_bom where bom_lot_id = ?"; List list = new ArrayList<>(); list.add(schWkBom); schWorkorderBomDao.updateBySql(sql,list); } public SchWorkorderDaoI getWorkorderDaoI() { return workorderDaoI; } public void setWorkorderDaoI(SchWorkorderDaoI workorderDaoI) { this.workorderDaoI = workorderDaoI; } }