修正双员工夫妻家庭专项核查口径

This commit is contained in:
wkc
2026-05-26 17:18:26 +08:00
parent a39594faf8
commit 0ea504f6b3
4 changed files with 364 additions and 204 deletions

View File

@@ -0,0 +1,57 @@
# 双员工夫妻家庭专项核查实施记录
- 保存路径:`docs/reports/implementation/2026-05-26-double-staff-spouse-family-special-check.md`
- 实施日期2026-05-26
- 变更范围:后端专项核查家庭资产负债聚合 SQL 与对应 Mapper SQL 结构测试
## 修改内容
1. 调整 `CcdiProjectSpecialCheckMapper.xml` 的配偶识别口径:
- 支持 `本人 -> 配偶` 的直接关系。
- 支持 `配偶员工 -> 本人` 的反向推导,覆盖只维护单向配偶关系但双方都是员工的情况。
- 增加 `spouse_is_staff` 标识,配偶为员工时收入优先取 `ccdi_base_staff.annual_income`
2. 调整家庭资产、负债与缺少信息口径:
- 双员工夫妻家庭中,本人资产取 `family_id = 本人身份证号 AND person_id = 本人身份证号`
- 配偶为员工时,配偶资产取 `family_id = 配偶身份证号 AND person_id = 配偶身份证号`
- 配偶不是员工时,配偶资产仍取 `family_id = 本人身份证号 AND person_id = 配偶身份证号`
- 负债继续按本人和配偶证件号从 `ccdi_debts_info` 汇总。
- 配偶为员工时,任一公司员工成员缺少本人资产或本人负债记录,风险结果按“缺少信息”处理。
3. 调整详情明细展示查询:
- 资产明细按 `spouse_is_staff` 选择员工本人资产或亲属资产,避免把员工配偶作为亲属资产重复计入。
- 资产持有人和负债归属人名称优先取员工主档,非员工配偶再从亲属关系中取名,避免双向配偶关系导致明细行重复。
4. 补充 Mapper SQL 结构测试断言:
- 校验双向配偶识别、员工配偶收入来源、员工配偶资产归属、员工配偶负债缺失判断和明细查询参数传递。
## 影响范围
- 接口路径和返回结构不变:
- `GET /ccdi/project/special-check/family-asset-liability/list`
- `GET /ccdi/project/special-check/family-asset-liability/detail`
- 前端页面无需调整,仍按员工展示列表。
- 不新增数据库表和字段。
## 验证结果
1. 主代码编译:
- 命令:`mvn -DskipTests compile`
- 目录:`ccdi-project`
- 结果:通过。
2. Mapper XML 格式校验:
- 命令:`xmllint --noout ccdi-project/src/main/resources/mapper/ccdi/project/CcdiProjectSpecialCheckMapper.xml`
- 结果:通过。
3. 本次变更空白检查:
- 命令:`git diff --check -- ccdi-project/src/main/resources/mapper/ccdi/project/CcdiProjectSpecialCheckMapper.xml ccdi-project/src/test/java/com/ruoyi/ccdi/project/mapper/CcdiProjectSpecialCheckMapperListSqlTest.java ccdi-project/src/test/java/com/ruoyi/ccdi/project/mapper/CcdiProjectSpecialCheckMapperDetailSqlTest.java`
- 结果:通过。
4. 双员工夫妻 Mapper 关键口径文本校验:
- 命令Ruby 读取 Mapper XML 并检查反向配偶、员工配偶收入、员工配偶资产、员工配偶负债和明细参数关键片段。
- 结果:通过,输出 `double-staff spouse mapper checks passed`
5. 专项 JUnit
- 命令:`mvn test -Dtest=CcdiProjectSpecialCheckMapperListSqlTest,CcdiProjectSpecialCheckMapperDetailSqlTest`
- 结果:未完成执行。当前模块测试编译阶段被既有无关测试错误阻断,错误集中在 `CcdiBankStatementTest``CcdiFileUploadServiceImplTest` 中旧接口签名不匹配,本次未修改这些文件。