docs(changelog): 登记司机确认不被通知结果确认中拦截(#5701)
一些检查失败了
changelog-filename-gate / validate (push) Failing after 1s

这个提交包含在:
API Changelog Bot 2026-08-08 15:32:57 +08:00
父节点 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 并部署 TESThl-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`(确认执行)即可走通 assigned605020 连锁消除)。
## 验证证据
- **单测**:新增 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 双实例 UP15:29
- **网关全链路**TEST,VEHICLE_MANAGER,holding 派单 2085662146632224770
- 构造通知 AMBIGUOUSdelivery_status=dispatching`driver-confirmation` MANUAL_CONTACT 登记 → **200 直接成功**(修复前 605042
- 通知恢复终态后 `confirm` 确认执行 → **200,confirmed=true、status=assigned**、返回行程 H5 链接、车辆/司机状态置 busy ✓605020 连锁消除)