diff --git a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrOrganizationServiceImpl.java b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrOrganizationServiceImpl.java index 5f7be6333..7ec122553 100644 --- a/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrOrganizationServiceImpl.java +++ b/kernel-s-system/system-business-organization/src/main/java/cn/stylefeng/roses/kernel/system/modular/organization/service/impl/HrOrganizationServiceImpl.java @@ -583,16 +583,30 @@ public class HrOrganizationServiceImpl extends ServiceImpl parentOrgIdList = new ArrayList<>(); + for (String orgIdItem : orgParentIdList) { + if (!TreeConstants.DEFAULT_PARENT_ID.toString().equals(orgIdItem)) { + parentOrgIdList.add(orgIdItem); + } + } + + // 根据请求参数,需要从parentOrgIdList获取的下标 int needGetArrayIndex = parentLevelNum - 1; - // orgParentIdList最大能提供的下表,这里为什么是-2,因为所有组织机构,最顶级的父级id是[-1],[-1]是不存在 - int maxCanGetIndex = orgParentIdList.length - 2; + // parentOrgIdList最大能提供的下标 + int maxCanGetIndex = parentOrgIdList.size() - 1; // 如果没有最顶级的上级,则他本身就是最顶级上级 if (maxCanGetIndex < 0) { @@ -602,9 +616,14 @@ public class HrOrganizationServiceImpl extends ServiceImpl