From 9547c02b0c3e23c7e6d2c9860796f16d9c56eeae Mon Sep 17 00:00:00 2001 From: zhangzhiguo <421587375@qq.com> Date: Thu, 24 Jul 2025 11:18:28 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=90=8C=E5=8F=98=E6=9B=B4=E6=B8=85?= =?UTF-8?q?=E5=8D=95=E9=80=89=E6=8B=A9=E8=BF=87=E6=BB=A4=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ContractRevisionListingExtPlugin.java | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/ContractRevisionListingExtPlugin.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/ContractRevisionListingExtPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/ContractRevisionListingExtPlugin.java new file mode 100644 index 0000000..20d4263 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/ContractRevisionListingExtPlugin.java @@ -0,0 +1,79 @@ +package zcgj.zcdev.zcdev.pr.plugin.form; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.utils.StringUtils; +import kd.bos.form.field.events.BeforeF7SelectEvent; +import kd.bos.list.ListShowParameter; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.ec.contract.formplugin.ContractRevisionListingPlugin; + +import java.util.List; + +public class ContractRevisionListingExtPlugin extends ContractRevisionListingPlugin { + + + @Override + public void beforeF7Select(BeforeF7SelectEvent beforef7selectevent) { + switch (beforef7selectevent.getProperty().getName()) { + case "listid": + this.beforeListingSelect(beforef7selectevent); + break; + case "listunitproject": + this.beforeUnitProjectSelect(beforef7selectevent); + } + } + + + private void beforeListingSelect(BeforeF7SelectEvent beforef7selectevent) { + ListShowParameter lsp = (ListShowParameter)beforef7selectevent.getFormShowParameter(); + List qFilters = lsp.getListFilterParameter().getQFilters(); + this.addContractAndModelFilter(qFilters); + this.addNewListingSuperFilter(qFilters); + int row = beforef7selectevent.getRow(); + DynamicObject con = (DynamicObject)this.getModel().getValue("contract"); + String baseType = BusinessDataServiceHelper.loadSingle(con.getDynamicObject("contracttype").getPkValue(), "ec_conttype").getDynamicObject("contattr").getString("basictype"); + String subChangeType = (String)this.getModel().getValue("subchangetype", row); + /*if (StringUtils.equals(subChangeType, "1") && !"09".equals(baseType)) { + qFilters.add(new QFilter("lstsettleqty", "<", "totalqty", true)); + }*/ + + int rowIndex = this.getModel().getEntryCurrentRowIndex("kapianentry"); + Object listModelId = this.getModel().getValue("listmodelid", rowIndex); + lsp.setCustomParam("listmodelid", listModelId); + } + + private void addContractAndModelFilter(List qFilters) { + int rowIndex = this.getModel().getEntryCurrentRowIndex("kapianentry"); + Object listModelId = this.getModel().getValue("listmodelid", rowIndex); + if (StringUtils.isNotBlank(listModelId)) { + qFilters.add(new QFilter("listingmodel", "=", Long.parseLong(listModelId.toString()))); + } + + DynamicObject contract = (DynamicObject)this.getModel().getValue("contract"); + if (contract != null) { + qFilters.add(new QFilter("contractid", "=", contract.getLong("id"))); + } + + } + + private void addNewListingSuperFilter(List qFilters) { + for(DynamicObject entry : this.getModel().getEntryEntity("entryentity")) { + if (!"3".equals(entry.getString("subchangetype")) && !"2".equals(entry.getString("subchangetype"))) { + DynamicObject listing = entry.getDynamicObject("listid"); + if (listing != null) { + qFilters.add(new QFilter("id", "<>", listing.getLong("id"))); + } + } else { + DynamicObject parent = entry.getDynamicObject("parentgroup"); + if (parent != null) { + boolean isLeaf = parent.getBoolean("isleaf"); + if (isLeaf) { + qFilters.add(new QFilter("id", "<>", parent.getLong("id"))); + } + } + } + } + + } +}