文件
hl-api-changelog/changelogs-v2/2026-08/18_6052_整程行改期换版stale详情回拨成待派车-修改接口-管理后台.md
2026-08-19 09:14:18 +08:00

5.5 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 6052 整程行改期换版 stale 详情回拨成待派车(详情 activeAssignments/vehicleSlots 补 stale 覆写) admin wx 修改接口 deployed verified not_required mmg 2026-08-19 后端完成:PR #6053 已合并 dev-v3(a433bfb7fa)并部署 TEST(hl-fleet-service jar 21:07、双实例 21:08 重启)。根因=C:详情组装路径(activeAssignments/vehicleSlots)不经 stale 覆写——#6014 只修了列表卡片,详情未覆盖;本单给详情两组装点补 stale 覆写(逐日/全程同判据)。board 域 238 全绿 + ArchTest 13 + spotless。网关实测复现单详情 activeAssignments/vehicleSlots 回拨 unassigned。 2026-08-18 dev-v3 2026-08-18T21:15:00+08:00

整程行改期换版 stale 详情回拨成待派车(#6052)

背景

#6014 修了「改期换版后纯改期残留回拨成待派车」,但只覆盖了看板列表卡片(GET /admin/fleet/board/orders 的 assignmentStatus)。订单详情接口(GET /admin/fleet/board/orders/{orderId})的 activeAssignments / vehicleSlots 是另一条组装路径,没走 stale 覆写——整程行(全程槽,service_date=NULL)改期换版后,详情接口仍显示「已派车(assigned)」,与列表卡片/订单侧「待配」分叉。

根因

详情组装(activeAssignments / vehicleSlots)只用落库状态走状态派生,没有应用「陈旧定稿(stale)覆写」;stale 覆写此前只存在于列表卡片与早筛。逐日切片行与整程行在详情路径共用同一断点。

变更接口

接口 变更
GET /admin/fleet/board/orders/{orderId} 的 activeAssignments[] 行为变更。该需求存在陈旧定稿(plan_finalized_requirement_id ≠ 当前需求 ID)且可进配车流程时,assignmentStatus 由落库态回拨为「待派车(unassigned)」;baseAssignmentStatus 保留落库态(如 assigned),availableActionCodes 含 ASSIGN
GET /admin/fleet/board/orders/{orderId} 的 vehicleSlots[] 行为变更。同上口径,slotStatus 回拨 unassigned;rescheduleResidue 徽标、canDelete(取消/改派入口)保留

行为口径

  • 状态回拨:详情 activeAssignments[].assignmentStatus / vehicleSlots[].slotStatus 在「陈旧定稿 + 可进配车流程」时回拨成待派车,与列表卡片、订单侧对齐。
  • 落库不改:回拨只改读侧派生,baseAssignmentStatus 保留落库态;旧派车不自动清除(残留徽标 rescheduleResidue、取消/改派入口 canDelete 全保留,由车务手动清理)。
  • 缺口不虚高:列表缺口进度纯改期残留分流(unassigned=0)未动。
  • 当代定稿不误伤:plan_finalized_requirement_id = 当前需求 ID 时保持 assigned 不回拨。
  • V2 新槽机制:#5810 槽位人工制——平移行保持人工现状不自动补槽,车务取消旧行后按新日期重派(同逐日切片机制)。

响应示例

GET /admin/fleet/board/orders/{orderId} → data.activeAssignments[](修复后,整程行 stale 场景):

{
  "assignmentId": null,
  "serviceDate": null,
  "assignmentStatus": "unassigned",
  "baseAssignmentStatus": "assigned",
  "rescheduleResidue": true,
  "canDelete": true,
  "availableActionCodes": ["ASSIGN", "REJECT_REQUIREMENT"]
}
字段 类型 说明
assignmentStatus String 回拨后状态:陈旧定稿可进配车流程时 = unassigned(待派车)
baseAssignmentStatus String 落库真实状态(如 assigned),不受回拨影响
rescheduleResidue Boolean 是否改期残留旧日期行(true 挂「改期残留/待清理」徽标)
canDelete Boolean 是否可删除/取消(残留行恒 true,车务手动清理入口)
availableActionCodes String[] 可执行动作(回拨成待派车后含 ASSIGN)

vehicleSlots[] 同口径:slotStatus 回拨 unassigned,rescheduleResidue / canDelete 保留。

前端动作

  • 详情页 activeAssignments / vehicleSlots 直接消费 assignmentStatus / slotStatus(已是回拨后状态),baseAssignmentStatus 可用于显示落库真实态。
  • 残留行 rescheduleResidue=true 时挂「改期残留」徽标,canDelete=true 时保留取消/改派入口。
  • 列表卡片(#6014)行为不变。

验证证据

  • 单测:BoardOrderServiceTest +2(整程行 stale 回拨 unassigned + baseAssignmentStatus=assigned + 车辆信息保留;当代定稿保持 assigned 防误伤);board 域 238 全绿 + ArchTest 13 + spotless。
  • 部署:PR #6053 squash 合并 dev-v3(merge commit a433bfb7fa),Deploy Panel task c87ac963 success(jar 21:07、双实例 21:08 重启)。
  • 网关实测(TEST):复现单 2089664548595240962(改期 V1→V2,整程行 plan_finalized_requirement_id=V1)→ 详情 activeAssignments[0].assignmentStatus=unassigned(待派车)、baseAssignmentStatus=assigned、vehicleSlots[0].slotStatus=unassigned、rescheduleResidue=true、canDelete=true。

关联 / 联系人