Files
ccdi/doc/api/员工信息管理API文档.md
wkc da663fb635 feat: 员工柜员号优化 - 移除tellerNo,employeeId作为7位数字柜员号
## 数据库修改
- 删除teller_no字段
- employee_id改为非自增,手动输入7位数字
- 更新字段注释

## 后端修改
- Entity: 移除tellerNo,employeeId改为INPUT类型
- DTO: Add/Edit/Query/Excel全部使用employeeId
- VO: 移除tellerNo字段
- Service: 添加柜员号唯一性校验(使用selectById)
- Mapper XML: 移除teller_no查询和映射

## 前端修改
- 查询表单: tellerNo改为employeeId,添加7位数字限制
- 表格列: 显示employeeId作为柜员号
- 对话框: 新增可输入,编辑只读
- JavaScript: 数据结构和校验规则更新

## 文档更新
- API文档: 完整更新所有接口说明
- 实施报告: 生成详细实施报告

## 测试
- 生成测试脚本(9个测试用例)
- 测试账号: admin/admin123

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

6.9 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位数字,必填,唯一。

响应示例:

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

错误码说明

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

业务错误信息

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

测试账号

  • 用户名: admin
  • 密码: admin123

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