hl-api-changelog/changelogs-v2/2026-08/12_5926_排车Step2栅格改期残留旧实派行不回显明文-前端修复-管理后台.md
API Changelog Bot ae331af398
所有检测均成功
changelog-filename-gate / validate (push) Successful in 2s
fix(docs): 补齐#5926前端发布版本
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-12 22:57:36 +08:00

6.8 KiB

schema, ticket, title, consumer, change_type, author, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base
schema ticket title consumer change_type author backend_status gateway_status frontend_status frontend_owner frontend_ref target_release verified_at status_note updated_at base
hl-changelog/v2 5926 排车 Step2 栅格改期残留旧实派行不回显车牌/司机/价(前端渲染) admin 前端修复 wx(GIT) deployed verified verified mmg 01ae772f v2.1 2026-08-12 #5926 明文回显+删后刷新已由前端 01ae772f 验证;但原『取消残留派车』误用整槽接口导致 #5937 P0。逐日取消新契约以 #5937 为准:使用 cells[].assignmentId 调 POST /admin/fleet/assignments/{assignmentId}/cancel-residue,禁止老 DELETE /assignments/{assignmentId} 和槽位删除。#5937 前端状态仍 pending。 2026-08-12 dev-v3

排车 Step2 栅格改期残留旧实派行不回显车牌/司机/价(#5926 / PR #5930,承接 #5912

服务: hl-fleet-service后端 + hl-ui前端渲染 PR: #5930后端字段透出 日期: 2026-08-12 现象: 订单改期后,派单页 Step2 排车栅格里 08-18/19/20 这三行旧实派数据显示成「车辆待选择 / 司机待选择 / ¥0.00」空态,只挂了个「改期残留·待清理」红标签——数据列不回显。


根因(前后端各一半,后端缺口已补)

  1. #5912 已修日期轴:栅格 editableServiceDates 已并入旧行日期08-18~24 共 7 天),旧实派行的日期格回来了。
  2. 后端缺口(本次 #5926 补):栅格 cells[] 原本只透 vehicleId/driverId 两个 ID,无明文;而 selectedVehicle/selectedDriver 展示快照只在「本次新选中」时填充,改期前旧会话派的行进入 Step2 时为 null。前端拿不到明文,只能贴残留标签、数据列留空。
  3. 前端待做:渲染栅格逐行时,把后端回的 vehiclePlate/driverName/protocolPrice 填进对应行。

对应接口(前端排车 Step2 栅格唯一权威数据源)

POST /admin/fleet/assignments/candidates

请求体(必传 startDate/endDate,否则 400「用车开始/结束日期不能为空」):

{
  "orderId": 2086270141158346754,
  "requirementId": 2087434583048888322,
  "startDate": "2026-08-21",
  "endDate": "2026-08-24"
}

栅格数据确切路径:

data.canonicalSnapshot.editableServiceDates   # ["2026-08-18"..."2026-08-24"] 7 天日期轴(已并入旧行日期)
data.canonicalSnapshot.cells[]                # 每 cell = 一个槽位 × 一天:

本次 cell 新增 3 个明文字段(前端消费)

字段 类型 说明
vehiclePlate string 当天车牌明文行冻结展示快照。USED cell 有值;UNUSED/未编辑为 null。
driverName string 当天司机姓名明文行冻结展示快照。USED cell 有值;UNUSED/未编辑为 null。
protocolPrice number 当天派车价。chargeable=0免费日恒 0;缺协议价回退日历参考价;再无则 0 兜底。UNUSED/未编辑为 null。

配合既有字段:usedUSED/UNUSED/nullrescheduleResidue(改期残留标记,前端红标签靠它)、canDelete/deleteBlockReason

实测(订单 26-0821 / 2086270141158346754,改期 08-18→08-21

editableServiceDates = [08-18,08-19,08-20,08-21,08-22,08-23,08-24]
cells(槽位1 蒙A-K1999 巴根那 ¥1500):
  08-18  USED · plate=蒙A-K1999 · driver=巴根那 · price=1500.0 · residue=true  · canDelete=true
  08-19  USED · 同上 · residue=true
  08-20  USED · 同上 · residue=true
  08-21  USED · 同上 · residue=false(在新窗内,不误标)
cells(槽位2 蒙A-T1557 朝鲁门 ¥1000):同样 4 天明文齐全

前端修复要点

  • 栅格日期轴用 canonicalSnapshot.editableServiceDates 建(已含旧日期 08-18~20不要自己按当前需求窗建轴。
  • 逐行渲染时按 cells[] 里同 serviceDate 的 cell,把 vehiclePlate/driverName/protocolPrice 填进去——后端已回,别再只贴「改期残留」红标签留空数据列。
  • rescheduleResidue=true 的行继续挂「改期残留·待清理」徽标;逐日取消必须按 #5937 使用 cells[].assignmentIdPOST /admin/fleet/assignments/{assignmentId}/cancel-residue严禁调用老 DELETE /admin/fleet/assignments/{assignmentId} 或槽位删除接口——二者均为整槽语义,会连带取消同槽其他日期。

验证证据(后端)

  • fleet 全量 mvn test 3680 跑 0 失败 0 错误;ArchTest 13 绿;spotless 净。
  • 新增单测覆盖明文透传 + FREE/OVERRIDE/CALENDAR 价口径。
  • 测试服 API 实测08-18/19/20 返回明文车牌/司机/价(见上)。

前端缺陷点 2取消/删除成功后必须重拉 candidates 刷新栅格26-3559 实测)

承接用户第二个实测报障:「删除按钮显示删除成功了,但还是有这条数据」+「08-24/25 不回显」(订单 26-3559 / 2086270159575535618,改期 08/24→08/26

DB 地面真相(后端是对的,无需改)

fleet_assignment(order 2086270159575535618):
  08-24  canceled · 蒙A-G8888 宝音德力格尔 ¥900 · cancel_reason=「槽位删除联动取消派车」 @18:44:39
  08-25  canceled · 同上 @18:44:39
  08-26  canceled · 同上 @18:44:39
  → 三行已全部 canceled、占用已释放,后端取消【真实生效】
  • 车务点「删除」→ 后端确实取消成功(占用已释放,非没生效)。
  • 但栅格仍把 08-24/25 渲染成「已规划用车 + 改期残留」空态行、08-26 还显示旧的 蒙A-G8888/宝音德力格尔/¥900——前端在拿取消前的本地旧栅格态渲染,删除后没有重拉 candidates 刷新
  • 后端 candidatescells[] 现在已正确地不含这些 canceled 终态行(editableServiceDates 只并入在途 unassigned/holding/assigned 行,终态行不并入)。

前端要改(状态管理)

  1. 取消/删除派车成功后,必须重新调 POST /admin/fleet/assignments/candidates 拉最新 canonicalSnapshot 重建栅格,不要复用取消前缓存的本地栅格态。
  2. 渲染以最新 cells[] 为唯一权威后端已移除canceled 终态)的行不要再显示;在途残留行按 vehiclePlate/driverName/protocolPrice 明文渲染(缺陷点 1 已透出)。

产品口径(已与 wx 对齐):改期残留旧行(在途/已派)回显带明文 + 标「改期残留·待清理」,等车务手动删;点删除 = 取消 + 释放占用 + 行从栅格消失(前端重拉)。「删了还在」即此缺陷——纯前端没刷新。

联系人

  • 后端负责人: @wx
  • 前端消费: @mmg①渲染 cells[].vehiclePlate/driverName/protocolPrice + 既有 rescheduleResidue/canDelete;②取消/删除后重拉 candidates 刷新栅格)