销售订单取消审核-标品代码

This commit is contained in:
mzr 2025-09-29 13:58:23 +08:00
parent fa5be651bc
commit 8380c2a43c
1 changed files with 201 additions and 0 deletions

View File

@ -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);
}
}