fix: 仓储发货时效按北京时间取「今天」(生产容器 UTC 导致 00:00~08:00 轮次错位) #70
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "codex/ship-timeliness-tz-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?
目的与范围
生产容器
/etc/timezone = Etc/UTC,而 MSSQLGETDATE()返回北京时间,mssql 驱动
useUTC:false把 DB 值构造成「墙钟当 UTC」的 Date ⇒ 比真实new Date()快 8 小时。后果:北京时间每天 00:00~08:00,服务端取到的「今天」是昨天,
13:00 轮把整个历史未发池算进来(实测
overdueUnshipped=3895,而本地东八区同一轮只有 6 单)。backend/src/services/warehouseShipTimelinessRegistry.js:新增beijingNow()/BEIJING_OFFSET_MINUTES,resolveActiveRound/describeRounds的默认 now 改为北京时间。backend/src/services/warehouseShipTimelinessService.js:getShipTimeliness改用registry.beijingNow();文件头补时区说明。backend/test/warehouseShipTimeliness.test.js:新增 2 个时区用例。同步与兼容性
4b02ad212d27c2158ecfcb23aac7b2fa9ad3e06d(origin/main,含 PR #69)4b02ad212d27c2158ecfcb23aac7b2fa9ad3e06df42f461430214b2faa09fb3600cd29c55f9b5c4d/opt/cangku/shared/backend.env—— 该 env 里没有 TZ,改了会波及全部既有定时任务(
dailyRefresh/dailyInventorySnapshot/alibaba1688ImageSearchExpiryJob等都各自显式写了Asia/Shanghai)。本次只让这一个模块自己按北京时间取值。origin/main之上,远端未再前进;grep -rn "^<<<<<<< \|^>>>>>>> \|^=======$"扫描backend/src无冲突标记。未触碰规范文档与其它模块;本机已是东八区,
beijingNow()平移量为 0,本地行为完全不变。验证
node --test backend/test/warehouseShipTimeliness.test.js→ 19 tests / 19 pass / 0 fail(新增:跨日 00:00~08:00 不取成前一天;北京时间 07:48 判
notStarted、13:30 判 NOON 轮且deadline=13:00/windowEnd=07:00)npm run check(后端全量测试连外部库、耗时数十分钟);已针对本次改动文件跑单文件测试覆盖。
风险与回退
beijingNow()是「平移 Date」而非真正的时区库,只保证本地 getter 读出北京时间;模块内后续若新增时间计算,必须继续走这个入口,别再裸用
new Date()(已在文件头写明)。任务分支
codex/ship-timeliness-tz-1021保留不删。PR #70 合并授权记录(规范第 6 节 · 路径二)
codex/ship-timeliness-tz-1021→main,3 个文件,+72 / -4,仅发货时效模块的时区取值),以及该合并提交的生产部署;不含其他 PR、不含强推 main。
f42f461430214b2faa09fb3600cd29c55f9b5c4d4b02ad212d27c2158ecfcb23aac7b2fa9ad3e06d无第三方审核者可用;仓库所有者给出明确合并+部署指令,按规范 6.1 以所有者书面授权代替独立审核。
AI 未自审自合,授权记录已同步写入 PR 评论。
node --test backend/test/warehouseShipTimeliness.test.js→ 19 / 19 passgrep -rn "^<<<<<<< \|^>>>>>>> \|^=======$"扫描backend/src→ 无冲突标记mergeable = true、head_sha== 本地 HEAD、base_sha== 当前origin/main