测试方式:浏览器实测(ZCode in-app browser),逐条执行、记录实际结果;发现 bug 即修复并重跑该条 + 相关回归条目。 测试账号:admin / admin123;前端 http://localhost:3100;后端 http://localhost:8980(`/js/a`)。 每次重启后端后必须:案件管理 → 打开案件(数据测试)→ 再继续。
测试文件:
- 文件 A:
周海--车辆登记信息.xls(5.6KB,sheet「机动车信息」模板匹配失败 → AI 判定 → 待人工)- 文件 B:
周海--通信18905810269.xls(92KB,通信记录可匹配模板 → 系统既有清洗)
| # | 场景 | 步骤 | 预期 | 结果 |
|---|---|---|---|---|
| ① | 上传解析 A | 上传页注入文件 A | 解析树出现、sheet「机动车信息」模板匹配失败、「智能」可用 | ✅ / N/A |
| ② | 上传解析 B | 上传页注入文件 B | 解析树出现、sheet 匹配模板成功、「智能」可用 | ✅ / N/A |
| ③ | 混合上传 | 同批注入 A+B | 树中两文件、状态各自正确 | ✅ / N/A |
| ④ | MD5 去重回归 | 再次上传文件 A(不删记录) | 后端跳过解析返回 null(原行为),页面无新树 | ✅ / N/A |
| ⑤ | AI 判定推进 | 选 A 点「智能」→ 进度页 | AI 卡判定 0/1→1/1,阶段推进 | ✅ / N/A |
| ⑥ | 待人工结论 | 判定完成 | 待人工 1、失败 0、阶段 DONE | ✅ / N/A |
| ⑦ | 处理日志 | 查看处理日志 | 「融合清洗已启动」「开始处理:文件 A」两条 | ✅ / N/A |
| ⑧ | AI 卡列表布局 | 待人工 ≥4 条时查看 | 卡内 ≤3 条 + 「查看全部 N」抽屉;抽屉含原因说明文案 | ✅ / N/A |
| ⑨ | 判定详情 | 抽屉点「详情」 | 弹窗:原因/置信度五维/抽样统计/逐列校验/预览样本/模型草稿 | ✅ / N/A |
| ⑩ | AI 重新判定 | 抽屉点「AI 重判」 | 受理成功提示;约几十秒后清单刷新出新结论 | ✅ / N/A |
| ⑪ | 既有路径推进 | 选 B 点「智能」 | 无 AI 表 → doClean 推进 → 100% → 完成态 | ✅ / N/A |
| ⑫ | 既有入库验证 | 完成后查数据 | 通信记录表有数据 | ✅ / N/A |
| ⑬ | 混合批次 | A+B 点「智能」 | B 交既有清洗一次 doClean、A 待人工、批次 DONE | ✅ / N/A |
| ⑭ | 混合互不影响 | 验证数据 | B 已入库、A 待人工,互不影响 | ✅ / N/A |
| ⑮ | 清洗页有数据(核心 bug) | 进度页点「去人工确认」 | 清洗页树出现、sheet 被选中、预览数据加载 | ✅ / N/A |
| ⑯ | 清洗页清单可见 | 看左栏 | 「待人工确认」面板含该表、原因、置信度 | ✅ / N/A |
| ⑰ | 清单「处理」定位 | 点「处理」 | 树定位到目标 sheet、选中、预览加载 | ✅ / N/A |
| ⑱ | 仅洗当前表 | 配模板规则后「导入数据」 | 头部出现「仅清洗当前表」徽标;提交树只含该 sheet;清洗完成 | ✅ / N/A |
| ⑲ | 清单消项不丢 | 清洗后回清洗页 | 该项已消项(SUPERSEDED),其余待人工仍在 | ✅ / N/A |
| ⑳ | 清洗页内详情 | 清单点「详情」 | 详情弹窗正常 | ✅ / N/A |
| ㉑ | 清洗页内重判 | 清单点「AI 重判」 | 受理成功、清单轮询刷新 | ✅ / N/A |
| ㉒ | 上传页行级手动清洗回归 | 上传页行级按钮 | 清洗页正常(原 sessionStorage 路径) | ✅ / N/A |
| ㉓ | 上传页整页手动清洗回归 | 上传页「手动清洗」按钮 | 正常跳转清洗页 | ✅ / N/A |
| ㉔ | importList 重新清洗回归 | 导入管理「重新清洗」 | reClean=1&fileId 路径正常 | ✅ / N/A |
| ㉕ | 超时出口改手动清洗 | 融合页「改为手动清洗」 | 带 batchId → 清洗页按批次重建树 | ✅ / N/A |
| ㉖ | Skip 入明细 | 构造 Skip(如删源文件后清洗) | 清单出现 Skip 项、计数与条数一致 | ✅ / N/A |
| ㉗ | jobs 案件隔离 | 切换案件调 /aiClean/jobs | 只返回当前案件的 job | ✅ / N/A |
| ㉘ | 重跑不重判待人工 | 有待人工时再点「智能」 | 日志显示沿用待人工、无新的模型调用 | ✅ / N/A |
| ㉙ | 重判命中既有模板 | 重判后结论变化 | ExistingHit → dispatchExisting 走 doClean | ✅ / N/A |
| ㉚ | SSE 断连/刷新恢复 | 进度页刷新 | restoreImportProgress 恢复进度继续 | ✅ / N/A |
测试共执行 3 轮混合批次 + 多轮单项验证(浏览器实测)。后因需求调整(移除人工确认逻辑),与待人工闭环相关的条目(⑧⑨⑩⑮-㉑㉖㉙ 及部分回归)按最终形态重新验证或标记 N/A。