Admin:顺运宝列表增加批量 AI 匹配、进度与筛选 #202

Open
opened 2026-08-13 10:05:27 +08:00 by ila · 2 comments
Owner

基本信息

  • 类型:需求
  • 父级大工单:#14
  • 所属 MVP / 版本:#199 / AI规格批量匹配
  • 阶段:3. SYB 批量交互与可观测性
  • 依赖:#200、#201

要解决什么

采购员不希望逐条打开 SYB 商品详情调用 AI。需要保留现有单条关联、采集和人工规格匹配逻辑,在 SYB 列表对勾选商品发起批量 AI 匹配;合格结果由核心服务直接保存。列表能够区分当前 AI 已匹配数据,并在人工修改后去掉当前 AI 标记。

做什么 / 不做什么

  • 做:
    • SYB 列表增加“批量 AI 匹配”按钮和选中数量提示。
    • 后台持久化批次与逐条结果,限制并发,页面轮询显示进度和逐条原因。
    • 相同“蝦皮商品 + SYB 规格 + 当前 PDD 商品 + 上下文版本”在一个批次内只处理一次,结果供相同行复用。
    • 已有有效映射复用并跳过;条件不足、AI 不确定或硬门禁失败逐条显示原因。
    • 处理阶段筛选增加“AI规格匹配”:表示当前有效映射来源为 AI、且尚未进入更后续任务阶段。
    • 列表/详情增加独立“匹配来源”标记;来源在进入采购中/完成后仍可追溯。
    • 人工在现有详情页改写后,当前标记立即变为“人工匹配”。
  • 不做:
    • 不删除或替换现有单条详情匹配入口。
    • 批量 AI 匹配不自动创建采购任务,不触发 Client 领取或真实下单。
    • 不允许页面直接提交任意 PDD 选项作为 AI 结果。
    • 不让单条失败回滚已经成功的其他条目。

怎么做

  • 预计修改 admin/handler/web/、admin/service/syb*.go、admin/repository/、admin/model/、admin/templates/syb/、admin/static/js/、路由、MySQL 迁移和 UI/数据模型文档。
  • POST 创建批次必须有 CSRF、当前账号权限和选中 ID 上限;后台 worker 使用配置快照和有界并发。任务进度持久化,Admin 重启后把未完成批次标记为中断,允许采购员重试尚未成功的项。
  • 批次状态至少区分等待、运行、部分成功、成功、失败、中断;逐条结果区分已复用、规则确定、AI 已保存、条件不足、需要人工、失败和数据已变化。
  • 每条保存必须重新走核心服务校验,不能信任创建批次时的页面数据。
  • “AI规格匹配”作为处理阶段筛选只命中当前可创建采购任务且来源为 AI 的行;匹配来源使用独立徽标,避免后续任务阶段覆盖审计信息。
  • 页面在 1366×768 可用,批量结果弹窗支持滚动并具有文字状态,不能只用颜色区分。

验收标准

  • 勾选 SYB 商品后可创建批量 AI 匹配,未勾选、超出上限或无权限时给出明确提示。
  • 批次显示总数、已处理、成功、复用、待人工和失败数量,刷新页面后仍可查看。
  • 相同匹配上下文只调用/保存一次,多个 SYB 明细正确复用。
  • 已有人工映射不被覆盖;条件不足和失败条目保持规格待匹配并显示原因。
  • 合格 AI 结果保存后行可进入创建采购任务流程,但批量匹配本身没有创建任何采购任务。
  • 处理阶段“AI规格匹配”能筛出当前 AI 有效映射;进入后续阶段后,匹配来源徽标仍显示 AI。
  • 人工详情改写后,当前来源徽标和筛选结果立即变为人工,历史审计不受影响。
  • Admin 重启或模型服务中断不会重复覆盖成功结果;可安全重试未成功项。
  • 页面满足 1366×768、键盘操作、滚动和非颜色单一反馈要求。
  • 固定 Go 1.23.0 的 build、test、vet,MySQL 8.4 _test 批次并发/重启恢复及前端 JS 语法检查通过。

