[待验收] 批量上传显示逐商品进度与状态 #35

Open
opened 2026-10-06 14:44:24 +08:00 by ila · 1 comment
Owner

来源与目标

2026-10-06 用户提出:“下载视频有进度条,上传数据没有进度条,增加和下载视频一样的进度条”;随后要求“按照你的建议建工单”。目标是让批量上传期间能看见逐商品处理进度和结果。

当前事实

UploadVideos 当前等待全部 worker 结束后才返回;前端 run('上传数据', ...) 只显示按钮加载状态,结束时才刷新列表。上传并发可配置为 1—4;ERPGo 受理请求不等于上传成功,可能出现待确认。

确认方案与范围

  • 复用下载视频进度条的视觉样式,上传进度按去重后的本批商品数计算,不以文件字节或 ERPGo HTTP 202 计算。
  • 每个商品完成本轮处理时将“已处理/总数”推进一次,并实时刷新对应本地列表状态;并发回调须同步计数,最后一次刷新不得被较早查询覆盖。
  • 分开展示“已上传(仅远端操作 succeeded 且本地落库成功)”“已有视频跳过”“缺少/不合规等不可上传”“失败”“待确认”。进度 100% 只表示本轮全部商品处理完,不表示全部上传成功。
  • 未决上传只查询原幂等键,不自动换键重放;SQLite 继续作为状态事实来源,前端进度仅是本轮临时展示。
  • 保留现有上传确认弹窗、并发配置、覆盖提示、日志和上传流程;关闭或重启后以 SQLite 状态为准。

非目标

不做单文件字节百分比、不改 ERPGo 接口与上传结果判定、不自动重试未决操作、不增加真实店铺写入。

风险与回退

涉及并发上传与状态展示,按高风险记录。重点防止重复计数、待确认误报成功、并发列表刷新乱序及前端状态成为第二事实源。回退本次 UI/进度事件改动即可恢复原按钮加载与最终刷新行为,不迁移 SQLite。

验收与验证

  • 上传 13 个商品时展示总数 13,处理每个商品后进度增加,全部完成为 13/13;单商品和并发 3 的计数均准确。
  • 成功、已有视频、缺少/不合规、失败、待确认分别统计;待确认不计入已上传,HTTP 202 不计入已上传。
  • 商品处理完即刷新列表状态;取消确认时不启动上传;启动失败时清除或正确终结进度。
  • 模拟 ERPGo/临时 SQLite 覆盖并发回调、终态分类、未决操作只查原键、列表刷新;运行 Go 测试、前端构建和 Windows 生产构建。真实店铺上传仍由使用者按商品明确确认并单独验收。

文档影响

实施时按实际最终行为更新 Product-Requirements-Overview 与 Local-Development-and-Verification Wiki,并同步核心镜像;本次只建单,不改文档或代码。

依赖与工具

依赖现有 ERPGo 上传操作查询、SQLite 上传状态与确认弹窗;无未满足的前置工单。项目未提供 Gitea MCP 工具,本单使用 Gitea API 回退。

## 来源与目标 2026-10-06 用户提出:“下载视频有进度条,上传数据没有进度条,增加和下载视频一样的进度条”;随后要求“按照你的建议建工单”。目标是让批量上传期间能看见逐商品处理进度和结果。 ## 当前事实 `UploadVideos` 当前等待全部 worker 结束后才返回;前端 `run('上传数据', ...)` 只显示按钮加载状态,结束时才刷新列表。上传并发可配置为 1—4;ERPGo 受理请求不等于上传成功,可能出现待确认。 ## 确认方案与范围 - 复用下载视频进度条的视觉样式,上传进度按去重后的本批商品数计算,不以文件字节或 ERPGo HTTP 202 计算。 - 每个商品完成本轮处理时将“已处理/总数”推进一次,并实时刷新对应本地列表状态;并发回调须同步计数,最后一次刷新不得被较早查询覆盖。 - 分开展示“已上传(仅远端操作 `succeeded` 且本地落库成功)”“已有视频跳过”“缺少/不合规等不可上传”“失败”“待确认”。进度 100% 只表示本轮全部商品处理完,不表示全部上传成功。 - 未决上传只查询原幂等键,不自动换键重放;SQLite 继续作为状态事实来源,前端进度仅是本轮临时展示。 - 保留现有上传确认弹窗、并发配置、覆盖提示、日志和上传流程;关闭或重启后以 SQLite 状态为准。 ## 非目标 不做单文件字节百分比、不改 ERPGo 接口与上传结果判定、不自动重试未决操作、不增加真实店铺写入。 ## 风险与回退 涉及并发上传与状态展示,按高风险记录。重点防止重复计数、待确认误报成功、并发列表刷新乱序及前端状态成为第二事实源。回退本次 UI/进度事件改动即可恢复原按钮加载与最终刷新行为,不迁移 SQLite。 ## 验收与验证 - 上传 13 个商品时展示总数 13,处理每个商品后进度增加,全部完成为 13/13;单商品和并发 3 的计数均准确。 - 成功、已有视频、缺少/不合规、失败、待确认分别统计;待确认不计入已上传,HTTP 202 不计入已上传。 - 商品处理完即刷新列表状态;取消确认时不启动上传;启动失败时清除或正确终结进度。 - 模拟 ERPGo/临时 SQLite 覆盖并发回调、终态分类、未决操作只查原键、列表刷新;运行 Go 测试、前端构建和 Windows 生产构建。真实店铺上传仍由使用者按商品明确确认并单独验收。 ## 文档影响 实施时按实际最终行为更新 Product-Requirements-Overview 与 Local-Development-and-Verification Wiki,并同步核心镜像;本次只建单,不改文档或代码。 ## 依赖与工具 依赖现有 ERPGo 上传操作查询、SQLite 上传状态与确认弹窗;无未满足的前置工单。项目未提供 Gitea MCP 工具,本单使用 Gitea API 回退。
Author
Owner

