3.8 KiB
3.8 KiB
schema, ticket, title, consumer, author, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base, generated
| schema | ticket | title | consumer | author | change_type | backend_status | gateway_status | frontend_status | frontend_owner | frontend_ref | target_release | verified_at | status_note | updated_at | base | generated |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| hl-changelog/v2 | 6112 | 看板详情透出终止行程取消原因 | admin | wx | 修改接口 | deployed | verified | verified | mmg | d58ad932 | 2026-08-21 | 终止行程的真实原因(如「客户中止」)此前在 order 侧,fleet 落库的是写死文案。本次全链路透传:order → Feign DTO 加可选字段 → fleet 落库 → 看板详情 VO 透出。前端只需在已取消行渲染 cancelReason。 | 2026-08-21 | dev-v3 | 2026-08-21T12:38:23+08:00 |
看板详情透出终止行程取消原因(#6112)
背景
订单终止行程(出行中中止)时运营会填真实原因(如「客户中止」),但车务看板已取消派单只显示「已取消」,看不到原因——fleet 侧落库的是固定文案「订单终止行程,自终止生效日起截断未来派单」。
本次把真实原因全链路透传到看板详情,前端补渲染即可。与房务侧 #6111(异常原因透出)对齐。
变更接口
| 接口 | 变更 |
|---|---|
GET /admin/fleet/board/orders/{orderId} |
响应新增可选字段:vehicleSlots[].cancelReason、currentAssignment.cancelReason。已取消(slotStatus==="canceled")的槽位/派单返回终止或取消原因;其他状态为 null |
内部链路(前端无需关心,仅供联调排查):order 侧 terminateTrip 把 cancelReason 经 TruncateOrderAssignmentsRequest(内部 Feign DTO,新增可选字段)传给 fleet,fleet 终止截断时落库 fleet_assignment.cancel_reason。
前端动作(本次唯一要改的地方)
在车务看板 → 订单详情抽屉 → 已取消派单行/车辆执行段:
- 渲染条件:
vehicleSlots[]中slotStatus === "canceled"且cancelReason非空时,在「已取消」badge 旁展示原因文本(如「客户中止」)。 - 空态:历史已取消派单
cancelReason为null→ 不渲染原因区,不报错。 - 非 canceled 行不展示(字段为
null)。 - 无新增颜色/状态标签,纯文本。
取值示例(TEST 实测返回)
{
"assignmentSlotId": "348032503497494528",
"slotStatus": "canceled",
"slotStatusLabel": "已取消",
"cancelReason": "客户中止(#6112 网关验收)",
"assignmentId": "2089642687186563073"
}
兼容性
- 旧版 order 不传
cancelReason→ fleet 收到null,落库保留原固定文案兜底(双向兼容,可独立发布)。 - 历史已取消派单
cancel_reason为 NULL → VO 原样透传null,前端不渲染即可。 - 手动取消(人工填的 cancelReason)写入路径未改动,不受影响。
验证证据
- 单测:fleet
AssignmentServiceTest(透传落库/空值兜底)、BoardOrderServiceTest(已取消槽位透出/在途槽位 null)、orderOrderServiceTest(透传断言)、FleetAssignmentExpandFeignContractTest(DTO wire 往返)全绿;mvn -pl hl-fleet-service -am verifyBUILD SUCCESS(3846 测试),spotless 0 违规。 - 部署:hl-fleet-service(8087/8187)、hl-order-service-v3(8086/8186)已滚动部署 TEST。
- 网关实测(TEST 9443,真 SUPER_ADMIN token):对出行中订单
HL20260818171654688以「客户中止」终止行程 → fleet 派单截断为 canceled →GET /admin/fleet/board/orders/2089642686163128322返回vehicleSlots[].cancelReason="客户中止(#6112 网关验收)";历史终止单2090093100083904514返回原固定文案,无报错。