真实采购进入待付款订单详情后,当前核单存在两个问题:
app_current()
复现:真实下单后停留在待付款订单详情;本地执行记录已有 irreversible_action_at;自动核单返回 RECONCILE_READ_FAILED 或 ORDER_NOT_FOUND,但人工向下读取能找到唯一订单号和下单时间。
irreversible_action_at
RECONCILE_READ_FAILED
ORDER_NOT_FOUND
client/src/pdd_u2_purchase_reconcile_adapter.py
client/test/test_pdd_u2_purchase_reconcile_adapter.py
PurchaseReconcileService._candidate_matches()
从 client/ 目录执行:
client/
C:/Python310/python.exe -m unittest discover -s test -p test_pdd_u2_purchase_reconcile_adapter.py -v C:/Python310/python.exe -m unittest discover -s test -p test_purchase_recovery.py -v C:/Python310/python.exe -m unittest discover -s test -v
真机验证:仅在已有 irreversible_action_at 的订单上执行只读核单,确认能读取订单详情上下屏并形成唯一候选;不点击支付或取消订单。
风险:把两个订单卡片或不同订单页面的字段错误拼接,可能造成错误上报。防护方式是仅允许单订单详情上下文合并,订单号或关键字段冲突立即停止合并,并继续由严格匹配转人工处理。回退时恢复本工单提交,任务保持人工核对状态,绝不重新下单。
状态:进行中。已确认根因:核单入口过早信任 app_current;订单详情扫描只保留带订单号的单屏候选。开始按已确认方案实现控件树优先识别和单订单详情多视口证据合并,保持最终严格匹配不变。
状态:待用户验收。
实现完成:
a8f8e73
0f5d38b
docs/task/122-只读核单多视口证据合并.md
验证:
git diff --check
未验证:未在真实 Android 设备上重新执行自动核单。现有旧任务已进入 reconcile_manual_review,安全状态机不会自动重试,本任务未重置数据库状态,也未点击支付、取消订单或重新下单。
reconcile_manual_review
真机后续发现微信中间页约 20 秒返回时存在过渡页过早失败,已拆分为 #124 继续修复;#122 的控件树优先和多视口合并仍保留。
用户已于 2026-08-11 明确验收通过。
eca9289
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
真实采购进入待付款订单详情后,当前核单存在两个问题:
app_current()错误返回系统设置包名,即使无障碍控件树明确属于 PDD,代码仍报“核单时 PDD 不在前台”。复现:真实下单后停留在待付款订单详情;本地执行记录已有
irreversible_action_at;自动核单返回RECONCILE_READ_FAILED或ORDER_NOT_FOUND,但人工向下读取能找到唯一订单号和下单时间。做什么 / 不做什么
app_current()兜底。怎么做
client/src/pdd_u2_purchase_reconcile_adapter.py:增加控件树包名识别;提取不依赖订单号的单屏证据;只在单订单详情上下文中合并相邻视口证据;发现多个订单号或冲突字段时停止合并并保留不完整候选。client/test/test_pdd_u2_purchase_reconcile_adapter.py:用脱敏 XML 构造上半屏/下半屏,验证字段合并、错误app_current()兜底以及多订单不误合并。PurchaseReconcileService._candidate_matches()的严格条件不变。验收标准
app_current()误报其他包不会中断核单。怎么验证
从
client/目录执行:真机验证:仅在已有
irreversible_action_at的订单上执行只读核单,确认能读取订单详情上下屏并形成唯一候选;不点击支付或取消订单。风险和回退
风险:把两个订单卡片或不同订单页面的字段错误拼接,可能造成错误上报。防护方式是仅允许单订单详情上下文合并,订单号或关键字段冲突立即停止合并,并继续由严格匹配转人工处理。回退时恢复本工单提交,任务保持人工核对状态,绝不重新下单。
状态:进行中。已确认根因:核单入口过早信任 app_current;订单详情扫描只保留带订单号的单屏候选。开始按已确认方案实现控件树优先识别和单订单详情多视口证据合并,保持最终严格匹配不变。
状态:待用户验收。
实现完成:
a8f8e73:控件树优先识别 PDD 前台;仅在单订单详情中合并上下视口字段;关键字段冲突时拒绝合并;保持最终严格匹配及只读安全边界。0f5d38b:归档docs/task/122-只读核单多视口证据合并.md。验证:
git diff --check通过。未验证:未在真实 Android 设备上重新执行自动核单。现有旧任务已进入
reconcile_manual_review,安全状态机不会自动重试,本任务未重置数据库状态,也未点击支付、取消订单或重新下单。真机后续发现微信中间页约 20 秒返回时存在过渡页过早失败,已拆分为 #124 继续修复;#122 的控件树优先和多视口合并仍保留。
用户已于 2026-08-11 明确验收通过。
eca9289