From 0de251a56928e0e5939b1185df5fec30a45e7d4a Mon Sep 17 00:00:00 2001 From: zhangzhiguo Date: Fri, 21 Feb 2025 14:51:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=9A=E8=AE=A1=E7=A7=91=E7=9B=AE=E8=BF=87?= =?UTF-8?q?=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/form/CasAccountFilterPlugin.java | 67 +++++++++++++++++++ .../plugin/form/CostcompanyDefaultPlugin.java | 4 +- 2 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/CasAccountFilterPlugin.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/CasAccountFilterPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/CasAccountFilterPlugin.java new file mode 100644 index 0000000..a7e7547 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/CasAccountFilterPlugin.java @@ -0,0 +1,67 @@ +package zcgj.zcdev.zcdev.fs.plugin.form; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.context.RequestContext; +import kd.bos.dataentity.entity.DynamicObject; +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.user.UserServiceHelper; +import kd.sdk.plugin.Plugin; + +import java.util.ArrayList; +import java.util.EventObject; +import java.util.List; + +/** + * 收款处理/付款处理 会计科目过滤 + */ +public class CasAccountFilterPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener { + + private final static String ACCOUNT_ITEM ="zcgj_account"; + + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + Long currentUserId = UserServiceHelper.getCurrentUserId(); + // 当前用户所属组织 + Long mainOrgId = UserServiceHelper.getUserMainOrgId(currentUserId); + //当前切换选择的组织 + Long currentOrgId = RequestContext.get().getOrgId(); + //当前所在的组织是属于矿山下的 costcompany + //costcompany 费用承担公司 + //DynamicObject costcompany = (DynamicObject)this.getModel().getValue("costcompany"); + //long costcompanyId = costcompany.getLong("id"); + //if(OrgCheckUtils.isKS(currentOrgId) && OrgCheckUtils.isKS(costcompanyId)){ + BasedataEdit fieldEdit = this.getView().getControl(ACCOUNT_ITEM); + fieldEdit.addBeforeF7SelectListener(this); + + // } + } + + @Override + public void beforeF7Select(BeforeF7SelectEvent arg0) { + String name = arg0.getProperty().getName(); + if(name.equals(ACCOUNT_ITEM)){ + //会计科目根据左树根据科目表编码过滤 + String zcgjAccounttableNumber = (String)this.getModel().getValue("zcgj_accounttable_number"); + QFilter accountTableFilter = new QFilter("number", QCP.equals,zcgjAccounttableNumber); + + List qFilterList = new ArrayList<>(); + qFilterList.add(new QFilter("isleaf", QCP.equals,true)); + arg0.setCustomQFilters(qFilterList); + + DynamicObject accountTableFilterObj = BusinessDataServiceHelper.loadSingle("bd_accounttable", "id,number", new QFilter[]{accountTableFilter}); + if(accountTableFilterObj!=null){ + long id = accountTableFilterObj.getLong("id"); + ListShowParameter param = (ListShowParameter) arg0.getFormShowParameter(); + param.getTreeFilterParameter().getQFilters().add(new QFilter("accounttableid", QCP.equals, id)); + // param.getTreeFilterParameter().getQFilters().add(new QFilter("isleaf", QCP.equals,true)); + } + } + } +} diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/CostcompanyDefaultPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/CostcompanyDefaultPlugin.java index b215459..993e0e9 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/CostcompanyDefaultPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/CostcompanyDefaultPlugin.java @@ -142,7 +142,7 @@ public class CostcompanyDefaultPlugin extends AbstractBillPlugIn implements Plu //bos_costcenter QFilter numberFilter = new QFilter("number",QCP.equals,costcompanyObj.getString("number")); DynamicObject[] dynamicObjectAccItem = BusinessDataServiceHelper.load("bos_costcenter", "number,name", new QFilter[]{numberFilter}); - if(dynamicObjectAccItem!=null && !dynamicObjectCollection.isEmpty()){ + if(dynamicObjectAccItem!=null && !dynamicObjectCollection.isEmpty() && dynamicObjectAccItem.length > 0){ DynamicObject dynamicObject = dynamicObjectCollection.get(dynamicObjectCollection.size() - 1); dynamicObject.set("std_entrycostcenter",dynamicObjectAccItem[0]); } @@ -188,6 +188,8 @@ public class CostcompanyDefaultPlugin extends AbstractBillPlugIn implements Plu DynamicObject[] dynamicObjectAccItem = BusinessDataServiceHelper.load("bos_costcenter", "number,name", new QFilter[]{numberFilter}); if(dynamicObjectAccItem!=null && dynamicObjectAccItem.length >0){ this.getModel().setValue("std_entrycostcenter", dynamicObjectAccItem[0], rowIndex); + }else{ + this.getView().showErrorNotification("请设置成本中心!"); } } }