Files
ccdi/doc/api/员工信息管理API文档.md
wkc 07dea1bf0c feat: 员工信息必填项优化 - 柜员号、所属部门、电话设为必填
## 后端修改
- AddDTO: deptId和phone添加@NotNull/@NotBlank注解
- EditDTO: deptId和phone添加@NotNull/@NotBlank注解
- Service: 导入验证添加deptId和phone必填校验

## 前端修改
- 表单校验规则: deptId和phone添加required校验
- 自动显示必填标记(红色星号)

## API文档更新
- 新增接口字段说明: deptId和phone标记为必填
- 导入模板: 标注必填项(*标记)
- 业务错误信息: 添加部门和电话相关错误提示

## 必填字段清单
1. employeeId(柜员号) - 7位数字
2. name(姓名)
3. deptId(所属部门)
4. idCard(身份证号)
5. phone(电话) - 11位手机号
6. status(状态)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-05 14:26:40 +08:00

7.3 KiB
Raw Blame History

员工信息管理 API 文档

概述

员工信息管理模块提供员工信息的增删改查、批量导入导出功能。

基础路径: /ccdi/employee

权限标识前缀: ccdi:employee

重要更新: 自2026-02-05起,员工ID(employeeId)作为柜员号使用,为7位数字,手动输入,唯一不可重复。


API 接口列表

1. 查询员工列表

接口地址: GET /ccdi/employee/list

权限要求: ccdi:employee:list

请求参数:

参数名 类型 必填 说明
name String 姓名(模糊查询)
employeeId Long 员工ID(柜员号,精确查询,7位数字)
deptId Long 所属部门ID
idCard String 身份证号(精确查询)
status String 状态(0=在职, 1=离职)
pageNum Integer 页码(默认1)
pageSize Integer 每页数量(默认10)

响应示例:

{
  "code": 200,
  "msg": "操作成功",
  "rows": [
    {
      "employeeId": 1000001,
      "name": "张三",
      "deptId": 100,
      "deptName": "总部",
      "idCard": "110101199001011234",
      "phone": "13800138000",
      "hireDate": "2020-01-01",
      "status": "0",
      "statusDesc": "在职",
      "createTime": "2026-01-28 10:00:00"
    }
  ],
  "total": 1
}

响应字段说明:

字段名 类型 说明
employeeId Long 员工ID(柜员号,7位数字)
name String 姓名
deptId Long 所属部门ID
deptName String 所属部门名称(关联 sys_dept 表)
idCard String 身份证号
phone String 电话
hireDate Date 入职时间
status String 状态(0=在职, 1=离职)
statusDesc String 状态描述
createTime Date 创建时间

2. 查询员工详情

接口地址: GET /ccdi/employee/{employeeId}

权限要求: ccdi:employee:query

路径参数:

参数名 类型 必填 说明
employeeId Long 员工ID(柜员号)

响应示例:

{
  "code": 200,
  "msg": "操作成功",
  "data": {
    "employeeId": 1000001,
    "name": "张三",
    "deptId": 100,
    "idCard": "110101199001011234",
    "phone": "13800138000",
    "hireDate": "2020-01-01",
    "status": "0",
    "statusDesc": "在职",
    "createTime": "2026-01-28 10:00:00"
  }
}

3. 新增员工

接口地址: POST /ccdi/employee

权限要求: ccdi:employee:add

请求头:

Content-Type: application/json
Authorization: Bearer {token}

请求体:

{
  "employeeId": 1000001,
  "name": "张三",
  "deptId": 100,
  "idCard": "110101199001011234",
  "phone": "13800138000",
  "hireDate": "2020-01-01",
  "status": "0"
}

字段说明:

字段名 类型 必填 说明 校验规则
employeeId Long 员工ID(柜员号,7位数字) 必填,7位数字,唯一
name String 姓名 最大100字符
deptId Long 所属部门ID 必填
idCard String 身份证号 18位,符合国标,唯一
phone String 电话 必填,11位手机号
hireDate Date 入职时间 yyyy-MM-dd
status String 状态 0=在职, 1=离职

