package com.shlanbao.tzsc.pms.md.mat.service.impl; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import com.shlanbao.tzsc.utils.tools.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.shlanbao.tzsc.base.dao.MdMatDaoI; import com.shlanbao.tzsc.base.dao.MdMaterialLkDaoI; import com.shlanbao.tzsc.base.mapping.MdMat; import com.shlanbao.tzsc.base.mapping.MdMatType; import com.shlanbao.tzsc.base.mapping.MdMaterialLk; import com.shlanbao.tzsc.base.mapping.MdUnit; import com.shlanbao.tzsc.base.mapping.SchWorkorder; import com.shlanbao.tzsc.base.model.DataGrid; import com.shlanbao.tzsc.base.model.PageParams; import com.shlanbao.tzsc.base.service.BaseService; import com.shlanbao.tzsc.plugin.service.LoadComboboxServiceI; import com.shlanbao.tzsc.pms.md.mat.beans.MatBean; import com.shlanbao.tzsc.pms.md.mat.service.MatServiceI; import com.shlanbao.tzsc.utils.params.ComboboxType; import javax.servlet.http.HttpServletRequest; @Service public class MatServiceImpl extends BaseService implements MatServiceI{ @Autowired private MdMatDaoI mdMatDao; @Autowired private MdMaterialLkDaoI mdMaterialLkDao; @Autowired private LoadComboboxServiceI loadComboboxService; @Autowired private HttpServletRequest request; @Override public List queryAllMatsForComboBox() throws Exception { String hql = "from MdMat o where o.mdMatType.code=?" ; //mdMatType.code=1 成品 2辅料 return BeanConvertor.copyList(mdMatDao.query(hql,"1"), MatBean.class); } @LogAnno(operateType = "新增物料") @Override public void addMat(MatBean matBean) throws Exception { MdMat o = new MdMat(); BeanConvertor.copyProperties(matBean, o); if(StringUtil.notNull(matBean.getUnit())){ o.setMdUnit(new MdUnit(matBean.getUnit())); } if(StringUtil.notNull(matBean.getMatType())){ o.setMdMatType(new MdMatType(matBean.getMatType())); } o.setLastUpdateTime(new Date()); o.setDel("0"); FillUserInfoUtil.fillCreateUserInfo(o,request); mdMatDao.save(o); loadComboboxService.initCombobox(ComboboxType.MATPROD); } @LogAnno(operateType = "编辑物料") @Override public void editMat(MatBean matBean) throws Exception { MdMat o = mdMatDao.findById(MdMat.class, matBean.getId()); BeanConvertor.copyProperties(matBean, o); o.setLastUpdateTime(new Date()); if(StringUtil.notNull(matBean.getUnit())){ o.setMdUnit(new MdUnit(matBean.getUnit())); } if(StringUtil.notNull(matBean.getMatType())){ o.setMdMatType(new MdMatType(matBean.getMatType())); } FillUserInfoUtil.fillUpdateUserInfo(o,request); loadComboboxService.initCombobox(ComboboxType.MATPROD); } @LogAnno(operateType = "删除物料") @Override public void deleteMat(String id) throws Exception { mdMatDao.updateByParams("update MdMat o set o.del='1' where o.id=?", id); loadComboboxService.initCombobox(ComboboxType.MATPROD); } @Override public DataGrid getAllMats(MatBean matBean,PageParams pageParams) throws Exception { String hql = "from MdMat o left join fetch o.mdMatType t left join fetch o.mdUnit u where o.del='0'"; if(StringUtil.notNull(matBean.getMatType())){ hql = hql.concat(" and o.mdMatType.id = "+matBean.getMatType()); } if(matBean.getEnable() != null){ hql = hql.concat(" and o.enable = "+matBean.getEnable()); } if(StringUtil.notNull(matBean.getCode())){ hql = hql.concat(" and o.code like '%"+matBean.getCode()+"%'"); } if(StringUtil.notNull(matBean.getName())){ hql = hql.concat(" and o.name like '%"+matBean.getName()+"%'"); } List mdMats = mdMatDao.queryByPage(hql+" order by o.lastUpdateTime desc ", pageParams); List list = new ArrayList(); for (MdMat mdMat : mdMats) { MatBean bean = BeanConvertor.copyProperties(mdMat, MatBean.class); if(mdMat.getMdUnit()!=null){ bean.setUnit(mdMat.getMdUnit().getName()); bean.setUnitId(mdMat.getMdUnit().getId()); } if(mdMat.getMdMatType()!=null){ bean.setMatType(mdMat.getMdMatType().getName()); } FillUserInfoUtil.fillCreateAndUpdateUserInfo(mdMat,bean); list.add(bean); } hql= "select count(o) ".concat(hql.replace("fetch", "")); Long count = mdMatDao.queryTotal(hql); return new DataGrid(list, count); } @Override public MatBean getMatById(String id) throws Exception{ MdMat mdMat = mdMatDao.findById(MdMat.class, id); MatBean bean = BeanConvertor.copyProperties(mdMat,MatBean.class); if(mdMat.getMdUnit()!=null){ bean.setUnit(mdMat.getMdUnit().getId()); } if(mdMat.getMdMatType()!=null){ bean.setMatType(mdMat.getMdMatType().getId()); } return bean; } @Override public List queryAllProdMat() throws Exception { List list = new ArrayList(); String hql = "from MdMat o where o.del='0' and o.mdMatType.code='1'"; List mats=mdMatDao.query(hql); if(mats!=null &&mats.size()>0){ MatBean matBean=null; for (MdMat mdMat : mats) { matBean = new MatBean(mdMat.getId(), mdMat.getName()); list.add(matBean); } } return list; } @Override public Map getAllMatMap() { List ls=mdMatDao.queryBySql("SELECT code,id,tid from md_mat where ENABLE=1 and del=0"); Map map=new HashMap<>(); try { if(ls!=null && ls.size()>0){ for (Object obj : ls) {//需要修改 Object[] str=(Object[]) obj; if(StringUtil.notEmpty(str[0]) && StringUtil.notEmpty(str[1])){ map.put(str[0].toString(), new String[]{str[1].toString(),str[2].toString()}); } } } } catch (Exception e) { e.printStackTrace(); } return map; } @Override public Map getAllMatMapJB() { List ls=mdMatDao.queryBySql("SELECT code,id,tid from md_mat where ENABLE=1 and del=0 and tid not in ('14') "); Map map=new HashMap<>(); try { if(ls!=null && ls.size()>0){ for (Object obj : ls) {//需要修改 Object[] str=(Object[]) obj; if(StringUtil.notEmpty(str[0]) && StringUtil.notEmpty(str[1])){ map.put(str[0].toString(), new String[]{str[1].toString(),str[2].toString()}); } } } } catch (Exception e) { e.printStackTrace(); } return map; } /**得到所有牌号*/ @Override public Map getAllMatMapCx() { List ls=mdMatDao.queryBySql("SELECT code,id,tid from md_mat where ENABLE=1 and del=0 and tid in ('1','14') "); Map map=new HashMap<>(); try { if(ls!=null && ls.size()>0){ for (Object obj : ls) {//需要修改 Object[] str=(Object[]) obj; if(StringUtil.notEmpty(str[0]) && StringUtil.notEmpty(str[1])){ map.put(str[0].toString(), new String[]{str[1].toString(),str[2].toString()}); } } } } catch (Exception e) { e.printStackTrace(); } return map; } /** * 存放成型机牌号 * * */ @Override public Map getAllMatMapFiller() { List ls=mdMatDao.queryBySql("SELECT code,id,tid from md_mat where ENABLE=1 and del=0 and tid='14' "); Map map=new HashMap<>(); try { if(ls!=null && ls.size()>0){ for (Object obj : ls) {//需要修改 Object[] str=(Object[]) obj; if(StringUtil.notEmpty(str[0]) && StringUtil.notEmpty(str[1])){ map.put(str[0].toString(), new String[]{str[1].toString(),str[2].toString()}); } } } } catch (Exception e) { e.printStackTrace(); } return map; } /** * 功能说明:查询当天时间的工厂日历 * * */ @Override public Map getAllSchCalendar(SchWorkorder schWorkorder) { try { String sql="select shift,etim,WORKSHOP from SCH_CALENDAR where to_char(date_,'yyyy-MM-dd')='"+DateUtil.datetoStr(schWorkorder.getDate(), "yyyy-MM-dd") +"' and WORKSHOP=1 "; List ls=mdMatDao.queryBySql(sql); Map map=new HashMap(); if(ls!=null && ls.size()>0){ for (Object obj : ls) {//需要修改 Object[] str=(Object[]) obj; if(StringUtil.notEmpty(str[0]) && StringUtil.notEmpty(str[1])){ map.put(str[0].toString(), new String[]{str[1].toString(),str[2].toString()}); } } } return map; } catch (Exception e) { e.printStackTrace(); } return null; } @Override public List getMatFiller() { List list = new ArrayList(); String hql = "from MdMat o where o.del='0' and o.mdMatType.code='14'"; List mats=mdMatDao.query(hql); if(mats!=null &&mats.size()>0){ MatBean matBean=null; for (MdMat mdMat : mats) { matBean = new MatBean(mdMat.getId(), mdMat.getName()); list.add(matBean); } } return list; } @Override public List getFlFiller() { List list = new ArrayList(); String hql = "from MdMat o where o.del='0' and o.mdMatType.code='4'"; List mats=mdMatDao.query(hql); if(mats!=null &&mats.size()>0){ MatBean matBean=null; for (MdMat mdMat : mats) { matBean = new MatBean(mdMat.getId(), mdMat.getName()); list.add(matBean); } } return list; } /** * [说明]:查询物料是否存在 * @author wanchanghuang * @date 2019年5月7日10:46:36 * */ @Override public long queryMdMatType(MdMat mdMat) { try { String hql = "from MdMat o where o.del='0' and o.code=?"; List list=mdMatDao.query(hql, mdMat.getCode()); if(list!=null) { return list.size(); } } catch (Exception e) { e.printStackTrace(); } return 0; } /** * [说明]:插入对象 * @author wanchanghuang * @date 2019年5月7日10:46:36 * */ @Override public void saveMdMat(MdMat mdMat) { mdMatDao.save(mdMat); } /** * [说明]:物料锁定-修改 * @author wanchanghuang * @create 2019年5月15日14:03:26 */ @Override public void updateMdMaterail(MdMaterialLk wkorder) { String sql="update MD_MATERIAL_LK set type='"+wkorder.getType()+"' where material_code='"+wkorder.getMaterialCode()+"' and material_batch_code='"+wkorder.getMaterialBatchCode()+"' "; //mdMaterialLkDao.queryBySql(sql); mdMaterialLkDao.updateBySql(sql, null); } /** * [说明]:物料锁定-查询 * @author wanchanghuang * @create 2019年5月15日14:03:26 */ @Override public long queryMdMaterailAll(MdMaterialLk wkorder) { try { String hql = "from MdMaterialLk o where o.type='1' and o.materialCode=? and o.materialBatchCode=? "; List list=mdMaterialLkDao.query(hql, wkorder.getMaterialCode(),wkorder.getMaterialBatchCode()); if(list!=null) { return list.size(); } } catch (Exception e) { e.printStackTrace(); } return 0; } /** * [说明]:物料锁定-添加 * @author wanchanghuang * @create 2019年5月15日14:03:26 */ @Override public void addMdMaterail(MdMaterialLk wkorder) { mdMaterialLkDao.save(wkorder); } @LogAnno(operateType = "批量删除物料") @Override public void batchDeleteMat(String ids) { String[] split = ids.split(","); for (int i = 0; i < split.length; i++) { mdMatDao.updateByParams("update MdMat o set o.del='1' where o.id=?", split[i]); } loadComboboxService.initCombobox(ComboboxType.MATPROD); } @Override public List getProdByMonth(String month) { return mdMatDao.queryBySql("select b.CODE,b.NAME from SCH_WORKORDER a join md_mat b on a.mat = b.id where to_char(a.DATE_,'yyyy-mm') = ? and a.TYPE in (1,2) group by b.CODE,b.NAME ",month); } }