fix(wle): 正文写明物流快照是否覆盖核验时刻 / 是否过旧 #97
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "yanhui-wle-notify-freshness-1111"
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?
目的
11-11 09:10 那批:物流镜像表停在 11-10 11:53,算出 990 单全部异常,
钉钉正文却只有一句「已发货 990 单 / 990 个包裹,异常 990 个包裹(100%)」。
群里没法分辨这是真异常还是数据没更新 —— 而这恰恰决定当天要不要去催快递。
PR #94 只修了「0 单」这一种情形(
freshness.emptyWindow)。有异常、但快照降级的情形仍然是哑的,11-11 就是这一类。
改动范围
只动
backend/src/jobs/warehouseLogisticsExceptionNotifyJob.js与对应单测。buildFreshnessWarning(freshness, batch):coversDeadline === false→⚠️ 数据未覆盖核验时刻:物流快照最新只到 …,本轮核验 … —— 之后的揽收/中转轨迹没进库,异常量会偏大。请以聚水潭实时物流为准,别按这个数去催快递。stale === true→⚠️ 物流快照偏旧:最新只到 …(已 X 小时未刷新)—— 状态可能滞后,异常量仅供参考…formatSnapshotMoment:快照时刻跨天必须带MM-DD。11-11 那批的
snapshotAt是前一天的,只写「11:53」会被读成当天上午的新鲜数据(与 WST「历史单审核时间必须带 MM-DD」是同一个坑)。
totalPackages > 0时告警;0 单走原有emptyWindow分支,不叠加两条。11-11 场景改后的实际正文:
同步与兼容性
getLogisticsExceptionExportRows已返回的freshness.{snapshotAt, ageMinutes, stale, coversDeadline}。验证
node --test backend/test/warehouseLogisticsExceptionNotify.test.js→ 26 / 26 通过(新增 5 条:未覆盖核验时刻且跨天带日期 / 同日不写日期 / stale 带未刷新时长 /
正常批次无告警 / 字段缺失不崩不报警)
snapshotAt=2026-11-10 11:53:00、coversDeadline=false、990 单全异常)渲染过一遍正文,见上面的样例。
node --check通过。风险与回退
2 行,字节数增加约 100150(上限 20000,当前典型 650~12KB,量级无影响)。