docs(changelog): #6152 补各接口请求/响应 JSON 示例(网关实测片段,前端可照 Mock)
changelog-filename-gate / validate (push) Successful in 1s
changelog-filename-gate / validate (push) Successful in 1s
这个提交包含在:
@@ -35,22 +35,134 @@ generated: "2026-08-22T17:20:00+08:00"
|
||||
|
||||
### 新增端点
|
||||
|
||||
| 接口 | 变更 |
|
||||
| --- | --- |
|
||||
| `POST /admin/fleet/assignments/resolve-exception`(异常处置完成) | **新端点**。入参 `orderId`(整单级处置)+ `requestId`(幂等)。把该订单全部异常派单行转已完结;前置门禁:车辆/司机占用须先经「一键清除已取消派单的占用」释放,否则 605072 拦回。返回 `{ resolvedCount, assignmentIds[] }`;无异常行幂等返回 0。 |
|
||||
`POST /admin/fleet/assignments/resolve-exception`(异常处置完成):把该订单全部异常派单行转已完结。入参 `orderId`(整单级处置)+ `requestId`(幂等);前置门禁:车辆/司机占用须先经「一键清除已取消派单的占用」释放,否则 605072 拦回;无异常行幂等返回 0。
|
||||
|
||||
**错误码**:`605072`(异常派单的车辆/司机占用尚未释放,请先释放资源再处置完成)、`605073`(派单处于异常待处置状态,请先释放资源并完成异常处置——异常行拒绝确认/改派/拒接/软清/提前完结等推进类写操作)。
|
||||
**请求**:
|
||||
|
||||
```json
|
||||
{
|
||||
"orderId": "2086697882311680002",
|
||||
"requestId": "resolve-exception-20260822-001"
|
||||
}
|
||||
```
|
||||
|
||||
**响应(成功,处置 N 行)**:
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 200,
|
||||
"message": "成功",
|
||||
"data": {
|
||||
"resolvedCount": 4,
|
||||
"assignmentIds": ["2086811469462011905", "2086811469466206209", "2086811469466206210", "2086811469470400514"]
|
||||
},
|
||||
"traceId": null,
|
||||
"success": true
|
||||
}
|
||||
```
|
||||
|
||||
**响应(幂等重放/无异常行)**:`data` 为 `{"resolvedCount": 0, "assignmentIds": []}`,同样 code=200。
|
||||
|
||||
**响应(占用未清拦回)**:
|
||||
|
||||
```json
|
||||
{
|
||||
"code": 605072,
|
||||
"message": "异常派单的车辆/司机占用尚未释放,请先释放资源再处置完成",
|
||||
"data": null,
|
||||
"traceId": null,
|
||||
"success": false
|
||||
}
|
||||
```
|
||||
|
||||
**错误码**:`605072`(占用未释放)、`605073`(异常态写口锁——异常行拒绝确认/改派/拒接/软清/提前完结等推进类写操作)。
|
||||
|
||||
### 修改端点
|
||||
|
||||
| 接口 | 变更 |
|
||||
| --- | --- |
|
||||
| `GET /admin/fleet/board/summary`(看板汇总) | `statusOptions` 新增第 6 项 `{"value":"exception","label":"异常","description":"已派车后再取消,待人工处置(释放资源后处置完成)","count":N,"urgentCount":0}`;`statusCounts` 新增 `exception` 计数。已取消分面 description 更新为「仅未派车即取消」。 |
|
||||
| `GET /admin/fleet/board/orders`(看板列表) | `statuses` 筛选参数新增合法值 `exception`;混合取消订单(部分行已派落异常+部分未派占位落取消)的代表状态= exception(落异常桶);每条记录 `assignmentSlots[]` 槽位行**新增 `serviceDate`/`startDate`/`endDate` 三字段**(逐日切片行 serviceDate 有值;全程槽行 serviceDate=null 时用 startDate~endDate 展开解析服务日)。 |
|
||||
| `GET /admin/fleet/board/orders/{orderId}`(看板详情) | `vehicleSlots[]` 的 `slotStatus` 新增值 `exception`(`slotStatusLabel`=「异常」),身份字段(vehiclePlate/vehicleModel/driverName/driverPhone)保留展示不清空,带 `cancelReason`;详情槽位行同样补 `serviceDate`/`startDate`/`endDate`。 |
|
||||
| `GET /admin/fleet/orders/{orderId}/operation-log`(派单操作时间线) | 新增 `opType` 枚举值:`exception_marked`(`opTypeLabel`=「订单异常」,操作人=系统,summary 形如「系统 订单异常:出行前取消,原因:xxx」,detailJson 带 scene/reason/exceptionRowCount);`exception_resolved`(`opTypeLabel`=「异常处置完成」,summary 带「共 N 行派单转已完结」)。存量已派后取消单读侧合成兜底。 |
|
||||
| `DELETE /admin/fleet/assignments/{assignmentId}`(取消派单) | 已派车(holding/assigned)行取消后目标态从 canceled 改为 **exception**(返回值 `assignmentStatus="exception"`);未派占位行维持 canceled。车辆/司机占用**保留不释放**(原取消即条件释放,现等人工处置)。 |
|
||||
| `POST /admin/fleet/assignments/clear-cancelled-occupancy`(一键清除占用) | 圈定集合从已取消扩为已取消+异常;异常行的释放= 异常桶里的「释放资源」动作,行为语义不变。 |
|
||||
#### `GET /admin/fleet/board/summary`(看板汇总)
|
||||
|
||||
`statusOptions` 新增第 6 项、`statusCounts` 新增 `exception` 计数。响应片段(实测):
|
||||
|
||||
```json
|
||||
{
|
||||
"statusCounts": {"unassigned": 52, "holding": 1, "assigned": 20, "completed": 1, "canceled": 12, "exception": 1, "unassignedUrgent": 44, "holdingUrgent": 1},
|
||||
"statusOptions": [
|
||||
{"value": "canceled", "label": "已取消", "description": "派车需求已取消(仅未派车即取消,#6152)", "count": 12, "urgentCount": 0},
|
||||
{"value": "exception", "label": "异常", "description": "已派车后再取消,待人工处置(释放资源后处置完成)", "count": 1, "urgentCount": 0}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
(statusOptions 完整共 6 项:待派车/排车中/已派车/已完结/已取消/异常,上表仅示后两项。)
|
||||
|
||||
#### `GET /admin/fleet/board/orders`(看板列表)
|
||||
|
||||
`statuses` 筛选参数新增合法值 `exception`;混合取消订单(部分行已派落异常+部分未派占位落取消)的代表状态= exception(落异常桶);每条记录 `assignmentSlots[]` 槽位行**新增 `serviceDate`/`startDate`/`endDate` 三字段**。槽位行片段(实测):
|
||||
|
||||
```json
|
||||
{
|
||||
"assignmentId": "2086811469462011905",
|
||||
"assignmentStatus": "exception",
|
||||
"serviceDate": null,
|
||||
"startDate": "2026-08-27",
|
||||
"endDate": "2026-08-27",
|
||||
"vehiclePlate": "蒙A-H7777",
|
||||
"driverName": "阿木古愣"
|
||||
}
|
||||
```
|
||||
|
||||
逐日切片行 `serviceDate` 有值;全程槽行 `serviceDate=null`,用 `startDate`~`endDate` 展开解析服务日。
|
||||
|
||||
#### `GET /admin/fleet/board/orders/{orderId}`(看板详情)
|
||||
|
||||
`vehicleSlots[]` 的 `slotStatus` 新增值 `exception`(`slotStatusLabel`=「异常」),身份字段保留展示不清空并带 `cancelReason`。槽位行片段(实测):
|
||||
|
||||
```json
|
||||
{
|
||||
"assignmentSlotId": "345201285773004800",
|
||||
"slotStatus": "exception",
|
||||
"slotStatusLabel": "异常",
|
||||
"cancelReason": "6152异常桶验收-5784测试单",
|
||||
"assignmentId": "2086811469462011905",
|
||||
"serviceStartDate": "2026-08-28",
|
||||
"serviceEndDate": "2026-08-31",
|
||||
"serviceDays": 4,
|
||||
"vehiclePlate": "蒙A-G8888",
|
||||
"vehicleModel": "别克GL8",
|
||||
"driverName": "满都拉",
|
||||
"driverPhone": "135****5003",
|
||||
"canDelete": true
|
||||
}
|
||||
```
|
||||
|
||||
(详情槽位用的是 `serviceStartDate`/`serviceEndDate` 字段名,列表槽位是 `startDate`/`endDate`,勿混用。)
|
||||
|
||||
#### `GET /admin/fleet/orders/{orderId}/operation-log`(派单操作时间线)
|
||||
|
||||
新增 `opType` 枚举值。新条目片段(实测):
|
||||
|
||||
```json
|
||||
{
|
||||
"id": "2091082889029419011",
|
||||
"time": "2026-08-22 16:39:46",
|
||||
"opType": "exception_marked",
|
||||
"opTypeLabel": "订单异常",
|
||||
"summary": "系统 订单异常:出行前取消,原因:6152异常桶验收-5784测试单",
|
||||
"operatorName": "系统",
|
||||
"effectiveDate": null,
|
||||
"detailJson": "{\"scene\":\"出行前取消\",\"reason\":\"6152异常桶验收-5784测试单\",\"exceptionRowCount\":4}"
|
||||
}
|
||||
```
|
||||
|
||||
`exception_resolved` 条目:`opTypeLabel`=「异常处置完成」,summary 形如「admin 异常处置完成:共 4 行派单转已完结」,`detailJson` 为 `{"resolvedCount":4}`。存量已派后取消单读侧合成兜底(scene 判定:有终止退款标记=行程中终止 > order_cancelled=订单取消 > 出行前取消)。
|
||||
|
||||
#### `DELETE /admin/fleet/assignments/{assignmentId}`(取消派单)
|
||||
|
||||
已派车(holding/assigned)行取消后目标态从 canceled 改为 **exception**,响应 `data.assignmentStatus="exception"`、`sideEffects.vehicleStatusUpdated/driverStatusUpdated` 仍为 `"busy"`(保留占用);未派占位行维持 canceled。其余响应结构不变。
|
||||
|
||||
#### `POST /admin/fleet/assignments/clear-cancelled-occupancy`(一键清除占用)
|
||||
|
||||
圈定集合从已取消扩为已取消+异常;异常行的释放= 异常桶里的「释放资源」动作。响应结构不变(`vehicleDriverPairs`/`intentsWritten`/`assignmentIds[]`,实测 `vehicleDriverPairs:2, intentsWritten:2`)。
|
||||
|
||||
## 行为语义变化(前端需知)
|
||||
|
||||
|
||||
在新工单中引用
屏蔽一个用户