---
title: "5.组织上下级查询"
docId: "215546228711096320"
source: "https://weapp.eteams.cn/build/techdoc/wdoc/index.html#/public/repository/91f5067f-775e-48f4-93a2-ce84ca0b9c2e/doc/215546228711096320"
---
## 1. 条件查询上下级

```java
com.weaver.common.hrm.service.HrmCommonDepartmentService#findRelationOrgIdByCondition
```

- HrmOrgRelationCodition参数说明

| **字段名称** | **类型** | **说明** |
| --- | --- | --- |
| ids | List | 组织id:可以是分部id、或者部门id |
| tenantKey | string | 租户key;必须提供 |
| constainDisableOrg | boolean | 是否包含停用组织；org_direct_child_sucompany、org_direct_child_department 有效 |
| queryType | HrmOrgRelationQueryType | 查询方式； |

- HrmOrgRelationQueryType参数说明
  
    - org_direct_subcompany: 直接上级分部
      
      > 如果id为分部，返回当前分部的上级分部；如果id为部门，获取当前部门归属分部，返回归属分部的上级分部；
    - org_direct_department: 直接上级部门
      
      > 如果id为分部，返回 null如果id为部门，返回当前部门的上级部门
    - org_direct_child_sucompany：直接下级分部
    - org_all_child_subcompany: 查询所有下级分部
    - org_direct_child_department：直接下级部门
    - org_all_child_department: 查询所有下级部门
    - org_all_child_org： 查询所有下级组织
    - org_allSuper_subcompany: 所有上级分部
    - org_allSuper_department: 所有上级部门
    - org_allSuper_org: 查询所有上级组织
- 示例

```java
// 直接上级部门
 List<Long> orgRelationByCondtion =
                hrmCommonDepartmentService.findRelationOrgIdByCondition(
                        new HrmOrgRelationCodition()
                        .setIds(Arrays.asList(1L))
                        .setTenantKey("xxkey")
                        .setQueryType(HrmOrgRelationQueryType.org_direct_department)
                );
```

## 2. 获取上下级数量

```java
com.weaver.common.hrm.service.HrmCommonDepartmentService#countReationOrgMapByCondition
```

- 参数说明（HrmOrgRelationCodition）
  
  | 参数 | 类型 | 说明 |
  | --- | --- | --- |
  | ids | List | 组织id列表 |
  | tenantKey | string | 租户表示 |
  | constainDisableOrg | boolean | 是否包含封存 |
  | queryType | HrmOrgRelationQueryType | 查询类型：org_allSuper_org 所有上级组织；org_all_child_org 所有下级组织 |
- 返回参数（Map<Long,Long>）
  
  | 参数 | 类型 | 说明 |
  | --- | --- | --- |
  | key | long | 组织id;与入参中【组织id列表】相关 |
  | value | long | 数量；代表含义与【查询类型】有关 |

## 3. 根据条件和过滤范围获取上下级

```java
com.weaver.common.hrm.service.HrmCommonDepartmentService#findRelationOrgMapByCondition
```

- 入参说明
  
  | 参数 | 类型 | 说明 |
  | --- | --- | --- |
  | condition | HrmOrgRelationCodition | 查询条件 |
  | targetIds | List | 过滤范围集合；当提供空列表，则不过滤 |
  |  |  |  |
  
    - 参数说明（HrmOrgRelationCodition）
      
      | 参数 | 类型 | 说明 |
      | --- | --- | --- |
      | ids | List | 组织id列表 |
      | tenantKey | string | 租户表示 |
      | queryType | HrmOrgRelationQueryType | 查询类型：org_allSuper_org 所有上级组织；org_all_child_org 所有下级组织 |
      | containCurrent | boolean | 是否包含自身 |
- 返回参数（Map<Long,List<Long>>）
  
  | 参数 | 类型 | 说明 |
  | --- | --- | --- |
  | key | long | 组织id；与入参【组织id列表】有关 |
  | value | List<long> | 组织列表，代表含义与【查询类型】有关，如：org_allSuper_org ，返回所有上级组织列表；返回的列表仅在【过滤范围集合】范围内（如果该入参提供数据） |

## 4. 根据条件和过滤范围检查是否存在上下级关系

```java
com.weaver.common.hrm.service.HrmCommonDepartmentService#checkRelationOrgMapByCondition
```

- 入参说明，参考【3. 根据条件和过滤范围获取上下级】的入参说明
- 出参说明（Map<Long,Boolean>）
  
  | 参数 | 类型 |  |
  | --- | --- | --- |
  | key | Long | 组织id；与入参【组织id列表】有关 |
  | value | boolean | 是否包含；true 表示包含，false 表示不包含；具体是向上包含，向下包含，以【查询类型】为准 |
