hl-api-changelog/changelogs-v2/2026-08/12_5899_改订单人数后车务未重走配车-修复-管理后台.md
API Changelog Bot e7410b4d95
所有检测均成功
changelog-filename-gate / validate (push) Successful in 2s
chore: 5899 改订单人数后车务未重走配车——换版后自动重新盖章抵消作废定稿
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-08-12 11:56:41 +08:00

59 行
3.2 KiB
Markdown

此文件含有模棱两可的 Unicode 字符

此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。

---
schema: "hl-changelog/v2"
ticket: "5899"
title: "修复改订单人数后车务未重走配车——换版后自动重新盖章抵消作废定稿"
consumer: "admin"
change_type: "修复"
author: "wx(GIT)"
backend_status: "deployed"
gateway_status: "not_required"
frontend_status: "not_required"
frontend_owner: ""
frontend_ref: ""
target_release: ""
verified_at: ""
status_note: "后端已修复并部署测试服,API 实测通过。修改订单人数/车型等(服务日期窗不变)的换版后,车务看板正确回到「待派车」,订单侧停留在「待配」,不再被自动拉回「配车完成」;车务重新确认后订单正常推进。改行程天数/改出发日期不受影响。"
updated_at: "2026-08-12"
base: "dev-v3"
---
# 修复:改订单人数后车务未重走配车——换版后自动重新盖章抵消作废定稿(#5899
> **服务**: hl-fleet-service
> **PR**: #5903已合并 dev-v3 并部署测试服)
> **日期**: 2026-08-12
> **背景**: 订单修改人数后,订单侧短暂显示「待配」又立刻回到「配车已完成」,车务侧看板没有重走配车流程,仍保持「配车完成」,待派车 tab 无此单。
---
## 修复内容(对前端透明,无接口契约变化)
**根因**`AssignmentService.expandFromRequirementInTransaction` 换版时同事务内先后执行两个互相矛盾的动作:
1. `invalidateDispatchPlanForMigratedRows`#5851)换版平移后作废定稿——清 `dispatch_plan_finalized`/`dispatch_plan_generation`,意图让车务重走配车。
2. `publishDailySnapshotIfComplete`#5810)紧接着发现「行都 assigned 且无 finalized」→ 走 `markDispatchPlanGeneration` **自动重新盖章**finalized=1、归属=新需求)→ 发 `DailyVehicleSnapshotChangedEvent.finalPlan` → 订单被拉回 `VEHICLE_DONE`
**修复**`publishDailySnapshotIfComplete` 检测到归属旧需求的陈旧定稿行时(`hasStaleFinalizedPlanRows` 命中)直接返回,不自动盖章/发 finalPlan。车务 confirm 时归属被重新盖成当前需求,守卫自然放行,闭环保留。
**影响范围**:仅服务日期窗不变的换版(改人数/车型/座位)。改行程天数/改出发日期时日期校验本就返回 false,不误触发。
## 行为变化
| 场景 | 旧 | 新 |
|---|---|---|
| 改人数后(服务窗不变) | ❌ 看板停留「配车完成」,订单误拉回 DONE,车务没机会重走配车 | ✅ 看板回到「待派车」,订单停留「待配」,等车务重新确认 |
| 车务重新确认 | ✅ 正常盖章并推进订单 | ✅ 不变(守卫放行) |
| 改行程天数/改出发日期 | ✅ 正常 | ✅ 不变 |
## 验证证据(测试服 API 实测,订单 2086270141158346754
修改订单人数10→11后实测
- 需求换版 v4,`status=PENDING`(不再自动拉回 DONE
- fleet 派单行 `dispatch_plan_finalized=0``plan_finalized_requirement_id` 保留旧 v3归属证据
- 车务看板卡片:`finalizedByFleet=False``staleFinalizedPlan=True` → 「待派车」tab
- 订单侧 VEHICLE`PROCESSING 待配 | 配车待配`(不再误显示「配车已完成」)
后端 PR #5903 已合并 dev-v3 并部署测试服,fleet-service 健康。前端无改动,无需联调。