5.5 KiB
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。
关联 / 联系人
- Issue:wx/HL#6052
- PR:wx/HL#6053
- Commit(merge):https://git.1814.love:8443/wx/HL/commit/a433bfb7fa
- 后端负责人:wx