销售订单取消审核-标品代码
This commit is contained in:
		
							parent
							
								
									fa5be651bc
								
							
						
					
					
						commit
						8380c2a43c
					
				|  | @ -0,0 +1,201 @@ | |||
| // | ||||
| // Source code recreated from a .class file by IntelliJ IDEA | ||||
| // (powered by FernFlower decompiler) | ||||
| // | ||||
| 
 | ||||
| package nc.impl.so.m30.action.main; | ||||
| 
 | ||||
| import java.util.ArrayList; | ||||
| import java.util.HashMap; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import nc.bs.pub.action.N_30_UNAPPROVE; | ||||
| import nc.bs.scmpub.rule.VOSagaFrozenValidateRule; | ||||
| import nc.bs.so.m30.maintain.rule.insert.RewritePromotePriceInsertRule; | ||||
| import nc.bs.so.m30.plugin.Action30PlugInPoint; | ||||
| import nc.bs.so.m30.rule.approve.CheckPush5Aor20Rule; | ||||
| import nc.bs.so.m30.rule.approve.SaleOrderDeleteRmBeforeRule; | ||||
| import nc.bs.so.m30.rule.atp.SaleOrderVOATPAfterRule; | ||||
| import nc.bs.so.m30.rule.atp.SaleOrderVOATPBeforeRule; | ||||
| import nc.bs.so.m30.rule.credit.RenovateARByHidsBeginRule; | ||||
| import nc.bs.so.m30.rule.credit.RenovateARByHidsEndRule; | ||||
| import nc.bs.so.m30.rule.m35.Rewrite35WhenUnApproveRule; | ||||
| import nc.bs.so.m30.rule.me.SaleOrderVOUnApproveAfterRule; | ||||
| import nc.bs.so.m30.rule.unapprove.BusiLog; | ||||
| import nc.bs.so.m30.rule.unapprove.CheckUnApprovableCompensateRule; | ||||
| import nc.bs.so.m30.rule.unapprove.CheckUnApprovableRule; | ||||
| import nc.bs.so.m30.rule.unapprove.DeleteMessageRule; | ||||
| import nc.bs.so.m30.rule.unapprove.UNApproveStateRule; | ||||
| import nc.impl.pubapp.pattern.data.vo.VOUpdate; | ||||
| import nc.impl.pubapp.pattern.rule.IRule; | ||||
| import nc.impl.pubapp.pattern.rule.processer.AroundProcesser; | ||||
| import nc.itf.scmpub.reference.uap.group.SysInitGroupQuery; | ||||
| import nc.vo.credit.engrossmaintain.pub.action.M30EngrossAction; | ||||
| import nc.vo.ml.NCLangRes4VoTransl; | ||||
| import nc.vo.pub.lang.UFBoolean; | ||||
| import nc.vo.pubapp.pattern.exception.ExceptionUtils; | ||||
| import nc.vo.pubapp.pattern.log.TimeLog; | ||||
| import nc.vo.scmpub.util.AppInfoContext; | ||||
| import nc.vo.so.m30.entity.SaleOrderBVO; | ||||
| import nc.vo.so.m30.entity.SaleOrderHVO; | ||||
| import nc.vo.so.m30.entity.SaleOrderVO; | ||||
| import nc.vo.so.pub.enumeration.BillStatus; | ||||
| import nc.vo.so.pub.rule.SOPfStatusChgRule; | ||||
| import nccloud.bs.so.mobile.saleorder.operation.rule.MobAfterUnApproveMessageRule; | ||||
| 
 | ||||
