材料出库后调备料计划修改mes接口
This commit is contained in:
		
							parent
							
								
									5d46717594
								
							
						
					
					
						commit
						0caa012c76
					
				|  | @ -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<String, PickmTransParamFor4D> paraCache; | ||||
| 
 | ||||
|     public PickmRewriteNNum4DBP() { | ||||
|     } | ||||
| 
 | ||||
|     public void rewriteNPlanNumAndNAccountNum4D(MapList<String, PickmTransParamFor4D> paraMap, AggPickmVO[] aggVOs) throws BusinessException { | ||||
|         this.paraCache = paraMap; | ||||
|         List<PickmQueryParamFor4D> paramList = new ArrayList(); | ||||
|         List<PickmItemVO> 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<String, List<PickmQueryOutParamFor4D>> 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<PickmHeadVO> headVOs = new ArrayList(); | ||||
|         List<PickmItemVO> 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<PickmHeadVO> 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<PickmHeadVO> 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<PickmItemVO> 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<String> 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<PickmItemVO> voQuery = new VOQuery(PickmItemVO.class); | ||||
|                 PickmItemVO[] ivos = (PickmItemVO[])voQuery.query(sql.toString(), (String)null); | ||||
|                 Set<String> 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<String, PickmItemVO> 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<String> 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<String, List<PickmQueryOutParamFor4D>> bunibatchMap) { | ||||
|         List<ValidationFailure> 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<AggPickmVO> sagasCheckrule = new MMVOSagaFrozenValidateRule(true); | ||||
|             sagasCheckrule.process(aggVOs); | ||||
|             PickmCheckBillStatusForRewritePickmRule pickmCheckBillStatusForRewritePickmRule = new PickmCheckBillStatusForRewritePickmRule(); | ||||
|             pickmCheckBillStatusForRewritePickmRule.process(aggVOs); | ||||
|             IRule<AggPickmVO> 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<String, PickmTransParamFor4D> paraMap, AggPickmVO[] aggVOs) throws BusinessException { | ||||
|         this.paraCache = paraMap; | ||||
|         List<PickmQueryParamFor4D> paramList = new ArrayList(); | ||||
|         List<PickmItemVO> 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<String, List<PickmQueryOutParamFor4D>> bunibatchMap = IC4DServiceAdapter.getMaterialOuterviceFor55A3().queryMaterialOutBatchCode((PickmQueryParamFor4D[])paramList.toArray(new PickmQueryParamFor4D[0])); | ||||
|         if (null != bunibatchMap) { | ||||
|             this.validateBuniBatch(aggVOs, bunibatchMap); | ||||
|         } | ||||
| 
 | ||||
|         if (!MMArrayUtil.isEmpty(aggVOs)) { | ||||
|             IRule<AggPickmVO> sagasCheckrule = new MMVOSagaFrozenValidateRule(true); | ||||
|             sagasCheckrule.process(aggVOs); | ||||
|             PickmCheckBillStatusForRewritePickmRule pickmCheckBillStatusForRewritePickmRule = new PickmCheckBillStatusForRewritePickmRule(); | ||||
|             pickmCheckBillStatusForRewritePickmRule.process(aggVOs); | ||||
|             IRule<AggPickmVO> chkmostsRule = new PickmCheckMoStateForDeliveryRule(); | ||||
|             chkmostsRule.process(aggVOs); | ||||
|             PickmCheckUnClose4455When4DRewriteRule unClose4455CheckRule = new PickmCheckUnClose4455When4DRewriteRule(); | ||||
|             unClose4455CheckRule.CheckUnClose4455When4DEdit(this.paraCache, aggVOs); | ||||
|             PickmRewriteNumFor4DRule rewriteRule = new PickmRewriteNumFor4DRule(this.paraCache); | ||||
|             rewriteRule.process(aggVOs); | ||||
|         } | ||||
|     } | ||||
| } | ||||
		Loading…
	
		Reference in New Issue