From 50b22e6b6b5bd4a80b335c685d65fa5f535a60d4 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Wed, 12 Aug 2026 18:29:26 +0800 Subject: [PATCH] =?UTF-8?q?docs(changelog):=20#5926=20=E6=8E=92=E8=BD=A6St?= =?UTF-8?q?ep2=E6=A0=85=E6=A0=BC=E6=94=B9=E6=9C=9F=E6=AE=8B=E7=95=99?= =?UTF-8?q?=E6=97=A7=E5=AE=9E=E6=B4=BE=E8=A1=8C=E4=B8=8D=E5=9B=9E=E6=98=BE?= =?UTF-8?q?=E6=98=8E=E6=96=87(=E5=89=8D=E7=AB=AF=E6=B8=B2=E6=9F=93,?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=E5=B7=B2=E8=A1=A5=E5=AD=97=E6=AE=B5)=20(PR?= =?UTF-8?q?=20#5930)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...期残留旧实派行不回显明文-前端修复-管理后台.md | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 changelogs-v2/2026-08/12_5926_排车Step2栅格改期残留旧实派行不回显明文-前端修复-管理后台.md diff --git a/changelogs-v2/2026-08/12_5926_排车Step2栅格改期残留旧实派行不回显明文-前端修复-管理后台.md b/changelogs-v2/2026-08/12_5926_排车Step2栅格改期残留旧实派行不回显明文-前端修复-管理后台.md new file mode 100644 index 0000000..45bf12c --- /dev/null +++ b/changelogs-v2/2026-08/12_5926_排车Step2栅格改期残留旧实派行不回显明文-前端修复-管理后台.md @@ -0,0 +1,96 @@ +--- +schema: "hl-changelog/v2" +ticket: "5926" +title: "排车 Step2 栅格改期残留旧实派行不回显车牌/司机/价(前端渲染)" +consumer: "admin" +change_type: "前端修复" +author: "wx(GIT)" +backend_status: "deployed" +gateway_status: "verified" +frontend_status: "pending" +frontend_owner: "mmg" +frontend_ref: "" +target_release: "" +verified_at: "" +status_note: "后端已补 cell 明文字段并部署测试服实测通过:订单 26-0821(改期 08-18→08-21) candidates cells 08-18/19/20 现返回 vehiclePlate=蒙A-K1999/driverName=巴根那/protocolPrice=1500.0 + residue=true + canDelete=true。前端只需渲染栅格时把这三个明文填进对应行(别只贴残留红标签留空数据列)。" +updated_at: "2026-08-12" +base: "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「用车开始/结束日期不能为空」): + +```json +{ + "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。 | + +配合既有字段:`used`(USED/UNUSED/null)、`rescheduleResidue`(改期残留标记,前端红标签靠它)、`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` 的行继续挂「改期残留·待清理」徽标 + `canDelete=true` 提供醒目「取消残留派车」入口(调既有 `DELETE /admin/fleet/assignments/{assignmentId}`)。 + +## 验证证据(后端) + +- fleet 全量 `mvn test` 3680 跑 0 失败 0 错误;ArchTest 13 绿;spotless 净。 +- 新增单测覆盖明文透传 + FREE/OVERRIDE/CALENDAR 价口径。 +- 测试服 API 实测:08-18/19/20 返回明文车牌/司机/价(见上)。 + +## 联系人 + +- **后端负责人**: @wx +- **前端消费**: @mmg(渲染 `cells[].vehiclePlate/driverName/protocolPrice` + 既有 `rescheduleResidue`/`canDelete`)