Merge remote-tracking branch 'origin/master'
This commit is contained in:
		
						commit
						36f03cab99
					
				|  | @ -0,0 +1,176 @@ | ||||||
|  | // | ||||||
|  | // Source code recreated from a .class file by IntelliJ IDEA | ||||||
|  | // (powered by FernFlower decompiler) | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | package nc.bs.so.m30.maintain; | ||||||
|  | 
 | ||||||
|  | import nc.bs.scmpub.rule.CrossRuleValidateRule; | ||||||
|  | import nc.bs.so.m30.maintain.rule.insert.RewriteBillInsertRule; | ||||||
|  | import nc.bs.so.m30.maintain.rule.insert.RewritePromotePriceInsertRule; | ||||||
|  | import nc.bs.so.m30.maintain.rule.insert.WritebackMaterialPriceRule; | ||||||
|  | import nc.bs.so.m30.plugin.BP30PlugInPoint; | ||||||
|  | import nc.bs.so.m30.rule.atp.SaleOrderVOATPAfterRule; | ||||||
|  | import nc.bs.so.m30.rule.atp.SaleOrderVOATPBeforeRule; | ||||||
|  | import nc.bs.so.m30.rule.billcode.AddNewBillCodeRule; | ||||||
|  | import nc.bs.so.m30.rule.billcode.CheckUniqueBillCodeRule; | ||||||
|  | import nc.bs.so.m30.rule.businessinfo.SaveTransferMsgRule; | ||||||
|  | import nc.bs.so.m30.rule.credit.RenovateARByHidsBeginRule; | ||||||
|  | import nc.bs.so.m30.rule.credit.RenovateARByHidsEndRule; | ||||||
|  | import nc.bs.so.m30.rule.feature.CfgMatchCheckRule; | ||||||
|  | import nc.bs.so.m30.rule.feature.CfgMatchSaveRule; | ||||||
|  | import nc.bs.so.m30.rule.m35.ArsubOffsetBeforeSaveRule; | ||||||
|  | import nc.bs.so.m30.rule.m35.LrgCashMarCheckRule; | ||||||
|  | import nc.bs.so.m30.rule.maintaincheck.CheckDateRule; | ||||||
|  | import nc.bs.so.m30.rule.maintaincheck.CheckLrgTotalMoney; | ||||||
|  | import nc.bs.so.m30.rule.maintaincheck.CheckMaterilaOVidRule; | ||||||
|  | import nc.bs.so.m30.rule.maintaincheck.CheckNumPriceMnyRule; | ||||||
|  | import nc.bs.so.m30.rule.maintaincheck.CheckSaveBillRule; | ||||||
|  | import nc.bs.so.m30.rule.maintaincheck.CheckSettleOrgRepeat; | ||||||
|  | import nc.bs.so.m30.rule.maintaincheck.CheckValueWhenIsdeliveryRule; | ||||||
|  | import nc.bs.so.m30.rule.maintainprocess.FillupFretexchangeRule; | ||||||
|  | import nc.bs.so.m30.rule.maintainprocess.FillupRedundanceDataRule; | ||||||
|  | import nc.bs.so.m30.rule.maintainprocess.InsertSoBalanceWhenAddNewRule; | ||||||
|  | import nc.bs.so.m30.rule.maintainprocess.SaleOrderCheckNumAndMnyRule; | ||||||
|  | import nc.bs.so.m30.rule.maintainprocess.SourceToSaleOrderMsgRule; | ||||||
|  | import nc.bs.so.m30.rule.maintainprocess.ThisGatheringRule; | ||||||
|  | import nc.bs.so.m30.rule.pm.CheckBusiForPMRule; | ||||||
|  | import nc.bs.so.m30.rule.pm.CheckProjectMFGRule; | ||||||
|  | import nc.bs.so.m30.rule.pm.CheckProjectValueRule; | ||||||
|  | import nc.bs.so.m30.rule.reserve.AutoReserveRule; | ||||||
|  | import nc.bs.so.m30.rule.rewrite.price.RewritePriceFormRule; | ||||||
|  | import nc.bs.so.pub.rule.FillBillTailInfoRuleForIns; | ||||||
|  | import nc.impl.pubapp.bd.userdef.UserDefSaveRule; | ||||||
|  | import nc.impl.pubapp.pattern.data.bill.BillInsert; | ||||||
|  | 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.pubapp.pattern.log.TimeLog; | ||||||
|  | import nc.vo.pubapp.util.SetAddAuditInfoRule; | ||||||
|  | import nc.vo.scmpub.rule.AutoMaterialAssignRule; | ||||||
|  | import nc.vo.scmpub.rule.SaleOrgEnableCheckRule; | ||||||
|  | import nc.vo.so.m30.entity.SaleOrderBVO; | ||||||
|  | import nc.vo.so.m30.entity.SaleOrderHVO; | ||||||
|  | import nc.vo.so.m30.entity.SaleOrderVO; | ||||||
|  | import nccloud.bs.so.mobile.saleorder.operation.rule.MobAfterSaveMessageRule; | ||||||
|  | 
 | ||||||
