From 5e98e9e32cfb2d62e376189cc5e3e9e2159440b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E8=B4=B5=E5=BC=BA?= Date: Fri, 18 Apr 2025 16:01:59 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=98=E6=AC=BE=E5=8D=95=E5=8F=96=E6=B6=88?= =?UTF-8?q?=E4=BB=98=E6=AC=BE=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fi/fi/plugin/form/PayBillFromPlugin.java | 48 +++++++++++++++++ .../fi/fi/plugin/form/PayBillListPlugin.java | 54 +++++++++++++++++++ .../form/RecBillChangeListExtendPlugin.java | 2 +- 3 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 main/java/shjh/jhzj7/fi/fi/plugin/form/PayBillFromPlugin.java create mode 100644 main/java/shjh/jhzj7/fi/fi/plugin/form/PayBillListPlugin.java diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/form/PayBillFromPlugin.java b/main/java/shjh/jhzj7/fi/fi/plugin/form/PayBillFromPlugin.java new file mode 100644 index 0000000..50aba87 --- /dev/null +++ b/main/java/shjh/jhzj7/fi/fi/plugin/form/PayBillFromPlugin.java @@ -0,0 +1,48 @@ +package shjh.jhzj7.fi.fi.plugin.form; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.form.control.events.BeforeItemClickEvent; +import kd.bos.form.plugin.AbstractFormPlugin; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.sdk.plugin.Plugin; + +import java.util.EventObject; + +/** + * 动态表单插件 + * 付款处理表单插件 + */ +public class PayBillFromPlugin extends AbstractFormPlugin implements Plugin { + + + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + this.addItemClickListeners("tbmain"); + } + + + @Override + public void beforeItemClick(BeforeItemClickEvent evt) { + super.beforeItemClick(evt); + String key = evt.getItemKey().toLowerCase(); + if ("bar_cancelpay".equals(key)) { + this.cancelRecValidator(evt); + } + } + + /** + * 已推送SAP不允许取消付款 + * @param evt + */ + private void cancelRecValidator(BeforeItemClickEvent evt) { + String billno = (String)this.getModel().getValue("billno"); + DynamicObject recObj = BusinessDataServiceHelper.loadSingle("cas_paybill", "id,billno,shjh_ispushsap", new QFilter[]{new QFilter("billno", "=", billno)}); + boolean ispushsap = recObj.getBoolean("shjh_ispushsap"); + if (ispushsap){ + this.getView().showTipNotification("已推送SAP,不允许取消付款!"); + evt.setCancel(true); + } + } +} \ No newline at end of file diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/form/PayBillListPlugin.java b/main/java/shjh/jhzj7/fi/fi/plugin/form/PayBillListPlugin.java new file mode 100644 index 0000000..386fba0 --- /dev/null +++ b/main/java/shjh/jhzj7/fi/fi/plugin/form/PayBillListPlugin.java @@ -0,0 +1,54 @@ +package shjh.jhzj7.fi.fi.plugin.form; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.entity.EntityMetadataCache; +import kd.bos.entity.datamodel.ListSelectedRowCollection; +import kd.bos.form.control.events.BeforeItemClickEvent; +import kd.bos.list.BillList; +import kd.bos.list.plugin.AbstractListPlugin; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.sdk.plugin.Plugin; + +/** + * 标准单据列表插件 + * 付款处理-取消付款校验 + */ +public class PayBillListPlugin extends AbstractListPlugin implements Plugin { + + + @Override + public void beforeItemClick(BeforeItemClickEvent evt) { + super.beforeItemClick(evt); + BillList list = (BillList) this.getView().getControl("billlistap"); + ListSelectedRowCollection selectedRows = list.getSelectedRows(); + if (selectedRows == null || selectedRows.isEmpty()) { + this.getView().showTipNotification("请选择需要操作的付款单!"); + evt.setCancel(true); + return; + } + if (selectedRows.size()>1){ + this.getView().showTipNotification("请选择单条数据进行操作"); + evt.setCancel(true); + return; + } + + DynamicObject recBill= BusinessDataServiceHelper.loadSingle( + selectedRows.get(0).getPrimaryKeyValue(), + EntityMetadataCache.getDataEntityType("cas_paybill")); + + String key = evt.getItemKey().toLowerCase(); + if ("tblcancelpay".equals(key)){ + this.cancelPayValidator(evt,recBill); + } + + } + + private void cancelPayValidator(BeforeItemClickEvent evt, DynamicObject recBill) { + boolean ispushsap = recBill.getBoolean("shjh_ispushsap"); + if (ispushsap){ + this.getView().showTipNotification("已推送SAP,不允许取消付款!"); + evt.setCancel(true); + } + } + +} \ No newline at end of file diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/form/RecBillChangeListExtendPlugin.java b/main/java/shjh/jhzj7/fi/fi/plugin/form/RecBillChangeListExtendPlugin.java index a709590..2e41209 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/form/RecBillChangeListExtendPlugin.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/form/RecBillChangeListExtendPlugin.java @@ -46,7 +46,7 @@ public class RecBillChangeListExtendPlugin extends AbstractListPlugin implements return; } if (selectedRows.size()>1){ - this.getView().showTipNotification("请选择单条数据进行变更"); + this.getView().showTipNotification("请选择单条数据进行操作"); evt.setCancel(true); return; }