支出财务确认单和收入财务确认单所属组织权限过滤

This commit is contained in:
zhangzhiguo 2025-06-23 17:47:50 +08:00
parent 4e42698434
commit ba78bf724c
3 changed files with 83 additions and 4 deletions

View File

@ -1,18 +1,29 @@
package zcgj.zcdev.zcdev.pr.plugin.form; package zcgj.zcdev.zcdev.pr.plugin.form;
import kd.bos.bill.BillShowParameter; import kd.bos.bill.BillShowParameter;
import kd.bos.context.RequestContext;
import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.entity.datamodel.ListSelectedRowCollection; import kd.bos.entity.datamodel.ListSelectedRowCollection;
import kd.bos.filter.FilterColumn;
import kd.bos.form.ShowType; import kd.bos.form.ShowType;
import kd.bos.form.control.events.ItemClickEvent; import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.form.events.FilterContainerInitArgs;
import kd.bos.form.events.HyperLinkClickArgs; import kd.bos.form.events.HyperLinkClickArgs;
import kd.bos.form.field.events.BeforeFilterF7SelectEvent;
import kd.bos.list.BillList; import kd.bos.list.BillList;
import kd.bos.list.plugin.AbstractListPlugin; import kd.bos.list.plugin.AbstractListPlugin;
import kd.bos.logging.Log; import kd.bos.logging.Log;
import kd.bos.logging.LogFactory; import kd.bos.logging.LogFactory;
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.BusinessDataServiceHelper;
import kd.bos.servicehelper.permission.PermissionServiceHelper;
import kd.bos.servicehelper.user.UserServiceHelper;
import kd.sdk.plugin.Plugin; import kd.sdk.plugin.Plugin;
import java.util.List;
/** /**
* 收入合同结算财务确认单 * 收入合同结算财务确认单
*/ */
@ -46,6 +57,38 @@ public class InContractFinaceConfirmeListPlugin extends AbstractListPlugin imple
} }
} }
//列表F7 所属组织增加过滤
@Override
public void filterContainerBeforeF7Select(BeforeFilterF7SelectEvent args) {
super.filterContainerBeforeF7Select(args);
//获取当前人员有权限的组织
HasPermOrgResult userHasPermOrgs = PermissionServiceHelper.getUserHasPermOrgs(Long.parseLong(RequestContext.get().getUserId()));
//有权的组织
List<Long> hasPermOrgs = userHasPermOrgs.getHasPermOrgs();
String fieldName = args.getFieldName();
if ("zcgj_org.id".equals(fieldName)) {
args.getQfilters().add(new QFilter("id", QCP.in, hasPermOrgs));
}
}
@Override
public void filterContainerInit(FilterContainerInitArgs args) {
super.filterContainerInit(args);
List<FilterColumn> commonFilterColumns = args.getCommonFilterColumns();
for (FilterColumn commonFilterColumn : commonFilterColumns) {
String fieldName = commonFilterColumn.getFieldName();
Long currentUserId = UserServiceHelper.getCurrentUserId();
// 当前用户所属组织
Long mainOrgId = UserServiceHelper.getUserMainOrgId(currentUserId);
//当前切换选择的组织
Long currentOrgId = RequestContext.get().getOrgId();
if("zcgj_org.name".equals(fieldName)) {
commonFilterColumn.setDefaultValue(String.valueOf(currentOrgId));
}
}
}
@Override @Override
public void itemClick(ItemClickEvent evt) { public void itemClick(ItemClickEvent evt) {
super.itemClick(evt); super.itemClick(evt);

View File

@ -68,7 +68,7 @@ public class InContractFinaceConfirmePlugin extends AbstractBillPlugIn implement
getModel().setValue("zcgj_description",ecincontractsettle.getString("description")); getModel().setValue("zcgj_description",ecincontractsettle.getString("description"));
getModel().setValue("zcgj_currency",ecincontractsettle.getDynamicObject("currency")); getModel().setValue("zcgj_currency",ecincontractsettle.getDynamicObject("currency"));
getModel().setValue("zcgj_invoice_org",ecincontractsettle.getDynamicObject("project").getDynamicObject("projectorg")); getModel().setValue("zcgj_invoice_org",ecincontractsettle.getDynamicObject("project").getDynamicObject("projectorg"));
// getModel().setValue("zcgj_jscustomer",ecincontractsettle.getDynamicObject("zcgj_jscustomer")); getModel().setValue("zcgj_jscustomer",ecincontractsettle.getDynamicObject("zcgj_jscustomer"));
DynamicObjectCollection itementry = ecincontractsettle.getDynamicObjectCollection("itementry"); DynamicObjectCollection itementry = ecincontractsettle.getDynamicObjectCollection("itementry");
//DynamicObjectCollection entryEntity = this.getModel().getEntryEntity("zcgj_itementry"); //DynamicObjectCollection entryEntity = this.getModel().getEntryEntity("zcgj_itementry");

View File

@ -1,18 +1,19 @@
package zcgj.zcdev.zcdev.pr.plugin.form; package zcgj.zcdev.zcdev.pr.plugin.form;
import kd.bos.bill.BillShowParameter; import kd.bos.bill.BillShowParameter;
import kd.bos.context.RequestContext;
import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.utils.StringUtils; import kd.bos.dataentity.utils.StringUtils;
import kd.bos.entity.datamodel.IDataModel; import kd.bos.entity.datamodel.IDataModel;
import kd.bos.entity.datamodel.ListSelectedRow; import kd.bos.entity.datamodel.ListSelectedRow;
import kd.bos.entity.datamodel.ListSelectedRowCollection; import kd.bos.entity.datamodel.ListSelectedRowCollection;
import kd.bos.filter.FilterColumn;
import kd.bos.form.FormShowParameter; import kd.bos.form.FormShowParameter;
import kd.bos.form.ShowType; import kd.bos.form.ShowType;
import kd.bos.form.StyleCss; import kd.bos.form.StyleCss;
import kd.bos.form.control.events.ItemClickEvent; import kd.bos.form.control.events.ItemClickEvent;
import kd.bos.form.events.HyperLinkClickArgs; import kd.bos.form.events.*;
import kd.bos.form.events.HyperLinkClickEvent; import kd.bos.form.field.events.BeforeFilterF7SelectEvent;
import kd.bos.form.events.HyperLinkClickListener;
import kd.bos.list.BillList; import kd.bos.list.BillList;
import kd.bos.list.plugin.AbstractListPlugin; import kd.bos.list.plugin.AbstractListPlugin;
import kd.bos.logging.Log; import kd.bos.logging.Log;
@ -22,8 +23,11 @@ import kd.bos.openapi.common.result.OpenApiResult;
import kd.bos.openapi.common.util.OpenApiSdkUtil; import kd.bos.openapi.common.util.OpenApiSdkUtil;
import kd.bos.orm.query.QCP; import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter; import kd.bos.orm.query.QFilter;
import kd.bos.permission.api.HasPermOrgResult;
import kd.bos.report.ReportList; import kd.bos.report.ReportList;
import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.bos.servicehelper.permission.PermissionServiceHelper;
import kd.bos.servicehelper.user.UserServiceHelper;
import kd.ec.contract.common.enums.DirectionEnum; import kd.ec.contract.common.enums.DirectionEnum;
import kd.ec.contract.common.enums.PayDirectionEnum; import kd.ec.contract.common.enums.PayDirectionEnum;
import kd.sdk.plugin.Plugin; import kd.sdk.plugin.Plugin;
@ -64,6 +68,38 @@ public class OutContractFinaceConfirmeListPlugin extends AbstractListPlugin impl
} }
} }
//列表F7 所属组织增加过滤
@Override
public void filterContainerBeforeF7Select(BeforeFilterF7SelectEvent args) {
super.filterContainerBeforeF7Select(args);
//获取当前人员有权限的组织
HasPermOrgResult userHasPermOrgs = PermissionServiceHelper.getUserHasPermOrgs(Long.parseLong(RequestContext.get().getUserId()));
//有权的组织
List<Long> hasPermOrgs = userHasPermOrgs.getHasPermOrgs();
String fieldName = args.getFieldName();
if ("zcgj_org.id".equals(fieldName)) {
args.getQfilters().add(new QFilter("id", QCP.in, hasPermOrgs));
}
}
@Override
public void filterContainerInit(FilterContainerInitArgs args) {
super.filterContainerInit(args);
List<FilterColumn> commonFilterColumns = args.getCommonFilterColumns();
for (FilterColumn commonFilterColumn : commonFilterColumns) {
String fieldName = commonFilterColumn.getFieldName();
Long currentUserId = UserServiceHelper.getCurrentUserId();
// 当前用户所属组织
Long mainOrgId = UserServiceHelper.getUserMainOrgId(currentUserId);
//当前切换选择的组织
Long currentOrgId = RequestContext.get().getOrgId();
if("zcgj_org.name".equals(fieldName)) {
commonFilterColumn.setDefaultValue(String.valueOf(currentOrgId));
}
}
}
@Override @Override
public void itemClick(ItemClickEvent evt) { public void itemClick(ItemClickEvent evt) {
super.itemClick(evt); super.itemClick(evt);