人事招聘模块API文档
基本信息
- 模块名称: 人事招聘管理
- 模块代码: rs
- 版本: 1.0.0
- 更新日期: 2025-07-02
- 负责人: wuzilong
模块概述
人事招聘模块提供了招聘职位发布、应聘申请处理、应聘者管理等功能,帮助人事部门高效管理招聘流程。
数据表结构
1. 招聘职位表 (rs_job)
| 字段名 |
类型 |
必填 |
描述 |
| job_id |
bigint(20) |
是 |
职位ID,主键 |
| title |
varchar(100) |
是 |
职位名称 |
| department |
varchar(50) |
是 |
部门 |
| location |
varchar(100) |
是 |
工作地点 |
| description |
text |
是 |
职位描述 |
| requirements |
text |
是 |
任职要求 |
| is_active |
char(1) |
是 |
是否启用(0正常 1停用) |
| publish_time |
datetime |
否 |
发布时间 |
| views |
int(11) |
否 |
浏览次数 |
| create_by |
bigint(20) |
是 |
创建者 |
| create_time |
datetime |
是 |
创建时间 |
| update_by |
bigint(20) |
否 |
更新者 |
| update_time |
datetime |
否 |
更新时间 |
| remark |
varchar(500) |
否 |
备注 |
2. 应聘申请表 (rs_application)
| 字段名 |
类型 |
必填 |
描述 |
| application_id |
bigint(20) |
是 |
申请ID,主键 |
| job_id |
bigint(20) |
是 |
职位ID |
| applicant_id |
bigint(20) |
是 |
应聘者ID |
| apply_time |
datetime |
是 |
申请时间 |
| status |
varchar(20) |
是 |
状态(pending-待处理 interviewed-已面试 offered-已录用 rejected-已拒绝) |
| resume_path |
varchar(255) |
否 |
简历路径 |
| self_description |
text |
否 |
自我介绍 |
| hr_notes |
text |
否 |
HR备注 |
| create_by |
bigint(20) |
是 |
创建者 |
| create_time |
datetime |
是 |
创建时间 |
| update_by |
bigint(20) |
否 |
更新者 |
| update_time |
datetime |
否 |
更新时间 |
3. 应聘者表 (rs_applicant)
| 字段名 |
类型 |
必填 |
描述 |
| applicant_id |
bigint(20) |
是 |
应聘者ID,主键 |
| name |
varchar(100) |
是 |
姓名 |
| phone |
varchar(20) |
是 |
电话 |
| email |
varchar(100) |
是 |
邮箱 |
| resume_path |
varchar(255) |
否 |
简历路径 |
| self_intro |
text |
否 |
自我介绍 |
| user_id |
bigint(20) |
否 |
用户ID(关联系统用户) |
| create_by |
bigint(20) |
是 |
创建者 |
| create_time |
datetime |
是 |
创建时间 |
| update_by |
bigint(20) |
否 |
更新者 |
| update_time |
datetime |
否 |
更新时间 |
4. 教育经历表 (rs_education)
| 字段名 |
类型 |
必填 |
描述 |
| edu_id |
bigint(20) |
是 |
教育ID,主键 |
| applicant_id |
bigint(20) |
是 |
应聘者ID |
| school_name |
varchar(100) |
是 |
学校名称 |
| major |
varchar(100) |
是 |
专业 |
| degree |
varchar(50) |
是 |
学位 |
| start_date |
date |
是 |
开始日期 |
| end_date |
date |
是 |
结束日期 |
| description |
text |
否 |
描述 |
| create_by |
bigint(20) |
是 |
创建者 |
| create_time |
datetime |
是 |
创建时间 |
| update_by |
bigint(20) |
否 |
更新者 |
| update_time |
datetime |
否 |
更新时间 |
5. 工作经历表 (rs_work_experience)
| 字段名 |
类型 |
必填 |
描述 |
| exp_id |
bigint(20) |
是 |
经历ID,主键 |
| applicant_id |
bigint(20) |
是 |
应聘者ID |
| company_name |
varchar(100) |
是 |
公司名称 |
| position |
varchar(100) |
是 |
职位 |
| is_current |
char(1) |
是 |
是否在职(0是 1否) |
| start_date |
date |
是 |
开始日期 |
| end_date |
date |
否 |
结束日期 |
| description |
text |
否 |
描述 |
| create_by |
bigint(20) |
是 |
创建者 |
| create_time |
datetime |
是 |
创建时间 |
| update_by |
bigint(20) |
否 |
更新者 |
| update_time |
datetime |
否 |
更新时间 |
API接口列表
职位管理API
1. 查询职位列表
- 接口地址:
/job/list
- 请求方式: GET
- 权限标识:
rs:job:list
- 请求参数:
| 参数名 |
类型 |
必填 |
描述 |
| pageNum |
int |
否 |
页码 |
| pageSize |
int |
否 |
每页记录数 |
| title |
string |
否 |
职位名称 |
| department |
string |
否 |
部门 |
| isActive |
string |
否 |
状态(0正常 1停用) |
{
"total": 10,
"rows": [
{
"jobId": 1,
"title": "软件工程师",
"department": "tech",
"location": "北京",
"isActive": "0",
"publishTime": "2025-07-01 10:00:00",
"views": 100,
"createTime": "2025-07-01 10:00:00"
}
],
"code": 200,
"msg": "查询成功"
}
2. 获取公开的招聘职位列表
- 接口地址:
/job/public/list
- 请求方式: GET
- 权限标识: 无需权限
- 请求参数:
| 参数名 |
类型 |
必填 |
描述 |
| pageNum |
int |
否 |
页码 |
| pageSize |
int |
否 |
每页记录数 |
| title |
string |
否 |
职位名称 |
| department |
string |
否 |
部门 |
3. 获取职位详细信息
- 接口地址:
/job/{jobId}
- 请求方式: GET
- 权限标识:
rs:job:query
- 请求参数:
| 参数名 |
类型 |
必填 |
描述 |
| jobId |
long |
是 |
职位ID |
{
"code": 200,
"msg": "操作成功",
"data": {
"jobId": 1,
"title": "软件工程师",
"department": "tech",
"location": "北京",
"description": "负责系统设计和开发...",
"requirements": "本科及以上学历,3年以上相关经验...",
"isActive": "0",
"publishTime": "2025-07-01 10:00:00",
"views": 100,
"createBy": 1,
"createTime": "2025-07-01 10:00:00",
"updateBy": null,
"updateTime": null,
"remark": null
}
}
4. 新增招聘职位
- 接口地址:
/job
- 请求方式: POST
- 权限标识:
rs:job:add
- 请求参数:
| 参数名 |
类型 |
必填 |
描述 |
| title |
string |
是 |
职位名称 |
| department |
string |
是 |
部门 |
| location | string | 是 | 工作地点 |
| description | string | 是 | 职位描述 |
| requirements | string | 是 | 任职要求 |
| isActive | string | 是 | 是否启用(0正常 1停用) |
| remark | string | 否 | 备注 |
{
"code": 200,
"msg": "操作成功"
}
5. 修改招聘职位
- 接口地址:
/job
- 请求方式: PUT
- 权限标识:
rs:job:edit
- 请求参数:
| 参数名 |
类型 |
必填 |
描述 |
| jobId |
long |
是 |
职位ID |
| title |
string |
是 |
职位名称 |
| department |
string |
是 |
部门 |
| location |
string |
是 |
工作地点 |
| description |
string |
是 |
职位描述 |
| requirements |
string |
是 |
任职要求 |
| isActive |
string |
是 |
是否启用(0正常 1停用) |
| remark |
string |
否 |
备注 |
{
"code": 200,
"msg": "操作成功"
}
申请管理API
1. 查询申请记录列表
- 接口地址:
/application/list
- 请求方式: GET
- 权限标识:
rs:application:list
- 请求参数:
| 参数名 |
类型 |
必填 |
描述 |
| pageNum |
int |
否 |
页码 |
| pageSize |
int |
否 |
每页记录数 |
| jobTitle |
string |
否 |
职位名称 |
| applicantName |
string |
否 |
应聘者姓名 |
| status |
string |
否 |
状态 |
{
"total": 10,
"rows": [
{
"applicationId": 1,
"jobId": 1,
"applicantId": 1,
"jobTitle": "软件工程师",
"applicantName": "张三",
"applyTime": "2025-07-01 10:00:00",
"status": "pending",
"hrNotes": null,
"createTime": "2025-07-01 10:00:00"
}
],
"code": 200,
"msg": "查询成功"
}
2. 提交职位申请
- 接口地址:
/application/apply
- 请求方式: POST
- 权限标识: 无需权限
- 请求参数:
| 参数名 |
类型 |
必填 |
描述 |
| jobId |
long |
是 |
职位ID |
| applicantId |
long |
是 |
应聘者ID |
| resumePath |
string |
否 |
简历路径 |
| selfDescription |
string |
否 |
自我介绍 |
{
"code": 200,
"msg": "申请提交成功"
}
3. 更新申请状态
- 接口地址:
/application/status
- 请求方式: PUT
- 权限标识:
rs:application:edit
- 请求参数:
| 参数名 |
类型 |
必填 |
描述 |
| applicationId |
long |
是 |
申请ID |
| status |
string |
是 |
状态(pending-待处理 interviewed-已面试 offered-已录用 rejected-已拒绝) |
| hrNotes |
string |
否 |
HR备注 |
{
"code": 200,
"msg": "状态更新成功"
}
前端页面
页面结构
rs/
├── job/ # 职位管理
│ ├── index.vue # 职位管理列表
│ └── public.vue # 公开招聘职位列表
├── application/ # 申请管理
│ └── index.vue # 申请管理列表
├── applicant/ # 应聘者管理
│ └── index.vue # 应聘者管理列表
├── education/ # 教育经历管理
│ └── index.vue # 教育经历管理列表
├── experience/ # 工作经历管理
│ └── index.vue # 工作经历管理列表
└── index.ts # 路由配置
菜单权限
人事招聘模块菜单权限配置在 docs/设计文档/database/rs-menu.sql 文件中,主要包括:
- 人事管理(顶级菜单)
- 职位管理
- 招聘中心
- 申请管理
- 应聘者管理
- 教育经历管理
- 工作经历管理
数据字典
人事招聘模块使用的数据字典在 docs/设计文档/database/rs-dictionary.sql 文件中,主要包括:
- 部门字典 (rs_department)
- 应聘状态字典 (rs_application_status)
使用示例
职位管理页面
- 进入职位管理页面 (
/rs/job)
- 点击"新增"按钮添加职位
- 填写职位信息,包括职位名称、部门、工作地点等
- 点击"确定"保存职位信息
申请管理页面
- 进入申请管理页面 (
/rs/application)
- 查看申请列表
- 点击"详情"按钮查看申请详情
- 点击"状态"按钮更新申请状态(面试、录用、拒绝)
注意事项
- 职位上线后会在招聘中心页面显示
- 申请状态更新后会通知应聘者
- 应聘者信息包含教育经历和工作经验
- 确保应聘者上传的简历格式正确(PDF、DOC、DOCX)