diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/GuaranteeContractFeeDetailPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/GuaranteeContractFeeDetailPlugin.java index d9a7957..68620c0 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/GuaranteeContractFeeDetailPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/GuaranteeContractFeeDetailPlugin.java @@ -4,6 +4,7 @@ import kd.bos.bill.AbstractBillPlugIn; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.entity.datamodel.IDataModel; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.form.CloseCallBack; import kd.bos.form.FormShowParameter; import kd.bos.form.ShowType; @@ -238,10 +239,11 @@ public class GuaranteeContractFeeDetailPlugin extends AbstractBillPlugIn { } String shkd_csfy = (String) map.get("shkd_csfy"); BigDecimal csfy = BigDecimal.valueOf(Double.parseDouble(shkd_csfy)); - this.getModel().setValue("shkd_jtfeeamt",csfy,index);//费率 +// this.getModel().setValue("shkd_jtfeeamt",csfy,index);//费用金额 //计算测算金额 BigDecimal getbalance = getbalance(shkd_startdate, shkd_enddate, gstatus,fl); this.getModel().setValue("shkd_jtcsfy",getbalance,index); + this.getModel().setValue("shkd_jtfeeamt",getbalance,index);//费用金额 SaveServiceHelper.save(new DynamicObject[]{this.getModel().getDataEntity(true)}); } else if ("yt".equals(actionId)) {//预提 Object returnData = e.getReturnData(); @@ -282,14 +284,32 @@ public class GuaranteeContractFeeDetailPlugin extends AbstractBillPlugIn { } String shkd_csfy = (String) map.get("shkd_csfy"); BigDecimal csfy = BigDecimal.valueOf(Double.parseDouble(shkd_csfy)); - this.getModel().setValue("shkd_ytfeeamt",csfy,index); +// this.getModel().setValue("shkd_ytfeeamt",csfy,index); //计算金额 BigDecimal getbalance = getbalance(shkd_startdate, shkd_enddate, gstatus,fl); this.getModel().setValue("shkd_ytcsfy",getbalance,index); + this.getModel().setValue("shkd_ytfeeamt",getbalance,index); SaveServiceHelper.save(new DynamicObject[]{this.getModel().getDataEntity(true)}); } } + @Override + public void propertyChanged(PropertyChangedArgs e) { + super.propertyChanged(e); + String name = e.getProperty().getName(); + if ("".equals(name)){ + String billstatus = (String) this.getModel().getValue("billstatus"); + BigDecimal newValue = (BigDecimal) e.getChangeSet()[0].getNewValue(); + BigDecimal oldValue = (BigDecimal) e.getChangeSet()[0].getOldValue(); + if (newValue==null||oldValue==null){ + return; + } + if (newValue.compareTo(oldValue)!=0&&Arrays.asList("B","C").contains(billstatus)){ + SaveServiceHelper.save(new DynamicObject[]{this.getModel().getDataEntity(true)}); + } + } + } + private BigDecimal getbalance(Date shkd_startdate, Date shkd_enddate, List gstatus, BigDecimal fl) { BigDecimal zero = BigDecimal.ZERO; for (DynamicObject dynamicObject : gstatus) {