状态:待验收。

实现:上传后端按去重商品数建立本轮进度快照;每个 worker 返回后从 SQLite 读取商品上传状态并在互斥保护下计数,发出 upload:progress 事件,GetUploadProgress 提供轮询兜底。前端复用下载进度条样式,显示已处理、已上传、已有视频、不可上传、失败、待确认与用时;逐商品刷新列表,最终保留汇总并可收起。待确认和遗留 running 均不计入已上传,只有本地 done 状态计入成功。上传提交、幂等键与 ERPGo 状态判定未改。

验证:go test ./... -count=1、go test -race ./...、针对最终改动的上传 race 测试、go vet ./...、npm --prefix frontend run build、Wails Windows/amd64 生产构建、DevHarness strict 检查和 Wiki sync --check 均通过。测试覆盖并发 1/3、去重、逐商品实时推进、终态分类和待确认不误计成功。未执行真实店铺上传及 Windows 真机交互验收。

文档:Product-Requirements-Overview Wiki revision 12333a01bbc308100b2f45ad284b066e99bc54ae;Local-Development-and-Verification Wiki revision 69f9ab4712b8efd0aa6f31e08d39b51503c88957;核心镜像已同步。Wiki API 写入时遗漏 title 曾临时将前一页面改名为 unnamed,随后已恢复原名、正文并在线读取确认;页面列表无 unnamed,镜像检查通过。

提交:6366462,已推送 main。现有 go.mod、go.sum、cmsp.code-workspace、cmsp.exe 工作区改动未纳入提交。

状态:待验收。 实现:上传后端按去重商品数建立本轮进度快照;每个 worker 返回后从 SQLite 读取商品上传状态并在互斥保护下计数,发出 upload:progress 事件,GetUploadProgress 提供轮询兜底。前端复用下载进度条样式,显示已处理、已上传、已有视频、不可上传、失败、待确认与用时;逐商品刷新列表,最终保留汇总并可收起。待确认和遗留 running 均不计入已上传,只有本地 done 状态计入成功。上传提交、幂等键与 ERPGo 状态判定未改。 验证:go test ./... -count=1、go test -race ./...、针对最终改动的上传 race 测试、go vet ./...、npm --prefix frontend run build、Wails Windows/amd64 生产构建、DevHarness strict 检查和 Wiki sync --check 均通过。测试覆盖并发 1/3、去重、逐商品实时推进、终态分类和待确认不误计成功。未执行真实店铺上传及 Windows 真机交互验收。 文档:Product-Requirements-Overview Wiki revision 12333a01bbc308100b2f45ad284b066e99bc54ae;Local-Development-and-Verification Wiki revision 69f9ab4712b8efd0aa6f31e08d39b51503c88957;核心镜像已同步。Wiki API 写入时遗漏 title 曾临时将前一页面改名为 unnamed,随后已恢复原名、正文并在线读取确认;页面列表无 unnamed,镜像检查通过。 提交:6366462,已推送 main。现有 go.mod、go.sum、cmsp.code-workspace、cmsp.exe 工作区改动未纳入提交。
ila changed title from [待实施] 批量上传显示逐商品进度与状态 to [待验收] 批量上传显示逐商品进度与状态 2026-10-06 15:07:59 +08:00
Sign in to join this conversation.
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: chengma/cmsp#35