T43 Admin PDD商品列表多选与批量采集任务创建 #45

Closed
opened 2026-08-17 15:16:47 +08:00 by ila · 4 comments
Owner

基本信息

  • 类型:需求 / Admin / PDD批量采集入口
  • 所属原型:#31
  • 阶段:待实施;受 #31 原型审核门禁阻塞

原始需求与目标

PDD 商品列表左侧增加复选框,采购/管理员可多选商品后批量创建采集任务。该动作属于采集域,不创建采购任务或PDD订单。

依赖与并行

  • 前置:#31 原型用户明确验收;复用现有 PDD 商品、采集规则和单任务创建约束。
  • 与采购任务实现解耦,可在 #31 通过后独立实施。

子项目影响

  • web:PDD列表多选、禁用原因、批量确认和逐条结果。
  • server:批量创建编排;复用单采集任务事务与并发检查。
  • shared-docs:批量采集接口和错误提示。

方案

  • 表头全选只作用于当前页;未选择时批量按钮禁用并显示已选数量。
  • 已停用、没有可用规则或已有 pending/running 任务的商品禁用选择并显示原因。
  • 每个 PDD 商品分别创建一个采集任务;设备可统一人工指定或留空由空闲设备领取。
  • 创建前服务端再次校验,同一商品活动任务约束保持不变;部分失败不回滚其他成功项。
  • 结果逐条返回采集任务号或失败原因。

不做

  • 不创建采购任务、订单或支付。
  • 不改变已有任务的规则、URL、goods_id和设备快照规则。
  • 不实现跨所有分页的无上限全选。

验收

  • 当前页多选、禁用状态和已选数量正确。
  • 批量确认展示规则、设备策略和逐条可创建状态。
  • 每个商品生成独立采集任务,部分失败逐条显示。
  • 同一商品不能同时存在多个 pending/running 采集任务。
  • 没有选择时按钮不可用;操作提示普通人可理解。

风险与文档

必须继续遵守设备串行、离线失败、默认不重试和任务快照规则。实现时更新 Wiki 业务规则和 API 契约;用户验收前工单不得关闭。

## 基本信息 - 类型:需求 / Admin / PDD批量采集入口 - 所属原型:#31 - 阶段:待实施;受 #31 原型审核门禁阻塞 ## 原始需求与目标 PDD 商品列表左侧增加复选框,采购/管理员可多选商品后批量创建采集任务。该动作属于采集域,不创建采购任务或PDD订单。 ## 依赖与并行 - 前置:#31 原型用户明确验收;复用现有 PDD 商品、采集规则和单任务创建约束。 - 与采购任务实现解耦,可在 #31 通过后独立实施。 ## 子项目影响 - web:PDD列表多选、禁用原因、批量确认和逐条结果。 - server:批量创建编排;复用单采集任务事务与并发检查。 - shared-docs:批量采集接口和错误提示。 ## 方案 - 表头全选只作用于当前页;未选择时批量按钮禁用并显示已选数量。 - 已停用、没有可用规则或已有 `pending/running` 任务的商品禁用选择并显示原因。 - 每个 PDD 商品分别创建一个采集任务;设备可统一人工指定或留空由空闲设备领取。 - 创建前服务端再次校验,同一商品活动任务约束保持不变;部分失败不回滚其他成功项。 - 结果逐条返回采集任务号或失败原因。 ## 不做 - 不创建采购任务、订单或支付。 - 不改变已有任务的规则、URL、goods_id和设备快照规则。 - 不实现跨所有分页的无上限全选。 ## 验收 - [ ] 当前页多选、禁用状态和已选数量正确。 - [ ] 批量确认展示规则、设备策略和逐条可创建状态。 - [ ] 每个商品生成独立采集任务,部分失败逐条显示。 - [ ] 同一商品不能同时存在多个 `pending/running` 采集任务。 - [ ] 没有选择时按钮不可用;操作提示普通人可理解。 ## 风险与文档 必须继续遵守设备串行、离线失败、默认不重试和任务快照规则。实现时更新 Wiki 业务规则和 API 契约;用户验收前工单不得关闭。
Author
Owner

前置设计证据

#31 QuantUX App 6a81db5d191a826306a7edd6 已覆盖本工单的 PDD 列表当前页多选、禁用原因、批量采集确认和逐条结果;本地快照为 prototypes/quantux-pdd-product-6a81db5d191a826306a7edd6.html,提交 7df4546。当前仅为草稿设计证据,#31 未明确验收前本工单保持待实施。

