---
title: "6.1 岗位不校验唯一性"
docId: "357348658762481664"
source: "https://weapp.eteams.cn/build/techdoc/wdoc/index.html#/public/repository/91f5067f-775e-48f4-93a2-ce84ca0b9c2e/doc/357348658762481664"
---
- 二开标识
  
  ```text
   
  HRM_JOB_POSITION_FILTER_001
  
  ```
- 入参说明（Map<String, Object>，从request中获取 params）
  
  | 参数 | 类型 | 说明 |
  | --- | --- | --- |
  | key | string | 固定提供：param |
  | value | bean | 对应的参数信息 |
- param参数说明
  
  | 参数 | 类型 | 说明 |
  | --- | --- | --- |
  | type | String | 操作类型， edit-编辑 import-导入 |
  | importType | String | 导入方式 add-新增 cover-覆盖更新 |
  | param | Map | 数据源 |
- 返回参数说明（com.weaver.loom.context.domain.WeaHookResponse#setResult）
  
    - 必须提供HashMap，其中需要提供params作为key；value 也是一个hashmap；OA会根据params的内容按照入参支持的key覆盖到标准入参里面，然后进行查询
- 示例
  
  ```java
  public WeaHookResponse handle(WeaHookRequest request, WeaHookResponse response, AppInfo appInfo) throws Exception {
          //入参，修改入参并不会影响到埋点的原始数据
          Map<String, Object> param = request.getParams();
  
          //数据操作类型 edit: 表单新建/编辑 import: 导入
          String type = Util.null2String(param.get("type"));
          //导入类型 add: 新增 cover: 覆盖更新
          String importType = Util.null2String(param.get("importType"));
          /**
           * 数据源
           * name: 岗位名称 String
           * fullName: 岗位全称 String
           * code: 岗位编码 String
           * parent: 上级岗位 String/Long type为edit时为Long类型，值为上级岗位id；type为import时为String类型，值为上级岗位名称
           * department: 部门 String/Long type为edit时为Long类型，值为部门id；type为import时为String类型，值为部门名称
           */
          Map<String, Object> params = (Map<String, Object>) param.get("param");
          //TODO 校验
          JobPositionFilterDto jobPositionFilterDto = new JobPositionFilterDto();
          //校验状态
          jobPositionFilterDto.setStatus(true);
          //校验失败时设置错误信息
          jobPositionFilterDto.setErrorMsg("something goes wrong......");
  
          /**
           * 如果是导入操作，接口需要抛出需要输入的数据源
           */
          if("import".equals(type)) {
              Map<String, Object> data = ImmutableMapUtil.of(
                  "name", "test",//校验后的岗位名称
                  "fullName", "test",//校验后的岗位全称
                  "code", "test",//校验后的岗位编码
                  "parent", 1082359852001673217L,//校验后的上级岗位id
                  "department", 1092707686703153153L//校验后的组织id
              );
  
              //如果是覆盖更新，则需要获取岗位id
              if("cover".equals(importType)) {
                  Long id = 1082314656112164879L;//TODO 查询需要更新数据的岗位id
                  data.put("id", id);
              }
  
              jobPositionFilterDto.setData(data);
          }
  
          Map<String, Object> result = ImmutableMapUtil.of("data", jobPositionFilterDto);
  
          //设置出参
          response.setResult(result);
          return response;
      }
  ```
