PDD 任务列表目前只显示商品标题、规格、价格、状态和更新时间,采购人员无法直接看到采集到的店铺名称,也无法比较每次采集或采购实际用了多少秒。
现有 task_runs 已按执行尝试保存 started_at 和 finished_at,可以计算最新一次执行用时;店铺名目前只在完整 pdd_data.shop_name 中,任务摘要没有轻量字段。任务列表采用增量加载,不能为每一行读取和保留完整 pdd_data。
task_runs
started_at
finished_at
pdd_data.shop_name
pdd_data
shop_name
—
finished_at - started_at
attempt_no
client/src/db_schema.py
pdd_tasks
shop_name TEXT
client/src/task_repository.py
NULL
TaskSummary
duration_seconds
list_tasks
idx_task_runs_task(task_id, attempt_no DESC)
TaskRow
docs/client/03-data-model.md
docs/client/05-ui-specification.md
预计修改文件:
client/src/task_models.py
client/src/pdd_ui.py
client/src/pdd_ui_event.py
client/test/test_db.py
client/test/test_task_repository.py
client/test/test_pdd_ui.py
client/test/test_pdd_ui_event.py
不新增依赖,不修改 Admin。
从 client/ 目录执行:
client/
C:/Python310/python.exe -m py_compile src/db_schema.py src/task_models.py src/task_repository.py src/pdd_ui.py $env:QT_QPA_PLATFORM="offscreen" C:/Python310/python.exe -m unittest discover -s test -p "test_db*.py" -v C:/Python310/python.exe -m unittest test.test_task_repository -v C:/Python310/python.exe -m unittest discover -s test -p "test_pdd_ui*.py" -v C:/Python310/python.exe -m unittest discover -s test -v Remove-Item Env:QT_QPA_PLATFORM
手工界面验收:
C:/Python310/python.exe buyer_main.py
准备无执行记录、执行中、成功、失败、重新执行、长店铺名和无店铺名任务,检查店铺名、秒数、工具提示、水平滚动以及原有勾选和详情操作。
attempt_no DESC
pdd_tasks.shop_name
测试:test_db.py、test_task_repository.py、test_pdd_ui.py、test_pdd_ui_event.py,共 96 项通过。
test_db.py
test_task_repository.py
test_pdd_ui.py
test_pdd_ui_event.py
提交:e354ddd 归档:docs/task/136-pdd任务列表显示店铺名和最新执行用时.md 归档提交:a441dfe
e354ddd
docs/task/136-pdd任务列表显示店铺名和最新执行用时.md
a441dfe
未验证:生产库副本迁移、真机执行后人工检查。当前状态:待验收,工单保持开启。
补充回归记录:完成 Client 全量测试,377 项全部通过。归档回归记录提交:eca6068。
eca6068
用户已于 2026-08-11 确认验收通过。
cc595c1
No dependencies set.
The note is not visible to the blocked user.
基本信息
要解决什么
PDD 任务列表目前只显示商品标题、规格、价格、状态和更新时间,采购人员无法直接看到采集到的店铺名称,也无法比较每次采集或采购实际用了多少秒。
现有
task_runs已按执行尝试保存started_at和finished_at,可以计算最新一次执行用时;店铺名目前只在完整pdd_data.shop_name中,任务摘要没有轻量字段。任务列表采用增量加载,不能为每一行读取和保留完整pdd_data。做什么 / 不做什么
shop_name;空值显示—,截断时提供完整工具提示。task_runs,按finished_at - started_at计算并显示整数秒,例如“63 秒”。—,最新执行仍在运行时显示“执行中”。attempt_no后,列表显示最新一次执行的用时;历史执行记录不修改。pdd_data.shop_name回填旧任务的店铺名。pdd_data,不逐行追加数据库查询。—,不为补店铺名额外滚动手机页面。pdd_data结构或真实下单安全规则。已确认的实现方案
client/src/db_schema.py末尾增加版本 5,给pdd_tasks增加可空的shop_name TEXT;pdd_data.shop_name回填非空文本;client/src/task_repository.py,在采集成功、采购成功以及只读核单成功更新最新结果时,同步写入轻量shop_name;NULL,不改变原始pdd_data。TaskSummary,增加shop_name、最新执行状态和可空的整数duration_seconds;list_tasks在现有分页查询中一次关联每个任务最新attempt_no,利用现有idx_task_runs_task(task_id, attempt_no DESC);TaskRow和表格模型;docs/client/03-data-model.md、docs/client/05-ui-specification.md。预计修改文件:
client/src/db_schema.pyclient/src/task_models.pyclient/src/task_repository.pyclient/src/pdd_ui.pyclient/src/pdd_ui_event.py(仅摘要到TaskRow的映射需要时)client/test/test_db.py或现有数据库迁移测试client/test/test_task_repository.pyclient/test/test_pdd_ui.pyclient/test/test_pdd_ui_event.py(映射涉及时)docs/client/03-data-model.mddocs/client/05-ui-specification.md不新增依赖,不修改 Admin。
验收标准
pdd_data.shop_name被回填;无值、空白或无效内容不会导致迁移失败,显示为—。NULL。—;最新执行未结束显示“执行中”。attempt_no的用时,不覆盖历史task_runs。pdd_data,不存在逐行查询。验证方式
从
client/目录执行:手工界面验收:
准备无执行记录、执行中、成功、失败、重新执行、长店铺名和无店铺名任务,检查店铺名、秒数、工具提示、水平滚动以及原有勾选和详情操作。
风险和回退
attempt_no DESC只取最新执行。pdd_data或逐行查询会破坏增量加载性能;店铺名使用摘要列,用时在同一分页 SQL 中取得。实施完成,待用户验收
pdd_tasks.shop_name,并从有效的历史pdd_data.shop_name安全回填;task_runs,没有 N+1 查询,也不加载完整pdd_data;测试:
test_db.py、test_task_repository.py、test_pdd_ui.py、test_pdd_ui_event.py,共 96 项通过。提交:
e354ddd归档:
docs/task/136-pdd任务列表显示店铺名和最新执行用时.md归档提交:
a441dfe未验证:生产库副本迁移、真机执行后人工检查。当前状态:待验收,工单保持开启。
补充回归记录:完成 Client 全量测试,377 项全部通过。归档回归记录提交:
eca6068。用户已于 2026-08-11 确认验收通过。
cc595c1