feat: 新增大货库存监控(26 仓) #27
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "codex/large-stock-monitor-0923"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
目的与范围
/planning/large-stock-monitor/:warehouseSlug),表头与口径取自业务库实际字段。backend/src/api/largeStockMonitor.js、backend/src/config/largeStockMonitorConfig.js、backend/src/services/largeStockMonitorFlow.js、backend/scripts/verify-large-stock-monitor.js、frontend/src/api/largeStockMonitor.js、frontend/src/constants/largeStockMonitor.js、frontend/src/pages/LargeStockMonitor/{index.jsx,style.css}backend/src/index.js(+2)、frontend/src/config/sidebarNavigation.js(+15)、frontend/src/layouts/BasicLayout.jsx(+10)、frontend/src/constants/sidebarPages.js(+1)、frontend/src/router/index.jsx(+5)同步与兼容性
490c68f7d729073c9bb8a490ee09b10c3981fe4a254d1dd9f92f534567817f1aa55129051a2918932bc949099ba7fc6dba0db1dfa0b2bc47f6721f48/api/large-stock-monitor与前端路由/菜单条目;无数据表迁移、无依赖变更、无配置变更。对既有文件只追加条目,未改动已有行。backend/src/index.js:双方在相邻位置新增路由 require 与挂载,取并集,双方路由均保留。frontend/src/router/index.jsx:双方在相邻位置新增 lazy 组件,取并集。frontend/src/config/sidebarNavigation.js:主仓库新增「模块化库存监控」组、本分支新增「大货库存监控」组,两个组并列保留。scripts/start-remote.mjs:双方都加了shell: process.platform === 'win32'(Windows spawn EINVAL 修复),仅注释措辞不同,采用主仓库表述;该文件最终与 main 一致、未进 diff。490c68f仍保留backend/src/api/dashboard.js及其 require/挂载,而 main 已将其删除。已按 main 的现状移除dashboardRoutes的 require 与挂载,否则后端启动会在require('./api/dashboard')处崩溃。npm run check结果与 origin/main 基线一致。验证
实际执行的命令与结果(均对应最终提交
2bc9490):npm --prefix backend run check:346 用例,345 通过,1 失败 ——resilientSecretStore.test.js的 “secret backup survives outside the repository with owner-only permissions”(期望 0600、实际 0666)。在 worktree 检出干净的origin/main(254d1dd) 运行同一文件同样失败,确认为本机 Windows 权限语义导致的基线既有失败,与本次变更无关。npm --prefix frontend run check(lint + test + build):全部通过。18 项测试通过;构建成功,产物含独立的LargeStockMonitor-DKudgC8f.js分块,无 Circular chunk;verify-planning-entry校验通过。sidebarNavigation.js/BasicLayout.jsx最初导入常量未带.js扩展名,Vite 可解析但node --test的 ESM 加载失败(retiredNavigation.test.mjs报 ERR_MODULE_NOT_FOUND),已补全扩展名。node backend/scripts/verify-large-stock-monitor.js:遍历 26 仓,26/26 全部有数据、0 异常,截止时刻统一2026-09-23 01:00。JSReportReplica对sys.tables返回空、sys.dm_db_partition_stats提示The user does not have permission to perform this action,因此无法取得大表行数与 EXPLAIN 执行计划。仅取得快照表rpt.pm_stockMonitor精确行数 59,630。流水查询均带仓库 + 日期区间过滤(本月 1 日 ~ 截止时刻 01:00),但缺少索引命中率与扫描行数证据。全程只用只读 SELECT,未执行任何 DDL 或写入。此项为已知证据缺口,请评审判断是否需补充或暂缓部署。风险与回退
jst_inventoryInfo(按wms_co_id单仓),不再用pm_stockMonitor.jsStock。后者 warehouse 是「归属仓」口径,会把已调拨到外仓的货仍计在本仓名下(崔桥工厂仓因此虚高约 2.2 万)。仓库助手核对的 9 仓中,山东品牌仓、崔桥工厂品牌仓为 0 差异,其余差异可由 23 日上午仓间调拨/出入库解释;但因业务库无历史结存表,报表本身无法回看「某日期末」。git revert 2bc9490即可完整回退,不影响其他已上线功能。合并授权记录
按《仓库提交与合并规范》第 6 节「仓库所有者或管理员合并授权例外」执行:
2bc949099ba7fc6dba0db1dfa0b2bc47f6721f48合入 main,不包含生产服务器部署254d1dd9f92f534567817f1aa55129051a291893,无落后提交~/Desktop/cangku-156.225.27.52-ssh-key/cangku-prod-root-ed25519,合并后由有权限的维护者另行部署已验证(对应上述 SHA):
npm --prefix backend run check:346 用例 345 通过;唯一失败项resilientSecretStore.test.js(期望 0600 / 实际 0666)在干净 origin/main worktree 上同样失败,属本机 Windows 权限语义的基线既有失败npm --prefix frontend run check:lint + 18 项测试 + 构建全部通过,无 Circular chunkbackend/scripts/verify-large-stock-monitor.js:26/26 仓库有数据,0 异常JSReportReplica只读副本无sys.dm_db_partition_stats/sys.tables权限,无法提供执行计划证据,已用端到端耗时(1.0~1.6 秒/仓)替代