docs(changelog): 整程行改期换版stale详情回拨成待派车(#6052 / PR #6053)
这个提交包含在:
父节点
1cf12fc336
当前提交
4130f26911
@ -0,0 +1,89 @@
|
||||
---
|
||||
schema: "hl-changelog/v2"
|
||||
ticket: "6052"
|
||||
title: "整程行改期换版 stale 详情回拨成待派车(详情 activeAssignments/vehicleSlots 补 stale 覆写)"
|
||||
consumer: "admin"
|
||||
author: "wx"
|
||||
change_type: "修改接口"
|
||||
backend_status: "deployed"
|
||||
gateway_status: "verified"
|
||||
frontend_status: "pending"
|
||||
frontend_owner: "mmg"
|
||||
frontend_ref: ""
|
||||
target_release: ""
|
||||
verified_at: "2026-08-18"
|
||||
status_note: "后端完成: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。"
|
||||
updated_at: "2026-08-18"
|
||||
base: "dev-v3"
|
||||
generated: "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 场景):
|
||||
|
||||
```json
|
||||
{
|
||||
"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:https://git.1814.love:8443/wx/HL/issues/6052
|
||||
- PR:https://git.1814.love:8443/wx/HL/pulls/6053
|
||||
- Commit(merge):https://git.1814.love:8443/wx/HL/commit/a433bfb7fa
|
||||
- 后端负责人:wx
|
||||
正在加载...
x
在新工单中引用
屏蔽一个用户