怎么验证

从 admin/ 执行:

$env:GOTOOLCHAIN="go1.23.0"
go build ./...
go test ./... -count=1
go vet ./...
node --check static/js/app.js
Remove-Item Env:GOTOOLCHAIN

使用独立 MySQL 8.4 _test 库和伪模型服务验���混合批次、去重、部分失败、超时、重启中断、人工覆盖和筛选;浏览器以 1366×768 人工检查。

风险和回退

  • 风险:批量操作放大错误、费用和超时。通过选中上限、有界并发、上下文去重、配置快照、逐条硬校验和可重试状态控制。
  • 回退:隐藏批量入口并停止新批次,已有单条人工匹配继续使用;保留批次和匹配审计,避免失去追踪信息。
## 基本信息 - 类型:需求 - 父级大工单:#14 - 所属 MVP / 版本:#199 / AI规格批量匹配 - 阶段:3. SYB 批量交互与可观测性 - 依赖:#200、#201 ## 要解决什么 采购员不希望逐条打开 SYB 商品详情调用 AI。需要保留现有单条关联、采集和人工规格匹配逻辑,在 SYB 列表对勾选商品发起批量 AI 匹配;合格结果由核心服务直接保存。列表能够区分当前 AI 已匹配数据,并在人工修改后去掉当前 AI 标记。 ## 做什么 / 不做什么 - 做: - SYB 列表增加“批量 AI 匹配”按钮和选中数量提示。 - 后台持久化批次与逐条结果,限制并发,页面轮询显示进度和逐条原因。 - 相同“蝦皮商品 + SYB 规格 + 当前 PDD 商品 + 上下文版本”在一个批次内只处理一次,结果供相同行复用。 - 已有有效映射复用并跳过;条件不足、AI 不确定或硬门禁失败逐条显示原因。 - 处理阶段筛选增加“AI规格匹配”:表示当前有效映射来源为 AI、且尚未进入更后续任务阶段。 - 列表/详情增加独立“匹配来源”标记;来源在进入采购中/完成后仍可追溯。 - 人工在现有详情页改写后,当前标记立即变为“人工匹配”。 - 不做: - 不删除或替换现有单条详情匹配入口。 - 批量 AI 匹配不自动创建采购任务,不触发 Client 领取或真实下单。 - 不允许页面直接提交任意 PDD 选项作为 AI 结果。 - 不让单条失败回滚已经成功的其他条目。 ## 怎么做 - 预计修改 `admin/handler/web/`、`admin/service/syb*.go`、`admin/repository/`、`admin/model/`、`admin/templates/syb/`、`admin/static/js/`、路由、MySQL 迁移和 UI/数据模型文档。 - POST 创建批次必须有 CSRF、当前账号权限和选中 ID 上限;后台 worker 使用配置快照和有界并发。任务进度持久化,Admin 重启后把未完成批次标记为中断,允许采购员重试尚未成功的项。 - 批次状态至少区分等待、运行、部分成功、成功、失败、中断;逐条结果区分已复用、规则确定、AI 已保存、条件不足、需要人工、失败和数据已变化。 - 每条保存必须重新走核心服务校验,不能信任创建批次时的页面数据。 - “AI规格匹配”作为处理阶段筛选只命中当前可创建采购任务且来源为 AI 的行;匹配来源使用独立徽标,避免后续任务阶段覆盖审计信息。 - 页面在 1366×768 可用,批量结果弹窗支持滚动并具有文字状态,不能只用颜色区分。 ## 验收标准 - [ ] 勾选 SYB 商品后可创建批量 AI 匹配,未勾选、超出上限或无权限时给出明确提示。 - [ ] 批次显示总数、已处理、成功、复用、待人工和失败数量,刷新页面后仍可查看。 - [ ] 相同匹配上下文只调用/保存一次,多个 SYB 明细正确复用。 - [ ] 已有人工映射不被覆盖;条件不足和失败条目保持规格待匹配并显示原因。 - [ ] 合格 AI 结果保存后行可进入创建采购任务流程,但批量匹配本身没有创建任何采购任务。 - [ ] 处理阶段“AI规格匹配”能筛出当前 AI 有效映射;进入后续阶段后,匹配来源徽标仍显示 AI。 - [ ] 人工详情改写后,当前来源徽标和筛选结果立即变为人工,历史审计不受影响。 - [ ] Admin 重启或模型服务中断不会重复覆盖成功结果;可安全重试未成功项。 - [ ] 页面满足 1366×768、键盘操作、滚动和非颜色单一反馈要求。 - [ ] 固定 Go 1.23.0 的 build、test、vet,MySQL 8.4 `_test` 批次并发/重启恢复及前端 JS 语法检查通过。 ## 怎么验证 从 `admin/` 执行: ```powershell $env:GOTOOLCHAIN="go1.23.0" go build ./... go test ./... -count=1 go vet ./... node --check static/js/app.js Remove-Item Env:GOTOOLCHAIN ``` 使用独立 MySQL 8.4 `_test` 库和伪模型服务验���混合批次、去重、部分失败、超时、重启中断、人工覆盖和筛选;浏览器以 1366×768 人工检查。 ## 风险和回退 - 风险:批量操作放大错误、费用和超时。通过选中上限、有界并发、上下文去重、配置快照、逐条硬校验和可重试状态控制。 - 回退:隐藏批量入口并停止新批次,已有单条人工匹配继续使用;保留批次和匹配审计,避免失去追踪信息。
Author
Owner

