---
schema: "hl-changelog/v2"
ticket: "5732"
title: "派车通知预览（render/render-batch）日期按 serviceDates 分段（接续场景各司机显示自己负责的服务日）"
consumer: "admin"
author: "wx"
change_type: "修改接口"
backend_status: "deployed"
gateway_status: "verified"
frontend_status: "not_required"
frontend_owner: ""
frontend_ref: ""
target_release: ""
verified_at: ""
status_note: "后端完成：PR #5740 合并 dev-v3（38f4f99a2）并部署 TEST，网关验证接续场景两司机预览日期各自分段（道尔吉 8/23~8/23、王信 8/24~8/25，修复前均为订单全程），与司机实际收到的 HOLD 通知日期口径一致。接口字段结构无变化，渲染行为修复，前端无需改动（预览页展示即正确分段）。"
updated_at: "2026-08-09"
base: "dev-v3"
generated: "2026-08-09T12:15:00+08:00"
---

## 变更接口

`POST /admin/fleet/message-templates/{templateId}/render` 与 `POST /admin/fleet/message-templates/{templateId}/render-batch`

- **行为变化**：请求项携带 `serviceDates` 时，模板变量 `order.startDate` / `order.endDate` / `order.days` 按该司机的 `serviceDates` min~max 分段渲染（与司机实际收到的 HOLD 通知口径一致：`AssignmentHoldNotificationSnapshotFactory` 行级 serviceDate min/max）；不传 `serviceDates`（单司机非接续/派单前预览）仍按订单全程渲染。
- **请求/响应字段结构无变化**：`serviceDates` 原有字段（此前仅用于车费安排渲染）现同时驱动「日期」占位符。
- 模板占位符示例：`日期：{{order.startDate}} 至 {{order.endDate}}`。

## 验证证据

- hl-fleet-service verify 3307/0F/0E + spotless 通过；MessageTemplateRenderServiceTest 30/30（新增 4 用例）。
- TEST 网关实证（订单 26-6436，接续场景，探针 `tools/probe_5732_render_dates.py` 5/5 PASS）：
  - 道尔吉段 `serviceDates=[2026-08-23]` → 日期 **2026-08-23 至 2026-08-23**
  - 王信段 `serviceDates=[2026-08-24,2026-08-25]` → 日期 **2026-08-24 至 2026-08-25**
  - 不传 serviceDates → 订单全程 2026-08-23 至 2026-08-25（回归）
  - 全程段预览与 HOLD 快照工厂在 fleet_assignment 实际行集合上的 min/max 口径一致
