销售订单取消审核-标品代码
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