Files
ccdi/docs/reports/implementation/2026-03-24-credit-info-direct-storage-backend-record.md

2.9 KiB
Raw Blame History

征信维护后端直接入库实施记录

1. 实施范围

  • 实施目标:将征信维护后端切换为征信对象维度,上传时不再校验员工归属,解析成功后按 person_id 直接覆盖入库,列表查询改为征信表聚合
  • 实施目录:ccdi-info-collection
  • 实施日期2026-03-24

2. 实际修改文件

  • ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/dto/CcdiCreditInfoQueryDTO.java
  • ccdi-info-collection/src/main/java/com/ruoyi/info/collection/domain/vo/CreditInfoListVO.java
  • ccdi-info-collection/src/main/java/com/ruoyi/info/collection/service/impl/CcdiCreditInfoServiceImpl.java
  • ccdi-info-collection/src/main/resources/mapper/info/collection/CcdiCreditInfoQueryMapper.xml
  • ccdi-info-collection/src/test/java/com/ruoyi/info/collection/service/CcdiCreditInfoServiceImplTest.java
  • ccdi-info-collection/src/test/java/com/ruoyi/info/collection/mapper/CcdiCreditInfoQueryMapperXmlTest.java
  • ccdi-info-collection/src/test/java/com/ruoyi/info/collection/controller/CcdiCreditInfoControllerTest.java

3. 功能落地说明

3.1 直接入库口径

  • 上传解析后直接读取 query_cert_noquery_cust_namereport_time
  • 删除员工主数据依赖,不再校验征信对象是否存在于 ccdi_base_staff
  • 保留“同一证件号仅允许最新征信覆盖写入”的日期校验
  • 继续沿用 replaceEmployeeCredit 方法完成按 person_id 的先删后插覆盖写入

3.2 DTO / VO 收敛

  • CcdiCreditInfoQueryDTO 仅保留 nameidCard
  • CreditInfoListVO 删除 staffIddeptName,仅保留征信对象摘要字段

3.3 SQL 聚合调整

  • 列表查询改为以征信业务表为主集合,覆盖“只有负债”“只有负面信息”“两者都有”三类数据
  • 列表与摘要查询均通过 person_id 聚合,不再关联 ccdi_base_staffsys_dept
  • 查询条件仅保留姓名、身份证号两项筛选

4. 验证记录

4.1 失败验证

执行命令:

mvn -pl ccdi-info-collection -Dtest=CcdiCreditInfoServiceImplTest,CcdiCreditInfoQueryMapperXmlTest,CcdiCreditInfoControllerTest test

执行结果:

  • 首轮失败点与计划一致集中暴露为员工校验未删除、XML 仍依赖员工表

4.2 分段验证

执行命令:

mvn -pl ccdi-info-collection -Dtest=CcdiCreditInfoControllerTest test
mvn -pl ccdi-info-collection -Dtest=CcdiCreditInfoServiceImplTest test
mvn -pl ccdi-info-collection -Dtest=CcdiCreditInfoQueryMapperXmlTest test

执行结果:

  • 三组测试均通过
  • 控制层分页委派契约保持不变
  • 非员工征信对象可成功上传,旧日期上传仍被拦截
  • XML 契约确认已去掉 ccdi_base_staffquery.staffIdquery.maintained

5. 进程与环境说明

  • 本次仅执行 Maven 单元测试,未启动本地后端服务
  • 无残留测试进程需要清理