---
schema: "hl-changelog/v2"
ticket: "5657"
title: "确认执行不强制派满建议车辆数（按实际槽位校验，建议数仅参考）"
consumer: "admin"
change_type: "修改接口"
author: "wx(GIT)"
backend_status: "deployed"
gateway_status: "verified"
frontend_status: "not_required"
frontend_owner: ""
frontend_ref: ""
target_release: ""
verified_at: ""
status_note: "后端完成：PR #5660 已合并 dev-v3 并部署 TEST（18:27 滚动 DONE）。网关验证真实复现工单场景 6 项全 PASS：订单 26-4949（7人/建议2辆）只派 1 辆 7 座 GL8，确认执行 200 confirmed=true（修复前 605041「缺少第2个车辆槽位」×4）。前端无需配合。"
updated_at: "2026-08-07"
base: "dev-v3"
generated: "2026-08-07T18:45:00+08:00"
---

# 确认执行不强制派满建议车辆数（按实际槽位校验，建议数仅参考）

> **服务**: hl-fleet-service
> **PR**: [#5660](https://git.1814.love:8443/wx/HL/pulls/5660)
> **Issue**: [#5657](https://git.1814.love:8443/wx/HL/issues/5657)
> **日期**: 2026-08-07
> **影响**: 🟢 **缺陷修复**，无契约结构变更（`POST /admin/fleet/assignments/:assignmentId/confirm` 行为修复）。前端无需改代码。

## 背景

#5657（P1）wx 实测：订单 26-4949（7 人），系统建议 2 辆车（suggestedVehicleCount=2），车务只派 1 辆（7 座商务车够坐）。确认执行被拦：「该服务日缺少第 2 个车辆槽位派单」（8/13-8/16 四天都报）+「订单与派单基线已变化，请按逐日差异处理后重试」（605041）。

**口径（wx）**：车务说的算——车务想派几辆就派几辆，建议车辆数仅作参考，不强制派满。

**根因**：最终确认基线校验（assertFinalConfirmationBaseline）按需求展开的**期望槽位数**逐槽逐日要求派单覆盖，未派定的槽位也强制要求补齐。

## 修复内容（内部，无接口/字段结构变化）

- 确认执行基线校验改为按**实际槽位**校验：未派定的槽位跳过「缺少第 N 个槽位」强制拦截（建议车辆数仅参考）；
- **已派定槽位**的服务日完整性校验保留（防止半派状态确认）；
- 座位/车型相关提示与校验逻辑不变（座位数校验保留）。

## 变更接口

| 方法 | 路径 | 来源 |
|---|---|---|
| POST | /admin/fleet/assignments/:assignmentId/confirm | 确认执行：未派满建议数不再 605041，已派槽位缺服务日仍拦截 |

## 验证证据

- 全量 `mvn -pl hl-fleet-service -am verify`：3258 Tests，Failures=0，Errors=0；新增 2 例回归（建议两辆仅派一辆全程行可确认——已回退验证修复前确实被拦；已派槽位缺服务日仍拦截）；spotless 通过。
- 部署 TEST：18:27 滚动 DONE。
- 网关真实复现（订单 26-4949，蒙A-G8888 GL8 7 座对 7 人，8/13-8/16）6 项全 PASS：删除多余槽位恢复只派 1 辆现场 → 登记司机确认 → 确认执行 200 confirmed=true → DB 终态 4 行 assigned + confirmed_at 非空、无其他活跃槽位。

## 前端配合

无需配合。确认执行按车务实际派车数通过，建议车辆数仍作为参考展示。
