From 93efc25cf72ba657c7937546988610294e190f74 Mon Sep 17 00:00:00 2001 From: weiyunlong Date: Thu, 28 Nov 2024 18:12:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=90=8C=E4=BF=9D=E8=AF=81=E9=87=91?= =?UTF-8?q?=E9=80=BB=E8=BE=91:=E4=BB=98=E6=AC=BE=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E6=8C=89=E9=80=BB=E8=BE=91=E6=8C=89=E6=97=A5=E6=9C=9F=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E6=90=BA=E5=B8=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../formplugin/PayreqBondFormPlugin.java | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 main/java/shkd/repc/recon/formplugin/PayreqBondFormPlugin.java diff --git a/main/java/shkd/repc/recon/formplugin/PayreqBondFormPlugin.java b/main/java/shkd/repc/recon/formplugin/PayreqBondFormPlugin.java new file mode 100644 index 0000000..f3afa50 --- /dev/null +++ b/main/java/shkd/repc/recon/formplugin/PayreqBondFormPlugin.java @@ -0,0 +1,63 @@ +package shkd.repc.recon.formplugin; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.form.plugin.AbstractFormPlugin; +import kd.bos.servicehelper.BusinessDataServiceHelper; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 付款申请单表单插件 + * qeug_recon_payreqbill_ext + */ +public class PayreqBondFormPlugin extends AbstractFormPlugin { + + @Override + public void propertyChanged(PropertyChangedArgs e) { + super.propertyChanged(e); + + //保证金最终支付日期 改变时,查合同信息中,日期小于保证金最终支付日期的保证金明细中的保证金之和 + + String propertyname = e.getProperty().getName(); + switch (propertyname) { + case "qeug_finalpaymentamount": + case "contractbill": + DynamicObject contractbill = (DynamicObject) this.getModel().getValue("contractbill"); + Date qeugFinalpaymentamount = (Date) this.getModel().getValue("qeug_finalpaymentamount"); + updateMaximumMargin(contractbill, qeugFinalpaymentamount); + break; + default: + break; + } + } + + private void updateMaximumMargin(DynamicObject contractbill, Date qeugFinalpaymentamount) { + if (contractbill == null || qeugFinalpaymentamount == null) { + this.getModel().setValue("qeug_maximummargin", BigDecimal.ZERO); + this.getView().updateView("qeug_maximummargin"); + return; + } + + contractbill = BusinessDataServiceHelper.loadSingle(contractbill.getPkValue(), "recon_contractbill"); + if (contractbill != null) { + ///合同:保证金明细 + DynamicObjectCollection qeugBondentrys = contractbill.getDynamicObjectCollection("qeug_bondentry"); + BigDecimal bondamount = BigDecimal.ZERO; + for (DynamicObject qeugBondentry : qeugBondentrys) { + Date qeugFinalpaymentdate = qeugBondentry.getDate("qeug_finalpaymentdate");//合同:最终付款日期 + // 比较两个日期 + if (qeugFinalpaymentdate != null && qeugFinalpaymentamount != null) { + if (qeugFinalpaymentdate.before(qeugFinalpaymentamount)) { + System.out.println("保证金最终付款日期早于付款申请的最终支付日期"); + bondamount = bondamount.add(qeugBondentry.getBigDecimal("qeug_depositamount"));//合同:保证金金额 + } + } + } + this.getModel().setValue("qeug_maximummargin", bondamount); + this.getView().updateView("qeug_maximummargin"); + } + } +}