feat: 新增模块化库存监控(全仓口径 + 实时库存) #39

Open
wangjie wants to merge 3 commits from codex/modular-stock-monitor-0924 into main
Collaborator

目的与范围

  • 解决的问题:库存监控缺少全仓库口径与实时库存;此前「ERP 有货却显示缺货」源于日报快照(pm_stockMonitor)滞后
  • 修改的模块/文件:新增 backend/src/services/modularStockMonitoringService.js、backend/src/api/modularStockMonitoring.js、frontend/src/pages/ModularStockMonitoring/、backend/src/services/jushuitanClient.js(加工单接入预留,未启用);挂载点 backend/src/index.js、frontend/src/router/index.jsx、frontend/src/config/sidebarNavigation.js、frontend/src/layouts/BasicLayout.jsx
  • 是否使用 AI 及负责开发者:AI 辅助生成,开发者 wangjie

同步与兼容性

  • 起始基线 SHA:36948c98ca4a53eed21c4022f19cd84753914cc1
  • 最近同步的 main SHA:11ef98b8c1893e6b6054ba660c56e83031293461
  • 待审核任务分支 SHA:43d9c3a2d1a0cd72956c94e16e0b64c4fabd4976
  • ⚠️ 并行模块风险:main 上已有 modularStockMonitor(配件库存监控 / MKH-BOM,含「采购在途」列),与本分支 modularStockMonitoring 命名仅差 ing、功能相近。请维护者判断是否保留两套、合并或重命名。
  • 冲突及处理理由(5 处):冲突全部落在挂载点文件(本地基线过旧 + 远端大重构)。处理方式为「以 main 版本为底,再补回本分支的 6 处挂载」,不批量 ours/theirs。其中 backend/src/config/cloudDatabase.js 本分支的「连接失败冷静期」改动整块丢弃 —— main 已有更完善的负缓存方案(cachedCloudConfigExpiresAt / NEGATIVE_CONFIG_CACHE_TTL_MS / invalidateCloudConfigCache),两套同类机制叠加无意义,且属任务外改动。
  • 如何确认保留了其他开发者的已有行为:4 个冲突文件均取 main 版本再插入挂载点;最终 git diff origin/main HEAD 为 1336 insertions / 0 deletions,未删除任何一行既有代码。

验证

  • backend npm run syntax:156 个 JS 文件通过
  • backend npm test:348 项,347 通过 / 1 失败。失败项 resilientSecretStore.test.js 断言文件权限 0600,Windows 实测为 0666(438),属本机既有失败,与本分支改动无关
  • frontend npm run check(lint + test + build):全部通过,构建产物含 ModularStockMonitoring chunk
  • 人工验证路径:登录后「商品管理 → 模块化库存监控」,核对统计卡(全仓口径)与列表实时库存

风险与回退

  • 已知风险:① 与已有 modularStockMonitor 模块命名相近可能造成使用困惑;② 实时库存的仓库映射 wms_co_id=15870495 为依据库存数比对推定的值,后续可用加工单的 receipt_wms_co_id 校正;③ 加工单数据源尚未接入,页面「采购在途」列当前为空
  • 回退方式和数据兼容性:纯新增页面/路由/接口,无数据库迁移、无存量数据写入;回退只需 revert 该合并提交
## 目的与范围 - 解决的问题:库存监控缺少全仓库口径与实时库存;此前「ERP 有货却显示缺货」源于日报快照(pm_stockMonitor)滞后 - 修改的模块/文件:新增 backend/src/services/modularStockMonitoringService.js、backend/src/api/modularStockMonitoring.js、frontend/src/pages/ModularStockMonitoring/、backend/src/services/jushuitanClient.js(加工单接入预留,未启用);挂载点 backend/src/index.js、frontend/src/router/index.jsx、frontend/src/config/sidebarNavigation.js、frontend/src/layouts/BasicLayout.jsx - 是否使用 AI 及负责开发者:AI 辅助生成,开发者 wangjie ## 同步与兼容性 - 起始基线 SHA:36948c98ca4a53eed21c4022f19cd84753914cc1 - 最近同步的 main SHA:11ef98b8c1893e6b6054ba660c56e83031293461 - 待审核任务分支 SHA:43d9c3a2d1a0cd72956c94e16e0b64c4fabd4976 - ⚠️ 并行模块风险:main 上已有 `modularStockMonitor`(配件库存监控 / MKH-BOM,含「采购在途」列),与本分支 `modularStockMonitoring` 命名仅差 ing、功能相近。请维护者判断是否保留两套、合并或重命名。 - 冲突及处理理由(5 处):冲突全部落在挂载点文件(本地基线过旧 + 远端大重构)。处理方式为「以 main 版本为底,再补回本分支的 6 处挂载」,不批量 ours/theirs。其中 backend/src/config/cloudDatabase.js 本分支的「连接失败冷静期」改动**整块丢弃** —— main 已有更完善的负缓存方案(cachedCloudConfigExpiresAt / NEGATIVE_CONFIG_CACHE_TTL_MS / invalidateCloudConfigCache),两套同类机制叠加无意义,且属任务外改动。 - 如何确认保留了其他开发者的已有行为:4 个冲突文件均取 main 版本再插入挂载点;最终 `git diff origin/main HEAD` 为 **1336 insertions / 0 deletions**,未删除任何一行既有代码。 ## 验证 - backend `npm run syntax`:156 个 JS 文件通过 - backend `npm test`:348 项,347 通过 / 1 失败。失败项 `resilientSecretStore.test.js` 断言文件权限 0600,Windows 实测为 0666(438),属**本机既有失败,与本分支改动无关** - frontend `npm run check`(lint + test + build):全部通过,构建产物含 ModularStockMonitoring chunk - 人工验证路径:登录后「商品管理 → 模块化库存监控」,核对统计卡(全仓口径)与列表实时库存 ## 风险与回退 - 已知风险:① 与已有 modularStockMonitor 模块命名相近可能造成使用困惑;② 实时库存的仓库映射 wms_co_id=15870495 为依据库存数比对推定的值,后续可用加工单的 receipt_wms_co_id 校正;③ 加工单数据源尚未接入,页面「采购在途」列当前为空 - 回退方式和数据兼容性:纯新增页面/路由/接口,无数据库迁移、无存量数据写入;回退只需 revert 该合并提交
wangjie added 2 commits 2026-09-24 15:51:41 +08:00
- 新增库存监控页面、后端服务与 API,支持分页筛选与 CSV 导出
- 库存取值优先聚水潭实时库存(jst_inventoryInfo),取不到回退日报快照(pm_stockMonitor)
- 统计卡与预警分档统一全仓库口径,新增在库 SKU 款数
- 预留聚水潭加工单接入(jushuitanClient + 自检脚本),凭证到位后可算采购在途
# Conflicts:
#	backend/src/config/cloudDatabase.js
#	backend/src/index.js
#	frontend/src/config/sidebarNavigation.js
#	frontend/src/layouts/BasicLayout.jsx
#	frontend/src/router/index.jsx
wangjie added 1 commit 2026-09-24 16:42:25 +08:00
# Conflicts:
#	backend/src/index.js
#	frontend/src/config/sidebarNavigation.js
#	frontend/src/layouts/BasicLayout.jsx
#	frontend/src/router/index.jsx
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin codex/modular-stock-monitor-0924:codex/modular-stock-monitor-0924
git checkout codex/modular-stock-monitor-0924
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#39
No description provided.