4.8 KiB
4.8 KiB
员工基础信息新增是否党员字段后端实施计划
For agentic workers: REQUIRED: Use superpowers:subagent-driven-development (if subagents available) or superpowers:executing-plans to implement this plan. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: 在员工基础信息后端链路中新增“是否党员”字段,保证数据库、实体、接口、导入导出与最小测试契约保持一致。
Architecture: 继续沿用 ccdi_base_staff 现有维护链路,在表上增加 is_party_member 字段,并在 CcdiBaseStaff 的实体、DTO、VO、Excel、Mapper XML 与服务校验中同步补齐。实现保持最短路径,不新增新的接口层或旁路转换逻辑,只在现有员工维护链路上扩字段。
Tech Stack: MySQL, Java 21, Spring Boot 3, MyBatis Plus, EasyExcel, JUnit 5, Markdown
文件结构与职责
后端源码
ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/CcdiBaseStaff.java新增partyMember字段并映射is_party_member。ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/dto/CcdiBaseStaffAddDTO.java新增新增接口入参字段与非空校验。ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/dto/CcdiBaseStaffEditDTO.java新增编辑接口入参字段与非空校验。ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/vo/CcdiBaseStaffVO.java新增详情/列表返回字段。ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/excel/CcdiBaseStaffExcel.java新增 Excel 导入导出列,并挂接“是/否”字典下拉。ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/vo/ImportFailureVO.java新增导入失败记录字段回显。ccdi-info-collection/src/main/resources/mapper/info/collection/CcdiBaseStaffMapper.xml在列表查询、批量新增、批量更新 SQL 中补is_party_member。ccdi-info-collection/src/main/java/com/ruoyi/info/collection/service/impl/CcdiBaseStaffServiceImpl.java补新增/编辑链路校验,约束partyMember只能为0/1。ccdi-info-collection/src/main/java/com/ruoyi/info/collection/service/impl/CcdiBaseStaffImportServiceImpl.java补导入链路的必填和枚举值校验。
SQL
sql/migration/2026-04-17-add-base-staff-party-member.sql以幂等方式为ccdi_base_staff增加字段,并补充ccdi_yes_no_flag字典数据。sql/ccdi_yes_no_flag_dict.sql提供“是/否标记”字典初始化脚本,供新环境或独立初始化使用。
测试
ccdi-info-collection/src/test/java/com/ruoyi/info/collection/service/CcdiBaseStaffServiceImplTest.java验证服务层新增/修改/详情查询会透传partyMember。ccdi-info-collection/src/test/java/com/ruoyi/info/collection/service/CcdiBaseStaffImportServiceImplTest.java验证导入场景仅允许0/1。ccdi-info-collection/src/test/java/com/ruoyi/info/collection/mapper/CcdiBaseStaffMapperTest.java验证 Mapper XML 已包含is_party_member与#{item.partyMember}。ccdi-info-collection/src/test/java/com/ruoyi/info/collection/utils/EasyExcelUtilTemplateTest.java验证员工模板已补“是否党员”下拉列。
实施步骤
- 在
ccdi_base_staff表增加is_party_member,默认值为0,避免历史数据为空。 - 在员工基础信息实体、DTO、VO、Excel 对象中补齐
partyMember。 - 在
CcdiBaseStaffMapper.xml的列表、批量新增、批量更新 SQL 中补is_party_member。 - 在
CcdiBaseStaffServiceImpl与CcdiBaseStaffImportServiceImpl中增加0/1值域校验。 - 新增
ccdi_yes_no_flag字典脚本,保证导入模板下拉可用。 - 补充并执行后端定向测试;若执行受现有依赖问题阻塞,需要在记录中明确注明阻塞原因。
验证记录
- 已尝试执行:
mvn -pl ccdi-info-collection -Dtest=CcdiBaseStaffServiceImplTest,CcdiBaseStaffImportServiceImplTest,CcdiBaseStaffMapperTest,EasyExcelUtilTemplateTest test
mvn -pl ccdi-info-collection -DskipTests compile
- 当前结果:
test在进入本次新增断言前,被模块内既有测试编译问题拦截,表现为缺少org.springframework.data.redis.core.*类型。compile被模块当前既有依赖缺失拦截,表现为缺少com.ruoyi.common.annotation.*、org.springframework.data.redis.core.*、IdCardUtil等类型。- 上述阻塞不是本次“是否党员”字段新增引入的新问题,但会影响自动化验证结论,需要后续先修复模块依赖基线。
完成标准
- 员工基础信息接口可读写
partyMember - 员工列表、详情、导入导出链路都包含
partyMember - 数据库字段与字典 SQL 已补齐
- 后端测试契约已同步更新
- 已明确记录当前自动化验证阻塞点