- 新增员工信息CRUD功能 - 添加员工关联人员管理 - 配置MyBatis Plus审计字段 - 添加OpenSpec规范文档 - 新增测试脚本和数据 Co-Authored-By: Claude <noreply@anthropic.com>
5.9 KiB
5.9 KiB
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.xmlMyBatis 映射文件,仅实现复杂查询(如:员工详情包含亲属列表) - 3.3 在 XML 中实现
selectEmployeeWithRelatives方法,关联查询员工及其亲属信息 - 3.4 创建
DpcEmployeeRelativeMapper.java接口,继承BaseMapper<DpcEmployeeRelative> - 3.5 创建
DpcEmployeeRelativeMapper.xmlMyBatis 映射文件(如需复杂查询) - 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 文档包含:接口地址、请求方式、请求参数、响应格式、权限要求