docs(changelog): confirm 两路径一致解除 AMBIGUOUS 拦截(#5725)
一些检查失败了
changelog-filename-gate / validate (push) Failing after 1s
一些检查失败了
changelog-filename-gate / validate (push) Failing after 1s
这个提交包含在:
父节点
b955b244df
当前提交
09a155a1e7
@ -0,0 +1,70 @@
|
|||||||
|
---
|
||||||
|
schema: "hl-changelog/v2"
|
||||||
|
ticket: "5725"
|
||||||
|
title: "confirm 确认执行两路径一致解除「通知结果确认中」拦截(含原子引擎整组路径)"
|
||||||
|
consumer: "admin"
|
||||||
|
author: "wx(GIT)"
|
||||||
|
change_type: "修改接口"
|
||||||
|
backend_status: "deployed"
|
||||||
|
gateway_status: "verified"
|
||||||
|
frontend_status: "not_required"
|
||||||
|
frontend_owner: ""
|
||||||
|
frontend_ref: ""
|
||||||
|
target_release: ""
|
||||||
|
verified_at: ""
|
||||||
|
status_note: "后端完成:PR #5726 已合并 dev-v3 并部署 TEST(hl-fleet-service 双实例)。confirm 单段与整组(需求级原子引擎)两路径一致解除 AMBIGUOUS 605042 拦截;实证 26-5484(修复前 605042)与回归 26-8917 均 confirm 200 assigned。接口响应结构不变,无前端消费变化。"
|
||||||
|
updated_at: "2026-08-08"
|
||||||
|
base: "dev-v3"
|
||||||
|
generated: "2026-08-08T21:45:00+08:00"
|
||||||
|
---
|
||||||
|
|
||||||
|
# confirm 确认执行两路径一致解除「通知结果确认中」拦截(含原子引擎整组路径)
|
||||||
|
|
||||||
|
> 后端完成:PR [#5726](https://git.1814.love:8443/wx/HL/pulls/5726) 已合并 dev-v3 并部署 TEST,网关全链路验证通过。
|
||||||
|
|
||||||
|
## 关联 / 联系人
|
||||||
|
|
||||||
|
### 链接
|
||||||
|
|
||||||
|
- **Issue**: [#5725](https://git.1814.love:8443/wx/HL/issues/5725)
|
||||||
|
- **PR**: [#5726](https://git.1814.love:8443/wx/HL/pulls/5726)
|
||||||
|
- **Merge commit**: [483cfd1ba](https://git.1814.love:8443/wx/HL/commit/483cfd1ba)
|
||||||
|
|
||||||
|
### 联系人
|
||||||
|
|
||||||
|
- **后端负责人**: @wx
|
||||||
|
|
||||||
|
## 背景
|
||||||
|
|
||||||
|
#5716 修复时只移除了单段 confirm **legacy 路径**(无派车方案代际)的「通知结果确认中」校验;**有代际的确认走需求级原子引擎路径**(`confirmSingletonThroughRequirementEngine` → `confirmRequirement`),其中 `isRequiredHoldingGroup` 分支残留同类校验,AMBIGUOUS 仍 605042。
|
||||||
|
|
||||||
|
实证对照(TEST):26-5484(单代 finalized=1 → 原子路径)confirm 被 605042 拦;26-8917(成功时刻为旧行 finalized=0/orphaned 代际 → legacy 路径)放行——同一 AMBIGUOUS 状态结果不一致的根因。
|
||||||
|
|
||||||
|
## 变更内容
|
||||||
|
|
||||||
|
`POST /admin/fleet/assignments/{assignmentId}/confirm`(单段确认执行)与需求级整组确认(内部共用原子引擎 `confirmRequirement`)在 HOLD 通知结果仍确认中(AMBIGUOUS,短信已发未回执)时,**一律不再返回 605042**,确认执行正常推进 assigned——与 #5701/#5716 已解除的单段 legacy 路径口径一致。
|
||||||
|
|
||||||
|
## 行为变化
|
||||||
|
|
||||||
|
| 场景 | 变更前 | 变更后 |
|
||||||
|
|------|--------|--------|
|
||||||
|
| HOLD 通知结果确认中(AMBIGUOUS)+ 司机已登记确认 + 单段 legacy 路径 | 200(#5716 已解除) | 200 |
|
||||||
|
| HOLD 通知结果确认中(AMBIGUOUS)+ 司机已登记确认 + **有代际(原子引擎/整组)路径** | **605042** | **200 推进 assigned** |
|
||||||
|
|
||||||
|
### 保留不变的保护
|
||||||
|
|
||||||
|
- 司机确认登记缺失(未确认/无有效来源):仍拦截(`DRIVER_CONFIRMATION_REQUIRED`)。
|
||||||
|
- NOTIFICATION 来源(司机回复系统通知)仍需通知 SENT 事实;AMBIGUOUS 下 NOTIFICATION 来源返回 400 提示人工联系来源(#5701 口径,`assertAtomicReplySourceIdentity`)。
|
||||||
|
- 其余 605042 保护点(expand 换版 / cancel / change / undo / 拒接 / 恢复通知等**通知代际推进与身份失效**场景)保留原拦截。
|
||||||
|
|
||||||
|
## 验证证据
|
||||||
|
|
||||||
|
- **网关实证(TEST,VEHICLE_MANAGER)**:
|
||||||
|
- 26-5484(订单 2086077200523558914,AID 2086077201060397057):holding + AMBIGUOUS(通知日志 delivery_status=dispatching)+ 司机已确认(21:20:15)+ 有代际 finalized=1 → `confirm`(sendItinerarySms=false)→ **200 confirmed=true status=assigned**(修复前 605042)
|
||||||
|
- 回归 26-8917(AID 2086050105051250690):同 AMBIGUOUS + 有代际 → confirm **200 confirmed=true status=assigned**
|
||||||
|
- 实证后通知日志恢复原状(canceled),两单保持 assigned 正常业务流转
|
||||||
|
- **测试**:新增 `confirmRequirement_holdNotificationAmbiguous_proceedsToAssigned`;AssignmentServiceTest 404/404 全绿;fleet verify 仅基线 ReleaseEOccupancyMysql8033RecoveryTest 失败(与本案无关)
|
||||||
|
|
||||||
|
## 前端交接
|
||||||
|
|
||||||
|
无接口契约变化(响应结构、字段、错误码集合均不变,仅 605042 出现场景收敛到既有口径)。
|
||||||
正在加载...
x
在新工单中引用
屏蔽一个用户