diff --git a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/UserRoleDataScopeImpl.java b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/UserRoleDataScopeImpl.java index 44d93026b..d397fcceb 100644 --- a/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/UserRoleDataScopeImpl.java +++ b/kernel-s-system/system-business-permission/src/main/java/cn/stylefeng/roses/kernel/sys/modular/role/service/impl/UserRoleDataScopeImpl.java @@ -159,6 +159,9 @@ public class UserRoleDataScopeImpl implements UserRoleDataScopeApi { // 如果是32-指定机构层级及以下 else if (DataScopeTypeEnum.DEFINE_ORG_LEVEL_WITH_CHILD.getCode().equals(sysRoleDataScope.getDataScopeType())) { Long parentOrgLevelOrgId = organizationServiceApi.getParentOrgLevel(loginUser.getCurrentOrgId(), sysRoleDataScope.getOrgLevelCode()); + if (parentOrgLevelOrgId == null) { + continue; + } Set subOrgIdList = this.getPointOrgAndSub(parentOrgLevelOrgId); userOrgIdList.addAll(subOrgIdList); } @@ -192,6 +195,9 @@ public class UserRoleDataScopeImpl implements UserRoleDataScopeApi { * @since 2025/1/25 22:24 */ public Set getPointOrgAndSub(Long orgId) { + if (orgId == null) { + return CollectionUtil.set(false); + } Set subOrgIdList = this.dbOperatorApi.findSubListByParentId("sys_hr_organization", "org_pids", "org_id", orgId); subOrgIdList.add(orgId); return subOrgIdList;