Files
ccdi/openspec/changes/add-employee-info/tasks.md
wkc 0cc8ef0fc3 员工信息管理
- 新增员工信息CRUD功能
- 添加员工关联人员管理
- 配置MyBatis Plus审计字段
- 添加OpenSpec规范文档
- 新增测试脚本和数据

Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-28 14:40:27 +08:00

5.9 KiB
Raw Blame History

1. 数据库设计与实现

  • 1.1 创建 dpc_employee 员工信息表包含字段employee_id, name, teller_no, org_no, id_card, phone, hire_date, status, create_by, create_time, update_by, update_time
  • 1.2 为 dpc_employee 表创建唯一约束uk_teller_no (柜员号唯一), uk_id_card (身份证号唯一)
  • 1.3 为 dpc_employee 表创建索引idx_org_no, idx_status
  • 1.4 创建 dpc_employee_relative 员工亲属表包含字段relative_id, employee_id, relative_name, relative_id_card, relative_phone, relationship, create_by, create_time, update_by, update_time
  • 1.5 为 dpc_employee_relative 表创建索引idx_employee_id, idx_relative_id_card
  • 1.6 添加外键约束dpc_employee_relative.employee_id → dpc_employee.employee_id可选根据项目规范决定
  • 1.7 创建 dpc_relative_relationship 字典类型及字典数据(配偶、父亲、母亲、子女、兄弟姐妹、其他)
  • 1.8 创建 dpc_employee_status 字典类型及字典数据(在职=0、离职=1

2. 后端实体类创建

  • 2.1 创建 DpcEmployee.java 实体类,使用 @Data 注解,包含 @Excel 注解用于导入导出
  • 2.2 创建 DpcEmployeeRelative.java 实体类,使用 @Data 注解
  • 2.3 创建 DpcEmployeeAddDTO.java 新增 DTO使用 @Data 注解,包含 @Validated 校验注解
  • 2.4 创建 DpcEmployeeEditDTO.java 编辑 DTO使用 @Data 注解,包含 @Validated 校验注解
  • 2.5 创建 DpcEmployeeQueryDTO.java 查询 DTO使用 @Data 注解
  • 2.6 创建 DpcEmployeeVO.java 视图对象,使用 @Data 注解,包含亲属列表
  • 2.7 创建 DpcEmployeeRelativeVO.java 亲属视图对象,使用 @Data 注解
  • 2.8 创建 DpcEmployeeRelativeAddDTO.java 亲属新增 DTO使用 @Data 注解

3. Mapper 层实现

  • 3.1 创建 DpcEmployeeMapper.java 接口,继承 BaseMapper<DpcEmployee>
  • 3.2 创建 DpcEmployeeMapper.xml MyBatis 映射文件,仅实现复杂查询(如:员工详情包含亲属列表)
  • 3.3 在 XML 中实现 selectEmployeeWithRelatives 方法,关联查询员工及其亲属信息
  • 3.4 创建 DpcEmployeeRelativeMapper.java 接口,继承 BaseMapper<DpcEmployeeRelative>
  • 3.5 创建 DpcEmployeeRelativeMapper.xml MyBatis 映射文件(如需复杂查询)
  • 3.6 简单 CRUD 操作使用 MyBatis Plus 提供的 BaseMapper 方法insert, deleteById, deleteByIds, updateById, selectById, selectList
  • 3.7 简单条件查询使用 LambdaQueryWrapper 或 QueryWrapper按柜员号、身份证号查询
  • 3.8 复杂多条件查询在 XML 中编写自定义 SQL

4. Service 层实现

  • 4.1 创建 IDpcEmployeeService.java 接口
  • 4.2 创建 DpcEmployeeServiceImpl.java 实现类
  • 4.3 实现查询员工列表方法 selectEmployeeList,支持分页和多条件查询
  • 4.4 实现查询员工详情方法 selectEmployeeById,包含亲属信息
  • 4.5 实现新增员工方法 insertEmployee,支持同时插入亲属信息
  • 4.6 实现编辑员工方法 updateEmployee,支持更新亲属信息(先删除后插入)
  • 4.7 实现删除员工方法 deleteEmployeeByIds,级联删除亲属信息
  • 4.8 实现导出员工数据方法 selectEmployeeListForExport
  • 4.9 实现导入员工数据方法 importEmployee,支持批量导入员工和亲属
  • 4.10 实现柜员号唯一性校验
  • 4.11 实现身份证号格式校验
  • 4.12 实现电话格式校验

5. Controller 层实现

  • 5.1 创建 DpcEmployeeController.java 控制器类
  • 5.2 实现 GET /dpc/employee/list 查询列表接口,添加 @PreAuthorize 权限注解
  • 5.3 实现 GET /dpc/employee/{id} 查询详情接口
  • 5.4 实现 POST /dpc/employee 新增接口
  • 5.5 实现 PUT /dpc/employee 编辑接口
  • 5.6 实现 DELETE /dpc/employee/{ids} 删除接口
  • 5.7 实现 POST /dpc/employee/export 导出接口
  • 5.8 实现 POST /dpc/employee/importTemplate 下载模板接口
  • 5.9 实现 POST /dpc/employee/importData 导入接口
  • 5.10 为所有接口添加 @Log 注解记录操作日志

6. 导入导出功能实现

  • 6.1 配置 DpcEmployee 实体的 @Excel 注解,定义导出列
  • 6.2 配置 DpcEmployeeRelative 实体的 @Excel 注解(用于多 Sheet 导入)
  • 6.3 实现导入模板的 Excel 格式定义
  • 6.4 实现 Excel 解析逻辑,支持多 Sheet 读取
  • 6.5 实现员工和亲属数据的关联逻辑(通过身份证号)
  • 6.6 实现导入数据校验逻辑
  • 6.7 实现导入错误信息收集和反馈

7. 数据校验

  • 7.1 实现 DTO 层的 @NotBlank、@Size、@Pattern 等校验注解
  • 7.2 实现身份证号格式校验18位符合国标
  • 7.3 实现电话号码格式校验11位手机号
  • 7.4 实现柜员号唯一性校验
  • 7.5 实现入职时间日期格式校验
  • 7.6 实现亲属信息必填字段校验

8. 测试

  • 8.1 生成可执行的测试脚本
  • 8.2 测试查询员工列表接口(分页、条件筛选)
  • 8.3 测试查询员工详情接口(包含亲属信息)
  • 8.4 测试新增员工接口(包含亲属信息)
  • 8.5 测试编辑员工接口(修改基本信息、新增/修改/删除亲属)
  • 8.6 测试删除员工接口(验证级联删除亲属)
  • 8.7 测试导出功能
  • 8.8 测试下载模板功能
  • 8.9 测试导入功能(正常数据、错误数据、更新模式)
  • 8.10 测试权限控制(无权限访问应被拒绝)
  • 8.11 测试数据校验(空值、格式错误、重复数据)

9. API 文档生成

  • 9.1 确认所有接口在 Swagger UI 中正确显示
  • 9.2 在项目文件目录下生成 API 文档doc/API文档.md
  • 9.3 文档包含:接口地址、请求方式、请求参数、响应格式、权限要求