响应示例:

{
  "code": 200,
  "msg": "操作成功"
}

4. 编辑员工

接口地址: PUT /ccdi/employee

权限要求: ccdi:employee:edit

请求体:

{
  "employeeId": 1000001,
  "name": "张三",
  "deptId": 100,
  "idCard": "110101199001011234",
  "phone": "13800138000",
  "hireDate": "2020-01-01",
  "status": "0"
}

字段说明: 与新增接口相同,employeeId 为必填项,编辑时不可修改柜员号。

响应示例:

{
  "code": 200,
  "msg": "操作成功"
}

5. 删除员工

接口地址: DELETE /ccdi/employee/{employeeIds}

权限要求: ccdi:employee:remove

路径参数:

参数名 类型 必填 说明
employeeIds Long[] 员工ID数组逗号分隔

响应示例:

{
  "code": 200,
  "msg": "操作成功"
}

6. 导出员工信息

接口地址: POST /ccdi/employee/export

权限要求: ccdi:employee:export

请求参数: 与查询列表接口相同(支持筛选条件)

响应: Excel 文件下载


7. 下载导入模板(带字典下拉框)

接口地址: POST /ccdi/employee/importTemplate

权限要求: 无

功能说明: 下载的 Excel 模板中,"状态"列会自动添加字典下拉框,方便用户选择。

响应: Excel 模板文件下载

Excel 格式说明:

Sheet1: 员工信息

姓名* 柜员号* 所属部门ID* 身份证号* 电话* 入职时间 状态▼*
张三 1000001 100 110101199001011234 13800138000 2020-01-01 在职

:

  • 带 * 标记的列为必填项(姓名、柜员号、所属部门、身份证号、电话、状态)
  • 带 ▼ 标记的列包含下拉框,选项来自字典 ccdi_employee_status

使用 @DictDropdown 注解实现:

  • 状态字段使用 @DictDropdown(dictType = "ccdi_employee_status") 注解
  • 系统自动从 Redis 缓存读取字典数据并生成下拉框
  • 下拉选项可动态更新,刷新字典缓存后生效

8. 导入员工信息

接口地址: POST /ccdi/employee/importData

权限要求: ccdi:employee:import

请求参数:

参数名 类型 必填 说明
file File Excel 文件
updateSupport Boolean 是否更新已存在数据(默认false)

Excel 格式:

Sheet1: 员工信息

姓名* 柜员号* 所属部门ID* 身份证号* 电话* 入职时间 状态*
张三 1000001 100 110101199001011234 13800138000 2020-01-01 在职

说明:

  • 标记为必填项: 姓名、柜员号、所属部门、身份证号、电话、状态*
  • 柜员号: 7位数字,必填,唯一
  • 所属部门: 必须填写有效的部门ID
  • 电话: 必须填写11位手机号
  • 入职时间: 选填,格式为 yyyy-MM-dd

响应示例:

{
  "code": 200,
  "msg": "恭喜您,数据已全部导入成功!共 10 条"
}

错误码说明

错误码 说明
200 操作成功
401 未授权,请先登录
403 无权限访问
500 服务器内部错误

业务错误信息

错误信息 说明
该柜员号已存在 新增时柜员号重复
柜员号不能为空 新增时柜员号为空
柜员号必须为7位数字 柜员号格式不正确
所属部门不能为空 新增时所属部门为空
该身份证号已存在 新增/编辑时身份证号重复
姓名不能为空 新增时姓名为空
身份证号格式不正确 身份证号不符合18位国标
电话不能为空 新增时电话为空
电话格式不正确 手机号不符合11位格式
状态只能填写'在职'或'离职' 状态值不正确

测试账号

  • 用户名: admin
  • 密码: admin123

测试前请先调用 /login/test 接口获取 Token。