67 行
5.5 KiB
Markdown
67 行
5.5 KiB
Markdown
---
|
||
schema: "hl-changelog/v2"
|
||
ticket: "frontend"
|
||
title: "确认执行页「逐日车费」仍只显示 1 天:修复 0538f4b4 未合入主分支/未发布,线上跑的仍是按 serviceDate 去重的旧逻辑"
|
||
consumer: "admin"
|
||
change_type: "前端缺陷"
|
||
author: "wx(GIT)"
|
||
backend_status: "not_required"
|
||
gateway_status: "not_required"
|
||
frontend_status: "implemented"
|
||
frontend_owner: "mmg"
|
||
frontend_ref: "0538f4b4"
|
||
target_release: ""
|
||
verified_at: "2026-08-12"
|
||
status_note: "后端零改动,已复核后端逻辑确认数据完整:BoardOrderService#expandFullTripDailyRows 把全程行按服务期逐日展开(3133-3141 行 BeanUtil 逐日复制 vehicleId/driverId/价格到每个切片),且 2218+2225-2228 行对「已派(车+司机非空)或 finalized==1」的逐日切片全部纳入——单车 3 天订单会返回全 3 天 dailyVehicleFees,非只回 1 天。症状与 08-12 那条 changelog(frontend_ref=0538f4b4,确认执行页逐日车费按 serviceDate 去重折叠)同型。但关键发现:0538f4b4 这个修复 commit 不在 hl-ui 的 origin/dev / origin/master / origin/main 任何主分支祖先里,线上构建跑的仍是旧的 mergeContinuityDailyVehicleFees(按 serviceDate 全局去重)——它本为「同车跨段同日不重叠」设计,会把『逐日 × 逐车』折叠成『逐日单行』,单车 3 天被去重塌成 1 天、最终总车费也只算 1 天(截图:3 天订单 08/23-08/25 只显示 8月23日 ¥800,总车费 ¥800)。0538f4b4 新增的 groupDailyVehicleFeesByVehicle(vehicleFeeAmount.js:135-160 按车分组、组内按日去重)对单车多天也正确(同组保留全部不同 serviceDate),即修复内容本身覆盖单车场景,问题只是『没合并没发布』。请 mmg 把 0538f4b4 合入当前发布分支并发布后再验。"
|
||
updated_at: "2026-08-12"
|
||
base: "dev-v3"
|
||
---
|
||
|
||
# 确认执行页「逐日车费」仍只显示 1 天(前端·修复未发布)
|
||
|
||
> **页面**:车务管理 → 派单看板 → 订单派车弹窗 → Step4「确认执行」→「逐日车费」卡片 +「最终总车费(只读合计)」
|
||
> **后端**:本条**零改动**。下面后端结论来自当前源码复核(`BoardOrderService`)。
|
||
> **诉求**:把修复 commit `0538f4b4` 合入发布分支并发布。
|
||
|
||
---
|
||
|
||
## 一、现象(2026-08-12 复现)
|
||
|
||
单车 3 天订单(客户周明月,1 成人,日期 08/23–08/25 共 3 天,车辆蒙A-H7777 丰田汉兰达 7 座,师傅阿拉坦)走到确认执行页:
|
||
|
||
- 「逐日车费」只显示 **1 行**:`8月23日 收费 日历价 ¥800`;
|
||
- 「最终总车费(只读合计)」也只有 **¥800**(应为 3 天合计)。
|
||
|
||
## 二、后端已排除(数据完整)
|
||
|
||
确认执行页数据源 `GET /admin/fleet/board/orders/{orderId}` 的组装逻辑(`BoardOrderService`):
|
||
|
||
1. **全程行按服务期逐日展开**:`expandFullTripDailyRows`(3120-3145)对 `service_date` 为 NULL 的全程行,从 `startDate` 到 `endDate` 逐日 `BeanUtil.copyProperties` 复制成切片——`vehicleId`/`driverId`/`dispatchPlanFinalized`/价格全部逐日带齐。
|
||
2. **已派行不额外过滤**:2218 行展开后,2225-2228 行只要求「`dispatch_plan_finalized==1` **或**(`vehicleId` 与 `driverId` 均非空)」即纳入服务日——单车已派全程行展开成的 3 个切片每天都满足,**会进 `currentServiceDatesByGroup` 与 `activeAssignments`**。
|
||
|
||
即:**后端对该单车 3 天订单会返回全部 3 天的 `dailyVehicleFees` 与逐日价**,不是只回 1 天。与 08-12 那条 changelog 测试服实测结论(`activeAssignments[].dailyVehicleFees` 逐日齐全 + 根级 `vehicleFeeTotal`)一致。
|
||
|
||
## 三、根因(前端):修复存在但未发布
|
||
|
||
症状与 08-12 changelog(`frontend_ref=0538f4b4`)描述的「确认执行页逐日车费按 serviceDate 去重折叠」完全同型:
|
||
|
||
- 旧逻辑 `mergeContinuityDailyVehicleFees`(`vehicleFeeAmount.js:106`)按 `serviceDate` 全局去重——它本为「同车跨段接续、同日不重叠」设计,被错用到「逐日 × 逐车」,把多行折叠成单行,总价也只算去重后的一行。
|
||
- mmg 的修复 `0538f4b4` 已新增 `groupDailyVehicleFeesByVehicle`(`vehicleFeeAmount.js:135-160`):按车分组(vehicleId 优先/车牌兜底)、组内按日去重——**单车 3 天进同一组、保留全部 3 个不同 serviceDate,修复后单车场景应显示全 3 天**。即修复内容本身覆盖单车场景。
|
||
|
||
**但 `0538f4b4` 不在 hl-ui 的 `origin/dev` / `origin/master` / `origin/main` 任何主分支祖先里,本地工作树也未合入。** 也就是说该修复**没有合并、没有发布**,当前线上构建跑的仍是旧的 `mergeContinuityDailyVehicleFees`,所以 3 天被去重塌成 1 天。
|
||
|
||
## 四、要做的(前端)
|
||
|
||
1. 把修复 commit `0538f4b4` 合入当前对外发布的分支并发布;
|
||
2. 发布后用**单车多天**订单(如本例 08/23–08/25)回归确认执行页:
|
||
- 「逐日车费」显示 **3 行**(每天一行,带日期+价);
|
||
- 「最终总车费」= 3 天合计(直接取根级 `vehicleFeeTotal`,不要前端再按日期去重聚合)。
|
||
|
||
## 五、验收
|
||
|
||
- [ ] `0538f4b4` 已合入发布分支并上线
|
||
- [ ] 单车多天订单确认执行页逐日车费显示「服务日数」行(本例 3 行)
|
||
- [ ] 「最终总车费」= 后端 `vehicleFeeTotal`(本例 3 天合计)
|
||
- [ ] 多车并行订单仍按车铺开多行(08-12 changelog 场景回归)
|
||
- [ ] 同车跨段接续(同日不重叠)场景仍正确合并
|