From e92e41bf087a29f1a0140e3d2a33a15922fc5bc6 Mon Sep 17 00:00:00 2001 From: zoujiangtao Date: Wed, 5 Nov 2025 14:41:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=86=85=E5=AE=B9=EF=BC=9A?= =?UTF-8?q?=E6=8A=B5=E8=B4=A8=E6=8A=BC=E7=89=A9=E5=88=86=E5=BD=95=E7=82=B9?= =?UTF-8?q?=E5=87=BB=E5=80=BA=E6=9D=83=E4=BA=BA=E5=BC=B9=E5=87=BA=E5=AF=B9?= =?UTF-8?q?=E5=BA=94=E5=80=BA=E6=9D=83=E4=BA=BA=E7=B1=BB=E5=9E=8B=E5=9F=BA?= =?UTF-8?q?=E7=A1=80=E8=B5=84=E6=96=99=20=E6=97=B6=E9=97=B4=EF=BC=9A2025-1?= =?UTF-8?q?1-05=2014=EF=BC=9A41=20=E6=8F=90=E4=BA=A4=E4=BA=BA=EF=BC=9A?= =?UTF-8?q?=E9=82=B9=E6=B1=9F=E6=B6=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sys/sys/plugin/form/DzywBillPlugin.java | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/DzywBillPlugin.java diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/DzywBillPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/DzywBillPlugin.java new file mode 100644 index 0000000..cf426a5 --- /dev/null +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/DzywBillPlugin.java @@ -0,0 +1,86 @@ +package shkd.sys.sys.plugin.form; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.resource.ResManager; +import kd.bos.form.field.events.BeforeF7SelectEvent; +import kd.bos.form.field.events.BeforeF7SelectListener; +import kd.bos.list.ListShowParameter; +import kd.bos.orm.query.QFilter; +import kd.tmc.cfm.common.helper.CfmBillCommonHelper; +import kd.tmc.cfm.formplugin.bill.AbstractMultCateTextF7Plugin; +import kd.tmc.fbp.common.enums.BankAcctStatusEnum; +import kd.tmc.fbp.common.helper.TmcAccountHelper; +import kd.tmc.fbp.common.util.EmptyUtil; + +/** + * @Description 抵质押物分录点击债权人弹出对应债权人类型基础资料 + * @Author Tao + * @Date 2025/10/22 + */ +public class DzywBillPlugin extends AbstractMultCateTextF7Plugin implements BeforeF7SelectListener { + @Override + protected String getTypePropName() { + return "shkd_zqrlx"; + } + + @Override + protected String getTextPropName() { + return "shkd_zqr"; + } + + @Override + protected String getIdPropName() { + return "shkd_zqrid"; + } + + @Override + public void beforeF7Select(BeforeF7SelectEvent evt) { + switch (evt.getProperty().getName()) { + case "loaneracctbank": + this.creditorBankAcctF7Evt(evt); + break; + case "accountbank": + this.debtorBankAcctF7Evt(evt); + } + } + + private void creditorBankAcctF7Evt(BeforeF7SelectEvent evt) { + this.bankAcctF7Evt(evt, "creditorg"); + } + + private void debtorBankAcctF7Evt(BeforeF7SelectEvent evt) { + this.bankAcctF7Evt(evt, "org"); + } + + private void bankAcctF7Evt(BeforeF7SelectEvent evt, String orgProp) { + if (this.isCurrencyInputYet(evt)) { + DynamicObject fundOrg = (DynamicObject)this.getModel().getValue(orgProp); + if (EmptyUtil.isEmpty(fundOrg)) { + evt.setCancel(true); + this.getView().showTipNotification(String.format(ResManager.loadKDString("请先选择%s。", "ContractCreditorDebtorEdit_3", "tmc-cfm-formplugin", new Object[0]), CfmBillCommonHelper.getPropLocalDisplayName(this.getView(), orgProp))); + } else { + QFilter qFilter = this.getBankAcctFilter(fundOrg); + ListShowParameter sp = (ListShowParameter)evt.getFormShowParameter(); + sp.setUseOrgId((Long)fundOrg.getPkValue()); + sp.setIsolationOrg(true); + sp.getListFilterParameter().setFilter(qFilter); + } + } + } + + private boolean isCurrencyInputYet(BeforeF7SelectEvent evt) { + DynamicObject currency = (DynamicObject)this.getModel().getValue("currency"); + if (EmptyUtil.isEmpty(currency)) { + evt.setCancel(true); + this.getView().showTipNotification(String.format(ResManager.loadKDString("请先选择%s。", "ContractCreditorDebtorEdit_3", "tmc-cfm-formplugin", new Object[0]), CfmBillCommonHelper.getPropLocalDisplayName(this.getView(), "currency"))); + return false; + } else { + return true; + } + } + + private QFilter getBankAcctFilter(DynamicObject fundOrg) { + long orgId = fundOrg == null ? 0L : Long.parseLong(fundOrg.getPkValue().toString()); + return TmcAccountHelper.getAccountBankFilterByOrg(orgId).and("acctstatus", "=", BankAcctStatusEnum.NORMAL.getValue()).and(new QFilter("acctclassify", "!=", "I")); + } +}