Files
ccdi/docs/reports/implementation/2026-05-26-double-staff-spouse-family-special-check.md

3.3 KiB
Raw Blame History

双员工夫妻家庭专项核查实施记录

  • 保存路径: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
    • 结果:未完成执行。当前模块测试编译阶段被既有无关测试错误阻断,错误集中在 CcdiBankStatementTestCcdiFileUploadServiceImplTest 中旧接口签名不匹配,本次未修改这些文件。