PickmUpdateBP代码同步
This commit is contained in:
parent
f4b7db4a58
commit
33bd32e15f
|
|
@ -1,41 +1,16 @@
|
|||
package nc.bs.mmpac.pickm.bp;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import nc.bs.mmpac.pickm.bp.rule.AfterApproveRuleHighpressureIms;
|
||||
import nc.bs.mmpac.pickm.bp.rule.AfterQtyUpdRuleHighpressureMes;
|
||||
import nc.bs.mmpac.pickm.bp.rule.AfterupdateSyncEpicMesRule;
|
||||
import nc.bs.mmpac.pickm.bp.rule.PickItemsSetVbdef36Rule;
|
||||
import nc.bs.mmpac.pickm.plugin.PickmPluginPoint;
|
||||
import nc.bs.mmpac.pickm.rule.PSCPickmRewriteMoPickmUpdateRule;
|
||||
import nc.bs.mmpac.pickm.rule.PickmAutoApproveAfterSaveRule;
|
||||
import nc.bs.mmpac.pickm.rule.PickmBillStatusToFreeRule;
|
||||
import nc.bs.mmpac.pickm.rule.PickmCheckItemMaterialPermissionRule;
|
||||
import nc.bs.mmpac.pickm.rule.PickmCheckMaterialPermissionRule;
|
||||
import nc.bs.mmpac.pickm.rule.PickmCheckRowNOChangedRule;
|
||||
import nc.bs.mmpac.pickm.rule.PickmCheckSameStockRule;
|
||||
import nc.bs.mmpac.pickm.rule.PickmCreateSubMoRule;
|
||||
import nc.bs.mmpac.pickm.rule.PickmFbackflustimeCheckRule;
|
||||
import nc.bs.mmpac.pickm.rule.PickmItemVOFilterRule;
|
||||
import nc.bs.mmpac.pickm.rule.PickmNeedDeliverBackCheckRule;
|
||||
import nc.bs.mmpac.pickm.rule.PickmRowNoRule;
|
||||
import nc.bs.mmpac.pickm.rule.PickmSaveRule;
|
||||
import nc.bs.mmpac.pickm.rule.PickmSubMoAdjustSuggestRule;
|
||||
import nc.bs.mmpac.pickm.rule.SNMaterialNotBackFlushRule;
|
||||
import nc.bs.mmpac.pickm.rule.ic.PickmATPCheckRule;
|
||||
import nc.bs.mmpac.pickm.rule.ic.PickmAdjustReserveWhenEditRule;
|
||||
import nc.bs.mmpac.pickm.rule.ic.PickmAutoChangeStateRule;
|
||||
import nc.bs.mmpac.pickm.rule.ic.PickmAutoReserveRule;
|
||||
import nc.bs.mmpac.pickm.rule.ic.PickmRewriteOtherNumRule;
|
||||
import nc.bs.mmpac.pickm.rule.*;
|
||||
import nc.bs.mmpac.pickm.rule.ic.*;
|
||||
import nc.bs.mmpac.pickm.rule.realsub.PickmRewritePLOWhenUpdateRule;
|
||||
import nc.bs.mmpub.rule.MMATOMaterialCheckRule;
|
||||
import nc.bs.mmpub.rule.MMAutoMaterialAssignRule;
|
||||
import nc.bs.mmpub.rule.MMVOSagaFrozenValidateRule;
|
||||
import nc.bs.pubapp.pub.rule.BillCodeCheckRule;
|
||||
import nc.bs.pubapp.pub.rule.FieldLengthCheckRule;
|
||||
import nc.bs.pubapp.pub.rule.FillUpdateDataRule;
|
||||
import nc.bs.pubapp.pub.rule.OrgDisabledCheckRule;
|
||||
import nc.bs.pubapp.pub.rule.UpdateBillCodeRule;
|
||||
import nc.bs.pubapp.pub.rule.*;
|
||||
import nc.bs.uif2.validation.ValidationFailure;
|
||||
import nc.bsutil.mmpac.pickm.PickmSagasUtil;
|
||||
import nc.impl.pubapp.bd.material.assistant.MarAssistantSaveRule;
|
||||
|
|
@ -54,6 +29,9 @@ import nc.vo.mmpac.pickm.entity.PickmHeadVO;
|
|||
import nc.vo.mmpac.pickm.entity.PickmItemVO;
|
||||
import nc.vo.pub.VOStatus;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 备料计划修改 BP
|
||||
*/
|
||||
|
|
@ -67,8 +45,6 @@ public class PickmUpdateBP {
|
|||
|
||||
private boolean isForYL;
|
||||
private boolean isForNcc = false;
|
||||
;
|
||||
|
||||
|
||||
// 挪退料建议
|
||||
private ValidationFailure checkInfo = new ValidationFailure();
|
||||
|
|
@ -207,9 +183,9 @@ public class PickmUpdateBP {
|
|||
ICompareRule<AggPickmVO> subMoAdjustSuggestRule = new PickmSubMoAdjustSuggestRule(this.checkInfo);
|
||||
processer.addAfterRule(subMoAdjustSuggestRule);
|
||||
processer.addAfterRule(new AfterupdateSyncEpicMesRule());
|
||||
//备料计划变更后推送高压IMS
|
||||
processer.addAfterRule(new AfterApproveRuleHighpressureIms());
|
||||
//备料计划预留推送高压MES
|
||||
// 备料计划变更后推送高压IMS
|
||||
// processer.addAfterRule(new AfterApproveRuleHighpressureIms());
|
||||
// 备料计划预留推送高压MES
|
||||
processer.addAfterRule(new AfterQtyUpdRuleHighpressureMes());
|
||||
}
|
||||
|
||||
|
|
@ -328,6 +304,7 @@ public class PickmUpdateBP {
|
|||
// 调用更新状态rule:自动完成 or 自动取消完成
|
||||
ICompareRule<AggPickmVO> autoChangeStateRule = new PickmAutoChangeStateRule();
|
||||
processer.addBeforeRule(autoChangeStateRule);
|
||||
|
||||
// sqz 赋值发货仓库现存量
|
||||
processer.addBeforeRule(new PickItemsSetVbdef36Rule());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,79 @@
|
|||
package nc.bs.mmpac.pickm.bp.rule;
|
||||
|
||||
import nc.bs.framework.common.NCLocator;
|
||||
import nc.impl.pubapp.pattern.rule.IRule;
|
||||
import nc.vo.cmp.util.StringUtils;
|
||||
import nc.vo.ic.onhand.entity.OnhandNumVO;
|
||||
import nc.vo.ic.onhand.entity.OnhandVO;
|
||||
import nc.vo.mmpac.pickm.entity.AggPickmVO;
|
||||
import nc.vo.mmpac.pickm.entity.PickmHeadVO;
|
||||
import nc.vo.mmpac.pickm.entity.PickmItemVO;
|
||||
import nc.vo.pub.lang.UFDouble;
|
||||
import nccloud.api.ic.onhand.IAPIOnhandQuery;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 获取现存量,设置到自定义项36
|
||||
*/
|
||||
public class PickItemsSetVbdef36Rule implements IRule<AggPickmVO> {
|
||||
@Override
|
||||
public void process(AggPickmVO[] aggPickmVOS) {
|
||||
for (AggPickmVO vo : aggPickmVOS) {
|
||||
PickmHeadVO parentVO = vo.getParentVO();
|
||||
String pkOrg1 = parentVO.getPk_org();
|
||||
if (!"0001A1100000000026O8".equals(pkOrg1)) return;
|
||||
PickmItemVO[] childrenVO = (PickmItemVO[]) vo.getChildrenVO();
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
ArrayList<PickmItemVO> pickmItemVOS = new ArrayList<>();
|
||||
for (PickmItemVO pickmItemVO : childrenVO) {
|
||||
List<Map<String, Object>> onhandQueryListBatch = new ArrayList<>();
|
||||
String coutstockid = pickmItemVO.getCoutstockid();
|
||||
String cbmaterialid = pickmItemVO.getCbmaterialid();
|
||||
// if (!"1001A11000000RYRQOPY".equals(cbmaterialid))continue;
|
||||
String pkOrg = pickmItemVO.getPk_org();
|
||||
String vbatchcode = pickmItemVO.getVbatchcode();
|
||||
String cbprojectid = pickmItemVO.getCbprojectid();
|
||||
if (StringUtils.isEmpty(coutstockid)) continue;
|
||||
map.put("cwarehouseid", coutstockid);// 发料仓库
|
||||
map.put("cmaterialoid", cbmaterialid);
|
||||
map.put("pk_org", pkOrg);
|
||||
if (!StringUtils.isEmpty(cbprojectid)) {
|
||||
map.put("cprojectid", cbprojectid);
|
||||
}
|
||||
if (!StringUtils.isEmpty(vbatchcode)) {
|
||||
map.put("vbatchcode", vbatchcode);
|
||||
}
|
||||
|
||||
onhandQueryListBatch.add(map);
|
||||
OnhandVO[] onhandNum = this.getOnhandNum(onhandQueryListBatch);
|
||||
if (onhandNum != null) {
|
||||
OnhandNumVO onhandNumVO = onhandNum[0].getOnhandNumVO();
|
||||
UFDouble nonhandnum = onhandNumVO.getNonhandnum();
|
||||
pickmItemVO.setVbdef36(String.valueOf(nonhandnum));
|
||||
}
|
||||
pickmItemVOS.add(pickmItemVO);
|
||||
}
|
||||
vo.setChildren(PickmItemVO.class, pickmItemVOS.toArray(new PickmItemVO[0]));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 2025年11月7日 sqz根据物料,组织,仓库,批次,项目获取现存量
|
||||
public OnhandVO[] getOnhandNum(List<Map<String, Object>> onhandQueryListBatch) {
|
||||
OnhandVO[] onhandVOs = null;
|
||||
try {
|
||||
if (!onhandQueryListBatch.isEmpty()) {
|
||||
onhandVOs = NCLocator.getInstance().lookup(IAPIOnhandQuery.class)
|
||||
.queryOnhandVOByDimsNoTrans(onhandQueryListBatch);
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
return onhandVOs;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue