--- schema: "hl-changelog/v2" ticket: "5744" title: "改派后订单 vehicle_control_status 卡 PROCESSING 不推进 DONE(五层根因修复)" consumer: "admin" author: "wx" change_type: "修改接口" backend_status: "deployed" gateway_status: "verified" frontend_status: "not_required" frontend_owner: "" frontend_ref: "" target_release: "" verified_at: "" updated_at: "2026-08-09" base: "dev-v3" generated: "2026-08-09T16:20:00+08:00" --- # 08_5744_改派后订单vehicle_control_status卡PROCESSING修复-修改接口-管理后台 - **date**: 2026-08-09 - **ticket**: 5744 - **change_type**: 修改接口 - **service**: hl-fleet-service, hl-order-service-v3 - **frontend_status**: not_required - **status_note**: 修复改派(含接续/按天改派)后订单 vehicle_control_status 卡 PROCESSING 不回写 DONE 的问题(实证 26-6436)。五层修复全部为 fleet→order 快照回写链路的行为修正,前端无改动项;订单流程条由后端回写自然推进。## 变更接口或验证证据 ### 接口契约 **无契约变更**:POST /admin/fleet/assignments/:assignmentId/change、/:assignmentId/confirm、/:assignmentId/driver-confirmation、/requirements/:requirementId/confirm 的请求/响应字段、错误码均不变;internal 新增补偿端点 POST /internal/fleet/jobs/vehicle-assignment-snapshot/refinalize(运维补偿用,不影响对外契约)。 ### 验证证据 - **根因(五层,代码级实证 26-6436 全程行+改派)**: 1. `isFinalizedDispatchPlanTopologyRows` 全程槽(serviceDate=null 单行覆盖全程)逐日覆盖检查误判 → HOLD 确认/改派确认的 finalPlan 事件不发布(直派无条件发布故正常); 2. 改派生成的全程行携带非空 assignment_group_id,快照工厂 isFullTripRow 要求 groupId 为空 → 快照按逐日拓扑校验失败,confirm 回滚; 3. order 侧最终确认 fence 占用(582092,暂时性)被快照投递按业务错误隔离而非重试; 4. 隔离事件计入前驱阻塞 → 后续 revision 永久 PENDING; 5. order 侧未初始化(contract_version 为空)强绑 revision=1,fleet 重发更高 revision 永远冲突。 - **修复**:#5745/#5747/#5748/#5749/#5753 五 PR + 追加验收 #5761/#5763(混合拓扑按槽位分桶校验+nullsFirst 排序;当前代身份排除同槽被替换的 canceled 旧行),fleet 4 处 + order 1 处 + 补偿端点; - **测试**:AssignmentServiceTest 408/408(含 canceled 旧全程行回归)、FactoryTest 14/14(含混合拓扑/逐日槽缺天)、GenerationServiceTest 15/15、OutboxSenderTest 26/26、OutboxMapperTest 13/13、order DailyVehicleAssignmentSnapshotServiceTest 17/17;fleet 全量 verify 3313 tests 失败项全部归账(ReleaseEMixedBinaryHarnessTest 2F + ReleaseEOccupancyMysql8033RecoveryTest 10E 为既有环境类基线); - **部署自验(TEST 实单 26-6436 全链)**:change(HOLD)→driver-confirmation→confirm 全部成功;快照 rev=5 生成;fence 占用期间投递重试(retry_count=6, HTTP_582092,非隔离);fence 过期后自动投递 SUCCESS;**order_main.vehicle_control_status PROCESSING→DONE、order_vehicle_requirement.status=DONE、contract=DAILY_V3 rev=6**;探针 4/4 PASS(evidence/5744/gateway-probe-output.txt)。追加验收:带 groupId 全程行/逐日行混合拓扑 confirm 正常(单测+TEST 实链原子确认 rev=6 投递 DONE);直派全程行(groupId=null)与纯逐日回归保持。 ## 前端交接 无。流程条「配车·处理中→下一步」由后端回写驱动,前端无需改动。