From b5736b4254ab82d45932a0d65c0a4efaf59c943b Mon Sep 17 00:00:00 2001 From: zengweihai Date: Wed, 5 Jun 2024 18:28:03 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B4=B9=E7=94=A8=E9=A1=B9=E7=9B=AE=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CommonExpenseItemBillFormPlugin.java | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 shkd-cosmic-debug/src/main/java/shkd/fi/er/plugin/formplugin/CommonExpenseItemBillFormPlugin.java diff --git a/shkd-cosmic-debug/src/main/java/shkd/fi/er/plugin/formplugin/CommonExpenseItemBillFormPlugin.java b/shkd-cosmic-debug/src/main/java/shkd/fi/er/plugin/formplugin/CommonExpenseItemBillFormPlugin.java new file mode 100644 index 0000000..735bbd0 --- /dev/null +++ b/shkd-cosmic-debug/src/main/java/shkd/fi/er/plugin/formplugin/CommonExpenseItemBillFormPlugin.java @@ -0,0 +1,85 @@ +package shkd.fi.er.plugin.formplugin; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.form.field.BasedataEdit; +import kd.bos.form.field.events.BeforeF7SelectEvent; +import kd.bos.form.field.events.BeforeF7SelectListener; +import kd.bos.list.ListShowParameter; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.QueryServiceHelper; +import kd.bos.util.StringUtils; +import kd.sdk.plugin.Plugin; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.EventObject; +import java.util.List; + +/** + * 单据界面插件 + */ +public class CommonExpenseItemBillFormPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener,Plugin { + String entityId; + List paymentList = new ArrayList(Arrays.asList("er_publicreimbursebill","er_prepaybill","er_dailyreimbursebill"));//对公报销单、预付单、费用报销单 + List paymentItemList = new ArrayList(Arrays.asList("er_dailyloanbill"));//员工借款单 + + @Override + public void initialize() { + super.initialize(); + entityId = this.getView().getEntityId();//获取当前页面标识。 + } + + + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + BasedataEdit edit = this.getView().getControl("expenseitem"); + if (edit != null){ + edit.addBeforeF7SelectListener(this); + } + } + + @Override + public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { + String name = beforeF7SelectEvent.getProperty().getName(); + DynamicObject dataEntity = this.getModel().getDataEntity();//获取单据实体 + DynamicObject payment = null; + if ("expenseitem".equals(name)){ + if (paymentList.contains(entityId)){ + payment = dataEntity.getDynamicObject("shkd_payment"); + }else if (paymentItemList.contains(entityId)){ + payment = dataEntity.getDynamicObject("shkd_paymentitem"); + } + if (payment != null){ + String paymentNumber = payment.getString("number"); + if (StringUtils.isNotEmpty(paymentNumber)){//付款事项编码不为空 + ArrayList paymentIds = new ArrayList<>(); + QFilter qFilter = new QFilter("shkd_paymatterinfo.number", QCP.equals, paymentNumber); + DynamicObject[] loads = BusinessDataServiceHelper.load("shkd_accountlinkmatter","id,shkd_expenseitem.id",qFilter.toArray()); + for (DynamicObject load : loads) { + long aLong = load.getLong("shkd_expenseitem.id"); + paymentIds.add(aLong); + } + + if (!paymentIds.isEmpty()){ + QFilter qF = new QFilter("id", QCP.in,paymentIds); + ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + formShowParameter.getListFilterParameter().setFilter(qF); + }else { + beforeF7SelectEvent.setCancel(true); + this.getView().showTipNotification("该付款事项未关联费用项目"); + } + } + }else { + beforeF7SelectEvent.setCancel(true); + this.getView().showTipNotification("请先选择付款事项"); + } + } + + + } +} \ No newline at end of file