From 543f9965ef441a2496c8fd99b99a734505726aa5 Mon Sep 17 00:00:00 2001 From: lihao Date: Thu, 11 Sep 2025 10:59:42 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=B1=E5=8F=98=E5=85=AC=E5=8F=B8MRP?= =?UTF-8?q?=E8=AE=A1=E5=88=92=E8=AE=A2=E5=8D=95=E6=8E=A8=E9=80=81=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E8=AE=A2=E5=8D=95=E6=97=B6=E7=94=9F=E6=88=90=E7=9B=B8?= =?UTF-8?q?=E5=90=8C=E7=9A=84=E7=94=9F=E4=BA=A7=E6=89=B9=E6=AC=A1=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../rule/fill/PMOFillBatchCodeRule.java | 96 +++++++++++++++++-- 1 file changed, 88 insertions(+), 8 deletions(-) diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/rule/fill/PMOFillBatchCodeRule.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/rule/fill/PMOFillBatchCodeRule.java index e835cd2..3a590f3 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/rule/fill/PMOFillBatchCodeRule.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/rule/fill/PMOFillBatchCodeRule.java @@ -12,13 +12,12 @@ import java.util.Map; import java.util.Set; import nc.bs.framework.common.NCLocator; import nc.bs.mmpac.pmo.pac0002.bp.service.PMOBPService; +import nc.bs.trade.business.HYPubBO; import nc.impl.pubapp.pattern.rule.IRule; import nc.pub.billcode.itf.IBillcodeManage; +import nc.uif.pub.exception.UifException; import nc.util.mmf.busi.service.MaterialPubService; -import nc.util.mmf.framework.base.MMArrayUtil; -import nc.util.mmf.framework.base.MMCollectionUtil; -import nc.util.mmf.framework.base.MMMapUtil; -import nc.util.mmf.framework.base.MMValueCheck; +import nc.util.mmf.framework.base.*; import nc.vo.bd.material.prod.MaterialProdVO; import nc.vo.mmpac.pickm.param.PickmTransParamForMO; import nc.vo.mmpac.pmo.pac0002.constant.PMOConstLang; @@ -27,6 +26,7 @@ import nc.vo.mmpac.pmo.pac0002.entity.PMOHeadVO; import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO; import nc.vo.mmpac.pmo.pac0002.enumeration.PMOFItemStatusEnum; import nc.vo.mmpac.pmo.pac0002.util.PMOTransferUtil; +import nc.vo.org.OrgVO; import nc.vo.pd.pd0332.entity.PbEventParamVO; import nc.vo.pd.pd0332.entity.PbParamVO; import nc.vo.pub.BusinessException; @@ -38,10 +38,14 @@ public class PMOFillBatchCodeRule implements IRule { } public void process(PMOAggVO[] aggvos) { - this.fillBatchCode(aggvos); + try { + this.fillBatchCode(aggvos); + } catch (UifException e) { + throw new RuntimeException(e); + } } - private void fillBatchCode(PMOAggVO[] aggvos) { + private void fillBatchCode(PMOAggVO[] aggvos) throws UifException { PMOItemVO[] filteritems = this.getItemByBatchCode(aggvos); if (!MMArrayUtil.isEmpty(filteritems)) { Map headMap = new HashMap(); @@ -81,6 +85,8 @@ public class PMOFillBatchCodeRule implements IRule { needbatcodeList.add(itemVO); } else if (PMOFItemStatusEnum.PLAN.equalsValue(itemVO.getFitemstatus()) && provo.getPchscscd() == 3) { needbatcodeList.add(itemVO); + } else if (PMOFItemStatusEnum.PLAN.equalsValue(itemVO.getFitemstatus()) && provo.getPchscscd() == 0) { + needbatcodeList.add(itemVO); } } } @@ -116,14 +122,24 @@ public class PMOFillBatchCodeRule implements IRule { } } - private void genBatchCode(PMOItemVO[] paravos, Map headMap) { + private void genBatchCode(PMOItemVO[] paravos, Map headMap) throws UifException { if (!MMArrayUtil.isEmpty(paravos)) { List itemList = new ArrayList(); + + List xbitemList = new ArrayList(); + HYPubBO hybo = new HYPubBO(); + String org = hybo.findColValue("org_adminorg", "pk_adminorg", " code = 'C030' ") + ""; for(PMOItemVO vo : paravos) { - itemList.add(vo); + if(vo.getPk_org().equals(org)) { + xbitemList.add(vo); + }else{ + itemList.add(vo); + } + } + if (itemList.size() > 0) { PMOItemVO[] vos = (PMOItemVO[])itemList.toArray(new PMOItemVO[itemList.size()]); IBillcodeManage billcodeManage = (IBillcodeManage)NCLocator.getInstance().lookup(IBillcodeManage.class); @@ -188,6 +204,70 @@ public class PMOFillBatchCodeRule implements IRule { } } + if (xbitemList.size() > 0) { + PMOItemVO[] vos = (PMOItemVO[])xbitemList.toArray(new PMOItemVO[itemList.size()]); + IBillcodeManage billcodeManage = (IBillcodeManage)NCLocator.getInstance().lookup(IBillcodeManage.class); + String[] billcodes = null; + + try { + billcodes = billcodeManage.getBatchBillCodes_RequiresNew("55A2-2", vos[0].getPk_group(), vos[0].getPk_org(), vos[0],1); + } catch (BusinessException ex) { + ExceptionUtils.wrappException(ex); + } + + if (MMStringUtil.isEmpty(billcodes[0])) { + ExceptionUtils.wrappBusinessException(PMOConstLang.getMSG_RULE_PUT_BATCHCODECREATE_CHECK()); + } + + int i = 0; + List eparaList = new ArrayList(); + + for(PMOItemVO vo : vos) { + vo.setVbatchcode(billcodes[0]); + if (!MMValueCheck.isEmpty(vo.getVbatchcode())) { + PbParamVO paravo = PMOTransferUtil.getBatchParamVO((PMOHeadVO)headMap.get(vo.getCpmohid()), vo, false); + PbEventParamVO eparavo = new PbEventParamVO(paravo, (PbParamVO)null, (PbParamVO)null, (PbParamVO)null); + eparaList.add(eparavo); + } + } + + Map ResultParamVOMap = PMOBPService.getIPbMaintainServiceForPac().batchSavePdParamVO((PbEventParamVO[])eparaList.toArray(new PbEventParamVO[eparaList.size()])); + if (MMMapUtil.isEmpty(ResultParamVOMap)) { + return; + } + + for(PMOItemVO item : vos) { + PMOHeadVO headvo = (PMOHeadVO)headMap.get(item.getCpmohid()); + if (!MMValueCheck.isEmpty(item.getVbatchcode())) { + String var10001 = headvo.getPk_org(); + PbParamVO paravo = (PbParamVO)ResultParamVOMap.get(var10001 + headvo.getVbillcode() + item.getVrowno()); + if (!MMValueCheck.isEmpty(paravo)) { + item.setVbatchcode(paravo.getVprodbatchcode()); + item.setCbatchid(paravo.getPk_batchcode()); + } + } + } + + try { + List paramList = new ArrayList(); + + for(PMOItemVO vo : vos) { + PickmTransParamForMO param = new PickmTransParamForMO(); + param.setSourceBillID(vo.getCpmohid()); + param.setSourceBillRowID(vo.getCmoid()); + param.setBatchCode(vo.getVbatchcode()); + param.setBatchid(vo.getCbatchid()); + paramList.add(param); + } + + if (paramList.size() > 0) { + PMOBPService.getIPpickmBusinessServiceForPmo().updatePickmBatchCode((PickmTransParamForMO[])paramList.toArray(new PickmTransParamForMO[0])); + } + } catch (Exception e) { + ExceptionUtils.wrappException(e); + } + } + } } }