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")); + } +}