Files
cmautobuy/docs/task/143-批量重新采集采购时实时刷新当前任务状态.md
T

46 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# #143 批量重新采集采购时实时刷新当前任务状态
- 工单号:#143
- 类型:功能
- 父级:#1
- 版本:MVP #2
- 状态:待验收
- 日期:2026-08-11
- Gitea:<http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/143>
## 背景与目标
批量重新采集或重新采购时,让采购人员及时看到真正开始执行的任务,同时避免尚在队列中的任务被错误显示为运行中。
## 最终方案
用户确认后立即刷新列表并显示入队数量。采集和采购应用服务只在数据库成功创建 `running` 执行记录后调用开始回调;设备工作线程把任务编号、类型和队列进度通过 Qt 信号交给主线程。主线程收到后刷新列表,并把运行状态按任务类型显示为“采集中”或“采购中”。每条结果返回后继续刷新,排队任务保持原状态。
## 改了哪些
- `client/src/collect_task_service.py`:增加运行记录落库后的开始回调。
- `client/src/purchase_task_service.py`:增加运行记录落库后的开始回调。
- `client/src/pdd_ui_event.py`:传递任务开始信号、刷新列表和显示队列进度。
- `client/test/`:验证回调时数据库已经进入运行态及中文状态映射。
- `docs/client/05-ui-specification.md`:补充批量队列实时反馈规则。
## 验收结果
| 验收标准 | 结果 |
|---|---|
| 确认批量操作后立即刷新并显示入队数量 | 通过 |
| 只有实际写入 running 的当前任务才发出开始信号 | 通过 |
| 采集和采购分别显示“采集中”“采购中” | 通过 |
| 每条完成、失败、跳过或取消后刷新 | 通过 |
| 未改变数据库状态、Admin 接口和不可逆采购安全规则 | 通过 |
## 测试
- 执行的命令:在 `client` 目录分别运行 `test_collect_task_service.py`、`test_purchase_task_service.py`、`test_pdd_ui_event.py` 的 unittest discover。
- 结果:相关测试通过;Client 全量 377 项测试通过。
- **没验证到的部分**:未连接真机连续执行多条重新采集或重新采购;未人工中途点击停止验证视觉反馈。
## 相关提交
- `6553ae9` 批量重跑实时刷新任务状态