feat: 新增每日进销存(大货库存监控) #30

Merged
youruo merged 22 commits from codex/daily-inventory-0923 into main 2026-09-24 08:01:49 +08:00
Collaborator

变更说明

按桌面《库存监控.xlsx》在侧边栏增加一级「大货库存监控」→ 二级「每日进销存」,页面为 25 个仓库 × 21 列的进销存表(路由 /planning/operation/daily-inventory)。

数据源分工(已与业务库逐仓对账)

列 来源 对账结果
期末数量 运行时 rpt.jst_inventoryInfo 按 wms_co_id 单仓 24/25 与表格精确一致(京东云仓差 6 件,副本同步滞后)
期初数量 + 12 个流水列 9-22 导出基准值 375 个单元格与表格完全一致
库存周转天数 / 四级库存量 运行时 rpt.pm_stockMonitor 13/25 仓有快照,其余显示「—」

为什么期初与流水列不直接取业务库(已充分排查,结论如下):

  1. 业务库 JSReportReplica 220 张对象全是视图,其中没有历史库存结存表 → 无法取期初;也没有任何调拨 / 盘点 / 加工 / 其它出入库单据表

  2. 已有的采购与销售单据,数值与该进销存口径不一致(崔桥工厂仓 22 号为例):

    列 表格 业务库
    销售出仓 -3924 -1543
    销售退货 5437 1
    采购进仓 0 2833

    已排查:日期字段(po_date / confirm_date / finish_time、io_date / modified / created)、奇门渠道 jst_qmcust_salesoutbound、不筛单据状态 → 倍数在 2.1~4.2 之间漂移,不是固定换算;逐日数据稳定无尾部衰减,排除同步滞后。

新增文件

  • backend/src/config/dailyInventoryBaseline.js:25 仓基准流水(含 wms_co_id 映射)
  • backend/src/api/dailyInventory.js:/api/daily-inventory 接口
  • backend/scripts/gen-daily-inventory-baseline.cjs:从 xlsx 生成基准配置(可复用以更新基准日)
  • backend/scripts/verify-daily-inventory.js:接口输出与表格逐格核对
  • frontend/src/pages/DailyInventory/:页面与样式
  • frontend/src/constants/dailyInventory.js:列定义与口径说明
  • frontend/src/api/dailyInventory.js:请求封装
  • 路由 /planning/operation/daily-inventory、权限点 daily_inventory、侧边栏菜单组

验证

  • backend/scripts/verify-daily-inventory.js:接口输出与表格 375 个单元格全部一致,0 处不符
  • 25 仓全部有期末值;13/25 仓分级数据可用,12 仓无快照显示「—」
  • 前端 npm --prefix frontend run check:lint + 测试 + 构建通过
  • 分级基准时刻统一为快照日次日 01:00,替代原先的 GETDATE()

后续建议

若希望日常自动更新而不依赖导出文件,需要 DBA 在业务库补充两类数据源:

  1. 按天的仓库库存结存表(取期初 / 任意日期末)
  2. 调拨、盘点、加工、其它出入库单据表
