绩效¶
获取考核计划列表¶
使用场景:获取考核计划列表
请求方式: POST(HTTPS)
请求地址:https://openapi.2haohr.com/api/performance/plan/list/?access_token=ACCESS_TOKEN
请求结构体示例:
{
"plan_name": "考核计划名称",
"status": 2,
"periods_start": "2025-01-01",
"periods_end": "2025-01-31",
"periods": 1,
"p": 1,
"limit": 10
}
请求参数说明:
| 参数 | 类型 | 是否必须 | 说明 | 参数说明 |
|---|---|---|---|---|
| plan_name | String | 否 | 考核计划名称 | |
| status | Number | 否 | 考核计划状态 | 1:未开始、2:进行中(默认) |
| periods_start | String | 否 | 考核周期开始时间 | yyyy-MM-dd |
| periods_end | String | 否 | 考核周期结束时间 | yyyy-MM-dd |
| periods | Number | 否 | 考核周期 | 1:月度、2:季度、3:半年度、4:年度、5:其他 |
| p | Number | 否 | 页码 | 默认:1 |
| limit | Number | 否 | 每页数 | 默认:10,最大:200 |
| access_token | String | 是 | 调用接口凭证 |
响应结构体示例:
{
"data": {
"p": 1,
"total_count": 1,
"totalpage": 1,
"objects": [
{
"status": 2,
"plan_id": "考核计划id",
"plan_type": 1,
"group_name": null,
"periods_start": "2025-01-01",
"periods_end": "2025-01-31",
"periods": 1,
"plan_emp_count": 2,
"plan_instructions": "考核说明",
"result_count": 0,
"plan_name": "考核计划名称",
"assessing_emp_count": 0,
"mode": "1"
}
]
},
"errcode": 0,
"errmsg": ""
}
响应参数说明:
| 参数 | 类型 | 是否必须 | 说明 | 参数说明 |
|---|---|---|---|---|
| p | Number | 是 | 当前页码 | |
| total_count | Number | 是 | 数据总条数 | |
| totalpage | Number | 是 | 总页数 | |
| errcode | Number | 是 | 返回码 | |
| errmsg | String | 是 | 对返回码的文本描述内容 | |
| data | Object | 是 | 返回数据 | |
| objects | List | 是 | 数据明细 | |
| plan_id | String | 是 | 计划id | |
| plan_name | String | 是 | 计划名称 | |
| group_name | String | 否 | 考核团队名称 | |
| plan_type | Number | 是 | 考核计划类型 | 1:团队考核、2:试用期考核、3:晋升考核 |
| status | Number | 是 | 考核计划状态 | 1:未开始、2:进行中、4:已完成 |
| mode | String | 是 | 考核方式 | 1:KPI考核、2:OKR考核 |
| periods | Number | 是 | 考核周期 | 1:月度、2:季度、3:半年度、4:年度、5:其他 |
| periods_start | String | 是 | 考核周期开始时间 | yyyy-MM-dd |
| periods_end | String | 是 | 考核周期结束时间 | yyyy-MM-dd |
| plan_instructions | String | 否 | 考核说明 | |
| assessing_emp_count | Number | 是 | 考核中员工数 | |
| plan_emp_count | Number | 是 | 考核总人数 | |
| result_count | Number | 是 | 已考核员工数 |
获取历史考核计划列表¶
使用场景:获取已完成的考核计划列表/上传的历史考核计划列表
请求方式: POST(HTTPS)
请求地址:https://openapi.2haohr.com/api/performance/plan/history/list/?access_token=ACCESS_TOKEN
请求结构体示例:
{
"plan_name": "考核计划名称",
"periods_start": "2024-01-01",
"periods_end": "2024-01-31",
"periods": 1,
"p": 1,
"limit": 10
}
请求参数说明:
| 参数 | 类型 | 是否必须 | 说明 | 参数说明 |
|---|---|---|---|---|
| plan_name | String | 否 | 考核计划名称 | |
| periods_start | String | 否 | 考核周期开始时间 | yyyy-MM-dd |
| periods_end | String | 否 | 考核周期结束时间 | yyyy-MM-dd |
| periods | Number | 否 | 考核周期 | 1:月度、2:季度、3:半年度、4:年度、5:其他 |
| p | Number | 否 | 页码 | 默认:1 |
| limit | Number | 否 | 每页数 | 默认:10,最大:200 |
| access_token | String | 是 | 调用接口凭证 |
响应结构体示例:
{
"data": {
"p": 1,
"total_count": 1,
"totalpage": 1,
"objects": [
{
"status": 4,
"plan_id": "考核计划id",
"conversation_person": 1,
"plan_type": 1,
"group_name": null,
"periods_start": "2024-01-01",
"periods_end": "2024-01-31",
"periods": 1,
"plan_emp_count": 2,
"plan_name": "考核计划名称",
"plan_instructions": "考核说明",
"is_update_plan": false,
"mode": "1"
}
]
},
"errcode": 0,
"errmsg": ""
}
响应参数说明:
| 参数 | 类型 | 是否必须 | 说明 | 参数说明 |
|---|---|---|---|---|
| p | Number | 是 | 当前页码 | |
| total_count | Number | 是 | 数据总条数 | |
| totalpage | Number | 是 | 总页数 | |
| errcode | Number | 是 | 返回码 | |
| errmsg | String | 是 | 对返回码的文本描述内容 | |
| data | Object | 是 | 返回数据 | |
| objects | List | 是 | 数据明细 | |
| plan_id | String | 是 | 计划id | |
| plan_name | String | 是 | 计划名称 | |
| plan_type | Number | 是 | 考核计划类型 | 1:团队考核(默认)、2:试用期考核、3:晋升考核 |
| status | Number | 是 | 考核计划状态 | 4:已完成 |
| mode | String | 是 | 考核方式 | 1:KPI考核、2:OKR考核 |
| periods | Number | 是 | 考核周期 | 1:月度、2:季度、3:半年度、4:年度、5:其他 |
| periods_start | String | 是 | 考核周期开始时间 | yyyy-MM-dd |
| periods_end | String | 是 | 考核周期结束时间 | yyyy-MM-dd |
| plan_instructions | String | 否 | 考核说明 | |
| conversation_person | Number | 是 | 已面谈人数 | |
| plan_emp_count | Number | 是 | 考核总人数 | |
| group_name | String | 否 | 考核团队名称 | |
| is_update_plan | Boolean | 是 | 是否是上传的考核计划 |
获取试用期/晋升考核计划列表¶
场景:获取试用期/晋升考核计划列表
请求方式: POST(HTTPS)
请求地址:https://openapi.2haohr.com/api/performance/plan/examine/list/?access_token=ACCESS_TOKEN
请求结构体示例:
{
"plan_type": 2,
"plan_status": 2,
"emp_name": "员工名称",
"p": 1,
"limit": 10
}
请求参数说明:
| 参数 | 类型 | 是否必须 | 说明 | 参数说明 |
|---|---|---|---|---|
| emp_name | String | 否 | 考核人名称 | |
| plan_type | Number | 否 | 考核计划类型 | 2:试用期考核(默认)、3:晋升考核 |
| plan_status | Number | 否 | 考核计划状态 | 2:进行中(默认)、4:已完成 |
| p | Number | 否 | 页码 | 默认:1 |
| limit | Number | 否 | 每页数 | 默认:10,最大:200 |
| access_token | String | 是 | 调用接口凭证 |
响应结构体示例:
{
"data": {
"p": 1,
"total_count": 1,
"totalpage": 1,
"objects": [
{
"company_id": "企业id",
"plan_id": "计划id",
"plan_name": "xxx的试用期考核",
"periods": 5,
"score": null,
"periods_start": "2025-01-01",
"periods_end": "2025-01-31",
"emp_id": "被考核人id",
"emp_name": "被考核人",
"node_type_code": 1,
"node_type_name": "待自评",
"plan_type": 2,
"conversation_count": 0,
"score_employee_list": [
{
"flow_node_id": "节点id",
"flow_node_sort": 1,
"score_employee_name": "处理人名称",
"score_user_type": 3,
"score_employee_id": "处理人id",
"flow_node_status": 1,
"flow_node_type": 1,
"super_level": -1
}
]
}
]
},
"errcode": 0,
"errmsg": ""
}
响应参数说明:
| 参数 | 类型 | 是否必须 | 说明 | 参数说明 |
|---|---|---|---|---|
| p | Number | 是 | 当前页码 | |
| total_count | Number | 是 | 数据总条数 | |
| totalpage | Number | 是 | 总页数 | |
| errcode | Number | 是 | 返回码 | |
| errmsg | String | 是 | 对返回码的文本描述内容 | |
| data | Object | 是 | 返回数据 | |
| objects | List | 是 | 数据明细 | |
| plan_id | String | 是 | 计划id | |
| plan_name | String | 是 | 计划名称 | |
| plan_type | Number | 是 | 考核计划类型 | 1:团队考核、2:试用期考核、3:晋升考核 |
| status | Number | 是 | 考核计划状态 | 1: 新建、2:进行中、4:已完成 |
| mode | String | 否 | 考核方式 | 1:KPI考核、2=OKR考核 |
| periods | Number | 否 | 考核周期 | 1:月度、2:季度、3:半年度、4:年度、5:其他 |
| periods_start | String | 是 | 考核周期开始时间 | yyyy-MM-dd |
| periods_end | String | 是 | 考核周期结束时间 | yyyy-MM-dd |
| plan_instructions | String | 否 | 考核说明 | |
| conversation_count | Number | 是 | 面谈记录次数 | |
| score | String | 否 | 考核评分 | |
| node_type_code | Number | 是 | 考核状态code | 1:待自评、2:评分中、3:待审核、5:待指标制定、6:待指标确认、99:已完成 |
| node_type_name | String | 是 | 考核状态名称 | 1:待自评、2:评分中、3:待审核、5:待指标制定、6:待指标确认、99:已完成 |
| score_employee_list | List | 是 | 处理人列表 | |
| - flow_node_type | Number | 是 | 节点类型 | 0:开始、1:自评节点、2:他人评分节点、3:审核节点、4:指定评分人评分节点、5:指标制定节点、6:指标确认节点、99:结束 |
| - flow_node_id | String | 是 | 处理节点id | |
| - flow_node_status | Number | 否 | 节点状态 | 0:未开始、1:进行中、2:已完成、4:跳过、-1:异常/角色下其他人已处理 |
| - node_sort | Number | 是 | 节点排序 | 实际员工处理顺序排序值 |
| - score_employee_name | String | 是 | 处理员工姓名 | |
| - score_employee_name_id | String | 是 | 处理员工id | |
| - score_user_type | String | 是 | 处理人类型 | 1:主管、2:指定成员、3:被考核人、4:角色、6:同级、7:下级 |
| - super_level | Number | 否 | 主管级别 | 主管类型时返回对应主管级别 |
获取考核计划详情¶
使用场景:获取考核计划的基础信息
请求方式: GET(HTTPS)
请求地址:https://openapi.2haohr.com/api/performance/plan/detail/?access_token=ACCESS_TOKEN
请求结构体示例:
https://openapi.2haohr.com/api/performance/plan/detail/?access_token=ACCESS_TOKEN&plan_id=xxx
请求参数说明:
| 参数 | 类型 | 是否必须 | 说明 | 参数说明 |
|---|---|---|---|---|
| plan_id | String | 是 | 计划Id | |
| access_token | String | 是 | 调用接口凭证 |
响应结构体示例:
{
"data": {
"mode": "1",
"periods": 1,
"periods_end": "2025-01-31",
"periods_start": "2025-01-01",
"plan_emp_use_instructions": "绩效考核 - 员工填写说明",
"plan_id": "计划id",
"plan_instructions": "绩效考核 - 考核说明",
"plan_name": "考核计划名称",
"plan_type": 1,
"status": 1
},
"errcode": 0,
"errmsg": ""
}
响应参数说明:
| 参数 | 类型 | 是否必须 | 说明 | 参数说明 |
|---|---|---|---|---|
| errcode | Number | 是 | 返回码 | |
| errmsg | String | 是 | 对返回码的文本描述内容 | |
| data | Object | 是 | 返回数据 | |
| plan_id | String | 是 | 计划id | |
| plan_name | String | 是 | 计划名称 | |
| plan_type | Number | 是 | 考核计划类型 | 1:团队考核(默认)、2:试用期考核、3:晋升考核 |
| status | Number | 是 | 考核计划状态 | 1:新建、2:进行中、4:已完成 |
| mode | String | 是 | 考核方式 | 1:KPI考核(默认)、2:OKR考核 |
| periods | Number | 是 | 考核周期 | 1:月度、2:季度、3:半年度、4:年度、5:其他 |
| periods_start | String | 是 | 考核周期开始时间 | yyyy-MM-dd |
| periods_end | String | 是 | 考核周期结束时间 | yyyy-MM-dd |
| plan_instructions | String | 否 | 考核说明 | |
| plan_emp_use_instructions | String | 否 | 员工填写说明 |
获取计划的考核人员列表¶
使用场景:获取计划内所有考核人员列表及当前节点的待处理人
请求方式: POST(HTTPS)
请求地址:https://openapi.2haohr.com/api/performance/plan/plan_emp/list/?access_token=ACCESS_TOKEN
请求结构体示例:
{
"plan_id": "考核计划id",
"node_type": 1,
"emp_name": "被考核人员名称",
"p": 1,
"limit": 10
}
请求参数说明:
| 参数 | 类型 | 是否必须 | 说明 | 参数说明 |
|---|---|---|---|---|
| plan_id | String | 是 | 计划id | |
| node_type | Number | 否 | 考核节点状态 | 0:未开始,1:自评中,2:评分中,3:审核中,5:指标制定,6:指标确认,7:执行中(业绩值待录入等), 99:已完成 |
| emp_name | String | 否 | 被考核人名称 | |
| p | Number | 否 | 页码 | 默认:1 |
| limit | Number | 否 | 每页数 | 默认:10,最大:200 |
| access_token | String | 是 | 调用接口凭证 |
响应结构体示例:
{
"data": {
"p": 1,
"total_count": 1,
"totalpage": 1,
"objects": [
{
"emp_id": "被考核人员Id",
"emp_name": "被考核人员名称",
"grade": "",
"score": null,
"score_employee_list": [
{
"flow_node_id": "节点id",
"flow_node_sort": 2,
"score_employee_name": "处理人名称",
"score_user_type": 1,
"score_employee_id": "处理人id",
"flow_node_status": 1,
"flow_node_type": 6,
"super_level": 1
}
],
"status": 1
}
]
},
"errcode": 0,
"errmsg": ""
}
响应参数说明:
| 参数 | 类型 | 是否必须 | 说明 | 参数说明 |
|---|---|---|---|---|
| p | Number | 是 | 当前页码 | |
| total_count | Number | 是 | 数据总条数 | |
| totalpage | Number | 是 | 总页数 | |
| errcode | Number | 是 | 返回码 | |
| errmsg | String | 是 | 对返回码的文本描述内容 | |
| data | Object | 是 | 返回数据 | |
| objects | List | 是 | 数据明细 | |
| emp_id | String | 是 | 被考核人员Id | |
| emp_name | String | 是 | 被考核人员姓名 | |
| status | Number | 是 | 考核状态 | 0:未开始、1:开始、2:已完成、3:暂停、-1:异常 |
| node_type_code | Number | 否 | 当前节点类型 | 0:未开始、1:自评中、2:评分中、3:审核中、5:指标制定、6:指标确认、7:执行中(业绩值待录入等)、99:已完成 |
| node_type_name | String | 否 | 当前节点类型描述 | 0:未开始、1:自评中、2:评分中、3:审核中、5:指标制定、6:指标确认、7:执行中(业绩值待录入等)、99:已完成 |
| score | String | 否 | 分数 | |
| grade | String | 否 | 等级 | |
| score_employee_list | List | 是 | 处理人列表 | |
| - flow_node_type | Number | 是 | 节点类型 | 0:开始、1:自评节点、2:他人评分节点、3:审核节点、4:指定评分人评分节点、5:指标制定节点、6:指标确认节点、99:结束 |
| - flow_node_id | String | 是 | 处理节点id | |
| - flow_node_status | Number | 否 | 节点状态 | 0:未开始、1:进行中、2:已完成、4:跳过、-1:异常/角色下其他人已处理 |
| - node_sort | Number | 是 | 节点排序 | 实际员工处理顺序排序值 |
| - score_employee_name | String | 是 | 处理员工姓名 | |
| - score_employee_name_id | String | 是 | 处理员工id | |
| - score_user_type | String | 是 | 处理人类型 | 1:主管、2:指定成员、3:被考核人、4:角色、6:同级、7:下级 |
| - super_level | Number | 否 | 主管级别 | 主管类型时返回对应主管级别 |
获取被考核人考核流程信息¶
使用场景:获取被考核人考核流程明细记录, 当前节点状态为进行中的为当前执行节点员工
请求方式: POST(HTTPS)
请求地址:https://openapi.2haohr.com/api/performance/plan/emp_flow_node_chain/?access_token=ACCESS_TOKEN
请求结构体示例:
{
"plan_id": "计划id",
"emp_id": "员工id"
}
请求参数说明:
| 参数 | 类型 | 是否必须 | 说明 | 参数说明 |
|---|---|---|---|---|
| plan_id | String | 是 | 计划id | |
| emp_id | String | 是 | 员工id | |
| access_token | String | 是 | 调用接口凭证 |
响应结构体示例:
{
"data": {
"employee_id": "被考核人员Id",
"employee_name": "被考核人员姓名",
"flow_status": 0,
"plan_detail": {
"status": 2,
"plan_id": "计划id",
"plan_type": 1,
"periods_start": "2025-01-01",
"periods_end": "2025-01-31",
"mode": null,
"periods": null,
"plan_name": "2025年01月绩效考核计划",
"plan_instructions": null,
"plan_emp_use_instructions": "绩效考核 - 员工填写说明"
},
"score_employee_list": [
{
"flow_node_id": "处理节点id",
"flow_node_sort": 0,
"score_employee_id": "处理人id",
"score_employee_name": "处理人姓名",
"score_user_type": -1,
"work_status": null,
"flow_node_status": 0,
"flow_node_type": 0,
"super_level": -1
},
{
"flow_node_id": "处理节点id",
"flow_node_sort": 1,
"score_employee_id": "处理人id",
"score_employee_name": "处理人姓名",
"score_user_type": 3,
"work_status": 2,
"flow_node_status": 0,
"flow_node_type": 1,
"super_level": -1
},
{
"flow_node_id": "处理节点id",
"flow_node_sort": 2,
"score_employee_id": "处理人id",
"score_employee_name": "处理人姓名",
"score_user_type": 1,
"work_status": 1,
"flow_node_status": 0,
"flow_node_type": 2,
"super_level": 1
},
{
"flow_node_id": "处理节点id",
"flow_node_sort": 99,
"score_employee_id": "处理人id",
"score_employee_name": "处理人姓名",
"score_user_type": -1,
"work_status": null,
"flow_node_status": 0,
"flow_node_type": 99,
"super_level": -1
}
]
},
"errcode": 0,
"errmsg": ""
}
响应参数说明:
| 参数 | 类型 | 是否必须 | 说明 | 参数说明 |
|---|---|---|---|---|
| errcode | Number | 是 | 返回码 | |
| errmsg | String | 是 | 对返回码的文本描述内容 | |
| data | Object | 是 | 返回数据 | |
| plan_detail | Object | 是 | 计划信息 | |
| - plan_id | String | 是 | 计划id | |
| - plan_name | String | 是 | 计划名称 | |
| - periods | Number | 否 | 考核周期 | 1:月度、2:季度、3:半年度、4:年度、5:其他 |
| - periods_start | String | 是 | 考核周期开始时间 | yyyy-MM-dd |
| - periods_end | String | 是 | 考核周期结束时间 | yyyy-MM-dd |
| user_id | String | 是 | 被考核人员Id | |
| user_name | String | 是 | 被考核人员姓名 | |
| flow_status | Number | 是 | 流程状态 | -1:异常、0:未开始、1:已开始、2:已完成、3:暂停 |
| score_employee_list | List | 是 | 处理人列表 | |
| - flow_node_type | Number | 是 | 节点类型 | 0:开始、1:自评节点、2:他人评分节点、3:审核节点、4:指定评分人评分节点、5:指标制定节点、6:指标确认节点、99:结束 |
| - flow_node_id | String | 是 | 处理节点id | |
| - flow_node_status | Number | 否 | 节点状态 | 0:未开始、1:进行中、2:已完成、4:跳过、-1:异常/角色下其他人已处理 |
| - node_sort | Number | 是 | 节点排序 | 实际员工处理顺序排序值 |
| - score_employee_name | String | 是 | 处理员工姓名 | |
| - score_employee_name_id | String | 是 | 处理员工id | |
| - score_user_type | String | 是 | 处理人类型 | 1:主管、2:指定成员、3:被考核人、4:角色、6:同级、7:下级 |
| - super_level | Number | 否 | 主管级别 | 主管类型时返回对应主管级别 |
错误码¶
| 错误码 | 错误提示 | 触发场景 | 错误信息格式 |
|---|---|---|---|
| 11001 | 考核计划不存在或员工不在当前考核计划内 | 计划id不属于当前企业 或员工不在计划内 | { "data": null, "errcode": 11001, "errmsg": "考核计划不存在或员工不在当前考核计划内" } |
| 11000 | 参数异常 | 请求参数缺失 | { "data": null, "errcode": 11000, "errmsg": "参数异常" } |