From 0caa012c765e34def2f31deaf77b919dd47c7dcb Mon Sep 17 00:00:00 2001 From: houyi <1398559711@qq.com> Date: Tue, 21 Oct 2025 19:30:19 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9D=90=E6=96=99=E5=87=BA=E5=BA=93=E5=90=8E?= =?UTF-8?q?=E8=B0=83=E5=A4=87=E6=96=99=E8=AE=A1=E5=88=92=E4=BF=AE=E6=94=B9?= =?UTF-8?q?mes=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bp/rewrite/PickmRewriteNNum4DBP.java | 308 ++++++++++++++++++ 1 file changed, 308 insertions(+) create mode 100644 mmpac/src/private/nc/bs/mmpac/pickm/bp/rewrite/PickmRewriteNNum4DBP.java diff --git a/mmpac/src/private/nc/bs/mmpac/pickm/bp/rewrite/PickmRewriteNNum4DBP.java b/mmpac/src/private/nc/bs/mmpac/pickm/bp/rewrite/PickmRewriteNNum4DBP.java new file mode 100644 index 00000000..56f6cbf0 --- /dev/null +++ b/mmpac/src/private/nc/bs/mmpac/pickm/bp/rewrite/PickmRewriteNNum4DBP.java @@ -0,0 +1,308 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by FernFlower decompiler) +// + +package nc.bs.mmpac.pickm.bp.rewrite; + +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Set; +import nc.bs.mmpac.pickm.adapter.IC4DServiceAdapter; +import nc.bs.mmpac.pickm.adapter.ReserveServiceAdapter; +import nc.bs.mmpac.pickm.rule.batch.PickmAutoBatchBindRule; +import nc.bs.mmpac.pickm.rule.ic.PickmAutoChangeStateRule; +import nc.bs.mmpac.pickm.rule.ic.PickmCheckBillStatusForRewritePickmRule; +import nc.bs.mmpac.pickm.rule.ic.PickmCheckMoStateForDeliveryRule; +import nc.bs.mmpac.pickm.rule.ic.PickmCheckUnClose4455When4DRewriteRule; +import nc.bs.mmpac.pickm.rule.ic.PickmFillVacancyWhenRewriteRule; +import nc.bs.mmpac.pickm.rule.ic.PickmRewriteNumFor4DRule; +import nc.bs.mmpac.pickm.rule.ic.PickmRewriteOtherNumRule; +import nc.bs.mmpub.rule.MMVOSagaFrozenValidateRule; +import nc.bs.uif2.validation.ValidationException; +import nc.bs.uif2.validation.ValidationFailure; +import nc.bsutil.mmpac.pickm.PickmSagasUtil; +import nc.impl.pubapp.pattern.data.vo.VOQuery; +import nc.impl.pubapp.pattern.data.vo.VOUpdate; +import nc.impl.pubapp.pattern.rule.IRule; +import nc.pubitf.ic.m4d.mm55a3.PickmQueryOutParamFor4D; +import nc.pubitf.ic.m4d.mm55a3.PickmQueryParamFor4D; +import nc.util.mmf.framework.base.MMArrayUtil; +import nc.util.mmf.framework.base.MMCollectionUtil; +import nc.util.mmf.framework.base.MMValueCheck; +import nc.util.mmf.framework.db.MMSqlBuilder; +import nc.vo.ic.reserve.entity.ReserveVO; +import nc.vo.mmpac.pickm.consts.PickmLangConsts; +import nc.vo.mmpac.pickm.entity.AggPickmVO; +import nc.vo.mmpac.pickm.entity.PickmHeadVO; +import nc.vo.mmpac.pickm.entity.PickmItemVO; +import nc.vo.mmpac.pickm.enumeration.FbillstatusEnum; +import nc.vo.mmpac.pickm.param.PickmTransParamFor4D; +import nc.vo.mmpac.pickm.util.base.PickmCloneUtil; +import nc.vo.pub.BusinessException; +import nc.vo.pub.ISuperVO; +import nc.vo.pub.SuperVO; +import nc.vo.pub.lang.UFDouble; +import nc.vo.pubapp.pattern.exception.ExceptionUtils; +import nc.vo.pubapp.pattern.pub.MapList; +import nc.vo.util.BDPKLockUtil; +import nc.vo.util.BDVersionValidationUtil; +import nccloud.web.mmpac.pickm.service.SyncGyMesPickmUtil; + +public class PickmRewriteNNum4DBP { + private MapList paraCache; + + public PickmRewriteNNum4DBP() { + } + + public void rewriteNPlanNumAndNAccountNum4D(MapList paraMap, AggPickmVO[] aggVOs) throws BusinessException { + this.paraCache = paraMap; + List paramList = new ArrayList(); + List itemList = new ArrayList(); + AggPickmVO[] var5 = aggVOs; + int var6 = aggVOs.length; + + for(int var7 = 0; var7 < var6; ++var7) { + AggPickmVO agg = var5[var7]; + PickmItemVO[] items = (PickmItemVO[])agg.getChildrenVO(); + PickmItemVO[] var10 = items; + int var11 = items.length; + + for(int var12 = 0; var12 < var11; ++var12) { + PickmItemVO item = var10[var12]; + itemList.add(item); + if (paraMap.containsKey(item.getCpickm_bid()) && MMValueCheck.isTrue(item.getBunibatch())) { + PickmQueryParamFor4D param = new PickmQueryParamFor4D(); + param.setCpickmbid(item.getCpickm_bid()); + paramList.add(param); + } + } + } + + Map> bunibatchMap = IC4DServiceAdapter.getMaterialOuterviceFor55A3().queryMaterialOutBatchCode((PickmQueryParamFor4D[])paramList.toArray(new PickmQueryParamFor4D[0])); + if (null != bunibatchMap) { + this.validateBuniBatch(aggVOs, bunibatchMap); + } + + BDPKLockUtil.lockSuperVO((SuperVO[])itemList.toArray(new PickmItemVO[0])); + BDVersionValidationUtil.validateSuperVO((SuperVO[])itemList.toArray(new PickmItemVO[0])); + this.processBeforeRule(aggVOs); + PickmSagasUtil.addSagaAndCompensate4DRewrite(aggVOs, this.paraCache); + List headVOs = new ArrayList(); + List itemVOs = new ArrayList(); + AggPickmVO[] var21 = aggVOs; + int var24 = aggVOs.length; + + for(int var27 = 0; var27 < var24; ++var27) { + AggPickmVO aggVO = var21[var27]; + PickmHeadVO headVO = aggVO.getParentVO(); + if (null != headVO) { + headVOs.add(headVO); + Object[] items = aggVO.getChildren(PickmItemVO.class); + if (MMArrayUtil.isNotEmpty(items)) { + ISuperVO[] var33 = (ISuperVO[]) items; + int var15 = items.length; + + for(int var16 = 0; var16 < var15; ++var16) { + Object obj = var33[var16]; + itemVOs.add((PickmItemVO)obj); + } + } + } + } + + if (MMCollectionUtil.isNotEmpty(headVOs)) { + BDPKLockUtil.lockSuperVO((SuperVO[])headVOs.toArray(new PickmHeadVO[0])); + BDVersionValidationUtil.validateSuperVO((SuperVO[])headVOs.toArray(new PickmHeadVO[0])); + List heads = new ArrayList(); + Iterator var25 = headVOs.iterator(); + + while(var25.hasNext()) { + PickmHeadVO head = (PickmHeadVO)var25.next(); + if (head.getStatus() == 1) { + heads.add(head); + } + + if (MMCollectionUtil.isNotEmpty(heads)) { + VOUpdate update = new VOUpdate(); + update.update((PickmHeadVO[])heads.toArray(new PickmHeadVO[0])); + } + } + } + + if (MMCollectionUtil.isNotEmpty(itemVOs)) { + PickmItemVO[] updateItems = PickmRewriteUtil.getUpdateItemVOs(paraMap.keySet(), itemVOs); + this.releaseReserve((PickmHeadVO[])headVOs.toArray(new PickmHeadVO[0]), updateItems); + VOUpdate update = new VOUpdate(); + PickmItemVO[] pickmItemVOS = update.update(updateItems); + + //备料计划点击备料重算后调高压MES修改 + SyncGyMesPickmUtil pickmUtil = new SyncGyMesPickmUtil(); + pickmUtil.process(aggVOs); + } + + } + + private void releaseReserve(PickmHeadVO[] headVOs, PickmItemVO[] updateItems) throws BusinessException { + if (!MMValueCheck.isEmpty(headVOs)) { + Set hidSet = new HashSet(); + PickmHeadVO[] var4 = headVOs; + int var5 = headVOs.length; + + for(int var6 = 0; var6 < var5; ++var6) { + PickmHeadVO hvo = var4[var6]; + if (MMValueCheck.isNotEmpty(hvo.getFbillstatus()) && FbillstatusEnum.FINISH_STATE.toIntValue() == hvo.getFbillstatus()) { + hidSet.add(hvo.getCpickmid()); + } + } + + if (!MMValueCheck.isEmpty(hidSet)) { + MMSqlBuilder sql = new MMSqlBuilder(); + sql.append(" and "); + sql.append("cpickmid", (String[])hidSet.toArray(new String[0])); + VOQuery voQuery = new VOQuery(PickmItemVO.class); + PickmItemVO[] ivos = (PickmItemVO[])voQuery.query(sql.toString(), (String)null); + Set bidSet = new HashSet(); + PickmItemVO[] var8 = ivos; + int var9 = ivos.length; + + for(int var10 = 0; var10 < var9; ++var10) { + PickmItemVO ivo = var8[var10]; + bidSet.add(ivo.getCpickm_bid()); + } + + this.releaseIDs((String[])bidSet.toArray(new String[0]), updateItems); + } + } + } + + private void releaseIDs(String[] releasePickmbids, PickmItemVO[] updateItems) throws BusinessException { + ReserveVO[] rvos = ReserveServiceAdapter.queryReserver(releasePickmbids); + if (!MMValueCheck.isEmpty(rvos)) { + Map ivoMap = new HashMap(); + PickmItemVO[] var5 = updateItems; + int var6 = updateItems.length; + + int var7; + for(var7 = 0; var7 < var6; ++var7) { + PickmItemVO ivo = var5[var7]; + ivoMap.put(ivo.getCpickm_bid(), ivo); + } + + Set releaseidSet = new HashSet(); + ReserveVO[] var12 = rvos; + var7 = rvos.length; + + for(int var13 = 0; var13 < var7; ++var13) { + ReserveVO rvo = var12[var13]; + if (ivoMap.containsKey(rvo.getCreqbillbid())) { + PickmItemVO ivo = (PickmItemVO)ivoMap.get(rvo.getCreqbillbid()); + ivo.setNatpastnum(UFDouble.ZERO_DBL); + ivo.setNatpnum(UFDouble.ZERO_DBL); + } + + releaseidSet.add(rvo.getCreqbillbid()); + } + + ReserveServiceAdapter.batchAdjustReserveWhenDeliver((String[])releaseidSet.toArray(new String[0])); + } + } + + private void validateBuniBatch(AggPickmVO[] aggs, Map> bunibatchMap) { + List failures = new ArrayList(); + failures.add(new ValidationFailure(PickmLangConsts.getErr_RewriteError())); + AggPickmVO[] var4 = aggs; + int var5 = aggs.length; + + for(int var6 = 0; var6 < var5; ++var6) { + AggPickmVO agg = var4[var6]; + PickmItemVO[] items = (PickmItemVO[])agg.getChildrenVO(); + PickmItemVO[] var9 = items; + int var10 = items.length; + + for(int var11 = 0; var11 < var10; ++var11) { + PickmItemVO item = var9[var11]; + if (bunibatchMap.containsKey(item.getCpickm_bid()) && MMValueCheck.isNotEmpty((Collection)bunibatchMap.get(item.getCpickm_bid())) && MMValueCheck.isTrue(((PickmQueryOutParamFor4D)((List)bunibatchMap.get(item.getCpickm_bid())).get(0)).getIsMixBatch())) { + failures.add(new ValidationFailure(PickmLangConsts.getErr_PickmBidCannotBuniBantch(new String[]{agg.getParentVO().getVbillcode(), item.getVrowno()}))); + } + } + } + + if (failures.size() > 1) { + ExceptionUtils.wrappException(new ValidationException(failures)); + } + + } + + private void processBeforeRule(AggPickmVO[] aggVOs) { + if (!MMArrayUtil.isEmpty(aggVOs)) { + AggPickmVO[] originAggVOs = PickmCloneUtil.clonePickmVOs(aggVOs); + IRule sagasCheckrule = new MMVOSagaFrozenValidateRule(true); + sagasCheckrule.process(aggVOs); + PickmCheckBillStatusForRewritePickmRule pickmCheckBillStatusForRewritePickmRule = new PickmCheckBillStatusForRewritePickmRule(); + pickmCheckBillStatusForRewritePickmRule.process(aggVOs); + IRule chkmostsRule = new PickmCheckMoStateForDeliveryRule(); + chkmostsRule.process(aggVOs); + PickmCheckUnClose4455When4DRewriteRule unClose4455CheckRule = new PickmCheckUnClose4455When4DRewriteRule(); + unClose4455CheckRule.CheckUnClose4455When4DEdit(this.paraCache, aggVOs); + PickmRewriteNumFor4DRule rewriteRule = new PickmRewriteNumFor4DRule(this.paraCache); + rewriteRule.process(aggVOs); + PickmFillVacancyWhenRewriteRule fillVacancyRule = new PickmFillVacancyWhenRewriteRule(); + fillVacancyRule.process(aggVOs); + PickmAutoBatchBindRule batchBindRule = new PickmAutoBatchBindRule(this.paraCache); + batchBindRule.process(aggVOs); + PickmRewriteOtherNumRule setPartsRule = new PickmRewriteOtherNumRule(); + setPartsRule.process(aggVOs); + PickmAutoChangeStateRule autoChangeStateRule = new PickmAutoChangeStateRule(); + autoChangeStateRule.process(aggVOs, originAggVOs); + } + } + + public void rewriteNPlanNumAndNAccountNum4DSagasCheck(MapList paraMap, AggPickmVO[] aggVOs) throws BusinessException { + this.paraCache = paraMap; + List paramList = new ArrayList(); + List itemList = new ArrayList(); + AggPickmVO[] var5 = aggVOs; + int var6 = aggVOs.length; + + for(int var7 = 0; var7 < var6; ++var7) { + AggPickmVO agg = var5[var7]; + PickmItemVO[] items = (PickmItemVO[])agg.getChildrenVO(); + PickmItemVO[] var10 = items; + int var11 = items.length; + + for(int var12 = 0; var12 < var11; ++var12) { + PickmItemVO item = var10[var12]; + itemList.add(item); + if (paraMap.containsKey(item.getCpickm_bid()) && MMValueCheck.isTrue(item.getBunibatch())) { + PickmQueryParamFor4D param = new PickmQueryParamFor4D(); + param.setCpickmbid(item.getCpickm_bid()); + paramList.add(param); + } + } + } + + Map> bunibatchMap = IC4DServiceAdapter.getMaterialOuterviceFor55A3().queryMaterialOutBatchCode((PickmQueryParamFor4D[])paramList.toArray(new PickmQueryParamFor4D[0])); + if (null != bunibatchMap) { + this.validateBuniBatch(aggVOs, bunibatchMap); + } + + if (!MMArrayUtil.isEmpty(aggVOs)) { + IRule sagasCheckrule = new MMVOSagaFrozenValidateRule(true); + sagasCheckrule.process(aggVOs); + PickmCheckBillStatusForRewritePickmRule pickmCheckBillStatusForRewritePickmRule = new PickmCheckBillStatusForRewritePickmRule(); + pickmCheckBillStatusForRewritePickmRule.process(aggVOs); + IRule chkmostsRule = new PickmCheckMoStateForDeliveryRule(); + chkmostsRule.process(aggVOs); + PickmCheckUnClose4455When4DRewriteRule unClose4455CheckRule = new PickmCheckUnClose4455When4DRewriteRule(); + unClose4455CheckRule.CheckUnClose4455When4DEdit(this.paraCache, aggVOs); + PickmRewriteNumFor4DRule rewriteRule = new PickmRewriteNumFor4DRule(this.paraCache); + rewriteRule.process(aggVOs); + } + } +}