Files
airz-uniapp/docs/零贷款零信用卡处理-20261016.md
T

64 lines
11 KiB
Markdown
Raw Normal View History

# 零贷款、零信用卡填写与计算口径
2026-10-16,本地实施完成,尚未发布后端或小程序。本轮用户明确要求修改,并确认贷款统一按全部贷款统计;不删除填写项、不更改用户已经填写的金额。本次没有访问生产、调用真实模型、重试正式评估或提交/推送代码。
## 用户可见行为
- 新表单将“信用贷款笔数”改称“贷款笔数”,统计信用贷款、房贷、车贷等全部当前未结清贷款。
- 明确填写贷款 0 笔时,空的欠款总余额、贷款月还款按无贷款计算;明确填写信用卡 0 张时,空的信用卡总额度、已用额度按无卡计算。对应空金额不扣完整度,不再因此要求补填或暂不评级;收入等其他实际缺失/异常仍按原规则处理。
- 金额输入继续保留,已填金额原样保存。数量为 0 却有正金额时,前端和新请求服务端均提示核对,不覆盖或清空金额。空数量、正数量、非法金额不会授权补零。
- 确认页对符合条件的空金额显示“不适用(无贷款/无信用卡)”。历史编辑缺少口径标记时保留原笔数和金额,用户检查全部贷款后点击确认口径;不会静默把旧信用贷款笔数当成全部贷款。
- 后台最新资料表列名改为“贷款笔数(旧资料可能仅含信用贷款)”,避免把新总数显示成信用贷款分项。精确口径仍以对应评估版本档案为准。
## 数据与兼容边界
API 继续使用 inputVersion=3 和 creditLoanCount 字段;新增可选 form.loanCountScope,唯一合法值为 all_loans。服务端只在请求明确携带时增加 loan_count_scope 到评估版本 JSON,原缺省请求形状及幂等重放保持;口径不写入没有对应列的最新资料表,不做数据库迁移。只读详情回显原始空值,不把计算结果写回填写资料,姓名/身份证/手机号的原脱敏规则不变。
新完整度、评级及产品目录显式冻结 zeroBalancePolicy=all-loans-zero-balances-v1。ProfileZeroBalances 仅生成计算副本:严格整数 0/驱动字符串 0、贷款 all_loans 标记及组内金额一致时,才将该组空金额推导为 0.00。已有金额不改;任一非法值或正金额均阻止该组推导。原完整度四个派生金额记为 not_applicable,不计入分母;评级与明确填写四个 0.00 等价,原阈值、权重不变。
主报告、产品规则、AI 条件事实和 PDF 共用这一口径。派生金额保留 self_reported 来源并携带固定 derivedFrom;新贷款笔数事实携带 loanCountScope。企业报告也展示已填的对应贷款笔数,以说明派生依据。模型可看到有效金额及来源,不把这些金额当作漏填;姓名、完整证件及手机号继续不外发。
总贷款笔数为正不能推断信用贷款分项。标准硬/软条件比较只在副本中将此分项保持未知;参考建议模式下,该未单独采集分项不阻断、不加减分、不要求补填。AI 和报告仍保留用户总笔数及其 all_loans 标记。总贷款为 0 可确定当前信用贷款也为 0。未修改银行原条件或伪造条件通过。
旧报告直接读原保存内容;旧执行、目录和检查点没有新标记时继续原计算,不动态加入零金额、口径或新提示。现有失败任务不应通过重试来验收本轮新规则,应在配套发布后使用新建评估。
## 验证与证据
- 新增后端 270 项零金额边界/完整度/评级检查、118 项规范化/回显/报告/产品事实/PDF及贷款分项回归,均为合成内存数据;包含真实红灯到绿灯证据。详情测试使用内存替身,仅证明转换及脱敏,不代替数据库持久化或鉴权验收。
- 既有融资等级 122、参考建议 59、AI 模板 89/分批 36、条件 68、grounding 81、年龄 55、地区 68、匹配 151、产品展示 20 项通过。包含套件不重复累计。数据库/真实模型在相关内存入口被阻断。
- 前端 15 个零金额场景、22 个地区提交检查、26 个资料服务场景、54 个省份检查通过。微信 29 页本地编译成功;编译后报告优先级 16 场景/32 断言通过。原报告优先级测试的既有城市依赖白名单不足,仅在私密证据副本补空 stub,仓库原测试未改。
- 首轮实施时尚未验证新规则的真实数据库/任务链路;下节追加了本机隔离持久化和实际任务入口验收。真实模型语义、常驻worker和微信真机仍未覆盖。
证据:D:/AAdesk/202609/airz-backups/zero-balances-20261016,含实施前 465 文件快照、增量差异、源码摘要、后端回归与前端编译回执。新增 1 个运行 helper,替换 11 个后端运行/配置/语言文件,修改 4 个小程序运行文件,新增 2 个 PHP 测试和 1 个前端测试;无删除文件或依赖安装。
## 追加验收:保存、任务、接口与小程序回包
用户“继续下一步”承接本地验收,仍先不发布。本轮新增后端测试 `tests/profile_zero_persistence.php` 与 `tests/profile_zero_http.php`,运行源码保持;所有资料、账户和产品均为合成数据。显式独立bootstrap在应用初始化前替换真实模型类,默认端点为不可用本机地址;每次实际任务入口另传假模型。未访问默认.env、正式数据库或真实模型。
- 持久化735项通过,26次显式假模型调用。覆盖个人/企业原值保存与编辑回读、12款合成产品多批任务、派生零事实/完整度/评级/匹配/PDF同源、重复提交和消费无副作用、矛盾值拒绝。第2批失败后首批检查点复用,当前配置变化不改冻结新口径;人工构造无新标记的旧冻结任务重试后继续原缺失和评级语义。
- HTTP605项、119次本机请求、5次显式假模型调用通过。覆盖个人/企业空金额与显式零四组、新编辑版本、匿名401/跨账户404、报告未完成409、矛盾金额422、旧版本回读与版本冲突。真实匹配回包使用eligibility=all、limit=3,含1款通过与1款明确不符,不把明确不符隐藏或改成符合。5份实际PDF的类型、私有缓存、签名、长度及摘要核对通过。
- 真实UTS/API/页面脚本离线回放:业务入口回包8组、最终HTTP回包5场景31组通过。金额null与显式0、原表单字段、all_loans、省份、幂等键和新旧版本保持;报告完整度与匹配版本一致。实际5份PDF字节通过小程序服务的校验/打开/临时文件清理替身,不触发额外HTTP或解释请求。
- 使用已有Poppler渲染业务PDF14页与5份HTTP PDF共23页,检查总览和重点金额页,未见明显重叠、截断或乱码,原版式的少量尾页留白保留。PDF中文文本提取不完整,未用该工具声称全文提取验证;内容同源由报告/HTML断言及渲染图核对。没有安装依赖。
- 257个后端application PHP和76个前端UTS/UVue摘要与本轮前/前轮编译收尾一致,本轮不重编译。两个新增测试无隔离bootstrap均先拒绝;PHP语法、增量空白检查通过。测试自身的早期夹具/分页/版本预期修正日志保留,失败和重复轮不累计。
本次验收发现的展示差异:档案详情忠实显示原始空金额“未填写”,资产区仍为“已记录”;同revision报告按“不适用”处理且不扣完整度。该验收轮只记录差异;后续用户授权的展示修复见下节,原值和旧报告始终保留。
所有测试完成后独立核对29张合成表全空、6个schema原触发器保留、Redis DB15无键;核验exe/完整命令行/创建时间/监听PID后正常关闭仅本轮MySQL和Redis,51678/51679端口释放,HTTP进程与模式文件已清理。证据和数据目录保留在D:/AAdesk/202609/airz-backups/zero-balances-e2e-20261016,包含最终日志、真实合成信封、PDF/渲染图、各套件回执和cleanup.json。各套件分开计数,不重复累计。
本轮未验证真实模型输出质量、微信真机与常驻队列worker;假模型实际任务入口不能代替这些验收。没有发布、生产访问、付费调用、正式任务重试、提交或推送。
## 档案展示统一(本地未发布)
用户“继续下一步”同意处理上述展示差异。修改前端records.uts和archive.uvue,复用档案页已有的完整度请求,不增加报告请求,也不改后端/用户填写内容。
- 仅从同assessmentId/revisionId已保存的evaluated v2报告读取completeness.items。四个固定金额键totalDebtBalance、monthlyLoanPayment、creditCardTotalLimit、creditCardUsedLimit各自只有唯一条目且state为not_applicable时,才作为展示依据。
- 档案行增加专用fieldKey和isMissing元数据;isMissing只由原金额为null判断。档案页用独立展示副本将对应空金额显示“不适用”,明确填写的0和正金额保持,原详情、编辑回填、provided计数与完整度均不变。其他空字段仍显示“未填写”。
- 缺items、非数组、重复/冲突键、其他状态、旧v1、未评定、无报告、读取失败均不补推“不适用”。不按表单笔数/口径重算历史,不借用另一版本的最新成功报告。读取失败保留原详情与手动重试入口。
- 原账户、页面离开和报告请求序号保护保留,成功或失败回包还需匹配当前详情id/revision;清页和每次读取时清理展示映射,迟到回包不能恢复旧账户或旧版资料。
新增scripts/test-archive-display.cjs,18组实际UTS/页面脚本内存回归通过,含修复前预期红灯及修复后绿灯;原零金额15场景、地区提交/详情22项保持通过。HBuilderX5.26微信29页本地编译通过。运行增量仅2个前端文件,74个其他前端运行文件与257个后端application PHP摘要保持;独立增量及测试审查未发现实质问题。没有安装依赖、生产访问、数据库或模型调用、发布、提交或推送。
证据:D:/AAdesk/202609/airz-backups/archive-display-20261016,包含before、红绿日志、微信编译日志、增量diff及verification.json。回归使用JavaScript环境模拟UTS和页面生命周期,不代替微信真机/浏览器视觉验收;本轮未重跑上节数据库/模型链路,前轮证据保留。
后续需配套发布后端并由用户重新编译发行小程序,新客户端会发送新口径字段,不能先接到不支持它的旧后端。后端应先发布、重载 PHP 与唯一 worker,再发行小程序;后端的旧客户端兼容分支保留。当前生产仍为上一轮 20261016-report-diagnostics-r1,本轮没有发布授权或生产变更。