From 8804ffba21a9216a56973aa0493189c713b8f5ec Mon Sep 17 00:00:00 2001 From: mzr Date: Mon, 1 Sep 2025 08:39:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B5=81=E7=A8=8B=E7=94=9F=E4=BA=A7=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E4=BF=9D=E5=AD=98=E6=97=B6=E8=B5=8B=E5=80=BC=E7=94=9F?= =?UTF-8?q?=E4=BA=A7BOM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bs/mmpac/pmo/pac0002/bp/PMOInsertBP.java | 63 ++++--------------- .../pmo/pac0002/bp/rule/BeforePmoBomRule.java | 9 +-- 2 files changed, 17 insertions(+), 55 deletions(-) diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMOInsertBP.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMOInsertBP.java index 82d3690..ba76e5c 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMOInsertBP.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/PMOInsertBP.java @@ -1,55 +1,15 @@ package nc.bs.mmpac.pmo.pac0002.bp; -import java.util.ArrayList; -import java.util.List; +import nc.bs.mmpac.pmo.pac0002.bp.rule.BeforePmoBomRule; +import nc.bs.mmpac.pmo.pac0002.bp.rule.saveBeforeCheckRule; import nc.bs.mmpac.pmo.pac0002.pluginpoint.PMOPluginPoint; -import nc.bs.mmpac.pmo.pac0002.rule.PMOATOCheckRule; -import nc.bs.mmpac.pmo.pac0002.rule.PMOATPUpdateRule; -import nc.bs.mmpac.pmo.pac0002.rule.PMOCffileidInserAndUpdatetRule; -import nc.bs.mmpac.pmo.pac0002.rule.PMOCreatePickmWhenInsertRule; -import nc.bs.mmpac.pmo.pac0002.rule.PMOInsertSaveApproveRule; -import nc.bs.mmpac.pmo.pac0002.rule.PMOMarkWrSNWhenInsertRule; -import nc.bs.mmpac.pmo.pac0002.rule.PMOSNDupCheckRule; -import nc.bs.mmpac.pmo.pac0002.rule.PMOSaveSNWhenInsertRule; -import nc.bs.mmpac.pmo.pac0002.rule.PMOSplitByTaskDetailsRule; -import nc.bs.mmpac.pmo.pac0002.rule.PMOSyncSNWhenInsertRule; -import nc.bs.mmpac.pmo.pac0002.rule.check.CheckMaterialIsEnableRule; -import nc.bs.mmpac.pmo.pac0002.rule.check.PMOCheckCinwarehouseidRule; -import nc.bs.mmpac.pmo.pac0002.rule.check.PMOCheckDMODuplicateRule; -import nc.bs.mmpac.pmo.pac0002.rule.check.PMOCheckDateLogicRule; -import nc.bs.mmpac.pmo.pac0002.rule.check.PMOCheckMaterialPermissionRule; -import nc.bs.mmpac.pmo.pac0002.rule.check.PMOCheckNrwxisLogicRule; -import nc.bs.mmpac.pmo.pac0002.rule.check.PMOCheckParentStatusRule; -import nc.bs.mmpac.pmo.pac0002.rule.check.PMOCheckProcedureDateLogicRule; -import nc.bs.mmpac.pmo.pac0002.rule.check.PMOCheckProcedureDupRule; -import nc.bs.mmpac.pmo.pac0002.rule.check.PMOCheckProcedurePSCRule; -import nc.bs.mmpac.pmo.pac0002.rule.check.PMOCheckProcedureratioRule; -import nc.bs.mmpac.pmo.pac0002.rule.check.PMOCheckProdurepointRule; -import nc.bs.mmpac.pmo.pac0002.rule.check.PMOCheckSCDuplicateRule; -import nc.bs.mmpac.pmo.pac0002.rule.check.PMOCheckSNNumAndUnitRule; -import nc.bs.mmpac.pmo.pac0002.rule.check.PMOCheckSaveNotNullRule; -import nc.bs.mmpac.pmo.pac0002.rule.check.PMOProcedureChkPntRule; -import nc.bs.mmpac.pmo.pac0002.rule.fill.PMOFillBatchCodeRule; -import nc.bs.mmpac.pmo.pac0002.rule.fill.PMOFillFirstMOInfoRule; -import nc.bs.mmpac.pmo.pac0002.rule.fill.PMOFillInsertBatchValueRule; -import nc.bs.mmpac.pmo.pac0002.rule.fill.PMOFillInsertDefaultValueRule; -import nc.bs.mmpac.pmo.pac0002.rule.fill.PMOFillInsertPlanTimeByProcedureRule; -import nc.bs.mmpac.pmo.pac0002.rule.fill.PMOFillMaterialRelationRule; -import nc.bs.mmpac.pmo.pac0002.rule.fill.PMOFillPushDefaultValueRule; -import nc.bs.mmpac.pmo.pac0002.rule.fill.PMOFillPushVersionRule; -import nc.bs.mmpac.pmo.pac0002.rule.fill.PMOFillSNPkAndCodeRule; +import nc.bs.mmpac.pmo.pac0002.rule.*; +import nc.bs.mmpac.pmo.pac0002.rule.check.*; +import nc.bs.mmpac.pmo.pac0002.rule.fill.*; import nc.bs.mmpac.pmo.pac0002.rule.grand.PMOCreatePlanOutputRule; import nc.bs.mmpac.pmo.pac0002.rule.grand.PMOCreateProcedureRule; import nc.bs.mmpac.pmo.pac0002.rule.grand.PMOSyncPlanmmNumRule; -import nc.bs.mmpac.pmo.pac0002.rule.rewrite.RewriteInsertNum4MPS; -import nc.bs.mmpac.pmo.pac0002.rule.rewrite.RewriteInsertNum4PMO; -import nc.bs.mmpac.pmo.pac0002.rule.rewrite.RewriteInsertNum4PSCRecive; -import nc.bs.mmpac.pmo.pac0002.rule.rewrite.RewriteInsertNum4PSM; -import nc.bs.mmpac.pmo.pac0002.rule.rewrite.RewriteInsertNum4Renovate; -import nc.bs.mmpac.pmo.pac0002.rule.rewrite.RewriteInsertNum4SFC; -import nc.bs.mmpac.pmo.pac0002.rule.rewrite.RewriteInsertNum4SO; -import nc.bs.mmpac.pmo.pac0002.rule.rewrite.RewriteInsertNum4TO; -import nc.bs.mmpac.pmo.pac0002.bp.rule.saveBeforeCheckRule; +import nc.bs.mmpac.pmo.pac0002.rule.rewrite.*; import nc.bs.mmpub.rule.MMATOMaterialCheckRule; import nc.bs.mmpub.rule.MMAutoMaterialAssignRule; import nc.bs.mmpub.rule.MMBillTypeIsLockCheckRule; @@ -60,17 +20,16 @@ import nc.impl.pubapp.bd.userdef.UserDefSaveRule; import nc.impl.pubapp.pattern.rule.IRule; import nc.impl.pubapp.pattern.rule.processer.AroundProcesser; import nc.pubitf.sn.doc.param.SnDocParam; -import nc.util.mmf.busi.rule.MMBillCodeCheckAndTrantypeRule; -import nc.util.mmf.busi.rule.MMCheckMaterialProdModeRule; -import nc.util.mmf.busi.rule.MMCheckMaterialVirtualRule; -import nc.util.mmf.busi.rule.MMCreateBillcodeAndTrantypecodeRule; -import nc.util.mmf.busi.rule.MMRowNoCheckRule; +import nc.util.mmf.busi.rule.*; import nc.util.mmf.framework.gc.GCBillCloneUtil; import nc.util.mmf.framework.gc.GCBillInsert; import nc.util.mmf.framework.gc.GCInsertBPTemplate; import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO; import nc.vo.mmpac.pmo.pac0002.util.PmoSagaUtil; +import java.util.ArrayList; +import java.util.List; + public class PMOInsertBP { public PMOAggVO[] insert(PMOAggVO[] bills, boolean issub, boolean isPush) { AroundProcesser processer = new AroundProcesser(PMOPluginPoint.INSERT); @@ -234,6 +193,8 @@ public class PMOInsertBP { IRule saveBeforeCheckRule = new saveBeforeCheckRule(); processer.addBeforeRule(saveBeforeCheckRule); + + processer.addBeforeRule(new BeforePmoBomRule()); } private void addBeforeRuleSagasCheck(AroundProcesser processer, boolean issub, boolean isPush) { diff --git a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/BeforePmoBomRule.java b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/BeforePmoBomRule.java index 10016af..c996c11 100644 --- a/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/BeforePmoBomRule.java +++ b/mmpac/src/private/nc/bs/mmpac/pmo/pac0002/bp/rule/BeforePmoBomRule.java @@ -3,13 +3,13 @@ package nc.bs.mmpac.pmo.pac0002.bp.rule; import nc.bs.logging.Logger; import nc.bs.uapbd.util.MyHelper; import nc.impl.pubapp.pattern.rule.IRule; +import nc.vo.am.common.util.StringUtils; import nc.vo.bd.bom.bom0202.entity.BomVO; import nc.vo.mmpac.pmo.pac0002.entity.PMOAggVO; import nc.vo.mmpac.pmo.pac0002.entity.PMOHeadVO; import nc.vo.mmpac.pmo.pac0002.entity.PMOItemVO; import nc.vo.org.FactoryVO; import nc.vo.pub.BusinessException; -import nc.vo.am.common.util.StringUtils; import nc.vo.pubapp.pattern.exception.ExceptionUtils; import java.util.Map; @@ -18,7 +18,7 @@ import java.util.Map; * 流程生产订单赋值生产BOM字段 * * @author mzr - * @date 2025/7/15 + * @date 2025/8/25 */ public class BeforePmoBomRule implements IRule { @@ -46,11 +46,12 @@ public class BeforePmoBomRule implements IRule { if ("30".equals(pmoItemVO.getVsrctype())) { // BOM状态 (FBomBillstatusEnum) 是否需要判断BOM的状态 // 根据bom版本号查询BOM(销售订单号+行号) - String bomVersion = pmoItemVO.getVsrccode() + pmoItemVO.getVsrcrowno(); + String bomVersion = pmoItemVO.getVsrccode() + "-" + pmoItemVO.getVsrcrowno(); String whereSql = BomVO.PK_ORG + " = '" + pkOrg + "' AND " + BomVO.HVERSION + " = '" + bomVersion + "'"; + // NCCForUAPLogger.debug("whereSql:" + whereSql); String bomId = MyHelper.getStrValByCondition(BomVO.TABLE_NAME, BomVO.CBOMID, whereSql); if (StringUtils.isEmpty(bomId)) { - throw new BusinessException("未找到对应的BOM"); + throw new BusinessException("未找到版本号(" + bomVersion + ")对应的BOM"); } pmoItemVO.setVbomversion(bomVersion); // 生产BOM版本号 pmoItemVO.setCbomversionid(bomId); // 生产BOM版本