feat: 库存动销分析「销售=0」导出按仓位拆行,库存数量按实际仓位统计 #51

Merged
youruo merged 1 commits from codex/ssa-zero-export-bin-0928 into main 2026-09-28 09:57:19 +08:00
Collaborator

需求

系统仓位不做合并,每个仓位独立一行,库存数量按实际系统仓位数量统计。

实现

  • bin CTE 改为按 (wms_co_id, sku_id, LTRIM(RTRIM(bin))) 分组,SUM(qty) 得到仓位级库存
  • 导出行 = SKU 级「销售=0」判定 LEFT JOIN 仓位级明细:
    • 有仓位数据的 SKU 按仓位展开多行,库存数量取该仓位实际 qty(qty=0 的仓位行剔除)
    • 仓位表未覆盖的 SKU 保留一行(仓位为空、库存取总库存),不丢数据
  • 排序:仓库 → SKU 总库存倒序 → SKU → 仓位名称,同一 SKU 各行相邻
  • 前端按钮提示同步更新

验证

  • 后端 syntax 通过、单测 9/9(全量 389/390,唯一失败为既有 Windows 环境项);前端 eslint/build 通过
  • 仓位级 qty 与总库存闭合:样例 SKU SG014718N1421V01 拆为 4 行 60+69+35+76=240,与页面总量一致
  • 单仓实测(睢宁 196 行,原 128 SKU 行);全仓 6798 行(原 3650),有仓位行 6529、兜底行 269、覆盖 26 仓
## 需求 系统仓位不做合并,每个仓位独立一行,库存数量按实际系统仓位数量统计。 ## 实现 - bin CTE 改为按 (wms_co_id, sku_id, LTRIM(RTRIM(bin))) 分组,SUM(qty) 得到仓位级库存 - 导出行 = SKU 级「销售=0」判定 LEFT JOIN 仓位级明细: - 有仓位数据的 SKU 按仓位展开多行,库存数量取该仓位实际 qty(qty=0 的仓位行剔除) - 仓位表未覆盖的 SKU 保留一行(仓位为空、库存取总库存),不丢数据 - 排序:仓库 → SKU 总库存倒序 → SKU → 仓位名称,同一 SKU 各行相邻 - 前端按钮提示同步更新 ## 验证 - 后端 syntax 通过、单测 9/9(全量 389/390,唯一失败为既有 Windows 环境项);前端 eslint/build 通过 - 仓位级 qty 与总库存闭合:样例 SKU SG014718N1421V01 拆为 4 行 60+69+35+76=240,与页面总量一致 - 单仓实测(睢宁 196 行,原 128 SKU 行);全仓 6798 行(原 3650),有仓位行 6529、兜底行 269、覆盖 26 仓
youruo added 1 commit 2026-09-28 09:56:36 +08:00
上一版把同一 SKU 的多个仓位用「、」拼在一格里,库存数量仍是 SKU 总量,
无法直接按仓位盘点。现改为每个仓位独立一行:

- bin CTE 改为按 (wms_co_id, sku_id, LTRIM(RTRIM(bin))) 分组,
  SUM(qty) 得到仓位级库存(各仓位行之和 = SKU 总库存,实测 240=60+69+35+76)
- 导出行 = graded(SKU 级「销售=0」判定)LEFT JOIN 仓位级明细:
  有仓位数据的 SKU 按仓位展开多行、库存数量取该仓位实际 qty(qty=0 的仓位行剔除);
  仓位表未覆盖的 SKU 保留一行(仓位为空、库存取总库存),不丢数据
- 排序:仓库 → SKU 总库存倒序 → SKU → 仓位名称,同一 SKU 的各行保持相邻
- 前端按钮提示同步更新拆行与兜底规则说明

验证:后端 syntax 通过、单测 9/9(全量 389/390,唯一失败为既有 Windows 环境项);
前端 eslint/build 通过;
本地实测:单仓(睢宁 196 行,原 128 SKU 行)样例 SKU 正确拆为 4 行且合计 240;
全仓导出 6798 行(原 3650),有仓位行 6529、仓位为空兜底行 269,覆盖 26 仓
Author
Collaborator

用户授权合并与部署

  • 授权时间:2026-09-28T01:57:17.458Z
  • 授权范围:合并到 main 并按服务器部署规范更新生产环境
  • 授权人:仓库管理员(会话中明确选择「授权合并并部署」)
## 用户授权合并与部署 - 授权时间:2026-09-28T01:57:17.458Z - 授权范围:合并到 main 并按服务器部署规范更新生产环境 - 授权人:仓库管理员(会话中明确选择「授权合并并部署」)
youruo merged commit aeac4bcc81 into main 2026-09-28 09:57:19 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lunanting/cangku#51
No description provided.