feat(wst): 数据源停更熔断——订单表停更时醒目标注,别把「没同步」当「没发货」 #92
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "yanhui-wst-stale-1029"
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?
业务问题
10-28 18:00 轮页面核验出 546 单超时未发,业务核对后反馈「基本都发了,怎么会核验出未发」。
根因:不是判定写错,是订单表停更
jst_Orders当时从 14:40 就停止同步了(停了 4 小时)。停更之后发出的单,send_date一直是空,于是全被判成「未发货」:jst_Ordersjst_qmcust_orderlist两个订单表各自独立同步,同一天完全可能一个正常一个停更。原来只拿候选行的
MAX(updated_at)判快照滞后,会被「碰巧新」的行掩盖 —— 必须直接问源表。改动
后端
warehouseShipTimelinessService.jsloadSourceFreshness():分别直接查jst_Orders.MAX(updateTime)与jst_qmcust_orderlist.MAX(local_updated)(限轮次窗口起 30 天,避免全表扫描),两源并行CANGKU_WST_SOURCE_STALE_MINUTES,默认 60 分钟src/srcLabel/sourceStale;summary新增sourceStaleUnshippedfreshness.stale改为「候选行滞后 OR 任一源停更」;hint说清停更源、停更时刻、以及各源各贡献多少单(不能只写「这张表」)dataSources数组;导出数据一并带上前端
WarehouseShipTimeliness/index.jsx是(该单可能已发))验证
npm run check:494/496,2 个失败是既有环境问题(负缓存 TTL 计时、Windows 文件权限 0o600),改动前同样失败warehouseShipTimeliness.test.js23/23 通过(含新增「停更表超时单必须打标并计入sourceStaleUnshipped」用例)notStarted正常展示「—」,无 pageerrordataSources正确识别jst_Orders停更(滞后 96 分钟)而 qmcust 正常;sourceStaleUnshipped=1146与明细逐行打标同源同口径风险与回退
关联