|  | public class InsertSaleOrderBP { | ||||||
|  |     public InsertSaleOrderBP() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public SaleOrderVO[] insert(SaleOrderVO[] bills) { | ||||||
|  |         AroundProcesser<SaleOrderVO> processer = new AroundProcesser(BP30PlugInPoint.InsertBP); | ||||||
|  |         TimeLog.logStart(); | ||||||
|  |         this.addBeforeRule(processer); | ||||||
|  |         processer.before(bills); | ||||||
|  |         TimeLog.info(NCLangRes4VoTransl.getNCLangRes().getStrByID("4006011_0", "04006011-0066")); | ||||||
|  |         TimeLog.logStart(); | ||||||
|  |         BillInsert<SaleOrderVO> bo = new BillInsert(); | ||||||
|  |         SaleOrderVO[] vos = (SaleOrderVO[])bo.insert(bills); | ||||||
|  |         TimeLog.info(NCLangRes4VoTransl.getNCLangRes().getStrByID("4006011_0", "04006011-0067")); | ||||||
|  |         TimeLog.logStart(); | ||||||
|  |         this.addAfterRule(processer); | ||||||
|  |         processer.after(vos); | ||||||
|  |         TimeLog.info(NCLangRes4VoTransl.getNCLangRes().getStrByID("4006011_0", "04006011-0068")); | ||||||
|  |         return vos; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void addAfterRule(AroundProcesser<SaleOrderVO> processer) { | ||||||
|  |         IRule<SaleOrderVO> rule = null; | ||||||
|  |         IRule<SaleOrderVO> var4 = new InsertSoBalanceWhenAddNewRule(); | ||||||
|  |         processer.addAfterRule(var4); | ||||||
|  |         IRule<SaleOrderVO> var5 = new RenovateARByHidsEndRule(M30EngrossAction.M30Insert); | ||||||
|  |         processer.addAfterRule(var5); | ||||||
|  |         IRule<SaleOrderVO> var6 = new ThisGatheringRule(); | ||||||
|  |         processer.addAfterRule(var6); | ||||||
|  |         IRule<SaleOrderVO> var7 = new CheckUniqueBillCodeRule(); | ||||||
|  |         processer.addAfterRule(var7); | ||||||
|  |         IRule<SaleOrderVO> var8 = new RewriteBillInsertRule(); | ||||||
|  |         processer.addAfterRule(var8); | ||||||
|  |         IRule<SaleOrderVO> var9 = new SaveTransferMsgRule(); | ||||||
|  |         processer.addAfterRule(var9); | ||||||
|  |         IRule<SaleOrderVO> var10 = new RewritePriceFormRule(); | ||||||
|  |         processer.addAfterRule(var10); | ||||||
|  |         IRule<SaleOrderVO> var11 = new SourceToSaleOrderMsgRule(); | ||||||
|  |         processer.addAfterRule(var11); | ||||||
|  |         boolean icEnable = SysInitGroupQuery.isICEnabled(); | ||||||
|  |         if (icEnable) { | ||||||
|  |             IRule<SaleOrderVO> var12 = new SaleOrderVOATPAfterRule(); | ||||||
|  |             processer.addAfterRule(var12); | ||||||
|  |             IRule<SaleOrderVO> var13 = new AutoReserveRule(); | ||||||
|  |             processer.addAfterRule(var13); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if (SysInitGroupQuery.isPRICEEnabled()) { | ||||||
|  |             IRule<SaleOrderVO> var14 = new RewritePromotePriceInsertRule(); | ||||||
|  |             processer.addAfterRule(var14); | ||||||
|  |         } | ||||||
|  |         /** | ||||||
|  |          * 销售订单新增回写参考物料售价规则 | ||||||
|  |          */ | ||||||
|  |         IRule<SaleOrderVO> var15 = new WritebackMaterialPriceRule(); | ||||||
|  |         processer.addAfterRule(var15); | ||||||
|  | 
 | ||||||
|  |         processer.addAfterRule(new MobAfterSaveMessageRule()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void addBeforeRule(AroundProcesser<SaleOrderVO> processer) { | ||||||
|  |         IRule<SaleOrderVO> rule = new SaleOrgEnableCheckRule(); | ||||||
|  |         processer.addBeforeRule(rule); | ||||||
|  |         IRule<SaleOrderVO> var4 = new FillupRedundanceDataRule(); | ||||||
|  |         processer.addBeforeRule(var4); | ||||||
|  |         IRule<SaleOrderVO> var5 = new FillupFretexchangeRule(); | ||||||
|  |         processer.addBeforeRule(var5); | ||||||
|  |         IRule<SaleOrderVO> var6 = new AddNewBillCodeRule(); | ||||||
|  |         processer.addBeforeRule(var6); | ||||||
|  |         IRule<SaleOrderVO> var7 = new CheckNumPriceMnyRule(); | ||||||
|  |         processer.addBeforeRule(var7); | ||||||
|  |         IRule<SaleOrderVO> var8 = new SaleOrderCheckNumAndMnyRule(); | ||||||
|  |         processer.addBeforeRule(var8); | ||||||
|  |         IRule<SaleOrderVO> var9 = new CheckMaterilaOVidRule(); | ||||||
|  |         processer.addBeforeRule(var9); | ||||||
|  |         IRule<SaleOrderVO> var10 = new CheckSettleOrgRepeat(); | ||||||
|  |         processer.addBeforeRule(var10); | ||||||
|  |         IRule<SaleOrderVO> var11 = new CheckDateRule(); | ||||||
|  |         processer.addBeforeRule(var11); | ||||||
|  |         processer.addBeforeRule(new AutoMaterialAssignRule("cmaterialid", new String[]{"pk_org"}, new String[]{"pk_org", "csendstockorgid", "csettleorgid", "carorgid", "cprofitcenterid", "csprofitcenterid"})); | ||||||
|  |         IRule<SaleOrderVO> var12 = new CfgMatchSaveRule(); | ||||||
|  |         processer.addBeforeRule(var12); | ||||||
|  |         IRule<SaleOrderVO> var13 = new CfgMatchCheckRule(); | ||||||
|  |         processer.addBeforeRule(var13); | ||||||
|  |         IRule<SaleOrderVO> var14 = new CheckSaveBillRule(); | ||||||
|  |         processer.addBeforeRule(var14); | ||||||
|  |         IRule<SaleOrderVO> var15 = new FillBillTailInfoRuleForIns(); | ||||||
|  |         processer.addBeforeRule(var15); | ||||||
|  |         IRule<SaleOrderVO> var16 = new SetAddAuditInfoRule(); | ||||||
|  |         processer.addBeforeRule(var16); | ||||||
|  |         IRule<SaleOrderVO> var17 = new RenovateARByHidsBeginRule(M30EngrossAction.M30Insert); | ||||||
|  |         processer.addBeforeRule(var17); | ||||||
|  |         boolean icEnable = SysInitGroupQuery.isICEnabled(); | ||||||
|  |         if (icEnable) { | ||||||
|  |             IRule<SaleOrderVO> var18 = new SaleOrderVOATPBeforeRule(); | ||||||
|  |             processer.addBeforeRule(var18); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         IRule<SaleOrderVO> var19 = new LrgCashMarCheckRule(); | ||||||
|  |         processer.addBeforeRule(var19); | ||||||
|  |         IRule<SaleOrderVO> var20 = new ArsubOffsetBeforeSaveRule(); | ||||||
|  |         processer.addBeforeRule(var20); | ||||||
|  |         IRule<SaleOrderVO> var21 = new CheckLrgTotalMoney(); | ||||||
|  |         processer.addBeforeRule(var21); | ||||||
|  |         IRule<SaleOrderVO> var22 = new UserDefSaveRule(new Class[]{SaleOrderHVO.class, SaleOrderBVO.class}); | ||||||
|  |         processer.addBeforeRule(var22); | ||||||
|  |         IRule<SaleOrderVO> var23 = new CrossRuleValidateRule(); | ||||||
|  |         processer.addBeforeRule(var23); | ||||||
|  |         IRule<SaleOrderVO> var24 = new CheckProjectValueRule(); | ||||||
|  |         processer.addBeforeRule(var24); | ||||||
|  |         IRule<SaleOrderVO> var25 = new CheckBusiForPMRule(); | ||||||
|  |         processer.addBeforeRule(var25); | ||||||
|  |         IRule<SaleOrderVO> var26 = new CheckValueWhenIsdeliveryRule(); | ||||||
|  |         processer.addBeforeRule(var26); | ||||||
|  |         IRule<SaleOrderVO> var27 = new CheckProjectMFGRule(); | ||||||
|  |         processer.addBeforeRule(var27); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,183 @@ | ||||||
|  | // | ||||||
|  | // Source code recreated from a .class file by IntelliJ IDEA | ||||||
|  | // (powered by FernFlower decompiler) | ||||||
|  | // | ||||||
|  | 
 | ||||||
|  | package nc.bs.so.m30.maintain; | ||||||
|  | 
 | ||||||
|  | import nc.bs.scmpub.rule.CrossRuleValidateRule; | ||||||
|  | import nc.bs.scmpub.rule.VOSagaFrozenValidateRule; | ||||||
|  | import nc.bs.so.m30.maintain.rule.insert.WritebackMaterialPriceRule; | ||||||
|  | import nc.bs.so.m30.maintain.rule.update.RewriteBillUpdateRule; | ||||||
|  | import nc.bs.so.m30.maintain.rule.update.RewritePromotePriceUpdateRule; | ||||||
|  | import nc.bs.so.m30.plugin.BP30PlugInPoint; | ||||||
|  | import nc.bs.so.m30.rule.atp.SaleOrderVOATPAfterRule; | ||||||
|  | import nc.bs.so.m30.rule.atp.SaleOrderVOATPBeforeRule; | ||||||
|  | import nc.bs.so.m30.rule.billcode.CheckUniqueBillCodeRule; | ||||||
|  | import nc.bs.so.m30.rule.billcode.UpdateBillCodeRule; | ||||||
|  | import nc.bs.so.m30.rule.businessinfo.SaveTransferMsgRule; | ||||||
|  | import nc.bs.so.m30.rule.credit.RenovateARByHidsBeginRule; | ||||||
|  | import nc.bs.so.m30.rule.credit.RenovateARByHidsEndRule; | ||||||
|  | import nc.bs.so.m30.rule.feature.CfgMatchCheckRule; | ||||||
|  | import nc.bs.so.m30.rule.feature.CfgMatchSaveRule; | ||||||
|  | import nc.bs.so.m30.rule.m35.ArsubOffsetBeforeSaveRule; | ||||||
|  | import nc.bs.so.m30.rule.m35.LrgCashMarCheckRule; | ||||||
|  | import nc.bs.so.m30.rule.maintaincheck.CheckCanUpdateWhenAuditing; | ||||||
|  | import nc.bs.so.m30.rule.maintaincheck.CheckDateRule; | ||||||
|  | import nc.bs.so.m30.rule.maintaincheck.CheckLrgTotalMoney; | ||||||
|  | import nc.bs.so.m30.rule.maintaincheck.CheckMaterilaOVidRule; | ||||||
|  | import nc.bs.so.m30.rule.maintaincheck.CheckNumPriceMnyRule; | ||||||
|  | import nc.bs.so.m30.rule.maintaincheck.CheckSaveBillRule; | ||||||
|  | import nc.bs.so.m30.rule.maintaincheck.CheckSettleOrgRepeat; | ||||||
|  | import nc.bs.so.m30.rule.maintaincheck.CheckValueWhenIsdeliveryRule; | ||||||
|  | import nc.bs.so.m30.rule.maintainprocess.FillupFretexchangeRule; | ||||||
|  | import nc.bs.so.m30.rule.maintainprocess.FillupRedundanceDataRule; | ||||||
|  | import nc.bs.so.m30.rule.maintainprocess.SaleOrderCheckNumAndMnyRule; | ||||||
|  | import nc.bs.so.m30.rule.maintainprocess.ThisGatheringRule; | ||||||
|  | import nc.bs.so.m30.rule.maintainprocess.UpdateSoBalanceWhenUpdateM30HeadRule; | ||||||
|  | import nc.bs.so.m30.rule.maintainprocess.UpdateSoBalanceWhenUpdateRule; | ||||||
|  | import nc.bs.so.m30.rule.pm.CheckBusiForPMRule; | ||||||
|  | import nc.bs.so.m30.rule.pm.CheckProjectMFGRule; | ||||||
|  | import nc.bs.so.m30.rule.pm.CheckProjectValueRule; | ||||||
|  | import nc.bs.so.m30.rule.reserve.AutoReserveRule; | ||||||
|  | import nc.bs.so.m30.rule.reserve.ReserveUpdateRule; | ||||||
|  | import nc.bs.so.m30.rule.rewrite.price.RewritePriceFormRule; | ||||||
|  | import nc.bs.so.pub.rule.CheckApproverRule; | ||||||
|  | import nc.impl.pubapp.bd.userdef.UserDefSaveRule; | ||||||
|  | import nc.impl.pubapp.pattern.data.bill.BillUpdate; | ||||||
|  | import nc.impl.pubapp.pattern.rule.ICompareRule; | ||||||
|  | import nc.impl.pubapp.pattern.rule.IRule; | ||||||
|  | import nc.impl.pubapp.pattern.rule.processer.CompareAroundProcesser; | ||||||
|  | import nc.itf.scmpub.reference.uap.group.SysInitGroupQuery; | ||||||
|  | import nc.vo.credit.engrossmaintain.pub.action.M30EngrossAction; | ||||||
|  | import nc.vo.ml.NCLangRes4VoTransl; | ||||||
|  | import nc.vo.pubapp.pattern.log.TimeLog; | ||||||
|  | import nc.vo.pubapp.util.SetUpdateAuditInfoRule; | ||||||
|  | import nc.vo.scmpub.rule.AutoMaterialAssignRule; | ||||||
|  | import nc.vo.so.m30.entity.SaleOrderBVO; | ||||||
|  | import nc.vo.so.m30.entity.SaleOrderHVO; | ||||||
|  | import nc.vo.so.m30.entity.SaleOrderVO; | ||||||
|  | 
 | ||||||
|  | public class UpdateSaleOrderBP { | ||||||
|  |     public UpdateSaleOrderBP() { | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     public SaleOrderVO[] update(SaleOrderVO[] bills, SaleOrderVO[] originBills) { | ||||||
|  |         CompareAroundProcesser<SaleOrderVO> processer = new CompareAroundProcesser(BP30PlugInPoint.UpdateBP); | ||||||
|  |         TimeLog.logStart(); | ||||||
|  |         this.addBeforeRule(processer); | ||||||
|  |         processer.before(bills, originBills); | ||||||
|  |         TimeLog.info(NCLangRes4VoTransl.getNCLangRes().getStrByID("4006011_0", "04006011-0069")); | ||||||
|  |         TimeLog.logStart(); | ||||||
|  |         BillUpdate<SaleOrderVO> bo = new BillUpdate(); | ||||||
|  |         SaleOrderVO[] vos = (SaleOrderVO[])bo.update(bills, originBills); | ||||||
|  |         TimeLog.info(NCLangRes4VoTransl.getNCLangRes().getStrByID("4006011_0", "04006011-0070")); | ||||||
|  |         TimeLog.logStart(); | ||||||
|  |         this.addAfterRule(processer); | ||||||
|  |         processer.after(vos, originBills); | ||||||
|  |         TimeLog.info(NCLangRes4VoTransl.getNCLangRes().getStrByID("4006011_0", "04006011-0071")); | ||||||
|  |         return vos; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void addAfterRule(CompareAroundProcesser<SaleOrderVO> processer) { | ||||||
|  |         IRule<SaleOrderVO> rule = null; | ||||||
|  |         IRule<SaleOrderVO> var5 = new UpdateSoBalanceWhenUpdateRule(); | ||||||
|  |         processer.addAfterRule(var5); | ||||||
|  |         IRule<SaleOrderVO> var6 = new RenovateARByHidsEndRule(M30EngrossAction.M30Edit); | ||||||
|  |         processer.addAfterRule(var6); | ||||||
|  |         IRule<SaleOrderVO> var7 = new ThisGatheringRule(); | ||||||
|  |         processer.addAfterRule(var7); | ||||||
|  |         IRule<SaleOrderVO> var8 = new CheckUniqueBillCodeRule(); | ||||||
|  |         processer.addAfterRule(var8); | ||||||
|  |         ICompareRule<SaleOrderVO> compareRule = new RewriteBillUpdateRule(); | ||||||
|  |         processer.addAfterRule(compareRule); | ||||||
|  |         IRule<SaleOrderVO> var9 = new SaveTransferMsgRule(); | ||||||
|  |         processer.addAfterRule(var9); | ||||||
|  |         IRule<SaleOrderVO> var10 = new RewritePriceFormRule(); | ||||||
|  |         processer.addAfterRule(var10); | ||||||
|  |         IRule<SaleOrderVO> var11 = new UpdateSoBalanceWhenUpdateM30HeadRule(); | ||||||
|  |         processer.addAfterRule(var11); | ||||||
|  |         boolean icEnable = SysInitGroupQuery.isICEnabled(); | ||||||
|  |         if (icEnable) { | ||||||
|  |             IRule<SaleOrderVO> var12 = new SaleOrderVOATPAfterRule(); | ||||||
|  |             processer.addAfterRule(var12); | ||||||
|  |             IRule<SaleOrderVO> var13 = new ReserveUpdateRule(); | ||||||
|  |             processer.addAfterRule(var13); | ||||||
|  |             IRule<SaleOrderVO> var14 = new AutoReserveRule(); | ||||||
|  |             processer.addAfterRule(var14); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         if (SysInitGroupQuery.isPRICEEnabled()) { | ||||||
|  |             ICompareRule<SaleOrderVO> var15 = new RewritePromotePriceUpdateRule(); | ||||||
|  |             processer.addAfterRule(var15); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         /** | ||||||
|  |          * 销售订单新增回写参考物料售价规则 | ||||||
|  |          */ | ||||||
|  |         IRule<SaleOrderVO> var16 = new WritebackMaterialPriceRule(); | ||||||
|  |         processer.addAfterRule(var16); | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void addBeforeRule(CompareAroundProcesser<SaleOrderVO> processer) { | ||||||
|  |         IRule<SaleOrderVO> rule = null; | ||||||
|  |         IRule<SaleOrderVO> var5 = new VOSagaFrozenValidateRule(); | ||||||
|  |         processer.addBeforeRule(var5); | ||||||
|  |         IRule<SaleOrderVO> var6 = new CheckCanUpdateWhenAuditing(); | ||||||
|  |         processer.addBeforeRule(var6); | ||||||
|  |         IRule<SaleOrderVO> var7 = new CheckApproverRule(); | ||||||
|  |         processer.addBeforeRule(var7); | ||||||
|  |         IRule<SaleOrderVO> var8 = new CfgMatchSaveRule(); | ||||||
|  |         processer.addBeforeRule(var8); | ||||||
|  |         IRule<SaleOrderVO> var9 = new CfgMatchCheckRule(); | ||||||
|  |         processer.addBeforeRule(var9); | ||||||
|  |         IRule<SaleOrderVO> var10 = new FillupRedundanceDataRule(); | ||||||
|  |         processer.addBeforeRule(var10); | ||||||
|  |         IRule<SaleOrderVO> var11 = new FillupFretexchangeRule(); | ||||||
|  |         processer.addBeforeRule(var11); | ||||||
|  |         IRule<SaleOrderVO> var12 = new SetUpdateAuditInfoRule(); | ||||||
|  |         processer.addBeforeRule(var12); | ||||||
|  |         ICompareRule<SaleOrderVO> compareRule = new UpdateBillCodeRule(); | ||||||
|  |         processer.addBeforeRule(compareRule); | ||||||
|  |         IRule<SaleOrderVO> var13 = new CheckMaterilaOVidRule(); | ||||||
|  |         processer.addBeforeRule(var13); | ||||||
|  |         IRule<SaleOrderVO> var14 = new CheckNumPriceMnyRule(); | ||||||
|  |         processer.addBeforeRule(var14); | ||||||
|  |         IRule<SaleOrderVO> var15 = new SaleOrderCheckNumAndMnyRule(); | ||||||
|  |         processer.addBeforeRule(var15); | ||||||
|  |         IRule<SaleOrderVO> var16 = new CheckSettleOrgRepeat(); | ||||||
|  |         processer.addBeforeRule(var16); | ||||||
|  |         IRule<SaleOrderVO> var17 = new CheckDateRule(); | ||||||
|  |         processer.addBeforeRule(var17); | ||||||
|  |         processer.addBeforeRule(new AutoMaterialAssignRule("cmaterialid", new String[]{"pk_org"}, new String[]{"pk_org", "csendstockorgid", "csettleorgid", "carorgid", "cprofitcenterid", "csprofitcenterid"})); | ||||||
|  |         IRule<SaleOrderVO> var18 = new CheckSaveBillRule(); | ||||||
|  |         processer.addBeforeRule(var18); | ||||||
|  |         IRule<SaleOrderVO> var19 = new RenovateARByHidsBeginRule(M30EngrossAction.M30Edit); | ||||||
|  |         processer.addBeforeRule(var19); | ||||||
|  |         boolean icEnable = SysInitGroupQuery.isICEnabled(); | ||||||
|  |         if (icEnable) { | ||||||
|  |             IRule<SaleOrderVO> var20 = new SaleOrderVOATPBeforeRule(); | ||||||
|  |             processer.addBeforeRule(var20); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         IRule<SaleOrderVO> var21 = new LrgCashMarCheckRule(); | ||||||
|  |         processer.addBeforeRule(var21); | ||||||
|  |         IRule<SaleOrderVO> var22 = new ArsubOffsetBeforeSaveRule(); | ||||||
|  |         processer.addBeforeRule(var22); | ||||||
|  |         IRule<SaleOrderVO> var23 = new CheckLrgTotalMoney(); | ||||||
|  |         processer.addBeforeRule(var23); | ||||||
|  |         IRule<SaleOrderVO> var24 = new CrossRuleValidateRule(); | ||||||
|  |         processer.addBeforeRule(var24); | ||||||
|  |         IRule<SaleOrderVO> var25 = new UserDefSaveRule(new Class[]{SaleOrderHVO.class, SaleOrderBVO.class}); | ||||||
|  |         processer.addBeforeRule(var25); | ||||||
|  |         IRule<SaleOrderVO> var26 = new CheckProjectValueRule(); | ||||||
|  |         processer.addBeforeRule(var26); | ||||||
|  |         IRule<SaleOrderVO> var27 = new CheckBusiForPMRule(); | ||||||
|  |         processer.addBeforeRule(var27); | ||||||
|  |         IRule<SaleOrderVO> var28 = new CheckValueWhenIsdeliveryRule(); | ||||||
|  |         processer.addBeforeRule(var28); | ||||||
|  |         IRule<SaleOrderVO> var29 = new CheckProjectMFGRule(); | ||||||
|  |         processer.addBeforeRule(var29); | ||||||
|  |     } | ||||||
|  | } | ||||||
|  | @ -0,0 +1,56 @@ | ||||||
|  | package nc.bs.so.m30.maintain.rule.insert; | ||||||
|  | 
 | ||||||
|  | import nc.bs.framework.common.NCLocator; | ||||||
|  | import nc.impl.pubapp.pattern.rule.IRule; | ||||||
|  | import nc.itf.bd.material.sale.IMaterialSaleService; | ||||||
|  | import nc.md.persist.framework.IMDPersistenceQueryService; | ||||||
|  | import nc.vo.bd.material.sale.MaterialSaleVO; | ||||||
|  | import nc.vo.pub.BusinessException; | ||||||
|  | import nc.vo.pub.lang.UFDouble; | ||||||
|  | import nc.vo.so.m30.entity.SaleOrderBVO; | ||||||
|  | import nc.vo.so.m30.entity.SaleOrderVO; | ||||||
|  | 
 | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.List; | ||||||
|  | 
 | ||||||
|  | public class WritebackMaterialPriceRule implements IRule<SaleOrderVO>{ | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void process(SaleOrderVO[] vos) { | ||||||
|  |         // TODO Auto-generated method stub | ||||||
|  |         for (SaleOrderVO vo : vos) { | ||||||
|  |             //根据销售订单子表的物料编码和销售组织查询物料主表 | ||||||
|  |             SaleOrderBVO[] saleOrderitems =  vo.getChildrenVO(); | ||||||
|  |             //循环销售订单子表 | ||||||
|  |             for(int i = 0; i < saleOrderitems.length; i++) { | ||||||
|  |                 SaleOrderBVO item = saleOrderitems[i]; | ||||||
|  |                 //取销售订单子表的物料编码和销售组织 | ||||||
|  |                 String cmaterialvid = item.getCmaterialvid(); //物料主键 | ||||||
|  |                 String pk_org = item.getPk_org(); //销售组织 | ||||||
|  |                 UFDouble nqtorigprice = item.getNqtorigprice(); //无税单价 | ||||||
|  |                 IMDPersistenceQueryService aggvoQueryService = NCLocator.getInstance().lookup(IMDPersistenceQueryService.class); | ||||||
|  |                 // 条件查询得到物料MaterialSaleVO | ||||||
|  |                 try { | ||||||
|  |                     String whereSql = "nvl(bd_materialsale.dr,0) = 0 and bd_materialsale.pk_material = '" + cmaterialvid + "' and bd_materialsale.pk_org = '" + pk_org + "'"; | ||||||
|  |                     @SuppressWarnings("unchecked") | ||||||
|  |                     ArrayList<MaterialSaleVO> materialSaleVOs = (ArrayList<MaterialSaleVO>)aggvoQueryService.queryBillOfVOByCond(MaterialSaleVO.class, whereSql, true, false); | ||||||
|  |                     if(materialSaleVOs.size() <= 0) { | ||||||
|  |                         continue; | ||||||
|  |                     } | ||||||
|  |                     for(MaterialSaleVO materialSaleVO : materialSaleVOs) { | ||||||
|  |                         materialSaleVO.setResaleprice(nqtorigprice); | ||||||
|  |                         //实体更新物料销售表 | ||||||
|  | //							IMaterialSaleService iMaterialSaleService = ServiceLocator.find(IMaterialSaleService.class); | ||||||
|  |                         IMaterialSaleService iMaterialSaleService = NCLocator.getInstance().lookup(IMaterialSaleService.class); | ||||||
|  |                         iMaterialSaleService.updateMaterialSaleVO(materialSaleVO); | ||||||
|  |                     } | ||||||
|  |                 }catch(BusinessException e) { | ||||||
|  |                     // TODO Auto-generated catch block | ||||||
|  |                     e.printStackTrace(); | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue