diff --git a/mmpsc/src/private/nc/bs/mmpsc/pscsettle/bp/SettleApproveBP.java b/mmpsc/src/private/nc/bs/mmpsc/pscsettle/bp/SettleApproveBP.java new file mode 100644 index 0000000..2e95bc6 --- /dev/null +++ b/mmpsc/src/private/nc/bs/mmpsc/pscsettle/bp/SettleApproveBP.java @@ -0,0 +1,47 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by FernFlower decompiler) +// + +package nc.bs.mmpsc.pscsettle.bp; + +import nc.bs.mmpsc.pscsettle.plugin.SettlePluginPoint; +import nc.bs.mmpsc.pscsettle.rule.SettleStatusCheckRule; +import nc.bs.mmpsc.pscsettle.rule.SettleStatusUpdateRule; +import nc.bs.mmpsc.pscsettle.rule.approve.FillAuditInfoRule; +import nc.bs.mmpsc.pscsettle.rule.unapprove.FilterAdjustedRule; +import nc.bs.mmpub.rule.MMVOSagaFrozenValidateRule; +import nc.impl.pubapp.pattern.data.bill.template.UpdateBPTemplate; +import nc.impl.pubapp.pattern.rule.IFilterRule; +import nc.impl.pubapp.pattern.rule.IRule; +import nc.impl.pubapp.pattern.rule.processer.CompareAroundProcesser; +import nc.vo.mmpsc.pscsettle.entity.AggSettleVO; +import nc.vo.mmpsc.pscsettle.enumeration.SettleStatusEnum; + +public class SettleApproveBP { + public SettleApproveBP() { + } + + public AggSettleVO[] approve(AggSettleVO[] clientBills, AggSettleVO[] originBills) { + UpdateBPTemplate bp = new UpdateBPTemplate(SettlePluginPoint.APPROVE); + this.addBeforeRule(bp.getAroundProcesser()); + this.addAfterRule(bp.getAroundProcesser(), originBills); + return (AggSettleVO[])bp.update(clientBills, originBills); + } + + private void addAfterRule(CompareAroundProcesser processer, AggSettleVO[] originBills) { + } + + private void addBeforeRule(CompareAroundProcesser processer) { + IRule checkFrozenRule = new MMVOSagaFrozenValidateRule(true); + processer.addBeforeRule(checkFrozenRule); + IRule crule = new SettleStatusCheckRule(SettleStatusEnum.FREE); + processer.addBeforeRule(crule); + IFilterRule filterRule = new FilterAdjustedRule(); + processer.addBeforeRule(filterRule); + IRule rule = new SettleStatusUpdateRule(SettleStatusEnum.APPROVED); + processer.addBeforeRule(rule); + IRule auditRule = new FillAuditInfoRule(); + processer.addBeforeRule(auditRule); + } +}