diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmeListPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmeListPlugin.java index bb64d89..7d3964f 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmeListPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmeListPlugin.java @@ -100,7 +100,7 @@ public class InContractFinaceConfirmeListPlugin extends AbstractListPlugin imple @Override public void setFilter(SetFilterEvent e) { super.setFilter(e); - List qFilters = e.getQFilters(); + /*List qFilters = e.getQFilters(); for (QFilter qFilter : qFilters) { if("zcgj_org.id".equals(qFilter.getProperty())){ String cp = qFilter.getCP(); @@ -115,7 +115,7 @@ public class InContractFinaceConfirmeListPlugin extends AbstractListPlugin imple } this.getPageCache().put("current_zcgj_orgid_in", sb.substring(0, sb.length()-1)); } - } + }*/ } @Override diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmePlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmePlugin.java index 1a05ed8..c3fdfc4 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmePlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmePlugin.java @@ -3,6 +3,7 @@ package zcgj.zcdev.zcdev.pr.plugin.form; import kd.bos.bill.AbstractBillPlugIn; import kd.bos.bill.BillShowParameter; import kd.bos.bill.OperationStatus; +import kd.bos.context.RequestContext; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.dataentity.utils.StringUtils; @@ -20,7 +21,9 @@ 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.permission.api.HasPermOrgResult; import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.permission.PermissionServiceHelper; import kd.ec.contract.common.enums.DirectionEnum; import kd.sdk.plugin.Plugin; @@ -176,17 +179,29 @@ public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implement public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { String name = beforeF7SelectEvent.getProperty().getName(); if(name.equals("zcgj_ec_in_contract_sett")){ - IPageCache iPageCache = this.getView().getParentView().getService(IPageCache.class); - String listOrgId = iPageCache.get("current_zcgj_orgid_in"); - List ids = new ArrayList<>(); - if(StringUtils.isNotBlank(listOrgId)){ - for (String s : listOrgId.split(",")) { - ids.add(Long.parseLong(s)); - } + long userId = Long.parseLong(RequestContext.get().getUserId()); + boolean superUser = PermissionServiceHelper.isSuperUser(userId); //判断是否为全功能用户 + boolean adminUser = PermissionServiceHelper.isAdminUser(userId); //判断是否管理员用户 + if(!superUser && !adminUser) { + IPageCache iPageCache = this.getView().getParentView().getService(IPageCache.class); + //获取当前人员有权限的组织 + HasPermOrgResult userHasPermOrgs = PermissionServiceHelper.getUserHasPermOrgs(Long.parseLong(RequestContext.get().getUserId())); + //有权的组织 + List hasPermOrgs = userHasPermOrgs.getHasPermOrgs(); + + //String listOrgId = iPageCache.get("current_zcgj_orgid_in"); + // List ids = new ArrayList<>(); + /*if(StringUtils.isNotBlank(listOrgId)){ + for (String s : listOrgId.split(",")) { + ids.add(Long.parseLong(s)); + } + }*/ + + // DynamicObject zcgjOrg = (DynamicObject) this.getModel().getValue("zcgj_org"); + ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + QFilter qFilter = new QFilter("org", QCP.in, hasPermOrgs); + showParameter.getListFilterParameter().getQFilters().add(qFilter); } - ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); - QFilter qFilter = new QFilter("org", QCP.in, ids); - showParameter.getListFilterParameter().getQFilters().add(qFilter); } } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmeListPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmeListPlugin.java index 928bac5..727e484 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmeListPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmeListPlugin.java @@ -108,7 +108,7 @@ public class OutContractFinaceConfirmeListPlugin extends AbstractListPlugin impl @Override public void setFilter(SetFilterEvent e) { super.setFilter(e); - List qFilters = e.getQFilters(); + /*List qFilters = e.getQFilters(); for (QFilter qFilter : qFilters) { if("zcgj_org.id".equals(qFilter.getProperty())){ String cp = qFilter.getCP(); @@ -123,7 +123,7 @@ public class OutContractFinaceConfirmeListPlugin extends AbstractListPlugin impl } this.getPageCache().put("current_zcgj_orgid_out", sb.substring(0, sb.length()-1)); } - } + }*/ } @Override diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmePlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmePlugin.java index 30671c4..537c830 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmePlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmePlugin.java @@ -5,6 +5,7 @@ import kd.bos.algo.Row; import kd.bos.bill.AbstractBillPlugIn; import kd.bos.bill.BillShowParameter; import kd.bos.bill.OperationStatus; +import kd.bos.context.RequestContext; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.dataentity.utils.StringUtils; @@ -23,8 +24,10 @@ 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.permission.api.HasPermOrgResult; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.QueryServiceHelper; +import kd.bos.servicehelper.permission.PermissionServiceHelper; import kd.ec.contract.common.enums.DirectionEnum; import kd.sdk.plugin.Plugin; import zcgj.zcdev.zcdev.pr.utils.OrgCheckUtils; @@ -173,7 +176,7 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme EntryGrid control = this.getControl("zcgj_entryentity"); control.addHyperClickListener(this); //kd.bos.form.field.RefBillEdit - RefBillEdit outContractSett = this.getControl("current_zcgj_orgid_out"); //支出合同结算单 + RefBillEdit outContractSett = this.getControl("zcgj_ec_out_contract_sett"); //支出合同结算单 if(outContractSett != null) { outContractSett.addBeforeF7SelectListener(this); } @@ -266,17 +269,31 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { String name = beforeF7SelectEvent.getProperty().getName(); if(name.equals("zcgj_ec_out_contract_sett")){ - IPageCache iPageCache = this.getView().getParentView().getService(IPageCache.class); - String listOrgId = iPageCache.get("current_zcgj_orgid_out"); - List ids = new ArrayList<>(); - if(StringUtils.isNotBlank(listOrgId)){ - for (String s : listOrgId.split(",")) { - ids.add(Long.parseLong(s)); - } + long userId = Long.parseLong(RequestContext.get().getUserId()); + boolean superUser = PermissionServiceHelper.isSuperUser(userId); //判断是否为全功能用户 + boolean adminUser = PermissionServiceHelper.isAdminUser(userId); //判断是否管理员用户 + if(!superUser && !adminUser) { + //获取当前人员有权限的组织 + HasPermOrgResult userHasPermOrgs = PermissionServiceHelper.getUserHasPermOrgs(Long.parseLong(RequestContext.get().getUserId())); + //有权的组织 + List hasPermOrgs = userHasPermOrgs.getHasPermOrgs(); + + //IPageCache iPageCache = this.getView().getParentView().getService(IPageCache.class); + //String listOrgId = iPageCache.get("current_zcgj_orgid_out"); + //List ids = new ArrayList<>(); + /*if(StringUtils.isNotBlank(listOrgId)){ + for (String s : listOrgId.split(",")) { + hasPermOrgs.add(Long.parseLong(s)); + } + }*/ + + // DynamicObject zcgjOrg = (DynamicObject) this.getModel().getValue("zcgj_org"); + + ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + QFilter qFilter = new QFilter("org", QCP.in, hasPermOrgs); + showParameter.getListFilterParameter().getQFilters().add(qFilter); } - ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); - QFilter qFilter = new QFilter("org", QCP.in, ids); - showParameter.getListFilterParameter().getQFilters().add(qFilter); + }else if(name.equals("zcgj_cbs")) {//工序根据项目过滤 Object projectObj = this.getModel().getValue("zcgj_project"); if(projectObj instanceof DynamicObject){ diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/InContractSettleUnauditCheckOp.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/InContractSettleUnauditCheckOp.java new file mode 100644 index 0000000..0b86b7c --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/InContractSettleUnauditCheckOp.java @@ -0,0 +1,58 @@ +package zcgj.zcdev.zcdev.pr.plugin.operate; + +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.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; + +/** + * 收入合同结算冲销单反审核校验是否生成收入合同冲销单 + */ +public class InContractSettleUnauditCheckOp extends AbstractOperationServicePlugIn { + + @Override + public void onPreparePropertys(PreparePropertysEventArgs e) { + super.onPreparePropertys(e); + e.getFieldKeys().add("billno"); + //e.getFieldKeys().add("contract.zcgj_pricetype"); + } + + @Override + public void onAddValidators(AddValidatorsEventArgs e) { + super.onAddValidators(e); + //当前所在的组织是属于矿山下的 + e.getValidators().add(new ValidatorExt()); + } + + class ValidatorExt extends AbstractValidator { + @Override + public void validate() { + ExtendedDataEntity[] extendedDataEntities = this.getDataEntities(); + for (ExtendedDataEntity extendedDataEntity : extendedDataEntities) { + DynamicObject dataEntity = extendedDataEntity.getDataEntity(); + String billId = dataEntity.getString("id"); + String billno = dataEntity.getString("billno"); + //冲销单据 + /*boolean isReversabillid = dataEntity.getBoolean("zcgj_is_reversabillid"); + if (isReversabillid) { + DynamicObject[] load = BusinessDataServiceHelper.load("ec_in_contract_settle", "id,zcgj_reversabillid", new QFilter[]{new QFilter("zcgj_ec_outsettleid", QCP.equals, billId)}); + if (load != null && load.length > 0) { + this.addFatalErrorMessage(extendedDataEntity, "收入合同结算冲销单【"+billno+"】存在收入合同结算冲销单,请删除收入合同结算冲销单后再进行反审核操作。"); + return; + } + }*/ + + DynamicObject[] load = BusinessDataServiceHelper.load("zcgj_ec_in_finaceconfirm", "id,zcgj_ec_in_contractid", new QFilter[]{new QFilter("zcgj_ec_in_contractid", QCP.equals, billId)}); + if (load != null && load.length > 0) { + this.addFatalErrorMessage(extendedDataEntity, "收入合同结算单【"+billno+"】存在收入合同确认单,请删除收入合同确认单后再进行反审核操作。"); + return; + } + } + } + } +}