From ef4a83f1992a0e6ef1d43cbd6cc7dd5a77ae0c95 Mon Sep 17 00:00:00 2001 From: XiangLingFeng <1518871916@qq.com> Date: Tue, 16 Dec 2025 13:13:53 +0800 Subject: [PATCH] =?UTF-8?q?=E6=BA=90=E5=8D=95=E4=B8=8B=E6=9F=A5=E8=AE=A1?= =?UTF-8?q?=E6=81=AF=E5=8D=95=E3=80=81=E8=AE=A1=E6=81=AF=E5=8D=95=E4=B8=8A?= =?UTF-8?q?=E6=9F=A5=E6=BA=90=E5=8D=95=E8=A1=A8=E5=8D=95=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cdm/InterestAccrualLookUpBillPlugin.java | 68 ++++++++++++++++++ .../LookDownInterestAccrualBillPlugin.java | 69 +++++++++++++++++++ 2 files changed, 137 insertions(+) create mode 100644 code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cdm/InterestAccrualLookUpBillPlugin.java create mode 100644 code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cdm/LookDownInterestAccrualBillPlugin.java diff --git a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cdm/InterestAccrualLookUpBillPlugin.java b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cdm/InterestAccrualLookUpBillPlugin.java new file mode 100644 index 0000000..9bd5925 --- /dev/null +++ b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cdm/InterestAccrualLookUpBillPlugin.java @@ -0,0 +1,68 @@ +package kdsz.zyf25.tmc.cfm.plugin.form.cdm; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.bill.BillShowParameter; +import kd.bos.bill.OperationStatus; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.form.ShowType; +import kd.bos.form.control.events.ItemClickEvent; +import kd.bos.list.ListFilterParameter; +import kd.bos.list.ListShowParameter; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.QueryServiceHelper; +import kd.sdk.plugin.Plugin; + +import java.util.EventObject; +import java.util.HashSet; + +/** + * 计息单上查源单(触发生成计息的单据) + */ +public class InterestAccrualLookUpBillPlugin extends AbstractBillPlugIn implements Plugin { + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + this.addItemClickListeners("kdsz_lookup"); + } + + @Override + public void itemClick(ItemClickEvent evt) { + super.itemClick(evt); + String itemKey = evt.getItemKey(); + if ("kdsz_lookup".equals(itemKey)){ + String srcEntity = (String) this.getModel().getValue("kdsz_srcentity");//源单标识 + Object srcBillNo = this.getModel().getValue("kdsz_srcbillno");//源单单号 + QFilter filter = new QFilter("billno", QCP.equals, srcBillNo); + DynamicObjectCollection feeBills = QueryServiceHelper.query(srcEntity, + "entry.srcbillid srcbillid", new QFilter[]{filter}); + if (feeBills == null || feeBills.size() == 0){ + this.getView().showMessage("暂无源单,可能已被删除"); + return; + } + HashSet srcBillIds = new HashSet<>(); + for (DynamicObject feeBill : feeBills) { + srcBillIds.add(feeBill.getLong("srcbillid")); + } + if (srcBillIds.size() == 1){ + Long[] srcBillArray = srcBillIds.toArray(new Long[0]); + //打开单据 + BillShowParameter billShowParameter = new BillShowParameter(); + billShowParameter.setFormId("cdm_payablebill"); + billShowParameter.setPkId(srcBillArray[0]);//单据内码 + billShowParameter.getOpenStyle().setShowType(ShowType.Modal); + billShowParameter.setStatus(OperationStatus.EDIT); + this.getView().showForm(billShowParameter); + } else { + //打开列表 + ListShowParameter listShowParameter = new ListShowParameter(); + listShowParameter.setFormId("cdm_payablebill"); + ListFilterParameter listFilterParameter = new ListFilterParameter(); + listFilterParameter.setFilter(new QFilter("id",QCP.in,srcBillIds)); + listShowParameter.setListFilterParameter(listFilterParameter); + this.getView().showForm(listShowParameter); + } + } + } +} \ No newline at end of file diff --git a/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cdm/LookDownInterestAccrualBillPlugin.java b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cdm/LookDownInterestAccrualBillPlugin.java new file mode 100644 index 0000000..8c715f3 --- /dev/null +++ b/code/tmc/kdsz-zyf25-tmc-cfm/src/main/java/kdsz/zyf25/tmc/cfm/plugin/form/cdm/LookDownInterestAccrualBillPlugin.java @@ -0,0 +1,69 @@ +package kdsz.zyf25.tmc.cfm.plugin.form.cdm; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.bill.BillShowParameter; +import kd.bos.bill.OperationStatus; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.form.ShowType; +import kd.bos.form.control.events.ItemClickEvent; +import kd.bos.list.ListFilterParameter; +import kd.bos.list.ListShowParameter; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.QueryServiceHelper; +import kd.sdk.plugin.Plugin; + +import java.util.EventObject; +import java.util.HashSet; + +/** + * 源单下查计息单 + */ +public class LookDownInterestAccrualBillPlugin extends AbstractBillPlugIn implements Plugin { + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + this.addItemClickListeners("kdsz_lookdownjx"); + } + + @Override + public void itemClick(ItemClickEvent evt) { + super.itemClick(evt); + String itemKey = evt.getItemKey(); + if ("kdsz_lookdownjx".equals(itemKey)){ + Object id = this.getModel().getValue("id"); + DynamicObjectCollection feeBills = QueryServiceHelper.query("cfm_feebill", "id", + new QFilter[]{new QFilter("entry.srcbillid", QCP.equals, id)}); + if (feeBills == null || feeBills.size() == 0){ + this.getView().showMessage("暂无对应下游费用明细,无法联查计息"); + return; + } + HashSet feeIds = new HashSet<>(); + for (DynamicObject feeBill : feeBills) { + long feeId = feeBill.getLong("id"); + feeIds.add(String.valueOf(feeId)); + } + if (feeIds.size() == 1){ + String[] feeIdArray = feeIds.toArray(new String[0]); + //打开单据 + BillShowParameter billShowParameter = new BillShowParameter(); + billShowParameter.setFormId("kdsz_interestaccrual"); + billShowParameter.setPkId(feeIdArray[0]);//单据内码 + billShowParameter.getOpenStyle().setShowType(ShowType.Modal); + billShowParameter.setStatus(OperationStatus.EDIT); + this.getView().showForm(billShowParameter); + }else { + //打开列表 + ListShowParameter listShowParameter = new ListShowParameter(); + listShowParameter.setFormId("bos_list"); + listShowParameter.setBillFormId("kdsz_interestaccrual"); + listShowParameter.getOpenStyle().setShowType(ShowType.Modal); + ListFilterParameter listFilterParameter = new ListFilterParameter(); + listFilterParameter.setFilter(new QFilter("kdsz_srcbillid",QCP.in,feeIds)); + listShowParameter.setListFilterParameter(listFilterParameter); + this.getView().showForm(listShowParameter); + } + } + } +} \ No newline at end of file