3.8 KiB
3.8 KiB
schema, ticket, title, consumer, author, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base, generated
| schema | ticket | title | consumer | author | change_type | backend_status | gateway_status | frontend_status | frontend_owner | frontend_ref | target_release | verified_at | status_note | updated_at | base | generated |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| hl-changelog/v2 | 5649 | holdMode=0直派兼容全程占位行拓扑校验(修复既有缺口) | admin | wx(GIT) | 修改接口 | deployed | verified | not_required | 后端完成:PR #5653 已合并 dev-v3 并部署 TEST(hl-fleet-service 双实例)。修复 holdMode=0 直派+全程占位行需求拓扑校验必挂(既有缺口,#5643 发现非回归)。无请求/响应契约变化,仅派单 finalize 内部拓扑校验逻辑兼容全程形态。 | 2026-08-07 | dev-v3 | 2026-08-07T17:10:00+08:00 |
holdMode=0 直派兼容全程占位行拓扑校验(修复既有缺口)
后端完成:PR #5653 已合并 dev-v3 并部署 TEST,网关验证通过。
关联 / 联系人
链接
联系人
- 后端负责人: @wx
背景
#5643 发现的既有缺口(非回归):holdMode=0 直派的 batch dailyPlan 在全程占位行需求上必挂——finalizeDailyBatchDispatchPlan 期望逐日切片(isSingleDaySlice),但全程占位行(#5562 全程槽模型:service_date NULL、startDate~endDate 覆盖整个服务期)被整段消费后保持全程形态,只产生 slot:startDate 一个拓扑 key,与逐日 items(slot:start..slot:end)不匹配,单行 isSingleDaySlice 校验也必挂,拓扑校验误报「最终实派方案写入不完整」。考古 274b03561288(#5595 前基线)同样逻辑。holdMode=1 HOLD 路径跳过 finalize 不受影响。
修复
finalizeDailyBatchDispatchPlan 拓扑校验兼容全程占位行:
- key 展开:将
isFullTripRow的全程行按服务期逐日展开为多个逻辑 key(slot:start..slot:end全部映射到同一物理行),与逐日 items 的 key 集合对齐 - 单行校验:合法形态从「仅
isSingleDaySlice」放宽为「isSingleDaySlice || isFullTripRow」——整段消费的全程行不再误判为写入不完整 - ID 去重:全程行跨多天展开为多个逻辑 key 但对应同一物理行,
finalizedAssignmentIds按物理行去重(只收一次 ID),避免markDispatchPlanGeneration的 distinct 校验误报
变更接口
无请求/响应契约变化——仅派单 finalize 内部拓扑校验逻辑修复(POST /admin/fleet/assignments/batch 的 dailyPlan 直派路径行为修正:全程占位行需求从「必挂报错」变为「正常冻结」)。
行为变化
- holdMode=0 直派 + 全程占位行需求:从「拓扑校验必挂、报『最终实派方案写入不完整』」修复为「正常冻结最终实派方案」
- holdMode=1 HOLD 路径:跳过 finalize,完全不受影响
- 逐日切片路径:
isFullTripRow为 false 走原逻辑,行为不变 - 拓扑真缺失:仍正确报「写入不完整」(key 集合不匹配时不放松校验)
前端/调用方动作
无需改动(仅修复了直派路径在全程占位行需求上的误报,前端调用方式不变)。
验证证据
- 新增 3 用例:直派全程占位行不误报 / 直派逐日切片不受影响 / 直派拓扑缺失仍报不完整
- AssignmentServiceTest 386/386 全绿;fleet spotless:check 通过
- fleet verify(mvn-throttle 错峰):3243 测试仅
ReleaseEOccupancyMysql8033RecoveryTest(需 MySQL 8.0.33 环境)基线失败,与本案无关 - 部署:hl-fleet-service 双实例 UP(17:05)
- 网关验证:VEHICLE_MANAGER 调
/admin/fleet/board/summary、/admin/fleet/reconciliation/cars均 200,服务健康