新增员工党员字段

This commit is contained in:
wkc
2026-04-17 11:04:52 +08:00
parent 3286795f98
commit 03a4acb63a
23 changed files with 453 additions and 68 deletions

View File

@@ -0,0 +1,83 @@
# 员工基础信息新增是否党员字段后端实施计划
> **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` 字典脚本,保证导入模板下拉可用。
- [ ] 补充并执行后端定向测试;若执行受现有依赖问题阻塞,需要在记录中明确注明阻塞原因。
## 验证记录
- 已尝试执行:
```bash
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 已补齐
- 后端测试契约已同步更新
- 已明确记录当前自动化验证阻塞点

View File

@@ -0,0 +1,22 @@
# 员工信息仅展示本人资产后端实施计划
## 变更目标
- 员工详情接口返回的 `assetInfoList` 仅包含员工本人资产
- 员工信息页不再通过详情接口混入亲属资产数据
## 变更范围
- `ccdi-info-collection/src/main/java/com/ruoyi/info/collection/service/impl/CcdiBaseStaffServiceImpl.java`
- `ccdi-info-collection/src/test/java/com/ruoyi/info/collection/service/CcdiBaseStaffServiceImplTest.java`
## 实施步骤
1. 将员工详情聚合资产的查询口径从 `family_id = 员工身份证号` 调整为 `family_id = 员工身份证号 and person_id = 员工身份证号`
2. 保持员工新增、编辑时的 `replaceByFamilyId` 逻辑不变,继续由后端写入本人资产
3. 调整单元测试,验证员工详情仅返回本人资产
## 验证要点
- 查询员工详情时,`assetInfoList` 不再返回亲属资产
- 现有员工新增、编辑、删除链路不受影响

View File

@@ -0,0 +1,23 @@
# 修复员工资产信息表注释乱码后端实施计划
## 变更目标
- 修复 `ccdi_asset_info` 表中 `family_id``person_id` 列注释乱码问题
- 保持表结构、字段类型和业务数据不变,仅修正元数据注释
## 变更范围
- `sql/migration/2026-04-17-fix-ccdi-asset-info-comment-encoding.sql`
## 实施步骤
1. 查询 `information_schema.COLUMNS`,确认 `ccdi_asset_info` 列注释实际存在乱码
2. 新增增量 SQL使用 `ALTER TABLE ... MODIFY COLUMN ... COMMENT` 修复 `family_id``person_id` 注释
3. 通过 `bin/mysql_utf8_exec.sh``utf8mb4` 会话执行脚本
4. 再次查询 `information_schema.COLUMNS` 验证注释已恢复为中文
## 验证要点
- `family_id` 注释显示为“归属员工证件号”
- `person_id` 注释显示为“资产实际持有人证件号”
- 字段类型仍为 `VARCHAR(100) NOT NULL`