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