# 征信解析缺失标记过滤实施记录 ## 背景 征信解析返回中,负债字段的 `*_state` 若为 `-9999`,表示不存在该类型负债;负面风险字段中 `-9999` 或 `-9999.0` 也表示不存在对应风险类型,不能按真实负债或负面风险指标落库。 ## 修改内容 1. 负债明细装配 - `CreditInfoPayloadAssembler` 中新增 `-9999` 缺失标记识别。 - 当某组负债的 `*_state` 为 `-9999` 时,直接跳过该负债类型,不生成 `ccdi_debts_info` 明细。 - 数值和状态转换过程中同步将 `-9999` 视为空值,避免缺失标记落库。 2. 负面风险装配 - `lx_publictype` 中次数字段为 `-9999` 时按 `0` 处理。 - `lx_publictype` 中金额字段为 `-9999` 或 `-9999.0` 时按空值处理。 3. 测试 - 补充 `*_state=-9999` 时跳过负债类型的单测。 - 补充负面风险 `-9999` 转换为 `0/null` 的单测。 4. 文档 - 更新 `docs/design/2026-03-23-credit-info-maintenance-design.md` 中负债过滤和负面风险缺失值规则。 ## 影响范围 - 仅影响征信解析 payload 到负债明细、负面风险表的装配逻辑。 - 不涉及接口调用、成功判断、数据库结构和前端页面。 ## 验证 - `mvn -pl ccdi-info-collection -am -Dtest=CreditInfoPayloadAssemblerTest,CcdiCreditInfoServiceImplTest -Dsurefire.failIfNoSpecifiedTests=false test`:通过,10 个用例成功。 - `git diff --check`:通过。 - 使用 `/Users/wkc/Downloads/zxjx.txt` 按当前规则复核: - 负债明细仅保留 `uncle_bank_manage` 与 `uncle_not_bank` 两类。 - 负面风险 `civil/enforce/adm` 的 `-9999` 均按无对应风险处理。