---
title: "人员上下级接口"
docId: "854842150056943616"
source: "https://weapp.eteams.cn/build/techdoc/wdoc/index.html#/public/repository/91f5067f-775e-48f4-93a2-ce84ca0b9c2e/doc/854842150056943616"
---
1. 人员上下级接口
  
  ```java
  @Autowired
  com.weaver.common.hrm.service.HrmCommonEmployeeService ;
  
  List<Long> queryIdsByRelationCondition(HrmEmpRelationCondition condition) ;
  ```

- HrmEmpRelationCondition参数说明
  
  | 字段名称 | 类型 | 说明 |
  | --- | --- | --- |
  | tenantKey | String | 租户key,必须提供 |
  | ids | list | employeid列表 |
  | relationType | HrmEmpRelationType | 查询类型 |
  | normalEmp | boolean | 仅在职；默认会返回离职人员 |
- HrmEmpRelationType说明
  
    - direct_superior 直接上级
    - other_superior 其他上级
    - indirect_superior 间接上级
    - open_access 权限开放
    - assistant 助理： 助理数据
    - all_superior 所有上级 (直接上级+其他上级+间接上级)
    - all_superior_include_assistant 所有上级含助理 (所有上级+助理)
    - all_type 全部类型 (所有上级含助理+权限开放)
    - direct_subordinates 直接下级
    - other_subordinates 其他下级
    - indirect_subordinates 间接下级
    - open_access_subordinates 权限开放：权限开放给我的人
    - assistant_subordinates 助理权限：下属数据
    - all_subordinates 所有下级(直接下级+其他下级+间接下级)
    - all_subordinates_include_assistant 所有下级含助理
    - all_type_subordinates 全部下级（直接下级+其他下级+间接下级+含助理+权限开放）

1. 检查人员上下级

```java
@Autowired
com.weaver.common.hrm.service.HrmCommonEmployeeService ;

boolean checkEmplelationByCondition(HrmEmpRelationCondition condition,
  List<Long> targetId) ;

// 示例1: 查看是否为所有上级（含直接上级、其他上级、间接上级）
// 说明： 判断 id=2的人员是否 id=1的上级
 boolean isSuperior = service.checkEmplelationByCondition(
                HrmEmpRelationCondition.builder()
                        .ids(Lists.newArrayList(1l))
                        .relationType(HrmEmpRelationType.all_superior)
                        .tenantKey("xxx")
                        .build(),
                Lists.newArrayList(2L)

        );
```

- HrmEmpRelationType说明 见 【人员上下级接口】中HrmEmpRelationType说明

调用示例

```java
List<Long> ids = new ArrayList<>() ; // 人员id
        String tenantKey = "" ; // 租户key
        // 所有上级 
        List<Long> allsuperIds = hrmCommonEmployeeService.queryIdsByRelationCondition(
                HrmEmpRelationCondition.builder()
                        .ids(ids)
                        .tenantKey(tenantKey)
                        .relationType(HrmEmpRelationType.all_superior)
                        .build()
        ).stream().distinct().collect(Collectors.toList());

// // //直接下属 (含非在职)
        List<Long> directSubIds = hrmCommonEmployeeService.queryIdsByRelationCondition(
                HrmEmpRelationCondition.builder()
                        .ids(ids)
                        .tenantKey(tenantKey)
                        .relationType(HrmEmpRelationType.direct_subordinates)
                        .build()
        ).stream().distinct().collect(Collectors.toList());
```
