diff --git a/mmpac/src/private/nc/impl/mmpac/pmo/pac0002/PMOMaintainServiceImpl.java b/mmpac/src/private/nc/impl/mmpac/pmo/pac0002/PMOMaintainServiceImpl.java index 37e41dd9..56562e7f 100644 --- a/mmpac/src/private/nc/impl/mmpac/pmo/pac0002/PMOMaintainServiceImpl.java +++ b/mmpac/src/private/nc/impl/mmpac/pmo/pac0002/PMOMaintainServiceImpl.java @@ -10,6 +10,9 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; + +import nc.bs.dao.BaseDAO; +import nc.bs.dao.DAOException; import nc.bs.framework.common.NCLocator; import nc.bs.mmpac.pmo.pac0002.bp.PMOAdjustBP; import nc.bs.mmpac.pmo.pac0002.bp.PMOApproveBP; @@ -31,6 +34,7 @@ import nc.bs.mmpac.pmo.pac0002.rule.check.PMOCheckParentProcedureNoRule; import nc.bs.trade.business.HYPubBO; import nc.impl.pubapp.bd.userdef.UserDefSaveRule; import nc.impl.pubapp.pattern.rule.processer.AroundProcesser; +import nc.itf.bd.material.baseinfo.IMaterialBaseInfoQueryService; import nc.itf.mmpac.pmo.pac0002.IPMOMaintainService; import nc.itf.uap.rbac.IUserManageQuery_C; import nc.jdbc.framework.generator.SequenceGenerator; @@ -45,6 +49,8 @@ import nc.util.mmf.framework.base.MMValueCheck; import nc.util.mmf.framework.gc.GCBillTransferTool; import nc.util.mmf.framework.gc.GCPseudoColUtil; import nc.vo.bd.feature.ffile.entity.AggFFileVO; +import nc.vo.bd.material.MaterialVO; +import nc.vo.bd.material.stock.MaterialStockVO; import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO; import nc.vo.mmpac.pmo.pac0002.entity.PMOHeadVO; import nc.vo.mmpac.pmo.pac0002.entity.PMOItemMeasureParam; @@ -289,7 +295,9 @@ public class PMOMaintainServiceImpl implements IPMOMaintainService { for (PMOAggVO vo : aggvos) { for(PMOItemVO itemVO : vo.getChildrenVO()) { if(itemVO.getPk_org().equals(org)) { - xbitemList.add(itemVO); + if(checkMaterial(itemVO.getCmaterialvid(),itemVO.getPk_org())){ + xbitemList.add(itemVO); + } } } } @@ -319,7 +327,30 @@ public class PMOMaintainServiceImpl implements IPMOMaintainService { } return MMArrayUtil.isEmpty(aggvos) ? null : (new PMOBPUtil()).fillVOInfo4AID(aggvos); } + 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 PMOAggVO[] fillVOInfo4KF(PMOAggVO[] aggvos) throws BusinessException { if (MMArrayUtil.isEmpty(aggvos)) { return null;