diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/util/PMOBPUtil.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/util/PMOBPUtil.java index 149678e5..4287b30e 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/util/PMOBPUtil.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/util/PMOBPUtil.java @@ -23,6 +23,7 @@ import nc.bs.mmpac.pmo.pac0002.bp.service.PMOBPService; import nc.bs.pubapp.AppBsContext; import nc.bs.trade.business.HYPubBO; import nc.impl.pubapp.bd.userdef.UserDefSaveRule; +import nc.itf.bd.material.baseinfo.IMaterialBaseInfoQueryService; import nc.itf.uap.rbac.IUserManageQuery_C; import nc.jdbc.framework.generator.SequenceGenerator; import nc.jdbc.framework.processor.ColumnListProcessor; @@ -42,6 +43,7 @@ import nc.util.mmf.framework.base.MMMapUtil; import nc.util.mmf.framework.base.MMNumberUtil; import nc.util.mmf.framework.base.MMValueCheck; import nc.util.mmf.framework.db.MMSqlBuilder; +import nc.vo.bd.material.MaterialVO; import nc.vo.bd.material.prod.MaterialProdVO; import nc.vo.bd.material.stock.MaterialStockVO; import nc.vo.bd.vermatch.enumeration.MfgTypeEnum; @@ -855,7 +857,13 @@ public class PMOBPUtil { for (PMOAggVO vo : aggvos) { for(PMOItemVO itemVO : vo.getChildrenVO()) { if(itemVO.getPk_org().equals(org)) { - xbitemList.add(itemVO); +// 只有实际独立需求的流程生产订单生成相同批次号 根据上游单据类型为销售订单进行判断 +// if(itemVO.getVsrctype().equals("30")){ +// xbitemList.add(itemVO); +// } + if(checkMaterial(itemVO.getCmaterialvid(),itemVO.getPk_org())){ + xbitemList.add(itemVO); + } } } } @@ -891,6 +899,31 @@ public class PMOBPUtil { } } + private boolean checkMaterial(String cmaterialid,String org) throws BusinessException { + // 根据物料档案库存信息页签批次管理字段判断是否生成批次号,只有勾选批次管理的物料才生成生产批次号 + + MaterialVO[] vos = NCLocator.getInstance().lookup(IMaterialBaseInfoQueryService.class).queryDataByPks(new String[]{cmaterialid}); + for (MaterialVO vo : vos) { + String whereSql = " pk_material='" + vo.getPk_material() + "' and pk_org='" + org + "' and nvl(dr,0)=0 "; + List list = null; + try { + list = (List) new BaseDAO().retrieveByClause(MaterialStockVO.class, whereSql); + } catch (DAOException e) { + e.printStackTrace(); + } + if(!list.isEmpty()){ + for (MaterialStockVO materialStockVO:list){ + if(materialStockVO.getWholemanaflag().booleanValue()) { + return true; + } + } + } + + } + + return false; + } + public Map getInwarehouseid(String[] cmaterialvids, String pk_org) { Map stockMap = new HashMap(); if (MMArrayUtil.isEmpty(cmaterialvids)) {