2026-08-14 开始实施 #202。计划使用 MySQL v22 持久化批次/逐条结果;POST 只接收 syb_id,worker 重新读取上下文并使用 #201 核心;批次配置快照固定、有界并发、进程重启中断恢复;SYB 增加 AI规格匹配筛选和独立来源徽标。不创建采集/采购任务。

2026-08-14 开始实施 #202。计划使用 MySQL v22 持久化批次/逐条结果;POST 只接收 syb_id,worker 重新读取上下文并使用 #201 核心;批次配置快照固定、有界并发、进程重启中断恢复;SYB 增加 AI规格匹配筛选和独立来源徽标。不创建采集/采购任务。
Author
Owner

实施完成,待验收

已按工单范围完成 MySQL v22 批次持久化、有界并发和上下文去重;顺运宝列表已增加 AI匹配、匹配记录、进度弹窗、来源徽标及 AI规格匹配筛选。人工映射保持优先,重启会中断未完成项,成功映射不回滚。批量操作不创建采购任务、不调用 Client、不改变真实采购门禁。

  • 实现提交:d64579e
  • 归档提交:57fc8a3
  • 归档:docs/task/202-Admin顺运宝列表批量AI匹配进度与筛选.md
  • go test ./... -count=1:通过
  • go vet ./...:通过
  • node --check static/js/app.js:通过

MySQL 批次并发、权限和中断专项用例已编写;当前未启用独立 MySQL 8.4 _test 库,因此明确跳过,未使用生产库代替。真实模型服务和浏览器 1366×768 人工验收未执行。

工单保持打开,等待用户验收。

## 实施完成,待验收 已按工单范围完成 MySQL v22 批次持久化、有界并发和上下文去重;顺运宝列表已增加 AI匹配、匹配记录、进度弹窗、来源徽标及 AI规格匹配筛选。人工映射保持优先,重启会中断未完成项,成功映射不回滚。批量操作不创建采购任务、不调用 Client、不改变真实采购门禁。 - 实现提交:`d64579e` - 归档提交:`57fc8a3` - 归档:`docs/task/202-Admin顺运宝列表批量AI匹配进度与筛选.md` - `go test ./... -count=1`:通过 - `go vet ./...`:通过 - `node --check static/js/app.js`:通过 MySQL 批次并发、权限和中断专项用例已编写;当前未启用独立 MySQL 8.4 `_test` 库,因此明确跳过,未使用生产库代替。真实模型服务和浏览器 1366×768 人工验收未执行。 工单保持打开,等待用户验收。
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmautobuy#202