---
schema: "hl-changelog/v2"
ticket: "5244"
title: "派单详情分别返回接送说明与通用备注"
consumer: "admin"
change_type: "修改接口"
backend_status: "deployed"
gateway_status: "verified"
frontend_status: "implemented"
frontend_owner: "hl-ui-codex"
frontend_ref: "mmg/hl-ui@ede7d025e2d6d0d90e570d0bfa5d90f588431842"
target_release: ""
verified_at: ""
status_note: "后端 PR #5246 已合并并部署；前端需在派单 Step1 大交通卡片分别渲染两个字段。"
updated_at: "2026-07-25T01:24:40.528Z"
base: "dev-v3"
generated: "2026-07-25T09:05:18+08:00"
---

# 车务派单详情：分别返回接送说明与通用备注

> **服务**: `hl-order-service-v3`、`hl-fleet-service`
>
> **工单**: [wx/HL#5244](https://git.1814.love:8443/wx/HL/issues/5244)
>
> **后端 PR**: [wx/HL#5246](https://git.1814.love:8443/wx/HL/pulls/5246)
>
> **影响范围**: 车务管理 → 派车看板 → 派单弹窗 Step1 → 大交通

## 业务口径

`pickupRemark` 与 `remark` 是两个独立字段，不得合并、互相覆盖或只取其中一个：

- `pickupRemark`：接机/送机说明；ARRIVAL 展示为“接机说明”，DEPARTURE 展示为“送机说明”。
- `remark`：大交通通用备注，展示为“备注”。
- 整团 `arrive/depart` 与分批 `batches[]` 使用同一字段口径。
- 任一字段为 `null` 或空白时，只隐藏该字段对应的展示行，不影响另一字段。

## 变更接口

### 管理后台

```http
GET /admin/fleet/board/orders/:orderId
```

`data.transport.arrive`、`data.transport.depart` 与 `data.transport.batches[]` 均包含：

| 字段 | 类型 | 必填 | 说明 |
| --- | --- | --- | --- |
| `pickupRemark` | `String/null` | 否 | 接机/送机说明 |
| `remark` | `String/null` | 否 | 大交通通用备注；既有字段继续保留 |

响应示例：

```json
{
  "code": 200,
  "data": {
    "transport": {
      "arrive": {
        "direction": "ARRIVAL",
        "pickupRemark": "到达出口举牌接机",
        "remark": "航班可能延误"
      },
      "depart": {
        "direction": "DEPARTURE",
        "pickupRemark": "提前三小时送机",
        "remark": "请再次确认航站楼"
      },
      "batches": [
        {
          "direction": "ARRIVAL",
          "pickupRemark": "分批接机说明",
          "remark": "分批通用备注"
        }
      ]
    }
  }
}
```

### 内部契约

```http
GET /v3/internal/order/orders/:orderId/fleet-detail-context
```

order-v3 → fleet 的共享 `OrderTransportForFleetDTO` 在整团段与分批段均独立传递
`pickupRemark`、`remark`。这是兼容性增量：路径、HTTP 方法、既有字段、枚举、错误码及
`pickupRequired` 三态口径均不变。

## 前端展示矩阵

| 方向/模式 | `pickupRemark` | `remark` | 页面展示 |
| --- | --- | --- | --- |
| ARRIVAL，整团或分批 | 有 | 有 | 分别显示“接机说明”和“备注” |
| DEPARTURE，整团或分批 | 有 | 有 | 分别显示“送机说明”和“备注” |
| 任一方向 | 有 | 空 | 只显示接机/送机说明 |
| 任一方向 | 空 | 有 | 只显示备注 |
| 任一方向 | 空 | 空 | 两行均不显示 |

前端不得根据 `pickupRequired` 推导说明文本，也不得用一个字段回填另一个字段。

## 前端处理清单

- [ ] 派单弹窗 Step1 大交通卡片读取 `pickupRemark`，按方向显示“接机说明”或“送机说明”。
- [ ] 通用备注继续读取 `remark`，与接机/送机说明分行展示。
- [ ] 同时覆盖 `arrive`、`depart`、`batches[]`。
- [ ] 对 `null`、空字符串和纯空白字符串使用单字段空态规则。
- [ ] 不显示 `travelerIds` 等内部关联字段；既有出行人脱敏规则不变。

## 契约验证状态

- OpenAPI/oasdiff：`not_configured`。项目当前未配置稳定 Swagger2 → OAS3 导出与 oasdiff 基线。
- 消费者契约/Spring Cloud Contract：`not_configured`。项目当前未配置 SCC。
- fallback：源码与 Codemap 影响比对、order-v3 生产者测试、fleet 消费者/Controller 测试以及完整 reactor 验证。
- 本次没有临时安装 oasdiff 或 Spring Cloud Contract 依赖。

## 验证证据

- 合并提交：`ca3c5c7310ddc142398382644a40ab57d951248e`。
- 定向生产者/消费者测试：88 项通过。
- 影响范围测试：25 个 reactor 模块全部通过。
- Fleet 完整验证：2361 项测试，0 失败、0 错误、1 跳过；Spotless 606 个 Java 文件通过。
- 测试部署：
  - order-v3 任务 `a5916436`，8086/8186 双实例成功；
  - fleet 任务 `a198456e`，8087/8187 双实例成功。
- 部署面板与 Nacos 均确认两个服务 2/2 running、healthy、enabled；部署后日志新增错误匹配为 0。
- 经测试网关验证真实团单：列表与详情 HTTP/业务码均为 200，`relatedDetailReady=true`；
  ARRIVAL、DEPARTURE 均同时返回非空且取值不同的 `pickupRemark`、`remark`。

## 不影响范围

- 不修改 `D:/work2/hl-ui`。
- 不修改大交通录入、接送默认值、接送需求聚合、派车状态机或历史数据。
- 不新增 DDL，不清理、不回填存量大交通备注。

> 后端与网关已验证；`frontend_status: pending` 表示等待前端真实领取，不代表页面已实现、发布或验证。
