From 8380c2a43c4d5ccf8022ab044292af86b86770cc Mon Sep 17 00:00:00 2001 From: mzr Date: Mon, 29 Sep 2025 13:58:23 +0800 Subject: [PATCH] =?UTF-8?q?=E9=94=80=E5=94=AE=E8=AE=A2=E5=8D=95=E5=8F=96?= =?UTF-8?q?=E6=B6=88=E5=AE=A1=E6=A0=B8-=E6=A0=87=E5=93=81=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../action/main/UnApproveSaleOrderAction.java | 201 ++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 so/src/private/nc/impl/so/m30/action/main/UnApproveSaleOrderAction.java diff --git a/so/src/private/nc/impl/so/m30/action/main/UnApproveSaleOrderAction.java b/so/src/private/nc/impl/so/m30/action/main/UnApproveSaleOrderAction.java new file mode 100644 index 00000000..cc53f899 --- /dev/null +++ b/so/src/private/nc/impl/so/m30/action/main/UnApproveSaleOrderAction.java @@ -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 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 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 isEnable = SysInitGroupQuery.isRMEnabled(pk_org); + + for(SaleOrderVO vo : newbills) { + List 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 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 headupsrv = new VOUpdate(); + headupsrv.update(updateheads, headupname); + String[] bodyupname = new String[]{"frowstatus", "rmcontractbflag"}; + VOUpdate bodyupsrv = new VOUpdate(); + SaleOrderBVO[] updatebodys = (SaleOrderBVO[])listbody.toArray(new SaleOrderBVO[listbody.size()]); + bodyupsrv.update(updatebodys, bodyupname); + } + + private void addAfterRule(AroundProcesser processer, Integer newbillstatus, Integer oldbillstatus) { + IRule rule = null; + if (SysInitGroupQuery.isCREDITEnabled()) { + IRule var6 = new RenovateARByHidsEndRule(M30EngrossAction.M30UnApprove); + processer.addAfterRule(var6); + } + + if (BillStatus.FREE.equalsValue(newbillstatus) || BillStatus.NOPASS.equalsValue(newbillstatus) || BillStatus.AUDITING.equalsValue(newbillstatus)) { + IRule var7 = new UNApproveStateRule(); + processer.addAfterRule(var7); + processer.addAfterRule(new DeleteMessageRule()); + } + + IRule var8 = new SaleOrderVOUnApproveAfterRule(); + processer.addAfterRule(var8); + IRule var9 = new Rewrite35WhenUnApproveRule(); + processer.addAfterRule(var9); + if (BillStatus.NOPASS.equalsValue(oldbillstatus)) { + boolean icEnable = SysInitGroupQuery.isICEnabled(); + if (icEnable) { + IRule var10 = new SaleOrderVOATPAfterRule(); + processer.addAfterRule(var10); + } + } + + IRule var11 = new MobAfterUnApproveMessageRule(); + processer.addAfterRule(var11); + processer.addAfterRule(new SaleOrderDeleteRmBeforeRule()); + } + + private void addBeforeRule(AroundProcesser processer, Integer oldbillstatus) { + IRule rule = new VOSagaFrozenValidateRule(); + processer.addBeforeRule(rule); + IRule var5 = new CheckPush5Aor20Rule(); + processer.addBeforeRule(var5); + IRule var6 = new CheckUnApprovableRule(); + processer.addBeforeRule(var6); + IRule var7 = new CheckUnApprovableCompensateRule(); + processer.addBeforeRule(var7); + if (SysInitGroupQuery.isCREDITEnabled()) { + IRule var8 = new RenovateARByHidsBeginRule(M30EngrossAction.M30UnApprove); + processer.addBeforeRule(var8); + } + + IRule var9 = new BusiLog(); + processer.addBeforeRule(var9); + if (BillStatus.NOPASS.equalsValue(oldbillstatus)) { + if (SysInitGroupQuery.isPRICEEnabled()) { + IRule var10 = new RewritePromotePriceInsertRule(); + processer.addAfterRule(var10); + } + + boolean icEnable = SysInitGroupQuery.isICEnabled(); + if (icEnable) { + IRule 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); + } +}