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

50 lines
2.2 KiB
Markdown
Raw Normal View History

2026-08-11 11:20:44 +08:00
# #143 批量重新采集采购时实时刷新当前任务状态
- 工单号:#143
- 类型:功能
- 父级:#1
- 版本:MVP #2
- 状态:已完成
2026-08-11 11:20:44 +08:00
- 日期: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 项测试通过。
2026-08-11 11:20:44 +08:00
- **没验证到的部分**:未连接真机连续执行多条重新采集或重新采购;未人工中途点击停止验证视觉反馈。
## 相关提交
- `6553ae9` 批量重跑实时刷新任务状态
## 用户验收
- 2026-08-11:用户确认通过验收。