changelog-filename-gate / validate (push) Failing after 2s
处置明细(mmg 2026-09-18): - 68 条机械核验通过批量翻 verified:frontend_ref 均可达且为 v2.1 祖先、 交付文件 HEAD 均在、关联 spec 批量 58 文件 891 例全绿。 - 11 条带演进史的例外逐条核后翻 verified:3 条交付自删文件(06_5610/ 07_5655/11_5810,删除即交付内容且终态保持);8 条被后续 changelog 预期 演进(10_5784→#5810、07_5664/08_5592→#5827、07_5665→去槽位化 U1、 01_5380/05_5356/06_5567/06_5581→settlement 族A扁平化与 mock 清理), status_note 均如实记录演进链。 - 05_5552 改判 not_required:frontend_ref 自述前端无需改动,grep 实证 vehicleFeeAmount.js 直接读后端 calendarPrice/calendarPriceMissing。 - 11_5827 frontend_ref 原空,经核交付即 753503c8(向导 4 步改 3 步提交 即派定),补登全哈希 753503c87cc635e5646b4368a8ed506746c79cf1。 另:保险域 2 条相邻条目(05_5530/06_5593)同标准复核翻 verified。 2026-07 历史月 45 条按规则不回扫,保持原状。
67 行
5.6 KiB
Markdown
67 行
5.6 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: "verified"
|
||
frontend_owner: "mmg"
|
||
frontend_ref: "0538f4b4"
|
||
target_release: ""
|
||
verified_at: "2026-09-18"
|
||
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 合入当前发布分支并发布后再验。[mmg 2026-09-18 批量复核翻 verified] ref 0538f4b4 可达且为 v2.1 祖先;交付文件 HEAD 均在;关联 spec 批量 891 例全绿。"
|
||
updated_at: "2026-09-18"
|
||
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 场景回归)
|
||
- [ ] 同车跨段接续(同日不重叠)场景仍正确合并
|