备料计划修改BP代码合并

This commit is contained in:
mzr 2025-11-25 15:33:46 +08:00
parent d8247cfd0b
commit a2b0b28f7e
2 changed files with 9 additions and 48 deletions

View File

@ -64,7 +64,6 @@ public class PickmUpdateBP {
}
public AggPickmVO[] update(AggPickmVO[] vos, boolean isYL, boolean isForCereateSub) {
if (MMValueCheck.isEmpty(vos)) {
return null;
}
@ -141,8 +140,6 @@ public class PickmUpdateBP {
/**
* 修改后规则
*
* @param processor
*/
@SuppressWarnings({
"unchecked"
@ -192,14 +189,11 @@ public class PickmUpdateBP {
/**
* 修改前规则
*
* @param processor
*/
@SuppressWarnings("unchecked")
private void addBeforeRule(CompareAroundProcesser<AggPickmVO> processer) {
// 清除空的表体行
// 清除空的表体行
IRule<AggPickmVO> filterRule = new PickmItemVOFilterRule();
processer.addBeforeRule(filterRule);
// 校验组织是否已停用
@ -220,15 +214,12 @@ public class PickmUpdateBP {
// 校验备料计划倒冲时机
IRule<AggPickmVO> checkFbackFlusTime = new PickmFbackflustimeCheckRule();
processer.addBeforeRule(checkFbackFlusTime);
// 修改保存时的数据补充规则
IRule<AggPickmVO> fillDataRule = new FillUpdateDataRule();
processer.addBeforeRule(fillDataRule);
// 校验供应仓库和发料仓库不能相同
IRule<AggPickmVO> sameRule = new PickmCheckSameStockRule();
processer.addBeforeRule(sameRule);
// 表头物料自动分配
IRule<AggPickmVO> autoHMaterialAssignRule = new MMAutoMaterialAssignRule<AggPickmVO>(PickmHeadVO.CMATERIALVID,
null, new String[]{PickmHeadVO.PK_ORG}, null);
@ -238,19 +229,15 @@ public class PickmUpdateBP {
PickmItemVO.CBMATERIALVID, new String[]{PickmHeadVO.PK_ORG},
new String[]{PickmItemVO.CDELIVERORGID, PickmItemVO.CSUPPLYORGID});
processer.addBeforeFinalRule(autobMaterialAssignRule);
// 物料合法性校验规则
IRule<AggPickmVO> marperRule = new PickmCheckMaterialPermissionRule();
processer.addBeforeRule(marperRule);
// 子项物料发料组织合法性校验规则
IRule<AggPickmVO> bmarperRule = new PickmCheckItemMaterialPermissionRule();
processer.addBeforeRule(bmarperRule);
// 单据字段长度检查规则
IRule<AggPickmVO> lengthCheckRule = new FieldLengthCheckRule();
processer.addBeforeRule(lengthCheckRule);
// 自由辅助属性检查的规则
MarAssistantSaveRule<AggPickmVO> marRule = new MarAssistantSaveRule<AggPickmVO>();
// marRule.setNotNullValidate(PickmConsts.CMATERIAL_VID_NAME);
@ -266,7 +253,6 @@ public class PickmUpdateBP {
PickmHeadVO.class, PickmItemVO.class
});
processer.addBeforeRule(defRule);
// 备料计划保存规则
IRule<AggPickmVO> pickmSaveRule = new PickmSaveRule();
processer.addBeforeRule(pickmSaveRule);
@ -281,11 +267,9 @@ public class PickmUpdateBP {
new UpdateBillCodeRule(BillTypeConst.PICKM, PickmConsts.VBILL_CODE_NAME, IOrgConst.PK_GROUP,
IOrgConst.PK_ORG);
processer.addBeforeRule(updateBillCodeRule);
// 备料计划ATP检查规则
IRule<AggPickmVO> pickmATPCheckRule = new PickmATPCheckRule(true, null);
processer.addBeforeRule(pickmATPCheckRule);
if (this.isForYL) {
// 修改保存前解除预留规则
ICompareRule<AggPickmVO> pickmUnPSForEditRule = new PickmAdjustReserveWhenEditRule();
@ -307,5 +291,6 @@ public class PickmUpdateBP {
processer.addBeforeRule(autoChangeStateRule);
// sqz 赋值发货仓库现存量
processer.addBeforeRule(new PickItemsSetVbdef36Rule());
}
}

View File

@ -89,7 +89,7 @@ public class PickmUpdateForMOBP {
private void addBeforeRule(CompareAroundProcesser<AggPickmVO> aroundProcesser,
Map<String, MoChangeParam> paramMap) {
// sagas 冻结校验
IRule<AggPickmVO> sagasCheckrule = new MMVOSagaFrozenValidateRule<AggPickmVO>(true);
IRule<AggPickmVO> sagasCheckrule = new MMVOSagaFrozenValidateRule<>(true);
aroundProcesser.addBeforeRule(sagasCheckrule);
// 备料计划表头同步rule
IRule<AggPickmVO> pickmHeadEditRule = new PickmHeadEditRule(paramMap);
@ -109,57 +109,35 @@ public class PickmUpdateForMOBP {
// 修改保存时的数据补充规则
IRule<AggPickmVO> fillDataRule = new FillUpdateDataRule();
aroundProcesser.addBeforeRule(fillDataRule);
// 表头物料自动分配
// IRule<AggPickmVO> autoHMaterialAssignRule = new
// MMAutoMaterialAssignRule<AggPickmVO>(PickmHeadVO.CMATERIALVID,
// null, new String[] { PickmHeadVO.PK_ORG }, null);
// aroundProcesser.addBeforeFinalRule(autoHMaterialAssignRule);
// 表体物料自动分配
IRule<AggPickmVO> autobMaterialAssignRule = new MMAutoMaterialAssignRule<AggPickmVO>(null,
IRule<AggPickmVO> autobMaterialAssignRule = new MMAutoMaterialAssignRule<>(null,
PickmItemVO.CBMATERIALVID, new String[]{PickmHeadVO.PK_ORG},
new String[]{PickmItemVO.CDELIVERORGID, PickmItemVO.CSUPPLYORGID});
aroundProcesser.addBeforeFinalRule(autobMaterialAssignRule);
// 物料合法性校验规则
IRule<AggPickmVO> marperRule = new PickmCheckMaterialPermissionRule();
aroundProcesser.addBeforeRule(marperRule);
// 子项物料发料组织合法性校验规则
IRule<AggPickmVO> bmarperRule = new PickmCheckItemMaterialPermissionRule();
aroundProcesser.addBeforeRule(bmarperRule);
// 进行序列号管理的物料不能设置为倒冲和交互式倒冲
IRule<AggPickmVO> snMaterialCheckRule = new SNMaterialNotBackFlushRule();
aroundProcesser.addBeforeRule(snMaterialCheckRule);
// 校验备料计划倒冲时机
// IRule<AggPickmVO> checkFbackFlusTime = new PickmFbackflustimeCheckRule();
// aroundProcesser.addBeforeRule(checkFbackFlusTime);
// 单据字段长度检查规则
IRule<AggPickmVO> lengthCheckRule = new FieldLengthCheckRule();
aroundProcesser.addBeforeRule(lengthCheckRule);
// 自由辅助属性检查的规则
MarAssistantSaveRule<AggPickmVO> marRule = new MarAssistantSaveRule<AggPickmVO>();
// marRule.setNotNullValidate(PickmConsts.CMATERIAL_VID_NAME);
MarAssistantSaveRule<AggPickmVO> marRule = new MarAssistantSaveRule<>();
marRule.setPos(0);
aroundProcesser.addBeforeRule(marRule);
// 自由辅助属性检查的规则
MarAssistantSaveRule<AggPickmVO> bmarRule = new MarAssistantSaveRule<AggPickmVO>();
// bmarRule.setNotNullValidate(PickmItemVO.CBMATERIALVID);
MarAssistantSaveRule<AggPickmVO> bmarRule = new MarAssistantSaveRule<>();
bmarRule.setPos(1);
aroundProcesser.addBeforeRule(bmarRule);
// 自定义项检查的规则
// UserDefSaveRule<AggPickmVO> defRule = new UserDefSaveRule<AggPickmVO>(new
// Class[] {
// PickmHeadVO.class, PickmItemVO.class
// });
// aroundProcesser.addBeforeRule(defRule);
// 更新单据号的规则
ICompareRule<AggPickmVO> updateBillCodeRule = new UpdateBillCodeRule(BillTypeConst.PICKM,
PickmConsts.VBILL_CODE_NAME, IOrgConst.PK_GROUP, IOrgConst.PK_ORG);
aroundProcesser.addBeforeRule(updateBillCodeRule);
// 备料计划ATP检查规则
IRule<AggPickmVO> pickmATPCheckRule = new PickmATPCheckRule(true, null);
aroundProcesser.addBeforeRule(pickmATPCheckRule);
@ -170,10 +148,12 @@ public class PickmUpdateForMOBP {
// 进行成套数量累计超额数量等联动值的重算
PickmRewriteOtherNumRule setPartsRule = new PickmRewriteOtherNumRule();
aroundProcesser.addBeforeRule(setPartsRule);
// 调用更新状态rule:自动完成 or 自动取消完成
ICompareRule<AggPickmVO> autoChangeStateRule = new PickmAutoChangeStateRule();
aroundProcesser.addBeforeRule(autoChangeStateRule);
// sqz 备料重算赋值发料仓库现存量
// aroundProcesser.addBeforeRule(new PickItemsSetVbdef36Rule());
}
/**
@ -186,15 +166,12 @@ public class PickmUpdateForMOBP {
IRule<AggPickmVO> billCodeCheckRule = new BillCodeCheckRule(BillTypeConst.PICKM, PickmConsts.VBILL_CODE_NAME,
IOrgConst.PK_GROUP, IOrgConst.PK_ORG);
aroundProcesser.addAfterRule(billCodeCheckRule);
// 备料计划ATP检查规则
IRule<AggPickmVO> pickmATPCheckRule = new PickmATPCheckRule(false, this.aggPickmVOArray);
aroundProcesser.addAfterRule(pickmATPCheckRule);
// 自动预留规则
IRule<AggPickmVO> pickmAutoReserveRule = new PickmAutoReserveRule();
aroundProcesser.addAfterRule(pickmAutoReserveRule);
// 回写实际替代表规则
ICompareRule<AggPickmVO> pickmRewritePLOWhenUpdateRule = new PickmRewritePLOWhenUpdateRule();
aroundProcesser.addAfterRule(pickmRewritePLOWhenUpdateRule);
@ -215,5 +192,4 @@ public class PickmUpdateForMOBP {
// 备料计划修改后推送高压IMS
aroundProcesser.addAfterRule(new AfterApproveRuleHighpressureIms());
}
}