【7.2.5】【org】更新获取上级部门的方法

pull/37/head
fengshuonan 2022-10-01 14:15:31 +08:00
parent aff8e14eae
commit b290b2facb
1 changed files with 24 additions and 5 deletions

View File

@ -583,16 +583,30 @@ public class HrOrganizationServiceImpl extends ServiceImpl<HrOrganizationMapper,
return null; return null;
} }
String orgParentIdListStr = hrOrganization.getOrgPids(); String orgParentIdListStr = hrOrganization.getOrgPids();
// 去掉中括号符号
orgParentIdListStr = orgParentIdListStr.replaceAll("\\[", "");
orgParentIdListStr = orgParentIdListStr.replaceAll("]", "");
// 获取所有上级id列表
String[] orgParentIdList = orgParentIdListStr.split(","); String[] orgParentIdList = orgParentIdListStr.split(",");
if (reverse) { if (reverse) {
orgParentIdList = ArrayUtil.reverse(orgParentIdList); orgParentIdList = ArrayUtil.reverse(orgParentIdList);
} }
// 根据请求参数需要从orgParentIdList获取的下标 // 先删掉id为-1的机构因为-1是不存在的
ArrayList<String> parentOrgIdList = new ArrayList<>();
for (String orgIdItem : orgParentIdList) {
if (!TreeConstants.DEFAULT_PARENT_ID.toString().equals(orgIdItem)) {
parentOrgIdList.add(orgIdItem);
}
}
// 根据请求参数需要从parentOrgIdList获取的下标
int needGetArrayIndex = parentLevelNum - 1; int needGetArrayIndex = parentLevelNum - 1;
// orgParentIdList最大能提供的下表这里为什么是-2因为所有组织机构最顶级的父级id是[-1][-1]是不存在 // parentOrgIdList最大能提供的下标
int maxCanGetIndex = orgParentIdList.length - 2; int maxCanGetIndex = parentOrgIdList.size() - 1;
// 如果没有最顶级的上级,则他本身就是最顶级上级 // 如果没有最顶级的上级,则他本身就是最顶级上级
if (maxCanGetIndex < 0) { if (maxCanGetIndex < 0) {
@ -602,9 +616,14 @@ public class HrOrganizationServiceImpl extends ServiceImpl<HrOrganizationMapper,
// 根据参数传参,进行获取上级的操作 // 根据参数传参,进行获取上级的操作
String orgIdString; String orgIdString;
if (needGetArrayIndex <= (maxCanGetIndex)) { if (needGetArrayIndex <= (maxCanGetIndex)) {
orgIdString = orgParentIdList[needGetArrayIndex]; orgIdString = parentOrgIdList.get(needGetArrayIndex);
} else { } else {
orgIdString = orgParentIdList[maxCanGetIndex]; // 如果需要获取的下标,大于了最大下标
if (reverse) {
orgIdString = parentOrgIdList.get(maxCanGetIndex);
} else {
return orgId;
}
} }
return Long.valueOf(orgIdString); return Long.valueOf(orgIdString);
} }