## 变更说明 按桌面《库存监控.xlsx》在侧边栏增加**一级「大货库存监控」→ 二级「每日进销存」**,页面为 25 个仓库 × 21 列的进销存表(路由 `/planning/operation/daily-inventory`)。 ## 数据源分工(已与业务库逐仓对账) | 列 | 来源 | 对账结果 | |---|---|---| | 期末数量 | 运行时 `rpt.jst_inventoryInfo` 按 `wms_co_id` 单仓 | **24/25 与表格精确一致**(京东云仓差 6 件,副本同步滞后) | | 期初数量 + 12 个流水列 | 9-22 导出基准值 | 375 个单元格与表格完全一致 | | 库存周转天数 / 四级库存量 | 运行时 `rpt.pm_stockMonitor` | 13/25 仓有快照,其余显示「—」 | **为什么期初与流水列不直接取业务库**(已充分排查,结论如下): 1. 业务库 `JSReportReplica` 220 张对象**全是视图**,其中没有历史库存结存表 → 无法取期初;也**没有任何**调拨 / 盘点 / 加工 / 其它出入库单据表 2. 已有的采购与销售单据,数值与该进销存口径不一致(崔桥工厂仓 22 号为例): | 列 | 表格 | 业务库 | |---|---|---| | 销售出仓 | -3924 | -1543 | | 销售退货 | 5437 | 1 | | 采购进仓 | 0 | 2833 | 已排查:日期字段(`po_date` / `confirm_date` / `finish_time`、`io_date` / `modified` / `created`)、奇门渠道 `jst_qmcust_salesoutbound`、不筛单据状态 → 倍数在 2.1~4.2 之间漂移,不是固定换算;逐日数据稳定无尾部衰减,排除同步滞后。 ## 新增文件 - `backend/src/config/dailyInventoryBaseline.js`:25 仓基准流水(含 `wms_co_id` 映射) - `backend/src/api/dailyInventory.js`:`/api/daily-inventory` 接口 - `backend/scripts/gen-daily-inventory-baseline.cjs`:从 xlsx 生成基准配置(可复用以更新基准日) - `backend/scripts/verify-daily-inventory.js`:接口输出与表格逐格核对 - `frontend/src/pages/DailyInventory/`:页面与样式 - `frontend/src/constants/dailyInventory.js`:列定义与口径说明 - `frontend/src/api/dailyInventory.js`:请求封装 - 路由 `/planning/operation/daily-inventory`、权限点 `daily_inventory`、侧边栏菜单组 ## 验证 - `backend/scripts/verify-daily-inventory.js`:接口输出与表格 **375 个单元格全部一致,0 处不符** - 25 仓全部有期末值;13/25 仓分级数据可用,12 仓无快照显示「—」 - 前端 `npm --prefix frontend run check`:lint + 测试 + 构建通过 - 分级基准时刻统一为快照日次日 01:00,替代原先的 `GETDATE()` ## 后续建议 若希望日常自动更新而不依赖导出文件,需要 DBA 在业务库补充两类数据源: 1. 按天的仓库库存结存表(取期初 / 任意日期末) 2. 调拨、盘点、加工、其它出入库单据表
youruo added 22 commits 2026-09-23 17:42:18 +08:00
Author
Collaborator

合并授权记录

按《仓库提交与合并规范》第 6 节「仓库所有者或管理员合并授权例外」执行:

  • 授权人:仓库所有者/管理员(Gitea 账号 youruo,2026-09-23 书面指令授权)

  • 授权范围:仅限本 PR 合入 main,不包含生产服务器部署

  • 生产部署授权:未授予。本机不存在规范要求的私钥 ~/Desktop/cangku-156.225.27.52-ssh-key/cangku-prod-root-ed25519,合并后由有权限的维护者另行部署

  • 本地对应提交:3ecec40af7ea16eed6f3d225229b3f8130de7d1e

  • 合并方式说明:因本机 git push 被服务端持续断开(sideband 拆包),本分支文件经由 Contents API 写入

## 合并授权记录 按《仓库提交与合并规范》第 6 节「仓库所有者或管理员合并授权例外」执行: - **授权人**:仓库所有者/管理员(Gitea 账号 `youruo`,2026-09-23 书面指令授权) - **授权范围**:仅限本 PR 合入 `main`,不包含生产服务器部署 - **生产部署授权**:未授予。本机不存在规范要求的私钥 `~/Desktop/cangku-156.225.27.52-ssh-key/cangku-prod-root-ed25519`,合并后由有权限的维护者另行部署 - 本地对应提交:`3ecec40af7ea16eed6f3d225229b3f8130de7d1e` - 合并方式说明:因本机 `git push` 被服务端持续断开(sideband 拆包),本分支文件经由 Contents API 写入
youruo merged commit db2362307d into main 2026-09-24 08:01:49 +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#30
No description provided.