From 8e58793a0b4267b1c826607818b892d765267505 Mon Sep 17 00:00:00 2001 From: chengma Date: Tue, 18 Aug 2026 17:00:36 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=BD=92=E6=A1=A3=E4=BB=BB=E5=8A=A1=20?= =?UTF-8?q?#272?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/task/272-采购尺码候选扫描面板状态恢复.md | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 docs/task/272-采购尺码候选扫描面板状态恢复.md diff --git a/docs/task/272-采购尺码候选扫描面板状态恢复.md b/docs/task/272-采购尺码候选扫描面板状态恢复.md new file mode 100644 index 0000000..4b03a48 --- /dev/null +++ b/docs/task/272-采购尺码候选扫描面板状态恢复.md @@ -0,0 +1,42 @@ +# 272 采购尺码候选扫描面板状态恢复 + +- 类型:缺陷 +- 父级大工单:#96(Client Epic #1) +- 所属 MVP / 版本:#253 采购运行时 AI 规格纠偏闭环 +- 状态:待验收 +- 日期:2026-08-18 +- Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/272 + +## 背景与目标 + +采购直接选择目标尺码失败后,需要只读遍历页面候选。原流程会重新读取第一棵控件树,滚动动画期间遇到不完整 XML 时容易误报规格面板丢失。本任务复用已读取的最新规格首帧,并使失败原因反映真实页面状态。 + +## 最终方案 + +采购适配层在颜色区域归位后,将最新 XML 交给第二规格候选扫描。采集服务把该 XML 作为首次读取的优先输入,后续滑动前仍重新读取最新控件树。扫描期间识别验证码、登录、风控和支付页并立即安全停止;若确认页仍在但规格结构持续不可解析,返回结构不完整错误;页面离开确认页时返回面板丢失错误,并附带不含个人数据的读取诊断。 + +## 改了哪些 + +- `client/src/pdd_u2_purchase_adapter.py`:候选扫描复用最新规格首帧;保留自定义测试扫描器的单参数接口。 +- `client/src/pdd_collect_service.py`:第二规格扫描支持首帧;细分短暂结构异常、特殊页面和确认页离开后的错误。 +- `client/test/test_pdd_collect_service.py`:增加首帧优先解析回归测试。 + +## 验收结果 + +| 验收标准 | 结果 | +|---|---| +| 候选扫描复用最新有效首帧 | 通过 | +| 首帧可用时不依赖第一次重新读取设备 XML | 通过(新增测试) | +| 特殊页面和确认页结构异常可区分 | 通过(代码与既有特殊页测试) | +| 既有规格匹配和采购门禁未改动 | 通过(相关测试) | + +## 测试 + +- 执行的命令:`C:/Python310/python.exe -m py_compile src/pdd_u2_purchase_adapter.py src/pdd_collect_service.py` +- 执行的命令:`C:/Python310/python.exe -m pytest test/test_pdd_u2_purchase_adapter.py test/test_pdd_collect_service.py -q` +- 结果:144 passed。 +- **没验证到的部分**:未在真实 Android 设备验证滚动动画、验证码、登录、风控或支付页面切换。 + +## 相关提交 + +- `536f4bc` `fix: 修复采购尺码候选扫描面板误判 (#272)`