| public class UnApproveSaleOrderAction { | ||||
|     public UnApproveSaleOrderAction() { | ||||
|     } | ||||
| 
 | ||||
|     public SaleOrderVO[] unApprove(SaleOrderVO[] bills, N_30_UNAPPROVE script) { | ||||
|         SaleOrderVO[] ret = null; | ||||
| 
 | ||||
|         try { | ||||
|             AroundProcesser<SaleOrderVO> processer = new AroundProcesser(Action30PlugInPoint.UnApproveAction); | ||||
|             Integer oldbillstatus = bills[0].getParentVO().getFstatusflag(); | ||||
|             TimeLog.logStart(); | ||||
|             this.setAppInfoContext(); | ||||
|             this.addBeforeRule(processer, oldbillstatus); | ||||
|             processer.before(bills); | ||||
|             TimeLog.info(NCLangRes4VoTransl.getNCLangRes().getStrByID("4006011_0", "04006011-0162")); | ||||
|             script.procUnApproveFlow(script.getPfParameterVO()); | ||||
|             SaleOrderVO[] newbills = script.getVos(); | ||||
|             this.updateNewBillStatus(newbills); | ||||
|             Integer newbillstatus = newbills[0].getParentVO().getFstatusflag(); | ||||
|             TimeLog.logStart(); | ||||
|             this.addAfterRule(processer, newbillstatus, oldbillstatus); | ||||
|             processer.after(newbills); | ||||
|             TimeLog.info(NCLangRes4VoTransl.getNCLangRes().getStrByID("4006011_0", "04006011-0163")); | ||||
|             this.clearAppInfoContext(); | ||||
|             ret = newbills; | ||||
|         } catch (Exception ex) { | ||||
|             ExceptionUtils.wrappException(ex); | ||||
|         } | ||||
| 
 | ||||
|         return ret; | ||||
|     } | ||||
| 
 | ||||
|     private void updateNewBillStatus(SaleOrderVO[] newbills) { | ||||
|         List<String> pk_org = new ArrayList(); | ||||
|         new HashMap(); | ||||
| 
 | ||||
|         for(SaleOrderVO vo : newbills) { | ||||
|             for(SaleOrderBVO bvo : vo.getChildrenVO()) { | ||||
|                 String csettleorgid = bvo.getCsettleorgid(); | ||||
|                 if (!pk_org.contains(csettleorgid)) { | ||||
|                     pk_org.add(csettleorgid); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         Map<String, Boolean> isEnable = SysInitGroupQuery.isRMEnabled(pk_org); | ||||
| 
 | ||||
|         for(SaleOrderVO vo : newbills) { | ||||
|             List<SaleOrderBVO> newbvo = new ArrayList(); | ||||
| 
 | ||||
|             for(SaleOrderBVO bvo : vo.getChildrenVO()) { | ||||
|                 String csettleorgid = bvo.getCsettleorgid(); | ||||
|                 if (!isEnable.isEmpty() && !(Boolean)isEnable.get(csettleorgid)) { | ||||
|                     bvo.setRmcontractbflag(UFBoolean.FALSE); | ||||
|                 } else { | ||||
|                     newbvo.add(bvo); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         SOPfStatusChgRule statuschgrule = new SOPfStatusChgRule(); | ||||
|         SaleOrderHVO[] updateheads = new SaleOrderHVO[newbills.length]; | ||||
|         List<SaleOrderBVO> listbody = new ArrayList(); | ||||
|         int i = 0; | ||||
| 
 | ||||
|         for(SaleOrderVO ordervo : newbills) { | ||||
|             statuschgrule.changePfToBillStatus(ordervo); | ||||
|             updateheads[i] = ordervo.getParentVO(); | ||||
| 
 | ||||
|             for(SaleOrderBVO bvo : ordervo.getChildrenVO()) { | ||||
|                 listbody.add(bvo); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         String[] headupname = new String[]{"fstatusflag"}; | ||||
|         VOUpdate<SaleOrderHVO> headupsrv = new VOUpdate(); | ||||
|         headupsrv.update(updateheads, headupname); | ||||
|         String[] bodyupname = new String[]{"frowstatus", "rmcontractbflag"}; | ||||
|         VOUpdate<SaleOrderBVO> bodyupsrv = new VOUpdate(); | ||||
|         SaleOrderBVO[] updatebodys = (SaleOrderBVO[])listbody.toArray(new SaleOrderBVO[listbody.size()]); | ||||
|         bodyupsrv.update(updatebodys, bodyupname); | ||||
|     } | ||||
| 
 | ||||
|     private void addAfterRule(AroundProcesser<SaleOrderVO> processer, Integer newbillstatus, Integer oldbillstatus) { | ||||
|         IRule<SaleOrderVO> rule = null; | ||||
|         if (SysInitGroupQuery.isCREDITEnabled()) { | ||||
|             IRule<SaleOrderVO> var6 = new RenovateARByHidsEndRule(M30EngrossAction.M30UnApprove); | ||||
|             processer.addAfterRule(var6); | ||||
|         } | ||||
| 
 | ||||
|         if (BillStatus.FREE.equalsValue(newbillstatus) || BillStatus.NOPASS.equalsValue(newbillstatus) || BillStatus.AUDITING.equalsValue(newbillstatus)) { | ||||
|             IRule<SaleOrderVO> var7 = new UNApproveStateRule(); | ||||
|             processer.addAfterRule(var7); | ||||
|             processer.addAfterRule(new DeleteMessageRule()); | ||||
|         } | ||||
| 
 | ||||
|         IRule<SaleOrderVO> var8 = new SaleOrderVOUnApproveAfterRule(); | ||||
|         processer.addAfterRule(var8); | ||||
|         IRule<SaleOrderVO> var9 = new Rewrite35WhenUnApproveRule(); | ||||
|         processer.addAfterRule(var9); | ||||
|         if (BillStatus.NOPASS.equalsValue(oldbillstatus)) { | ||||
|             boolean icEnable = SysInitGroupQuery.isICEnabled(); | ||||
|             if (icEnable) { | ||||
|                 IRule<SaleOrderVO> var10 = new SaleOrderVOATPAfterRule(); | ||||
|                 processer.addAfterRule(var10); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         IRule<SaleOrderVO> var11 = new MobAfterUnApproveMessageRule(); | ||||
|         processer.addAfterRule(var11); | ||||
|         processer.addAfterRule(new SaleOrderDeleteRmBeforeRule()); | ||||
|     } | ||||
| 
 | ||||
|     private void addBeforeRule(AroundProcesser<SaleOrderVO> processer, Integer oldbillstatus) { | ||||
|         IRule<SaleOrderVO> rule = new VOSagaFrozenValidateRule(); | ||||
|         processer.addBeforeRule(rule); | ||||
|         IRule<SaleOrderVO> var5 = new CheckPush5Aor20Rule(); | ||||
|         processer.addBeforeRule(var5); | ||||
|         IRule<SaleOrderVO> var6 = new CheckUnApprovableRule(); | ||||
|         processer.addBeforeRule(var6); | ||||
|         IRule<SaleOrderVO> var7 = new CheckUnApprovableCompensateRule(); | ||||
|         processer.addBeforeRule(var7); | ||||
|         if (SysInitGroupQuery.isCREDITEnabled()) { | ||||
|             IRule<SaleOrderVO> var8 = new RenovateARByHidsBeginRule(M30EngrossAction.M30UnApprove); | ||||
|             processer.addBeforeRule(var8); | ||||
|         } | ||||
| 
 | ||||
|         IRule<SaleOrderVO> var9 = new BusiLog(); | ||||
|         processer.addBeforeRule(var9); | ||||
|         if (BillStatus.NOPASS.equalsValue(oldbillstatus)) { | ||||
|             if (SysInitGroupQuery.isPRICEEnabled()) { | ||||
|                 IRule<SaleOrderVO> var10 = new RewritePromotePriceInsertRule(); | ||||
|                 processer.addAfterRule(var10); | ||||
|             } | ||||
| 
 | ||||
|             boolean icEnable = SysInitGroupQuery.isICEnabled(); | ||||
|             if (icEnable) { | ||||
|                 IRule<SaleOrderVO> var11 = new SaleOrderVOATPBeforeRule(); | ||||
|                 processer.addBeforeRule(var11); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|     private void setAppInfoContext() { | ||||
|         String buttonCode = AppInfoContext.getBtnCode(); | ||||
|         if ("".equals(buttonCode) || null == buttonCode) { | ||||
|             AppInfoContext.setBtnCode("unappoveCenter"); | ||||
|         } | ||||
| 
 | ||||
|     } | ||||
| 
 | ||||
|     private void clearAppInfoContext() { | ||||
|         AppInfoContext.setBtnCode((String)null); | ||||
|     } | ||||
| } | ||||
		Loading…
	
		Reference in New Issue