From 09a155a1e78f848b17a948caa908cd3f31fe2a42 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Sat, 8 Aug 2026 21:41:52 +0800 Subject: [PATCH] =?UTF-8?q?docs(changelog):=20confirm=20=E4=B8=A4=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E4=B8=80=E8=87=B4=E8=A7=A3=E9=99=A4=20AMBIGUOUS=20?= =?UTF-8?q?=E6=8B=A6=E6=88=AA=EF=BC=88#5725=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...IGUOUS拦截(含原子引擎整组路径)-修改接口-管理后台.md | 70 +++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 changelogs-v2/2026-08/08_5725_confirm确认执行两路径一致解除AMBIGUOUS拦截(含原子引擎整组路径)-修改接口-管理后台.md diff --git a/changelogs-v2/2026-08/08_5725_confirm确认执行两路径一致解除AMBIGUOUS拦截(含原子引擎整组路径)-修改接口-管理后台.md b/changelogs-v2/2026-08/08_5725_confirm确认执行两路径一致解除AMBIGUOUS拦截(含原子引擎整组路径)-修改接口-管理后台.md new file mode 100644 index 0000000..949166a --- /dev/null +++ b/changelogs-v2/2026-08/08_5725_confirm确认执行两路径一致解除AMBIGUOUS拦截(含原子引擎整组路径)-修改接口-管理后台.md @@ -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 出现场景收敛到既有口径)。