feat: 完整采集采购尺码候选 (#256)

This commit is contained in:
chengma
2026-08-17 17:04:43 +08:00
parent f187bfe0fe
commit 58dc9022eb
7 changed files with 458 additions and 7 deletions
+10 -1
View File
@@ -422,10 +422,19 @@ reconcile_purchase(task, run) -> PurchaseResult | ManualReview
`ui_main.py` 注入工厂。Adapter 通过设备工作线程绑定的
`PersistentPddDeviceService` 独占一次任务会话;同一设备可在 90 秒内复用底层
Device 连接,但每次判断都重新读取当前包名和控件树。当前 Admin 下发的 `color` 和 `size`
使用精确文字匹配;其他动态维度直接停止,不做相似匹配。原生 PDD
先使用原文精确匹配,再使用繁体、简体规范化结果做唯一匹配;其他动态维度直接停止,
不做模糊相似匹配。原生 PDD
控件树不暴露商品编号,因此商品编号来自 Adapter 本次已校验并打开的
PDD URL,包名和页面类型仍以最新控件树确认。
颜色已可靠选中但尺码确实不在页面时,采购 Adapter 调用
`PddCollectService.collect_second_dimension_candidates`,复用采集侧经过真机验证的
第二规格只读遍历。遍历完成后,Adapter 在内存中保留全部观察项及可用状态,并仅为
可购买项按页面顺序生成 `c1`、`c2` 等候选和 `spec-resolution-v1` 快照哈希。只有完整
遍历才能抛出 `PddPurchaseSpecResolutionRequired`;遍历不完整、页面丢失、没有可购买项,
或完整列表中仍存在目标的精确/繁简等价文字,都返回普通采购错误。该 Adapter 不调用
Admin,也不点击任何远端解析结果;网络请求和解析后复核属于后续工单。
部分 PDD 页面在点击商品页购买入口后直接进入包含规格和数量的
订单确认页。Adapter 只点击这一次可逆入口;`enter_confirmation`
和 `stop_before_submit` 只读确认“提交订单”等最终按钮存在,**不点击它**。