From 4b2734320365db8c0497b5de75b4a91598eba309 Mon Sep 17 00:00:00 2001 From: zhangzhiguo Date: Fri, 3 Jan 2025 15:33:50 +0800 Subject: [PATCH 1/3] =?UTF-8?q?1.=E7=9F=BF=E5=B1=B1=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E4=B8=8B=E5=B7=AE=E6=97=85=E6=8A=A5=E9=94=80=E5=8D=95=E3=80=81?= =?UTF-8?q?=E8=B4=B9=E7=94=A8=E6=8A=A5=E9=94=80=E5=8D=95=E3=80=81=E5=AF=B9?= =?UTF-8?q?=E5=85=AC=E6=8A=A5=E9=94=80=E5=8D=95=E3=80=81=E9=A2=84=E4=BB=98?= =?UTF-8?q?=E5=8D=95=E8=B6=85=E9=A2=84=E7=AE=97=E6=8F=90=E9=86=92=202.?= =?UTF-8?q?=E7=A7=91=E7=9B=AE=E7=9A=84=E7=A7=91=E7=9B=AE=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fs/plugin/form/BeyondBalancePlugin.java | 69 +++++++++++++++++ .../form/BeyondBalancePrepaybillPlugin.java | 76 +++++++++++++++++++ .../form/DailyloanbillExpAccPlugin.java | 26 ++++++- .../form/DailyreimbursExpAccPlugin.java | 23 +++++- .../plugin/form/PrepaybillExpAccPlugin.java | 23 +++++- .../form/PublicreimbursebillExpAccPlugin.java | 24 +++++- 6 files changed, 225 insertions(+), 16 deletions(-) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/BeyondBalancePlugin.java create mode 100644 code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/BeyondBalancePrepaybillPlugin.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/BeyondBalancePlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/BeyondBalancePlugin.java new file mode 100644 index 0000000..5d5c7a5 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/BeyondBalancePlugin.java @@ -0,0 +1,69 @@ +package zcgj.zcdev.zcdev.fs.plugin.form; + +import com.alibaba.fastjson.JSONObject; +import kd.bos.context.RequestContext; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.entity.ExtendedDataEntity; +import kd.bos.entity.plugin.AbstractOperationServicePlugIn; +import kd.bos.entity.plugin.AddValidatorsEventArgs; +import kd.bos.entity.plugin.PreparePropertysEventArgs; +import kd.bos.entity.validate.AbstractValidator; +import kd.bos.exception.KDBizException; +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; +import kd.bos.servicehelper.DispatchServiceHelper; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 对公报销单、差旅报销单、费用报销单超预算提醒 + */ +public class BeyondBalancePlugin extends AbstractOperationServicePlugIn { + private static final Log log = LogFactory.getLog(zcgj.zcdev.zcdev.fs.plugin.form.BeyondBalancePlugin.class); + + @Override + public void onPreparePropertys(PreparePropertysEventArgs e) { + super.onPreparePropertys(e); + e.getFieldKeys().add("formid"); + e.getFieldKeys().add("id"); + e.getFieldKeys().add("costdept"); + } + + public BeyondBalancePlugin() { + } + + public void onAddValidators(AddValidatorsEventArgs e) { + super.onAddValidators(e); + //当前切换选择的组织 + Long currentOrgId = RequestContext.get().getOrgId(); + //获取费用承担部门 costdept + e.addValidator(new AbstractValidator() { + public void validate() { + ExtendedDataEntity[] dataEntities = this.getDataEntities(); + //当前提交的探亲单据id集合 + for (ExtendedDataEntity extendedDataEntity : dataEntities) { + DynamicObject dataEntity = extendedDataEntity.getDataEntity(); + DynamicObject costcompany = dataEntity.getDynamicObject("costdept"); + long costcompanyId = costcompany.getLong("id"); + if(OrgCheckUtils.isKS(costcompanyId)){ + String operateKey = this.getOperateKey(); + DynamicObject[] dynamicObjects = (DynamicObject[])((List) Arrays.stream(dataEntities).map((k) -> { + return k.getDataEntity(); + }).collect(Collectors.toList())).toArray(new DynamicObject[0]); + Object obj = DispatchServiceHelper.invokeBizService("epm", "eb", "BgControlService", "isBeyond", new Object[]{dynamicObjects, operateKey}); + JSONObject json = (JSONObject)obj; + if (json != null) { + if (!"true".equals(json.get("canBeyond"))) { + throw new KDBizException(json.getString("message")); + } + + this.addWarningMessage(dataEntities[0], json.getString("message")); + } + } + } + } + }); + } +} diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/BeyondBalancePrepaybillPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/BeyondBalancePrepaybillPlugin.java new file mode 100644 index 0000000..20ddac0 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/BeyondBalancePrepaybillPlugin.java @@ -0,0 +1,76 @@ +package zcgj.zcdev.zcdev.fs.plugin.form; + +import com.alibaba.fastjson.JSONObject; +import kd.bos.context.RequestContext; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.ExtendedDataEntity; +import kd.bos.entity.plugin.AbstractOperationServicePlugIn; +import kd.bos.entity.plugin.AddValidatorsEventArgs; +import kd.bos.entity.plugin.PreparePropertysEventArgs; +import kd.bos.entity.validate.AbstractValidator; +import kd.bos.exception.KDBizException; +import kd.bos.logging.Log; +import kd.bos.logging.LogFactory; +import kd.bos.servicehelper.DispatchServiceHelper; + +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 预付单超预算提醒 + */ +public class BeyondBalancePrepaybillPlugin extends AbstractOperationServicePlugIn { + private static final Log log = LogFactory.getLog(BeyondBalancePrepaybillPlugin.class); + + @Override + public void onPreparePropertys(PreparePropertysEventArgs e) { + super.onPreparePropertys(e); + e.getFieldKeys().add("formid"); + e.getFieldKeys().add("id"); + e.getFieldKeys().add("expenseentryentity"); + e.getFieldKeys().add("expenseentryentity.entrycostdept"); + } + + public BeyondBalancePrepaybillPlugin() { + } + + public void onAddValidators(AddValidatorsEventArgs e) { + super.onAddValidators(e); + //当前切换选择的组织 + Long currentOrgId = RequestContext.get().getOrgId(); + //获取费用承担部门 costdept + e.addValidator(new AbstractValidator() { + public void validate() { + ExtendedDataEntity[] dataEntities = this.getDataEntities(); + //当前提交的探亲单据id集合 + for (ExtendedDataEntity extendedDataEntity : dataEntities) { + DynamicObject dataEntity = extendedDataEntity.getDataEntity(); + DynamicObjectCollection dynamicObjectCollection = dataEntity.getDynamicObjectCollection("expenseentryentity"); + if(dynamicObjectCollection!=null){ + //判断预付信息中第一条费用承担部门 + DynamicObject dynamicObject = dynamicObjectCollection.get(0); + DynamicObject entrycostdept = dynamicObject.getDynamicObject("entrycostdept"); + long costcompanyId = entrycostdept.getLong("id"); + if(OrgCheckUtils.isKS(costcompanyId)){ + String operateKey = this.getOperateKey(); + DynamicObject[] dynamicObjects = (DynamicObject[])((List) Arrays.stream(dataEntities).map((k) -> { + return k.getDataEntity(); + }).collect(Collectors.toList())).toArray(new DynamicObject[0]); + Object obj = DispatchServiceHelper.invokeBizService("epm", "eb", "BgControlService", "isBeyond", new Object[]{dynamicObjects, operateKey}); + JSONObject json = (JSONObject)obj; + if (json != null) { + if (!"true".equals(json.get("canBeyond"))) { + throw new KDBizException(json.getString("message")); + } + + this.addWarningMessage(dataEntities[0], json.getString("message")); + } + } + } + } + } + }); + } +} diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyloanbillExpAccPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyloanbillExpAccPlugin.java index b0614a4..6a6d283 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyloanbillExpAccPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyloanbillExpAccPlugin.java @@ -23,6 +23,7 @@ import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.org.OrgUnitServiceHelper; import kd.bos.servicehelper.user.UserServiceHelper; +import kd.bos.tree.TreeFilterParameter; import kd.sdk.plugin.Plugin; import java.util.ArrayList; @@ -60,6 +61,10 @@ public class DailyloanbillExpAccPlugin extends AbstractBillPlugIn implements Plu //分录值改变的行号 private static Integer selectRow = null; + //借款单 + private static String BILL_TYPE ="er_dailyloanbill"; + + @Override public void registerListener(EventObject e) { super.registerListener(e); @@ -98,7 +103,8 @@ public class DailyloanbillExpAccPlugin extends AbstractBillPlugIn implements Plu } if(id!=null){ QFilter nameQFilter = new QFilter(prefix+"_accounts", QCP.equals,id); - DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter}); + QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); + DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter,billTypeQFilter}); DynamicObject dynamicObject2 = this.getModel().getDataEntity(true).getDynamicObjectCollection(EXPENSE_ENTRY_ENTITY).get(selectRow); boolean isEx = false; if(dynamicObject2!=null){ @@ -120,7 +126,8 @@ public class DailyloanbillExpAccPlugin extends AbstractBillPlugIn implements Plu if(inputValue!=null){ String id = String.valueOf(inputValue) ; QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,Long.valueOf(id)); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter}); + QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); Object value = this.getModel().getValue(ACCOUNT_ITEM, selectRow); if(value==null && load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; @@ -137,6 +144,15 @@ public class DailyloanbillExpAccPlugin extends AbstractBillPlugIn implements Plu String name = arg0.getProperty().getName(); if(name.equals(ACCOUNT_ITEM)){ selectRow = arg0.getRow(); + //会计科目根据左树根据科目表编码过滤 + String zcgjAccounttableNumber = (String)this.getModel().getValue("zcgj_accounttable_number"); + QFilter accountTableFilter = new QFilter("number",QCP.equals,zcgjAccounttableNumber); + 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)); + } if("setItemByIdFromClient".equals(arg0.getSourceMethod()) ){ selectRow = arg0.getRow(); ((BasedataEdit) arg0.getSource()).addAfterF7SelectListener(this); @@ -177,7 +193,8 @@ public class DailyloanbillExpAccPlugin extends AbstractBillPlugIn implements Plu this.getModel().setValue(EXPENSE_ITEM,listSelectedRow.getPrimaryKeyValue(),index); if(accountItem==null){ QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue()); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter}); + QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); if(load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; long aLong = dynamicObject.getLong("zcgj_accounts_id"); @@ -191,7 +208,8 @@ public class DailyloanbillExpAccPlugin extends AbstractBillPlugIn implements Plu //Object accountItem = this.getModel().getValue(ACCOUNT_ITEM, index); //if(accountItem == null){ QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue()); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter}); + QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); if(load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; DynamicObject zcgjAccounts = dynamicObject.getDynamicObject("zcgj_accounts"); diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyreimbursExpAccPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyreimbursExpAccPlugin.java index 736c3f4..db09489 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyreimbursExpAccPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyreimbursExpAccPlugin.java @@ -57,6 +57,8 @@ public class DailyreimbursExpAccPlugin extends AbstractBillPlugIn implements Plu //分录值改变的行号 private static Integer selectRow = null; + private static String BILL_TYPE ="er_dailyreimbursebill"; + @Override public void registerListener(EventObject e) { super.registerListener(e); @@ -95,7 +97,8 @@ public class DailyreimbursExpAccPlugin extends AbstractBillPlugIn implements Plu } if(id!=null){ QFilter nameQFilter = new QFilter(prefix+"_accounts",QCP.equals,id); - DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter}); + QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); + DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter,billTypeQFilter}); DynamicObject dynamicObject2 = this.getModel().getDataEntity(true).getDynamicObjectCollection(EXPENSE_ENTRY_ENTITY).get(selectRow); boolean isEx = false; if(dynamicObject2!=null){ @@ -117,7 +120,8 @@ public class DailyreimbursExpAccPlugin extends AbstractBillPlugIn implements Plu if(inputValue!=null){ String id = String.valueOf(inputValue) ; QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,Long.valueOf(id)); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter}); + QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts,zcgj_entryentity.zcgj_rim_expense_type", new QFilter[]{nameQFilter,billTypeQFilter}); Object value = this.getModel().getValue(ACCOUNT_ITEM, selectRow); if(value==null && load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; @@ -134,6 +138,15 @@ public class DailyreimbursExpAccPlugin extends AbstractBillPlugIn implements Plu String name = arg0.getProperty().getName(); if(name.equals(ACCOUNT_ITEM)){ selectRow = arg0.getRow(); + //会计科目根据左树根据科目表编码过滤 + String zcgjAccounttableNumber = (String)this.getModel().getValue("zcgj_accounttable_number"); + QFilter accountTableFilter = new QFilter("number",QCP.equals,zcgjAccounttableNumber); + 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)); + } if("setItemByIdFromClient".equals(arg0.getSourceMethod()) ){ selectRow = arg0.getRow(); ((BasedataEdit) arg0.getSource()).addAfterF7SelectListener(this); @@ -175,7 +188,8 @@ public class DailyreimbursExpAccPlugin extends AbstractBillPlugIn implements Plu this.getModel().setValue(EXPENSE_ITEM,listSelectedRow.getPrimaryKeyValue(),index); if(accountItem==null){ QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue()); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter}); + QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); if(load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; long aLong = dynamicObject.getLong("zcgj_accounts_id"); @@ -189,7 +203,8 @@ public class DailyreimbursExpAccPlugin extends AbstractBillPlugIn implements Plu //Object accountItem = this.getModel().getValue(ACCOUNT_ITEM, index); //if(accountItem == null){ QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue()); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter}); + QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); if(load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; DynamicObject zcgjAccounts = dynamicObject.getDynamicObject("zcgj_accounts"); diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PrepaybillExpAccPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PrepaybillExpAccPlugin.java index edd0a19..300a589 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PrepaybillExpAccPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PrepaybillExpAccPlugin.java @@ -60,6 +60,8 @@ public class PrepaybillExpAccPlugin extends AbstractBillPlugIn implements Plugin //分录值改变的行号 private static Integer selectRow = null; + private static String BILL_TYPE ="er_prepaybill"; + @Override public void registerListener(EventObject e) { super.registerListener(e); @@ -99,7 +101,8 @@ public class PrepaybillExpAccPlugin extends AbstractBillPlugIn implements Plugin } if(id!=null){ QFilter nameQFilter = new QFilter(prefix+"_accounts", QCP.equals,id); - DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter}); + QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); + DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter,billTypeQFilter}); DynamicObject dynamicObject2 = this.getModel().getDataEntity(true).getDynamicObjectCollection(EXPENSE_ENTRY_ENTITY).get(selectRow); boolean isEx = false; if(dynamicObject2!=null){ @@ -121,7 +124,8 @@ public class PrepaybillExpAccPlugin extends AbstractBillPlugIn implements Plugin if(inputValue!=null){ String id = String.valueOf(inputValue) ; QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,Long.valueOf(id)); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter}); + QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); Object value = this.getModel().getValue(ACCOUNT_ITEM, selectRow); if(value==null && load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; @@ -138,6 +142,15 @@ public class PrepaybillExpAccPlugin extends AbstractBillPlugIn implements Plugin String name = arg0.getProperty().getName(); if(name.equals(ACCOUNT_ITEM)){ selectRow = arg0.getRow(); + //会计科目根据左树根据科目表编码过滤 + String zcgjAccounttableNumber = (String)this.getModel().getValue("zcgj_accounttable_number"); + QFilter accountTableFilter = new QFilter("number",QCP.equals,zcgjAccounttableNumber); + 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)); + } if("setItemByIdFromClient".equals(arg0.getSourceMethod()) ){ selectRow = arg0.getRow(); ((BasedataEdit) arg0.getSource()).addAfterF7SelectListener(this); @@ -178,7 +191,8 @@ public class PrepaybillExpAccPlugin extends AbstractBillPlugIn implements Plugin this.getModel().setValue(EXPENSE_ITEM,listSelectedRow.getPrimaryKeyValue(),index); if(accountItem==null){ QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue()); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter}); + QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); if(load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; long aLong = dynamicObject.getLong("zcgj_accounts_id"); @@ -192,7 +206,8 @@ public class PrepaybillExpAccPlugin extends AbstractBillPlugIn implements Plugin //Object accountItem = this.getModel().getValue(ACCOUNT_ITEM, index); //if(accountItem == null){ QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue()); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter}); + QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); if(load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; DynamicObject zcgjAccounts = dynamicObject.getDynamicObject("zcgj_accounts"); diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PublicreimbursebillExpAccPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PublicreimbursebillExpAccPlugin.java index a43a815..15a2241 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PublicreimbursebillExpAccPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PublicreimbursebillExpAccPlugin.java @@ -60,6 +60,9 @@ public class PublicreimbursebillExpAccPlugin extends AbstractBillPlugIn implemen //分录值改变的行号 private static Integer selectRow = null; + //对公报销单 + private static String BILL_TYPE ="er_publicreimbursebill"; + @Override public void registerListener(EventObject e) { super.registerListener(e); @@ -98,7 +101,8 @@ public class PublicreimbursebillExpAccPlugin extends AbstractBillPlugIn implemen } if(id!=null){ QFilter nameQFilter = new QFilter(prefix+"_accounts", QCP.equals,id); - DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter}); + QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); + DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter,billTypeQFilter}); DynamicObject dynamicObject2 = this.getModel().getDataEntity(true).getDynamicObjectCollection(EXPENSE_ENTRY_ENTITY).get(selectRow); boolean isEx = false; if(dynamicObject2!=null){ @@ -120,7 +124,8 @@ public class PublicreimbursebillExpAccPlugin extends AbstractBillPlugIn implemen if(inputValue!=null){ String id = String.valueOf(inputValue) ; QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,Long.valueOf(id)); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter}); + QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); Object value = this.getModel().getValue(ACCOUNT_ITEM, selectRow); if(value==null && load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; @@ -137,6 +142,15 @@ public class PublicreimbursebillExpAccPlugin extends AbstractBillPlugIn implemen String name = arg0.getProperty().getName(); if(name.equals(ACCOUNT_ITEM)){ selectRow = arg0.getRow(); + //会计科目根据左树根据科目表编码过滤 + String zcgjAccounttableNumber = (String)this.getModel().getValue("zcgj_accounttable_number"); + QFilter accountTableFilter = new QFilter("number",QCP.equals,zcgjAccounttableNumber); + 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)); + } if("setItemByIdFromClient".equals(arg0.getSourceMethod()) ){ selectRow = arg0.getRow(); ((BasedataEdit) arg0.getSource()).addAfterF7SelectListener(this); @@ -177,7 +191,8 @@ public class PublicreimbursebillExpAccPlugin extends AbstractBillPlugIn implemen this.getModel().setValue(EXPENSE_ITEM,listSelectedRow.getPrimaryKeyValue(),index); if(accountItem==null){ QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue()); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter}); + QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); if(load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; long aLong = dynamicObject.getLong("zcgj_accounts_id"); @@ -191,7 +206,8 @@ public class PublicreimbursebillExpAccPlugin extends AbstractBillPlugIn implemen //Object accountItem = this.getModel().getValue(ACCOUNT_ITEM, index); //if(accountItem == null){ QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue()); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter}); + QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); if(load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; DynamicObject zcgjAccounts = dynamicObject.getDynamicObject("zcgj_accounts"); From ae61c06d4f1f335b421cca6dd0ae2383f0669787 Mon Sep 17 00:00:00 2001 From: zhangzhiguo Date: Fri, 3 Jan 2025 18:48:28 +0800 Subject: [PATCH 2/3] =?UTF-8?q?1.=E7=9F=BF=E5=B1=B1=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E4=B8=8B=E5=B7=AE=E6=97=85=E6=8A=A5=E9=94=80=E5=8D=95=E3=80=81?= =?UTF-8?q?=E8=B4=B9=E7=94=A8=E6=8A=A5=E9=94=80=E5=8D=95=E3=80=81=E5=AF=B9?= =?UTF-8?q?=E5=85=AC=E6=8A=A5=E9=94=80=E5=8D=95=E3=80=81=E9=A2=84=E4=BB=98?= =?UTF-8?q?=E5=8D=95=E8=B6=85=E9=A2=84=E7=AE=97=E6=8F=90=E9=86=92=202.?= =?UTF-8?q?=E7=A7=91=E7=9B=AE=E7=9A=84=E7=A7=91=E7=9B=AE=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fs/plugin/form/AccountFilterPlugin.java | 57 +++++++++++++++++++ .../form/DailyloanbillExpAccPlugin.java | 14 ++--- .../form/DailyreimbursExpAccPlugin.java | 14 ++--- .../plugin/form/PrepaybillExpAccPlugin.java | 14 ++--- .../form/PublicreimbursebillExpAccPlugin.java | 14 ++--- 5 files changed, 85 insertions(+), 28 deletions(-) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/AccountFilterPlugin.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/AccountFilterPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/AccountFilterPlugin.java new file mode 100644 index 0000000..665f170 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/AccountFilterPlugin.java @@ -0,0 +1,57 @@ +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.AfterF7SelectListener; +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.EventObject; + +public class AccountFilterPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener { + + private final static String ACCOUNT_ITEM ="zcgj_account_item"; + + @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); + 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)); + } + } + } +} diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyloanbillExpAccPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyloanbillExpAccPlugin.java index 6a6d283..00b117e 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyloanbillExpAccPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyloanbillExpAccPlugin.java @@ -102,7 +102,7 @@ public class DailyloanbillExpAccPlugin extends AbstractBillPlugIn implements Plu id=Long.valueOf(inputValue.toString()); } if(id!=null){ - QFilter nameQFilter = new QFilter(prefix+"_accounts", QCP.equals,id); + QFilter nameQFilter = new QFilter(prefix+"_account_item", QCP.equals,id); QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter,billTypeQFilter}); DynamicObject dynamicObject2 = this.getModel().getDataEntity(true).getDynamicObjectCollection(EXPENSE_ENTRY_ENTITY).get(selectRow); @@ -127,11 +127,11 @@ public class DailyloanbillExpAccPlugin extends AbstractBillPlugIn implements Plu String id = String.valueOf(inputValue) ; QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,Long.valueOf(id)); QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_account_item", new QFilter[]{nameQFilter,billTypeQFilter}); Object value = this.getModel().getValue(ACCOUNT_ITEM, selectRow); if(value==null && load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; - long aLong = dynamicObject.getLong("zcgj_accounts_id"); + long aLong = dynamicObject.getLong("zcgj_account_item.id"); this.getModel().setValue(ACCOUNT_ITEM,aLong,selectRow); } } @@ -194,10 +194,10 @@ public class DailyloanbillExpAccPlugin extends AbstractBillPlugIn implements Plu if(accountItem==null){ QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue()); QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_account_item", new QFilter[]{nameQFilter,billTypeQFilter}); if(load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; - long aLong = dynamicObject.getLong("zcgj_accounts_id"); + long aLong = dynamicObject.getLong("zcgj_account_item.id"); this.getModel().setValue(ACCOUNT_ITEM,aLong,index); }else{ this.getModel().setValue(ACCOUNT_ITEM,null,index); @@ -209,10 +209,10 @@ public class DailyloanbillExpAccPlugin extends AbstractBillPlugIn implements Plu //if(accountItem == null){ QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue()); QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_account_item", new QFilter[]{nameQFilter,billTypeQFilter}); if(load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; - DynamicObject zcgjAccounts = dynamicObject.getDynamicObject("zcgj_accounts"); + DynamicObject zcgjAccounts = dynamicObject.getDynamicObject("zcgj_account_item"); if(zcgjAccounts!=null){ //会计科目 insertRow.set(ACCOUNT_ITEM,zcgjAccounts); diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyreimbursExpAccPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyreimbursExpAccPlugin.java index db09489..b9b41c1 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyreimbursExpAccPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyreimbursExpAccPlugin.java @@ -96,7 +96,7 @@ public class DailyreimbursExpAccPlugin extends AbstractBillPlugIn implements Plu id=Long.valueOf(inputValue.toString()); } if(id!=null){ - QFilter nameQFilter = new QFilter(prefix+"_accounts",QCP.equals,id); + QFilter nameQFilter = new QFilter(prefix+"_account_item",QCP.equals,id); QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter,billTypeQFilter}); DynamicObject dynamicObject2 = this.getModel().getDataEntity(true).getDynamicObjectCollection(EXPENSE_ENTRY_ENTITY).get(selectRow); @@ -121,11 +121,11 @@ public class DailyreimbursExpAccPlugin extends AbstractBillPlugIn implements Plu String id = String.valueOf(inputValue) ; QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,Long.valueOf(id)); QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts,zcgj_entryentity.zcgj_rim_expense_type", new QFilter[]{nameQFilter,billTypeQFilter}); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_account_item,zcgj_entryentity.zcgj_rim_expense_type", new QFilter[]{nameQFilter,billTypeQFilter}); Object value = this.getModel().getValue(ACCOUNT_ITEM, selectRow); if(value==null && load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; - long aLong = dynamicObject.getLong("zcgj_accounts_id"); + long aLong = dynamicObject.getLong("zcgj_account_item.id"); this.getModel().setValue(ACCOUNT_ITEM,aLong,selectRow); } } @@ -189,10 +189,10 @@ public class DailyreimbursExpAccPlugin extends AbstractBillPlugIn implements Plu if(accountItem==null){ QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue()); QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_account_item", new QFilter[]{nameQFilter,billTypeQFilter}); if(load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; - long aLong = dynamicObject.getLong("zcgj_accounts_id"); + long aLong = dynamicObject.getLong("zcgj_account_item.id"); this.getModel().setValue(ACCOUNT_ITEM,aLong,index); }else{ this.getModel().setValue(ACCOUNT_ITEM,null,index); @@ -204,10 +204,10 @@ public class DailyreimbursExpAccPlugin extends AbstractBillPlugIn implements Plu //if(accountItem == null){ QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue()); QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_account_item", new QFilter[]{nameQFilter,billTypeQFilter}); if(load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; - DynamicObject zcgjAccounts = dynamicObject.getDynamicObject("zcgj_accounts"); + DynamicObject zcgjAccounts = dynamicObject.getDynamicObject("zcgj_account_item"); if(zcgjAccounts!=null){ //会计科目 insertRow.set(ACCOUNT_ITEM,zcgjAccounts); diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PrepaybillExpAccPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PrepaybillExpAccPlugin.java index 300a589..6f53d0f 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PrepaybillExpAccPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PrepaybillExpAccPlugin.java @@ -100,7 +100,7 @@ public class PrepaybillExpAccPlugin extends AbstractBillPlugIn implements Plugin id=Long.valueOf(inputValue.toString()); } if(id!=null){ - QFilter nameQFilter = new QFilter(prefix+"_accounts", QCP.equals,id); + QFilter nameQFilter = new QFilter(prefix+"_account_item", QCP.equals,id); QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter,billTypeQFilter}); DynamicObject dynamicObject2 = this.getModel().getDataEntity(true).getDynamicObjectCollection(EXPENSE_ENTRY_ENTITY).get(selectRow); @@ -125,11 +125,11 @@ public class PrepaybillExpAccPlugin extends AbstractBillPlugIn implements Plugin String id = String.valueOf(inputValue) ; QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,Long.valueOf(id)); QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_account_item", new QFilter[]{nameQFilter,billTypeQFilter}); Object value = this.getModel().getValue(ACCOUNT_ITEM, selectRow); if(value==null && load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; - long aLong = dynamicObject.getLong("zcgj_accounts_id"); + long aLong = dynamicObject.getLong("zcgj_account_item.id"); this.getModel().setValue(ACCOUNT_ITEM,aLong,selectRow); } } @@ -192,10 +192,10 @@ public class PrepaybillExpAccPlugin extends AbstractBillPlugIn implements Plugin if(accountItem==null){ QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue()); QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_account_item", new QFilter[]{nameQFilter,billTypeQFilter}); if(load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; - long aLong = dynamicObject.getLong("zcgj_accounts_id"); + long aLong = dynamicObject.getLong("zcgj_account_item.id"); this.getModel().setValue(ACCOUNT_ITEM,aLong,index); }else{ this.getModel().setValue(ACCOUNT_ITEM,null,index); @@ -207,10 +207,10 @@ public class PrepaybillExpAccPlugin extends AbstractBillPlugIn implements Plugin //if(accountItem == null){ QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue()); QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_account_item", new QFilter[]{nameQFilter,billTypeQFilter}); if(load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; - DynamicObject zcgjAccounts = dynamicObject.getDynamicObject("zcgj_accounts"); + DynamicObject zcgjAccounts = dynamicObject.getDynamicObject("zcgj_account_item"); if(zcgjAccounts!=null){ //会计科目 insertRow.set(ACCOUNT_ITEM,zcgjAccounts); diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PublicreimbursebillExpAccPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PublicreimbursebillExpAccPlugin.java index 15a2241..de79c9d 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PublicreimbursebillExpAccPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PublicreimbursebillExpAccPlugin.java @@ -100,7 +100,7 @@ public class PublicreimbursebillExpAccPlugin extends AbstractBillPlugIn implemen id=Long.valueOf(inputValue.toString()); } if(id!=null){ - QFilter nameQFilter = new QFilter(prefix+"_accounts", QCP.equals,id); + QFilter nameQFilter = new QFilter(prefix+"_account_item", QCP.equals,id); QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); DynamicObject dynamicObject1 = BusinessDataServiceHelper.loadSingle(MAP_TABLE, "createorg,zcgj_entryentity,zcgj_entryentity.zcgj_entity_items", new QFilter[]{nameQFilter,billTypeQFilter}); DynamicObject dynamicObject2 = this.getModel().getDataEntity(true).getDynamicObjectCollection(EXPENSE_ENTRY_ENTITY).get(selectRow); @@ -125,11 +125,11 @@ public class PublicreimbursebillExpAccPlugin extends AbstractBillPlugIn implemen String id = String.valueOf(inputValue) ; QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,Long.valueOf(id)); QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_account_item", new QFilter[]{nameQFilter,billTypeQFilter}); Object value = this.getModel().getValue(ACCOUNT_ITEM, selectRow); if(value==null && load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; - long aLong = dynamicObject.getLong("zcgj_accounts_id"); + long aLong = dynamicObject.getLong("zcgj_account_item.id"); this.getModel().setValue(ACCOUNT_ITEM,aLong,selectRow); } } @@ -192,10 +192,10 @@ public class PublicreimbursebillExpAccPlugin extends AbstractBillPlugIn implemen if(accountItem==null){ QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue()); QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_account_item", new QFilter[]{nameQFilter,billTypeQFilter}); if(load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; - long aLong = dynamicObject.getLong("zcgj_accounts_id"); + long aLong = dynamicObject.getLong("zcgj_account_item.id"); this.getModel().setValue(ACCOUNT_ITEM,aLong,index); }else{ this.getModel().setValue(ACCOUNT_ITEM,null,index); @@ -207,10 +207,10 @@ public class PublicreimbursebillExpAccPlugin extends AbstractBillPlugIn implemen //if(accountItem == null){ QFilter nameQFilter = new QFilter(prefix+"_entryentity.zcgj_entity_items.id", QCP.equals,listSelectedRow.getPrimaryKeyValue()); QFilter billTypeQFilter = new QFilter(prefix+"_entryentity.zcgj_rim_expense_type.number",QCP.equals,BILL_TYPE); - DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_accounts", new QFilter[]{nameQFilter,billTypeQFilter}); + DynamicObject[] load = BusinessDataServiceHelper.load(MAP_TABLE, "createorg,zcgj_account_item", new QFilter[]{nameQFilter,billTypeQFilter}); if(load!=null && load.length>0){ DynamicObject dynamicObject = load[0]; - DynamicObject zcgjAccounts = dynamicObject.getDynamicObject("zcgj_accounts"); + DynamicObject zcgjAccounts = dynamicObject.getDynamicObject("zcgj_account_item"); if(zcgjAccounts!=null){ //会计科目 insertRow.set(ACCOUNT_ITEM,zcgjAccounts); From 2f17723ba57e2a38195c4a54bf98a3428e3287f1 Mon Sep 17 00:00:00 2001 From: zhangzhiguo Date: Tue, 7 Jan 2025 15:31:45 +0800 Subject: [PATCH 3/3] =?UTF-8?q?1.=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ontractbillContractpartyDefaultPlugin.java | 92 +++++++++++- .../plugin/form/CostcompanyDefaultPlugin.java | 138 ++++++++++++++++++ .../zcdev/fs/plugin/form/OrgCheckUtils.java | 20 ++- .../form/TriprCostcompanyDefaultPlugin.java | 128 ++++++++++++++++ 4 files changed, 371 insertions(+), 7 deletions(-) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/CostcompanyDefaultPlugin.java create mode 100644 code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TriprCostcompanyDefaultPlugin.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/ContractbillContractpartyDefaultPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/ContractbillContractpartyDefaultPlugin.java index 68deb2e..e5fe291 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/ContractbillContractpartyDefaultPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/ContractbillContractpartyDefaultPlugin.java @@ -3,6 +3,15 @@ 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.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.form.ConfirmCallBackListener; +import kd.bos.form.MessageBoxOptions; +import kd.bos.form.control.events.BeforeItemClickEvent; +import kd.bos.form.control.events.ItemClickEvent; +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; @@ -22,14 +31,87 @@ public class ContractbillContractpartyDefaultPlugin extends AbstractBillPlugIn Long mainOrgId = UserServiceHelper.getUserMainOrgId(currentUserId); //当前切换选择的组织 Long currentOrgId = RequestContext.get().getOrgId(); + Object company = this.getModel().getValue("costcompany");//核算组织 //当前所在的组织是属于矿山下的 - if(OrgCheckUtils.isKS(currentOrgId)){ - Object company = this.getModel().getValue("costcompany");//核算组织 - if(company!=null){ - DynamicObject companyObj = (DynamicObject)company; - this.getModel().setValue("contractparty",companyObj); + if(company!=null){ + DynamicObject companyObj = (DynamicObject)company; + Long companyId = companyObj.getLong("id"); + if(OrgCheckUtils.isKS(currentOrgId) && OrgCheckUtils.isKS(companyId)){ + QFilter numberFilter = new QFilter("number",QCP.equals,companyObj.getString("number")); + DynamicObject[] dynamicObjectOrg = BusinessDataServiceHelper.load("bos_org", "number,name", new QFilter[]{numberFilter}); + if(dynamicObjectOrg!=null){ + this.getModel().setValue("contractparty",dynamicObjectOrg[0]);//签约方名称 + this.getModel().setValue("partatypenew","bos_org");//甲方类型,枚举: bd_supplier :供应商 bd_customer :客户 bos_adminorg :公司(行政组织) bos_org :公司 + this.getModel().setValue("partanew",dynamicObjectOrg[0]);//甲方名称 + this.getView().updateView(); + } + //业务分类设置为默认 + QFilter nnumberFilter = new QFilter("number", QCP.equals,"MR"); + DynamicObject projectTypeObj = BusinessDataServiceHelper.loadSingle("er_projecttype", "createorg", new QFilter[]{nnumberFilter}); + if(projectTypeObj!=null){ + this.getModel().setValue("projecttype",projectTypeObj); + } + //费用项目设置为默认 + QFilter nameQFilterAccItem = new QFilter("number",QCP.equals,"MR"); + DynamicObject dynamicObjectAccItem = BusinessDataServiceHelper.loadSingle("er_expenseitemedit", "id,number,name", new QFilter[]{nameQFilterAccItem}); + if(dynamicObjectAccItem!=null){ + DynamicObjectCollection dynamicObjectCollection = this.getModel().getDataEntity().getDynamicObjectCollection("expenseentryentity"); + for (DynamicObject dynamicObject : dynamicObjectCollection) { + dynamicObject.set("expenseitem",dynamicObjectAccItem); + } + } } } } + + + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + Long currentUserId = UserServiceHelper.getCurrentUserId(); + // 当前用户的主职部门(组织) + Long mainOrgId = UserServiceHelper.getUserMainOrgId(currentUserId); + //当前切换选择的组织 + Long currentOrgId = RequestContext.get().getOrgId(); + Object company = this.getModel().getValue("costcompany");//核算组织 + //当前所在的组织是属于矿山下的 + if(company!=null){ + DynamicObject companyObj = (DynamicObject)company; + Long companyId = companyObj.getLong("id"); + if(OrgCheckUtils.isKS(currentOrgId) && OrgCheckUtils.isKS(companyId)){ + //监听工具栏按钮点击事件 + this.addItemClickListeners("advcontoolbarap3"); + //this.addClickListeners("advcontoolbarap"); + } + } + } + + @Override + public void itemClick(ItemClickEvent evt) { + //费用项目设置为默认 + super.itemClick(evt); + //付款计划增行 + if (evt.getItemKey().equals("addloancheck1")) { + //业务分类设置为默认 + QFilter nnumberFilter = new QFilter("number", QCP.equals,"MR"); + DynamicObject projectTypeObj = BusinessDataServiceHelper.loadSingle("er_projecttype", "createorg", new QFilter[]{nnumberFilter}); + if(projectTypeObj!=null){ + this.getModel().setValue("projecttype",projectTypeObj); + } + //费用项目设置为默认 + QFilter nameQFilterAccItem = new QFilter("number",QCP.equals,"MR"); + DynamicObject dynamicObjectAccItem = BusinessDataServiceHelper.loadSingle("er_expenseitemedit", "id,number,name", new QFilter[]{nameQFilterAccItem}); + if(dynamicObjectAccItem!=null){ + DynamicObjectCollection dynamicObjectCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("expenseentryentity"); + if(!dynamicObjectCollection.isEmpty()){ + DynamicObject dynamicObject = dynamicObjectCollection.get(dynamicObjectCollection.size() - 1); + dynamicObject.set("expenseitem",dynamicObjectAccItem); + this.getView().updateView("expenseentryentity"); + } + } + } + } + + } 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 new file mode 100644 index 0000000..cc222bd --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/CostcompanyDefaultPlugin.java @@ -0,0 +1,138 @@ +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.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.form.control.events.ItemClickEvent; +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.EventObject; + +/** + * 对公报销单、费用报销单 成本中心默认值 + */ +public class CostcompanyDefaultPlugin extends AbstractBillPlugIn implements Plugin { + + + @Override + public void afterCreateNewData(EventObject e) { + super.afterCreateNewData(e); + setCostValue(); + } + + + @Override + public void propertyChanged(PropertyChangedArgs e) { + + String changeName = e.getProperty().getName(); + if (changeName.equals("costcompany") || changeName.equals("costdept")) { + setCostValue(); + } + super.propertyChanged(e); + } + + public void setCostValue(){ + Long currentUserId = UserServiceHelper.getCurrentUserId(); + // 当前用户的主职部门(组织) + Long mainOrgId = UserServiceHelper.getUserMainOrgId(currentUserId); + //当前切换选择的组织 + Long currentOrgId = RequestContext.get().getOrgId(); + Object company = this.getModel().getValue("costcompany");//核算组织 + //当前所在的组织是属于矿山下的 + if(company!=null){ + DynamicObject companyObj = (DynamicObject)company; + Long companyId = companyObj.getLong("id"); + String companyNumber = companyObj.getString("number"); + if(OrgCheckUtils.isKS(currentOrgId) && OrgCheckUtils.isKS(companyId)){ + //costcompany 费用承担公司 + //costdept 费用承担部门 + //费用明细分录 expenseentryentity + //费用明细分录-成本中心 std_entrycostcenter + DynamicObject costcompanyObj = null; + //如果费用承担公司是五家本部公司 + if(OrgCheckUtils.testCompanyNumberSet.contains(companyNumber) || OrgCheckUtils.ksNumber.equals(companyNumber)){ + //费用承担部门带入到成本中心 + costcompanyObj= (DynamicObject)this.getModel().getValue("costdept"); + }else{ + //费用承担公司带入到成本中心 + costcompanyObj= (DynamicObject)this.getModel().getValue("costcompany"); + } + + if(costcompanyObj!=null){ + DynamicObjectCollection dynamicObjectCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("expenseentryentity"); + QFilter numberFilter = new QFilter("number",QCP.equals,costcompanyObj.getString("number")); + DynamicObject[] dynamicObjectAccItem = BusinessDataServiceHelper.load("bos_costcenter", "number,name", new QFilter[]{numberFilter}); + for (DynamicObject dynamicObject : dynamicObjectCollection) { + if(dynamicObjectAccItem!=null){ + dynamicObject.set("std_entrycostcenter",dynamicObjectAccItem[0]); + getView().updateView("expenseentryentity"); + } + } + } + } + } + } + + + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + Long currentUserId = UserServiceHelper.getCurrentUserId(); + // 当前用户的主职部门(组织) + Long mainOrgId = UserServiceHelper.getUserMainOrgId(currentUserId); + //当前切换选择的组织 + Long currentOrgId = RequestContext.get().getOrgId(); + Object company = this.getModel().getValue("costcompany");//核算组织 + //当前所在的组织是属于矿山下的 + if(company!=null){ + DynamicObject companyObj = (DynamicObject)company; + Long companyId = companyObj.getLong("id"); + if(OrgCheckUtils.isKS(currentOrgId) && OrgCheckUtils.isKS(companyId)){ + //监听工具栏按钮点击事件 + this.addItemClickListeners("advcontoolbarap3"); + //this.addClickListeners("advcontoolbarap"); + } + } + } + + @Override + public void itemClick(ItemClickEvent evt) { + //费用项目设置为默认 + + Object company = this.getModel().getValue("costcompany");//核算组织 + if (company!=null && evt.getItemKey().equals("addloancheck1")) { + DynamicObject companyObj = (DynamicObject)company; + String companyNumber = companyObj.getString("number"); + DynamicObject costcompanyObj = null; + //如果费用承担公司是五家本部公司 + if(OrgCheckUtils.testCompanyNumberSet.contains(companyNumber) || OrgCheckUtils.ksNumber.equals(companyNumber)){ + //费用承担部门带入到成本中心 + costcompanyObj= (DynamicObject)this.getModel().getValue("costdept"); + }else{ + //费用承担公司带入到成本中心 + costcompanyObj= (DynamicObject)this.getModel().getValue("costcompany"); + } + if(costcompanyObj!=null){ + DynamicObjectCollection dynamicObjectCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("expenseentryentity"); + if(!dynamicObjectCollection.isEmpty()){ + //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){ + DynamicObject dynamicObject = dynamicObjectCollection.get(dynamicObjectCollection.size() - 1); + dynamicObject.set("std_entrycostcenter",dynamicObjectAccItem[0]); + } + } + this.getView().updateView("expenseentryentity"); + } + } + super.itemClick(evt); + + } +} diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/OrgCheckUtils.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/OrgCheckUtils.java index c279b93..d83c94f 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/OrgCheckUtils.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/OrgCheckUtils.java @@ -7,18 +7,34 @@ import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.org.OrgUnitServiceHelper; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; import java.util.Set; import java.util.stream.Collectors; public class OrgCheckUtils { + + public static String ksNumberTop = "10006431"; //矿山总部组织编码 + + + public static String ksNumber = "10006447";//矿山总部本部 + + //试点四家公司本部 + public static Set testCompanyNumberSet = new HashSet<>(); + static { + testCompanyNumberSet.add("10006461"); //南京本部 + testCompanyNumberSet.add("10006476"); //兖州本部 + testCompanyNumberSet.add("10007186"); //西安本部 + testCompanyNumberSet.add("10006939"); //天津本部 + } + + /** * 判断是否为矿山 */ public static boolean isKS(Long currentOrgId){ - String rootOrgCode = "10006431";//矿山总部组织编码 - QFilter filterOrgId = new QFilter("number", QCP.equals,rootOrgCode);//中材矿山建设有限公司 + QFilter filterOrgId = new QFilter("number", QCP.equals,ksNumberTop);//中材矿山建设有限公司 DynamicObject adminOrg = BusinessDataServiceHelper.loadSingle("bos_org", "number,name,fullname", new QFilter[]{filterOrgId}); long orgId = adminOrg.getLong("id"); List orgIds = new ArrayList<>(1); diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TriprCostcompanyDefaultPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TriprCostcompanyDefaultPlugin.java new file mode 100644 index 0000000..2f125a1 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TriprCostcompanyDefaultPlugin.java @@ -0,0 +1,128 @@ +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.dataentity.entity.DynamicObjectCollection; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.form.control.events.ItemClickEvent; +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.EventObject; + +/** + * 差旅报销单 成本中心默认值 + */ +public class TriprCostcompanyDefaultPlugin extends AbstractBillPlugIn implements Plugin { + + + @Override + public void afterCreateNewData(EventObject e) { + super.afterCreateNewData(e); + setCostValue(); + } + + @Override + public void propertyChanged(PropertyChangedArgs e) { + super.propertyChanged(e); + String changeName = e.getProperty().getName(); + if (changeName.equals("costcompany") || changeName.equals("costdept")) { + setCostValue(); + } + } + + public void setCostValue(){ + Long currentUserId = UserServiceHelper.getCurrentUserId(); + // 当前用户的主职部门(组织) + Long mainOrgId = UserServiceHelper.getUserMainOrgId(currentUserId); + //当前切换选择的组织 + Long currentOrgId = RequestContext.get().getOrgId(); + Object company = this.getModel().getValue("costcompany");//核算组织 + //当前所在的组织是属于矿山下的 + if(company!=null){ + DynamicObject companyObj = (DynamicObject)company; + Long companyId = companyObj.getLong("id"); + String companyNumber = companyObj.getString("number"); + if(OrgCheckUtils.isKS(currentOrgId) && OrgCheckUtils.isKS(companyId)){ + //costcompany 费用承担公司 + //costdept 费用承担部门 + //费用明细分录 expenseentryentity + //费用明细分录-成本中心 std_entrycostcenter + DynamicObject costcompanyObj = null; + //如果费用承担公司是五家本部公司 + if(OrgCheckUtils.testCompanyNumberSet.contains(companyNumber) || OrgCheckUtils.ksNumber.equals(companyNumber)){ + //费用承担部门带入到成本中心 + costcompanyObj= (DynamicObject)this.getModel().getValue("costdept"); + }else{ + //费用承担公司带入到成本中心 + costcompanyObj= (DynamicObject)this.getModel().getValue("costcompany"); + } + + if(costcompanyObj!=null){ + QFilter numberFilter = new QFilter("number",QCP.equals,costcompanyObj.getString("number")); + DynamicObject[] dynamicObjectAccItem = BusinessDataServiceHelper.load("bos_costcenter", "number,name", new QFilter[]{numberFilter}); + this.getModel().setValue("std_costcenter",dynamicObjectAccItem[0]); + getView().updateView("std_costcenter"); + } + } + } + } + + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + Long currentUserId = UserServiceHelper.getCurrentUserId(); + // 当前用户的主职部门(组织) + Long mainOrgId = UserServiceHelper.getUserMainOrgId(currentUserId); + //当前切换选择的组织 + Long currentOrgId = RequestContext.get().getOrgId(); + Object company = this.getModel().getValue("costcompany");//核算组织 + //当前所在的组织是属于矿山下的 + if(company!=null){ + DynamicObject companyObj = (DynamicObject)company; + Long companyId = companyObj.getLong("id"); + if(OrgCheckUtils.isKS(currentOrgId) && OrgCheckUtils.isKS(companyId)){ + //监听工具栏按钮点击事件 + this.addItemClickListeners("advcontoolbarap3"); + //this.addClickListeners("advcontoolbarap"); + } + } + } + + @Override + public void itemClick(ItemClickEvent evt) { + //费用项目设置为默认 + + Object company = this.getModel().getValue("costcompany");//核算组织 + if (company!=null && evt.getItemKey().equals("addloancheck1")) { + DynamicObject companyObj = (DynamicObject)company; + String companyNumber = companyObj.getString("number"); + DynamicObject costcompanyObj = null; + //如果费用承担公司是五家本部公司 + if(OrgCheckUtils.testCompanyNumberSet.contains(companyNumber) || OrgCheckUtils.ksNumber.equals(companyNumber)){ + //费用承担部门带入到成本中心 + costcompanyObj= (DynamicObject)this.getModel().getValue("costdept"); + }else{ + //费用承担公司带入到成本中心 + costcompanyObj= (DynamicObject)this.getModel().getValue("costcompany"); + } + if(costcompanyObj!=null){ + DynamicObjectCollection dynamicObjectCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("expenseentryentity"); + if(!dynamicObjectCollection.isEmpty()){ + //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){ + this.getModel().setValue("std_costcenter",dynamicObjectAccItem[0]); + } + } + } + } + super.itemClick(evt); + + } +}