docs(changelog): 登记司机确认不被通知结果确认中拦截(#5701)
一些检查失败了
changelog-filename-gate / validate (push) Failing after 1s
一些检查失败了
changelog-filename-gate / validate (push) Failing after 1s
这个提交包含在:
父节点
4ac2465003
当前提交
0a64dd8ccf
@ -0,0 +1,70 @@
|
|||||||
|
---
|
||||||
|
schema: "hl-changelog/v2"
|
||||||
|
ticket: "5701"
|
||||||
|
title: "登记司机确认不被「通知结果正在确认」拦截(人工确认直接成功)"
|
||||||
|
consumer: "admin"
|
||||||
|
author: "wx(GIT)"
|
||||||
|
change_type: "修改接口"
|
||||||
|
backend_status: "deployed"
|
||||||
|
gateway_status: "verified"
|
||||||
|
frontend_status: "pending"
|
||||||
|
frontend_owner: ""
|
||||||
|
frontend_ref: ""
|
||||||
|
target_release: ""
|
||||||
|
verified_at: ""
|
||||||
|
status_note: "后端完成:PR #5705 已合并 dev-v3 并部署 TEST(hl-fleet-service 双实例)。登记司机确认(MANUAL_CONTACT)不再被 605042 拦截,全链路「登记确认→confirm assigned」网关实证走通。前端交接见下(605042 场景收敛与错误提示口径)。"
|
||||||
|
updated_at: "2026-08-08"
|
||||||
|
base: "dev-v3"
|
||||||
|
generated: "2026-08-08T15:35:00+08:00"
|
||||||
|
---
|
||||||
|
|
||||||
|
# 登记司机确认不被「通知结果正在确认」拦截(人工确认直接成功)
|
||||||
|
|
||||||
|
> 后端完成:PR [#5705](https://git.1814.love:8443/wx/HL/pulls/5705) 已合并 dev-v3 并部署 TEST,网关全链路验证通过。
|
||||||
|
|
||||||
|
## 关联 / 联系人
|
||||||
|
|
||||||
|
### 链接
|
||||||
|
|
||||||
|
- **Issue**: [#5701](https://git.1814.love:8443/wx/HL/issues/5701)
|
||||||
|
- **PR**: [#5705](https://git.1814.love:8443/wx/HL/pulls/5705)
|
||||||
|
- **Merge commit**: [43b155e14](https://git.1814.love:8443/wx/HL/commit/43b155e14)
|
||||||
|
|
||||||
|
### 联系人
|
||||||
|
|
||||||
|
- **后端负责人**: @wx
|
||||||
|
|
||||||
|
## 背景
|
||||||
|
|
||||||
|
派单页点「登记司机已确认」报 **605042「司机通知结果正在确认,请稍后重试」**——HOLD 通知异步发送结果仍 AMBIGUOUS(短信网关未回执)时,人工登记被拦;连锁导致 confirm 确认执行报 605020(司机确认没登记上,状态未到可确认执行)。口径(wx):车务点确认就是确认——系统不知道司机线下结果,人工登记与异步通知结果应解耦。
|
||||||
|
|
||||||
|
## 变更说明(无接口契约变化,行为修正)
|
||||||
|
|
||||||
|
### `POST /admin/fleet/assignments/{assignmentId}/driver-confirmation` 行为变化
|
||||||
|
|
||||||
|
| 场景 | 变更前 | 变更后 |
|
||||||
|
|------|--------|--------|
|
||||||
|
| 通知结果确认中(AMBIGUOUS)+ **MANUAL_CONTACT** 人工联系登记 | 605042 拦截 | **直接登记成功** |
|
||||||
|
| 通知结果确认中(AMBIGUOUS)+ **NOTIFICATION** 通知回复来源 | 605042 拦截 | 400「无系统通知发送成功事实时必须显式选择人工联系来源」(更准确的引导) |
|
||||||
|
| 通知结果确认中 + 未显式指定来源 | 605042 拦截 | 400「无系统通知发送成功事实时必须显式选择人工联系来源」 |
|
||||||
|
| 通知已发送(SENT)/未发送(NOT_SENT/失败/取消) | 不变 | 不变 |
|
||||||
|
|
||||||
|
### 不变的保护
|
||||||
|
|
||||||
|
- 其余 605042 保护点(expand 换版 / cancel / change / undo / confirm 等**通知代际推进与身份失效**场景)保留原拦截——confirm 确认执行在通知仍 AMBIGUOUS 时仍返回 605042(确认会触发新行程短信代际,与在途 HOLD 通知存在真实竞态)。
|
||||||
|
- NOTIFICATION 来源仍需通知 SENT 事实(原有校验不变)。
|
||||||
|
|
||||||
|
## 前端交接
|
||||||
|
|
||||||
|
1. **人工登记路径**:司机线下确认后,登记请求传 `driverReplySource=MANUAL_CONTACT`(+操作人)即可直接成功,不再需要等通知结果回执或重试。
|
||||||
|
2. **605042 在该端点不再出现**:前端可移除 driver-confirmation 的 605042 重试引导;通知未回执时若用户选「通知回复」来源,会收到 400 提示「请选择人工联系来源」,按文案展示即可。
|
||||||
|
3. **全链路**:登记确认成功后,`POST /{assignmentId}/confirm`(确认执行)即可走通 assigned(605020 连锁消除)。
|
||||||
|
|
||||||
|
## 验证证据
|
||||||
|
|
||||||
|
- **单测**:新增 2 用例(AMBIGUOUS+MANUAL_CONTACT 登记成功并写凭证;AMBIGUOUS+未显式来源拒绝并提示人工联系),替换原 605042 拦截用例;AssignmentServiceTest **402/402 全绿**;spotless 通过
|
||||||
|
- **fleet verify**(mvn-throttle 错峰,Docker 原生 Testcontainers):仅 `ReleaseEOccupancyMysql8033RecoveryTest` 10 个基线失败(frozen Release E V002 SHA-256 发布产物缺失,与本案无关),其余 3286 全绿
|
||||||
|
- **部署**:hl-fleet-service 双实例 UP(15:29)
|
||||||
|
- **网关全链路**(TEST,VEHICLE_MANAGER,holding 派单 2085662146632224770):
|
||||||
|
- 构造通知 AMBIGUOUS(delivery_status=dispatching)→ `driver-confirmation` MANUAL_CONTACT 登记 → **200 直接成功**(修复前 605042)✓
|
||||||
|
- 通知恢复终态后 `confirm` 确认执行 → **200,confirmed=true、status=assigned**、返回行程 H5 链接、车辆/司机状态置 busy ✓(605020 连锁消除)
|
||||||
正在加载...
x
在新工单中引用
屏蔽一个用户