# 新增模型打标完整验证实施记录

## 验证目标
- 对 2026-03-20 新加入的模型打标改动执行完整验证。
- 验证范围覆盖 Mock 随机命中、第一期真实规则、数据库事实与接口端到端结果。
- 本次执行仅输出验证过程与结论，不进入修复实现。

## 验证范围
- In Scope:
  - `lsfx-mock-server` 随机命中规则计划、样本装配、缓存稳定性相关验证。
  - `ccdi-project` 第一期真实规则参数映射、真实 SQL、Service 分发、风险人数刷新相关验证。
  - 数据库基线与规则元数据核验。
  - 接口端到端调用与结果核验。
- Out of Scope:
  - 第二期占位规则。
  - 新增规则、补丁逻辑、兼容性处理。
  - 任何修复动作。

## 执行阶段
- 阶段 1：环境与范围确认
- 阶段 2：Mock 随机命中自动化回归
- 阶段 3：主工程第一期真实规则自动化回归
- 阶段 4：数据库基线与规则元数据核验
- 阶段 5：接口端到端验证与环境清理

## 目标项目
- 本次端到端验证选用 `project_id=47`
- `project_name=测试03191`
- `lsfx_project_id=1002`
- `config_type=custom`

## 产物路径
- 执行计划：`docs/tests/plans/2026-03-20-bank-tag-new-model-validation-execution-plan.md`
- 验证计划：`docs/tests/plans/2026-03-20-bank-tag-new-model-validation-test-plan.md`
- 实施记录：`docs/reports/implementation/2026-03-20-bank-tag-new-model-validation-record.md`
- 验证记录：`docs/tests/records/2026-03-20-bank-tag-new-model-validation-verification.md`

## 执行说明
- 验证过程中若任一层失败，立即停在对应层记录证据，不继续给出“验证通过”结论。
- 本次执行基于当前本地开发环境，不额外引入修复或扩展范围。

## 当前进展
- 2026-03-20 15:21:54 CST 完成阶段 1：已对齐验证范围、读取来源实施记录、选定 `project_id=47`，并创建实施记录与验证记录骨架。
- 2026-03-20 15:21:54 CST 完成阶段 2：`lsfx-mock-server` 聚焦回归与全量回归全部通过，确认规则命中计划、样本装配、缓存稳定性与集成链路未回退。
- 2026-03-20 15:23:10 CST 完成阶段 3：`ccdi-project` 第一期真实规则目标测试全部 `BUILD SUCCESS`，规则映射、真实 SQL、规则分发与风险人数刷新链路保持通过。
- 2026-03-20 15:24 左右执行阶段 4：采购基线脚本成功重跑，`LSFXMOCKPUR001` 基线记录存在且金额满足门槛；但第一期规则元数据查询发现 `indicator_code` 与既有实施记录不一致，判定为“数据基线异常”，按计划停在数据库核验层，不继续执行接口端到端验证。
- 2026-03-20 15:41:06 CST 完成问题修复与复验：
  - 已新增第一期规则元数据 SQL 校验测试与增量修复脚本。
  - 已将修复脚本落库，确认 `FOREX_BUY_AMT`、`FOREX_SELL_AMT`、`LARGE_STOCK_TRADING` 的 `indicator_code` 与 9 条一期真实规则 `remark` 均已对齐。
  - 已完成项目 `47` 的拉取本行信息、手动重算、任务轮询、命中结果查询与流水详情接口复验。
  - Mock 与后端验证进程均已关闭。
- 2026-03-20 16:01 左右完成补充复验：
  - 重新启动 Mock 与后端服务，复跑项目 `47` 的登录、拉取本行信息、手动重算、任务轮询与详情接口链路。
  - 自动任务 `id=39` 与手动任务 `id=40` 均执行成功，`hit_count=3636`，`success_rule_count=33`，`failed_rule_count=0`。
  - 针对之前出现 `selectOne()` 重复结果异常的样例 `bank_statement_id=67279`，详情接口已返回 `code=200`，并正确带出 `GAMBLING_SENSITIVE_KEYWORD` 命中标签与原始文件名。
