feat: 仓储中心发货时效独立页面 + 口径定版(审核时间分轮/快递剔除/停更告警) #69
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "codex/warehouse-ship-timeliness-rules-1021"
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/operation/warehouse-ship-timeliness。send_time非空 OR 订单表status='Sent'),二是状态镜像表停更时页面必须显式告警,避免用户以为数据是对的。backend/src/services/warehouseShipTimelinessService.js(分桶 / 已发判定 / 快递剔除 / freshness 实算)backend/src/services/warehouseShipTimelinessRegistry.js(windowEndHourByRound仓级例外)backend/test/warehouseShipTimeliness.test.js(17 用例)frontend/src/pages/WarehouseShipTimeliness/{index.jsx,style.css}(新增独立页面)frontend/src/pages/MkhBomData/{index.jsx,style.css}+ 删除WarehouseShipTimelinessSidebar.jsxfrontend/src/router/index.jsx、frontend/src/config/sidebarNavigation.js、frontend/src/layouts/BasicLayout.jsx(各 1~5 行入口)同步与兼容性
6833b7bc797242d2c232f80c2c6c3a9334f7ba33(origin/main,含 PR #68)6833b7bc797242d2c232f80c2c6c3a9334f7ba33530d1ad27a56593df568dffa340c478b74b5ea64git fetch后git log --left-right HEAD...origin/main仅一条 main 独有的合并提交(PR #68),本分支基于它之上,git merge-tree无需演练(远端未再前进);grep -rn "^<<<<<<< \|^>>>>>>> \|^=======$"扫描backend/src、frontend/src无冲突标记。git diff -- AGENTS.md "仓库提交与合并规范.md" "服务器部署规范.md" README.md --stat输出为空(未触碰规范文档);git diff --cached --stat逐文件人工核对 11 个文件均为本次任务范围内文件,未夹带.env/ 凭据 /node_modules/outputs/。验证
node --test backend/test/warehouseShipTimeliness.test.js→ 17 tests / 17 pass / 0 fail(含仓级例外、重审取 last_oa、中铁/壹米滴答剔除carrierSkipped=2、status='Sent'判已发、coversDeadline告警断言)npx eslint对改动的 5 个前端文件 → 0 error, 0 warningGET /api/warehouse-ship-timeliness/list?round=AFTERNOON&force=1→ 18:00 轮 103 → 101 单(剔除 2 单中铁/壹米滴答),freshness正确给出「数据未覆盖核验时刻」���告警npm run check(后端全量测试要连外部库、耗时数十分钟);已针对本次改动文件跑单文件测试 + 前端 lint 覆盖。风险与回退
jst_order_express_details的刷新;该表 2026-10-20 15:48 起曾整表停更数小时 —— 页面已加黄/红两级告警提示,不会静默给出错误结论。logistic_company_name包含匹配「自提 / 中铁 / 壹米滴答」;若上游改名需同步维护该常量。codex/warehouse-ship-timeliness-rules-1021保留不删。一、前端:从 MkhBomData 侧栏抽成独立页面 - 新增 frontend/src/pages/WarehouseShipTimeliness/{index.jsx,style.css}, 路由 /planning/operation/warehouse-ship-timeliness,侧栏导航与 BasicLayout 各加 1 行入口。 - 删除 frontend/src/pages/MkhBomData/WarehouseShipTimelinessSidebar.jsx, 并把 MkhBomData/index.jsx、style.css 里相关代码与样式一并摘除(-131 / -277 行)。 二、业务口径(2026-10-20 业务多次纠偏后的定版) - 轮次归属改用「审核时间」= jst_order_express_details.last_oa_confirm_time (聚水潭订单列表「审核时间」列,最后一次审核,重审会刷新): 13:00 轮 = 今天 07:00 前审核 + 历史未发;18:00 轮 = 截止 16:00 前审核 + 历史未发。 不再按「创建时间」切自然日窗口,也不再有「满 24 小时」门槛。 - 仓级例外(仅 18:00 轮):山东青岗集仓 / 山东品牌仓 15:00 前审核、河南洛宁仓 13:00 前审核, 核验时刻仍为 18:00(registry 新增 windowEndHourByRound)。 - 明细去掉「创建时间」,改显示「发货时间」(send_time);未发但有运单号的标「已打单 · 未揽收」。 三、已发判定与不考核快递 - 已发 = 状态表 send_time 非空 OR 订单表 status='Sent'(对齐聚水潭销售订单口径)。 不再用运单号反推(已发货与未揽收单都会出现运单号,判不出来)。 - 自提 / 中铁 / 壹米滴答 三家快递不做未发考核,剔除量计入 summary.carrierSkipped。 四、数据源停更必须让用户看见 - freshness 由写死 stale:false 改为实算:快照距今 >90 分钟 → 黄告警; 快照早于本轮核验时刻 → 红告警「数据未覆盖核验时刻,超时单量偏大」。 五、测试 - backend/test/warehouseShipTimeliness.test.js 扩到 17 用例(仓级例外、重审取 last_oa、 快递剔除、Sent 判已发、coversDeadline 告警)。PR #69 合并授权记录(规范第 6 节 · 路径二)
codex/warehouse-ship-timeliness-rules-1021→main,11 个文件,均为仓储中心发货时效模块 + 前端页面),不含其他 PR、不含强推 main。
530d1ad27a56593df568dffa340c478b74b5ea646833b7bc797242d2c232f80c2c6c3a9334f7ba33规范默认要求「至少一名非提交者审核」。本 PR 的提交由 AI 辅助、开发者为 yanhui 本人,
无第三方审核者可用;仓库所有者给出上述明确合并指令,按规范 6.1 以所有者书面授权代替独立审核。
AI 未自审自合,授权记录已同步写入 PR 评论。
node --test backend/test/warehouseShipTimeliness.test.js→ 17 / 17 passnpx eslint(改动的 5 个前端文件)→ 0 error, 0 warninggrep -rn "^<<<<<<< \|^>>>>>>> \|^=======$"扫描backend/src、frontend/src→ 无冲突标记git diff -- AGENTS.md "仓库提交与合并规范.md" "服务器部署规范.md" README.md --stat→ 空(未回退他人内容)mergeable = true、head_sha== 本地 HEAD、base_sha== 当前origin/main