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

View File

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