流程生产订单保存时赋值生产BOM
This commit is contained in:
parent
bcd0662b19
commit
8804ffba21
|
@ -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<PMOAggVO> processer = new AroundProcesser<PMOAggVO>(PMOPluginPoint.INSERT);
|
||||
|
@ -234,6 +193,8 @@ public class PMOInsertBP {
|
|||
|
||||
IRule<PMOAggVO> saveBeforeCheckRule = new saveBeforeCheckRule();
|
||||
processer.addBeforeRule(saveBeforeCheckRule);
|
||||
|
||||
processer.addBeforeRule(new BeforePmoBomRule());
|
||||
}
|
||||
|
||||
private void addBeforeRuleSagasCheck(AroundProcesser<PMOAggVO> processer, boolean issub, boolean isPush) {
|
||||
|
|
|
@ -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<PMOAggVO> {
|
||||
|
||||
|
@ -46,11 +46,12 @@ public class BeforePmoBomRule implements IRule<PMOAggVO> {
|
|||
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版本
|
||||
|
|
Loading…
Reference in New Issue