## 前置设计证据 #31 QuantUX App `6a81db5d191a826306a7edd6` 已覆盖本工单的 PDD 列表当前页多选、禁用原因、批量采集确认和逐条结果;本地快照为 `prototypes/quantux-pdd-product-6a81db5d191a826306a7edd6.html`,提交 `7df4546`。当前仅为草稿设计证据,#31 未明确验收前本工单保持待实施。
Author
Owner

依赖同步:#31 PDD 商品档案已于 2026-08-17 通过用户验收并关闭。#45 的原型门禁和商品档案依赖均已满足,可以按已确认原型开始实施;仍只创建采集任务,不创建采购任务或订单。

依赖同步:#31 PDD 商品档案已于 2026-08-17 通过用户验收并关闭。#45 的原型门禁和商品档案依赖均已满足,可以按已确认原型开始实施;仍只创建采集任务,不创建采购任务或订单。
Author
Owner

实施完成,等待验收

实现

  • PDD 商品列表支持当前页多选;已停用、没有采集规则、已有待执行/执行中任务的商品不可选,并显示具体原因。
  • 批量确认统一选择一个采集规则,可选指定一个 Android 设备;设备留空时由空闲设备领取。
  • 新增 POST /api/admin/v1/collection-tasks/batch。每个商品独立复用单任务事务,逐项固化 URL、goods_id、规则和设备快照。
  • 批次请求按 requestId + pddProductId 幂等;逐项失败不回滚其它成功任务,返回每个商品的任务号或失败原因。
  • 提交后页面展示成功/失败数量及逐商品结果。
  • 本工单未加入采购任务、创建订单或支付能力;Android Agent 与 APK 无变化;无需数据库迁移。

验证

  • scripts/verify.ps1 -Component server:通过(含 go test ./... 和构建)。
  • scripts/verify.ps1 -Component web:通过;ESLint 0 error,保留项目既有 30 个 warning;生产构建通过。
  • pnpm exec playwright test tests/e2e/pdd-product-module.spec.ts:2 passed,覆盖不可选商品、批量请求和部分失败结果。
  • Wiki 镜像一致性检查:通过。

证据

  • 源码提交:ceecb58 (feat(#45): add batch collection task creation)
  • Wiki 修订:d5b5407 (docs: document batch collection tasks for issue 45)

未验证 / 验收说明

  • 自动化测试使用接口拦截,没有向当前 MySQL 创建真实采集任务,也未执行真机采集。
  • 当前已经运行的后端进程若早于本提交启动,需要重启后才会加载批量接口和商品可选性字段。
  • 工单保持打开,等待用户验收。
## 实施完成,等待验收 ### 实现 - PDD 商品列表支持当前页多选;已停用、没有采集规则、已有待执行/执行中任务的商品不可选,并显示具体原因。 - 批量确认统一选择一个采集规则,可选指定一个 Android 设备;设备留空时由空闲设备领取。 - 新增 `POST /api/admin/v1/collection-tasks/batch`。每个商品独立复用单任务事务,逐项固化 URL、goods_id、规则和设备快照。 - 批次请求按 `requestId + pddProductId` 幂等;逐项失败不回滚其它成功任务,返回每个商品的任务号或失败原因。 - 提交后页面展示成功/失败数量及逐商品结果。 - 本工单未加入采购任务、创建订单或支付能力;Android Agent 与 APK 无变化;无需数据库迁移。 ### 验证 - `scripts/verify.ps1 -Component server`:通过(含 `go test ./...` 和构建)。 - `scripts/verify.ps1 -Component web`:通过;ESLint 0 error,保留项目既有 30 个 warning;生产构建通过。 - `pnpm exec playwright test tests/e2e/pdd-product-module.spec.ts`:2 passed,覆盖不可选商品、批量请求和部分失败结果。 - Wiki 镜像一致性检查:通过。 ### 证据 - 源码提交:`ceecb58` (`feat(#45): add batch collection task creation`) - Wiki 修订:`d5b5407` (`docs: document batch collection tasks for issue 45`) ### 未验证 / 验收说明 - 自动化测试使用接口拦截,没有向当前 MySQL 创建真实采集任务,也未执行真机采集。 - 当前已经运行的后端进程若早于本提交启动,需要重启后才会加载批量接口和商品可选性字段。 - 工单保持打开,等待用户验收。
Author
Owner

用户于 2026-08-18 明确验收通过。已完成 Wiki-first 归档和镜像一致性检查:Wiki 修订 �0ed65f,源码仓库文档镜像提交 3718ce8。关闭本工单。

用户于 2026-08-18 明确验收通过。已完成 Wiki-first 归档和镜像一致性检查:Wiki 修订 �0ed65f,源码仓库文档镜像提交 3718ce8。关闭本工单。
ila closed this issue 2026-08-18 08:49:38 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: OPC/goauto#45