From a4e5ed7dc52c2dabc1c0d8b2e4a69ab28d72fdda Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Mon, 10 Aug 2026 12:22:15 +0800 Subject: [PATCH] =?UTF-8?q?docs(changelog):=20#5782=20=E6=B4=BE=E8=BD=A6?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4=E5=90=8E=E8=BD=A6=E6=8E=A7=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E5=8D=A1=2010=20=E5=88=86=E9=92=9F=E4=BF=AE=E5=A4=8D=EF=BC=88P?= =?UTF-8?q?R=20#5783=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fence 释放调用误用 getCheckedData 解 Result 致释放事件永久失败, fence 只能等 10 分钟租约过期;顺带修 4 处 UTC 落库早 8 小时。 接口契约无变化,前端无需改动,但配车完成时间等字段口径已修正。 Co-Authored-By: Claude Opus 5 (1M context) --- ...确认后车控状态卡10分钟修复-修复-管理后台.md | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 changelogs-v2/2026-08/10_5782_派车确认后车控状态卡10分钟修复-修复-管理后台.md diff --git a/changelogs-v2/2026-08/10_5782_派车确认后车控状态卡10分钟修复-修复-管理后台.md b/changelogs-v2/2026-08/10_5782_派车确认后车控状态卡10分钟修复-修复-管理后台.md new file mode 100644 index 0000000..c96a264 --- /dev/null +++ b/changelogs-v2/2026-08/10_5782_派车确认后车控状态卡10分钟修复-修复-管理后台.md @@ -0,0 +1,74 @@ +--- +schema: "hl-changelog/v2" +ticket: "5782" +title: "派车确认后订单侧「车控处理中」不再卡 10 分钟;配车完成时间不再早 8 小时" +consumer: "admin" +author: "wx(GIT)" +change_type: "修复" +backend_status: "deployed" +gateway_status: "not_required" +frontend_status: "not_required" +frontend_owner: "mmg" +frontend_ref: "" +target_release: "" +verified_at: "2026-08-10" +status_note: "接口契约零变化,前端无需改动。两点行为变化前端可感知:①车控状态回配不再需要等 10 分钟;②assignmentCompletedAt 等时间字段口径修正(此前早 8 小时)。测试服已部署验证:修复上线后积压 35 天的 fence 释放事件恢复成功投递。" +updated_at: "2026-08-10" +base: "dev-v3" +generated: "2026-08-10T12:40:00+08:00" +--- + +# 车务/订单: 派车确认后订单侧「车控处理中」不再卡 10 分钟;配车完成时间不再早 8 小时 + +> **服务**: hl-fleet-service (8087/8187) + hl-order-service-v3 (8086/8186) +> **PR**: #5783 +> **Issue**: #5782 +> **日期**: 2026-08-10 +> **影响范围**: 管理后台订单详情「用车安排」状态回配时效;配车完成/提交/调价时间字段展示口径 + +--- + +## 一、背景 + +车务派单看板已显示「已派车」,但定制师侧订单详情「用车安排」仍显示 `车控处理中`、流程条停在 `配车·处理中`,**约 10 分钟后**才变「已回配」。每次派车/改派确认必现。 + +#5744 曾把 order 侧的拒绝改成「可重试」做兜底,只让状态最终能自愈,没消除 fence 被长期占用的来源,所以现象从「永久卡住」变成「必卡 10 分钟」。 + +## 二、根因(后端,接口契约无关) + +fleet 释放 order 侧「用车需求最终确认 fence」的调用误用了 `Result.getCheckedData()` 解包 `Result`——该方法在 `data == null` 时抛 `100901 远程服务返回数据为空`,而释放端点固定返回 `Result.success()`(data 恒 null)。于是 **order 侧其实已释放成功的调用,被 fleet 100% 判成失败**:释放事件永远重试并阻塞同顺序键后继,fence 只能等 10 分钟租约过期;期间配车快照回调被 `582092` 挡回重试,订单侧 `vehicle_control_status` 一直是 PROCESSING。 + +## 三、变更 + +| 项 | 变化 | +|---|---| +| fence 释放调用 | 改按 `isSuccess()` 判定(全仓 71 个 `Result` 端点已扫,无第二处同类误用) | +| 释放补偿告警 | 重试预算耗尽时日志升级 ERROR(保留「永不隔离」设计,隔离等于 fence 永不释放) | +| 时间字段落库 | fleet/order-v3 共 4 处 UTC `OffsetDateTime` 直接 `toLocalDateTime()` 丢偏移,改为按本地时区换算 | + +**接口路径、请求/响应结构、错误码均无变化。** + +## 四、对前端的影响 + +- **无需改动**。 +- 行为变化 1:派车确认后订单详情「用车安排」由「车控处理中」转「已回配」不再需要等 ~10 分钟(现由分钟级 outbox 调度驱动)。此前若前端做过「10 分钟内不刷新/长轮询」之类的迁就,可以去掉。 +- 行为变化 2:以下时间字段此前**比北京时间早 8 小时**,现已修正为本地时间口径 —— 订单详情用车安排的配车完成时间 `assignmentCompletedAt`、逐日配车行的 `submittedAt`、车费调整时间 `vehicleFeeAdjustedAt`。 +- **注意**:本次未做存量数据订正,修复上线前落库的历史行仍是早 8 小时的旧值,新数据起口径正确。如需订正存量另行提。 + +## 五、验证证据(2026-08-10 测试服) + +- 部署完成 12:17:28 → **12:18:00 起释放事件恢复成功投递**(该事件类型自 08-04 起 48 条全 PENDING、0 条 SUCCESS,修复后开始批量转 SUCCESS)。 +- 修复前实测:fence 每次占用 10m01s ~ 11m13s,清一色贴 10 分钟租约;对应配车快照投递均重试 7 次才成功。 +- 单测:新增 8 例(void 成功不判失败 / 业务失败 strict 抛出 / 非 strict 降级 / 传输 null / UTC→本地换算保持时刻不变);fleet 定向 + 架构门禁 96 绿,order-v3 全量 6291 绿。 + +## 关联 / 联系人 + +### 链接 + +- **Issue**: [#5782](https://git.1814.love:8443/wx/HL/issues/5782) +- **PR**: [#5783](https://git.1814.love:8443/wx/HL/pulls/5783) +- **Merge commit**: [6a52a4ca8](https://git.1814.love:8443/wx/HL/commit/6a52a4ca8) + +### 联系人 + +- **后端负责人**: @wx