人事招聘模块API.md 11 KB

人事招聘模块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)

使用示例

职位管理页面

  1. 进入职位管理页面 (/rs/job)
  2. 点击"新增"按钮添加职位
  3. 填写职位信息,包括职位名称、部门、工作地点等
  4. 点击"确定"保存职位信息

申请管理页面

  1. 进入申请管理页面 (/rs/application)
  2. 查看申请列表
  3. 点击"详情"按钮查看申请详情
  4. 点击"状态"按钮更新申请状态(面试、录用、拒绝)

注意事项

  1. 职位上线后会在招聘中心页面显示
  2. 申请状态更新后会通知应聘者
  3. 应聘者信息包含教育经历和工作经验
  4. 确保应聘者上传的简历格式正确(PDF、DOC、DOCX)