理财赎回-二开标准插件【赎回份数】的校验
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