# 流转入职任务

处于进行中的入职流程，可通过本接口实现手动开启、提交或审批入职任务

- 当任务处于「手动开启」时，可通过本接口手动开启任务，将任务状态流转到「进行中」
- 当任务处于「进行中」时，可通过本接口提交任务，将任务流转到「审批中」或「已完成」
- 当任务处于「审批中」时，可通过本接口审批任务，将任务流转到「已完成」或「已拒绝」
- 当任务处于「已拒绝」时，可通过本接口提交任务，将任务流转到「审批中」
**注意事项**：该接口会按照应用拥有的「待入职人员」的权限范围返回数据，请提前在「开发者后台 - 权限管理 - 数据权限-飞书人事(企业版)数据权限范围」中申请「待入职人员」权限范围

## 请求

基本 | &nbsp;
---|---
HTTP URL | https://open.feishu.cn/open-apis/corehr/v2/pre_hires/transform_onboarding_task
HTTP Method | POST
接口频率限制 | [1000 次/分钟、50 次/秒](https://open.feishu.cn/document/ukTMukTMukTM/uUzN04SN3QjL1cDN)
支持的应用类型 | Custom App
权限要求<br>**调用该 API 所需的权限。开启其中任意一项权限即可调用** | 入职常规任务的通用流转(corehr:pre_hire:transform_onboarding_task)

### 请求头

名称 | 类型 | 必填 | 描述
---|---|---|---
Authorization | string | 是 | `tenant_access_token`<br>**值格式**："Bearer `access_token`"<br>**示例值**："Bearer t-7f1bcd13fc57d46bac21793a18e560"<br>[了解更多：如何选择与获取 access token](https://open.feishu.cn/document/uAjLw4CM/ugTN1YjL4UTN24CO1UjN/trouble-shooting/how-to-choose-which-type-of-token-to-use)
Content-Type | string | 是 | **固定值**："application/json; charset=utf-8"

### 请求体

名称 | 类型 | 必填 | 描述
---|---|---|---
pre_hire_id | string | 是 | 待入职ID，可以通过[搜索待入职人员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)接口获得<br>**示例值**："7345005664477775407"
task_code | string | 是 | 任务标识码。<br>- 对于系统内置的任务，标识码与任务名称的对应关系如下所示：<br>> 其中 **创建账户SSO** 为隐藏的任务节点，在 **个人信息** 前自动执行。<br>- 1：职位信息<br>- 2：个人信息<br>- 3：创建账户SSO<br>- 4：签到<br>- 9：签署入职文件<br>- 对于自定义的任务节点（如：3095697a-065f-4627-a47c-46fe958a6754），名称的获取方式如下所示：<br>1.  通过 `pre_hire_id` 调用[搜索待入职人员信息](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/search)接口或[查询待入职](https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/corehr-v2/pre_hire/query)<br>2.  查询字段 `fields` 中添加 `onboarding_info.onboarding_task_list`<br>查询后返回的 onboarding_task_list 结构体中包含标识码和任务名字的对应关系，示例如下所示：<br>```json<br>{<br>"onboarding_task_list": [<br>{<br>"task_code": "3095697a-065f-4627-a47c-46fe958a6754",<br>"task_name": "修改入职日期",<br>"task_status": "uninitialized"<br>},<br>{<br>"task_code": "d37b9d7c-232d-4a55-98fa-541318234ede",<br>"task_name": "工签补充任务",<br>"task_status": "uninitialized"<br>}<br>]<br>}<br>```<br>**示例值**："27691344-699b-47fb-a352-7b41e992a536"
transform_type | string | 是 | 流转类型，当任务处于不同的状态时，通过该字段指定任务做何种类型的流转。<br>入职任务状态：<br>- uninitialized：任务未初始化<br>- not_started：任务未开始<br>- in_progress：任务进行中<br>- in_review：任务审批中<br>- rejected：任务已拒绝<br>- failed：任务失败<br>- skipped：任务自动跳过<br>- completed：任务完成<br>- exception：任务异常<br>- terminated：任务终止<br>- initiating：任务发起中<br>- manual_skipped：任务手动跳过<br>任务流转类型：<br>- manual_start_task：手动开启任务<br>> 当任务处于未开始状态时，可通过指定该类型手动开启任务<br>- submit_task：提交任务<br>> 当任务处于进行中和已拒绝时，可以通过指定该类型提交任务。创建账户(`task_code：3`)、签到（`task_code：4`）和电子签（`task_code：9`）任务不支持提交<br>- review_task：审批任务<br>> 当任务处于审批中时，可以通过指定该类型审批任务。通过本接口审批任务时，会忽略多个审批人审批的场景。<br>**示例值**："review_task"
review_decision | string | 否 | 审批结果，当`transform_type`为`review_task`时，该字段需要传值，否则报错。<br>审批结果：<br>- approve：通过<br>- reject：拒绝，<br>**示例值**："approve"
reason | string | 否 | 审批原因，审批任务时，如果`review_decision`传参为`approve`时，审批原因可以不填；如果`review_decision`传参为`reject`时，审批原因必填。<br>> 审批原因长度需小于3000字节<br>**示例值**："信息填写完整，允许通过"

### 请求体示例
```json
{
    "pre_hire_id": "7345005664477775407",
    "task_code": "27691344-699b-47fb-a352-7b41e992a536",
    "transform_type": "review_task",
    "review_decision": "approve",
    "reason": "信息填写完整，允许通过"
}
```

## 响应

### 响应体

名称 | 类型 | 描述
---|---|---
code | int | 错误码，非 0 表示失败
msg | string | 错误描述
data | \- | \-
success | boolean | 是否成功流转任务，流转成功时返回true，流转失败时返回false

### 响应体示例
```json
{
    "code": 0,
    "msg": "success",
    "data": {
        "success": true
    }
}
```

### 错误码

HTTP状态码 | 错误码 | 描述 | 排查建议
---|---|---|---
400 | 1161093 | Transit task failed. | 流转任务时系统报错，请联系管理员
400 | 1161095 | The task was not found, unable to operate. | 没有找到需要流转的任务，请检查pre_hire_id和task_code传参是否正确
400 | 1161096 | Task status error, unable to operate. | 任务状态不满足当前流转类型，不允许流转
400 | 1161097 | Permission denied, please contact the administrator. | 无权限，请先确认是否已申请`入职常规任务的通用流转`的应用权限
400 | 1161098 | The values of the required fields in the form are missing, and the task can not be submitted. | 任务表单配置的必填字段没有填写，需要填写之后再流转
400 | 1161116 | A conflict occurred as multiple people are operating at the same time. Please refresh the page and try again later. | 多人同时操作发生冲突，请稍后刷新页面后重试
400 | 1161129 | Unable to perform this action as this pre-hire isn't in the "To be onboarded" stage. | 该待入职人员流程不处于进行中，无法进行此操作，请检查待入职人员的入职状态是否处于进行中
400 | 1161142 | Current task not support to submit. | 当前任务不支持提交，请检查task_code传参，参数不支持传3（创建SSO任务），4（签到任务），9（电子签任务）

