--- 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 非空、无其他活跃槽位。 ## 前端配合 无需配合。确认执行按车务实际派车数通过,建议车辆数仍作为参考展示。