理财赎回-二开标准插件【赎回份数】的校验
This commit is contained in:
		
							parent
							
								
									243dd7707f
								
							
						
					
					
						commit
						c0efbb15c9
					
				|  | @ -0,0 +1,111 @@ | ||||||
|  | package shjh.jhzj7.fi.fi.plugin.form; | ||||||
|  | 
 | ||||||
|  | import kd.bos.dataentity.entity.DynamicObject; | ||||||
|  | import kd.bos.dataentity.resource.ResManager; | ||||||
|  | import kd.bos.entity.datamodel.events.PropertyChangedArgs; | ||||||
|  | import kd.bos.orm.query.QFilter; | ||||||
|  | import kd.tmc.cim.common.enums.CimEntityEnum; | ||||||
|  | import kd.tmc.cim.common.enums.RedeemWayEnum; | ||||||
|  | import kd.tmc.cim.common.helper.RevenueCalcHelper; | ||||||
|  | import kd.tmc.cim.formplugin.redeem.RedeemBillEdit; | ||||||
|  | import kd.tmc.fbp.common.helper.TmcDataServiceHelper; | ||||||
|  | import kd.tmc.fbp.common.helper.TmcViewInputHelper; | ||||||
|  | import kd.tmc.fbp.common.model.interest.IntBillInfo; | ||||||
|  | import kd.tmc.fbp.common.util.DateUtils; | ||||||
|  | import kd.tmc.fbp.common.util.EmptyUtil; | ||||||
|  | 
 | ||||||
|  | import java.math.BigDecimal; | ||||||
|  | import java.util.Date; | ||||||
|  | 
 | ||||||
|  | public class RedeemBillExtendEditPlugin extends RedeemBillEdit { | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  |     @Override | ||||||
|  |     public void propertyChanged(PropertyChangedArgs args) { | ||||||
|  |         // 如果不是 "copies" 属性,才调用父类逻辑 | ||||||
|  |         if (!"copies".equals(args.getProperty().getName())) { | ||||||
|  |             super.propertyChanged(args); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         // 单独处理 "copies" 逻辑 | ||||||
|  |         if ("copies".equals(args.getProperty().getName())) { | ||||||
|  |             this.checkCopies(); | ||||||
|  |             this.calAmount(); | ||||||
|  |             this.calRealRevenue(); | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void checkCopies() { | ||||||
|  |         String redeemWay = (String)this.getModel().getValue("redeemway"); | ||||||
|  |         //DynamicObject finBillNoF7 = (DynamicObject)this.getModel().getValue("finbillno"); | ||||||
|  |         if (RedeemWayEnum.copies_redeem.getValue().equals(redeemWay)) { | ||||||
|  |             BigDecimal copies = (BigDecimal)this.getModel().getValue("copies");//赎回份数 | ||||||
|  |             BigDecimal shrsyfe = (BigDecimal)this.getModel().getValue("shjh_shrsyfe");//赎回日剩余份额 | ||||||
|  | 
 | ||||||
|  |             //BigDecimal surplusCopies = finBillNoF7.getBigDecimal("surpluscopies");//剩余份数 | ||||||
|  |             if (copies.compareTo(shrsyfe) > 0) { | ||||||
|  |                 this.getView().showTipNotification(ResManager.loadKDString("赎回份数不允许超过理财赎回日剩余份额,请重新输入。", "RedeemBillEdit_1", "tmc-cim-formplugin", new Object[0])); | ||||||
|  |                 TmcViewInputHelper.setValWithoutPropChgEvt(this.getView(), this.getModel(), "copies", 0); | ||||||
|  |                 return; | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             //this.getModel().setValue("surpluscopies", surplusCopies.subtract(copies)); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void calAmount() { | ||||||
|  |         String redeemWay = (String)this.getModel().getValue("redeemway"); | ||||||
|  |         if (RedeemWayEnum.copies_redeem.getValue().equals(redeemWay)) { | ||||||
|  |             BigDecimal buyCopies = (BigDecimal)this.getModel().getValue("copies"); | ||||||
|  |             BigDecimal iopv = (BigDecimal)this.getModel().getValue("iopv"); | ||||||
|  |             BigDecimal amount = iopv.multiply(buyCopies); | ||||||
|  |             this.getModel().setValue("amount", amount); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private void calRealRevenue() { | ||||||
|  |         String redeemWay = (String)this.getModel().getValue("redeemway"); | ||||||
|  |         DynamicObject finBillNoF7 = (DynamicObject)this.getModel().getValue("finbillno"); | ||||||
|  |         if (!EmptyUtil.isEmpty(finBillNoF7)) { | ||||||
|  |             Long finBillId = (Long)finBillNoF7.getPkValue(); | ||||||
|  |             DynamicObject finBill = TmcDataServiceHelper.loadSingle(CimEntityEnum.cim_finsubscribe.getValue(), "endinstdate,iopv", new QFilter[]{new QFilter("id", "=", finBillId)}); | ||||||
|  |             if (RedeemWayEnum.amount_redeem.getValue().equals(redeemWay)) { | ||||||
|  |                 boolean isRevenue = (Boolean)this.getModel().getValue("isrevenue"); | ||||||
|  |                 if (isRevenue) { | ||||||
|  |                     Date lastEndIntDate = finBill.getDate("endinstdate"); | ||||||
|  |                     Date redeemDate = (Date)this.getModel().getValue("redeemdate"); | ||||||
|  |                     IntBillInfo intBill = this.getIntBillInfo(finBillId, lastEndIntDate, redeemDate); | ||||||
|  |                     if (intBill != null) { | ||||||
|  |                         TmcViewInputHelper.setValWithoutDataChanged(this.getModel(), "realrevenue", intBill.getAmount()); | ||||||
|  |                     } | ||||||
|  |                 } | ||||||
|  |             } else { | ||||||
|  |                 BigDecimal redeemAmount = (BigDecimal)this.getModel().getValue("amount"); | ||||||
|  |                 BigDecimal copies = (BigDecimal)this.getModel().getValue("copies"); | ||||||
|  |                 BigDecimal iopv = finBill.getBigDecimal("iopv"); | ||||||
|  |                 BigDecimal realRevenue = redeemAmount.subtract(iopv.multiply(copies)); | ||||||
|  |                 TmcViewInputHelper.setValWithoutDataChanged(this.getModel(), "realrevenue", realRevenue); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     private IntBillInfo getIntBillInfo(Long finBillId, Date lastEndIntDate, Date redeemDate) { | ||||||
|  |         BigDecimal amount = (BigDecimal)this.getModel().getValue("amount"); | ||||||
|  |         BigDecimal surplusAmount = (BigDecimal)this.getModel().getValue("surplusamount"); | ||||||
|  |         IntBillInfo intBill; | ||||||
|  |         if (BigDecimal.ZERO.compareTo(surplusAmount) != 0) { | ||||||
|  |             intBill = RevenueCalcHelper.callInt(finBillId, redeemDate, amount); | ||||||
|  |         } else { | ||||||
|  |             if (EmptyUtil.isNoEmpty(lastEndIntDate)) { | ||||||
|  |                 lastEndIntDate = DateUtils.getNextDay(lastEndIntDate, 1); | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             intBill = RevenueCalcHelper.callInt(finBillId, lastEndIntDate, redeemDate); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         return intBill; | ||||||
|  |     } | ||||||
|  | } | ||||||
		Loading…
	
		Reference in New Issue