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/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/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/DailyloanbillExpAccPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyloanbillExpAccPlugin.java index b0614a4..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 @@ -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); @@ -97,8 +102,9 @@ public class DailyloanbillExpAccPlugin extends AbstractBillPlugIn implements Plu id=Long.valueOf(inputValue.toString()); } 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 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); boolean isEx = false; if(dynamicObject2!=null){ @@ -120,11 +126,12 @@ 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_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); } } @@ -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,10 +193,11 @@ 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_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); @@ -191,10 +208,11 @@ 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_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 736c3f4..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 @@ -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); @@ -94,8 +96,9 @@ public class DailyreimbursExpAccPlugin extends AbstractBillPlugIn implements Plu id=Long.valueOf(inputValue.toString()); } 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 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); boolean isEx = false; if(dynamicObject2!=null){ @@ -117,11 +120,12 @@ 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_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); } } @@ -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,10 +188,11 @@ 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_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); @@ -189,10 +203,11 @@ 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_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/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/PrepaybillExpAccPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/PrepaybillExpAccPlugin.java index edd0a19..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 @@ -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); @@ -98,8 +100,9 @@ public class PrepaybillExpAccPlugin extends AbstractBillPlugIn implements Plugin id=Long.valueOf(inputValue.toString()); } 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 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); boolean isEx = false; if(dynamicObject2!=null){ @@ -121,11 +124,12 @@ 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_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); } } @@ -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,10 +191,11 @@ 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_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); @@ -192,10 +206,11 @@ 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_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 a43a815..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 @@ -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); @@ -97,8 +100,9 @@ public class PublicreimbursebillExpAccPlugin extends AbstractBillPlugIn implemen id=Long.valueOf(inputValue.toString()); } 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 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); boolean isEx = false; if(dynamicObject2!=null){ @@ -120,11 +124,12 @@ 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_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); } } @@ -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,10 +191,11 @@ 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_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); @@ -191,10 +206,11 @@ 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_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/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); + + } +}