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

100 lines
5.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 1. 数据库设计与实现
- [x] 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
- [x] 1.2 为 `dpc_employee` 表创建唯一约束uk_teller_no (柜员号唯一), uk_id_card (身份证号唯一)
- [x] 1.3 为 `dpc_employee` 表创建索引idx_org_no, idx_status
- [x] 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
- [x] 1.5 为 `dpc_employee_relative` 表创建索引idx_employee_id, idx_relative_id_card
- [x] 1.6 添加外键约束dpc_employee_relative.employee_id → dpc_employee.employee_id可选根据项目规范决定
- [x] 1.7 创建 `dpc_relative_relationship` 字典类型及字典数据(配偶、父亲、母亲、子女、兄弟姐妹、其他)
- [x] 1.8 创建 `dpc_employee_status` 字典类型及字典数据(在职=0、离职=1
## 2. 后端实体类创建
- [x] 2.1 创建 `DpcEmployee.java` 实体类,使用 @Data 注解,包含 @Excel 注解用于导入导出
- [x] 2.2 创建 `DpcEmployeeRelative.java` 实体类,使用 @Data 注解
- [x] 2.3 创建 `DpcEmployeeAddDTO.java` 新增 DTO使用 @Data 注解,包含 @Validated 校验注解
- [x] 2.4 创建 `DpcEmployeeEditDTO.java` 编辑 DTO使用 @Data 注解,包含 @Validated 校验注解
- [x] 2.5 创建 `DpcEmployeeQueryDTO.java` 查询 DTO使用 @Data 注解
- [x] 2.6 创建 `DpcEmployeeVO.java` 视图对象,使用 @Data 注解,包含亲属列表
- [x] 2.7 创建 `DpcEmployeeRelativeVO.java` 亲属视图对象,使用 @Data 注解
- [x] 2.8 创建 `DpcEmployeeRelativeAddDTO.java` 亲属新增 DTO使用 @Data 注解
## 3. Mapper 层实现
- [x] 3.1 创建 `DpcEmployeeMapper.java` 接口,继承 `BaseMapper<DpcEmployee>`
- [x] 3.2 创建 `DpcEmployeeMapper.xml` MyBatis 映射文件,仅实现复杂查询(如:员工详情包含亲属列表)
- [x] 3.3 在 XML 中实现 `selectEmployeeWithRelatives` 方法,关联查询员工及其亲属信息
- [x] 3.4 创建 `DpcEmployeeRelativeMapper.java` 接口,继承 `BaseMapper<DpcEmployeeRelative>`
- [x] 3.5 创建 `DpcEmployeeRelativeMapper.xml` MyBatis 映射文件(如需复杂查询)
- [x] 3.6 简单 CRUD 操作使用 MyBatis Plus 提供的 BaseMapper 方法insert, deleteById, deleteByIds, updateById, selectById, selectList
- [x] 3.7 简单条件查询使用 LambdaQueryWrapper 或 QueryWrapper按柜员号、身份证号查询
- [x] 3.8 复杂多条件查询在 XML 中编写自定义 SQL
## 4. Service 层实现
- [x] 4.1 创建 `IDpcEmployeeService.java` 接口
- [x] 4.2 创建 `DpcEmployeeServiceImpl.java` 实现类
- [x] 4.3 实现查询员工列表方法 `selectEmployeeList`,支持分页和多条件查询
- [x] 4.4 实现查询员工详情方法 `selectEmployeeById`,包含亲属信息
- [x] 4.5 实现新增员工方法 `insertEmployee`,支持同时插入亲属信息
- [x] 4.6 实现编辑员工方法 `updateEmployee`,支持更新亲属信息(先删除后插入)
- [x] 4.7 实现删除员工方法 `deleteEmployeeByIds`,级联删除亲属信息
- [x] 4.8 实现导出员工数据方法 `selectEmployeeListForExport`
- [x] 4.9 实现导入员工数据方法 `importEmployee`,支持批量导入员工和亲属
- [x] 4.10 实现柜员号唯一性校验
- [x] 4.11 实现身份证号格式校验
- [x] 4.12 实现电话格式校验
## 5. Controller 层实现
- [x] 5.1 创建 `DpcEmployeeController.java` 控制器类
- [x] 5.2 实现 `GET /dpc/employee/list` 查询列表接口,添加 @PreAuthorize 权限注解
- [x] 5.3 实现 `GET /dpc/employee/{id}` 查询详情接口
- [x] 5.4 实现 `POST /dpc/employee` 新增接口
- [x] 5.5 实现 `PUT /dpc/employee` 编辑接口
- [x] 5.6 实现 `DELETE /dpc/employee/{ids}` 删除接口
- [x] 5.7 实现 `POST /dpc/employee/export` 导出接口
- [x] 5.8 实现 `POST /dpc/employee/importTemplate` 下载模板接口
- [x] 5.9 实现 `POST /dpc/employee/importData` 导入接口
- [x] 5.10 为所有接口添加 @Log 注解记录操作日志
## 6. 导入导出功能实现
- [x] 6.1 配置 `DpcEmployee` 实体的 @Excel 注解,定义导出列
- [x] 6.2 配置 `DpcEmployeeRelative` 实体的 @Excel 注解(用于多 Sheet 导入)
- [x] 6.3 实现导入模板的 Excel 格式定义
- [x] 6.4 实现 Excel 解析逻辑,支持多 Sheet 读取
- [x] 6.5 实现员工和亲属数据的关联逻辑(通过身份证号)
- [x] 6.6 实现导入数据校验逻辑
- [x] 6.7 实现导入错误信息收集和反馈
## 7. 数据校验
- [x] 7.1 实现 DTO 层的 @NotBlank@Size@Pattern 等校验注解
- [x] 7.2 实现身份证号格式校验18位符合国标
- [x] 7.3 实现电话号码格式校验11位手机号
- [x] 7.4 实现柜员号唯一性校验
- [x] 7.5 实现入职时间日期格式校验
- [x] 7.6 实现亲属信息必填字段校验
## 8. 测试
- [x] 8.1 生成可执行的测试脚本
- [x] 8.2 测试查询员工列表接口(分页、条件筛选)
- [x] 8.3 测试查询员工详情接口(包含亲属信息)
- [x] 8.4 测试新增员工接口(包含亲属信息)
- [x] 8.5 测试编辑员工接口(修改基本信息、新增/修改/删除亲属)
- [x] 8.6 测试删除员工接口(验证级联删除亲属)
- [x] 8.7 测试导出功能
- [x] 8.8 测试下载模板功能
- [x] 8.9 测试导入功能(正常数据、错误数据、更新模式)
- [x] 8.10 测试权限控制(无权限访问应被拒绝)
- [x] 8.11 测试数据校验(空值、格式错误、重复数据)
## 9. API 文档生成
- [x] 9.1 确认所有接口在 Swagger UI 中正确显示
- [x] 9.2 在项目文件目录下生成 API 文档doc/API文档.md
- [x] 9.3 文档包含:接口地址、请求方式、请求参数、响应格式、权限要求