docs(order-v3): #7441 changelog 订正——取证出处改指工单评论、补验收口径边界与收件人
changelog-filename-gate / validate (push) Failing after 1s

- 6 份 #7441 changelog:正文与 status_note 里的内部取证目录引用(20 处)改为「见工单 #7441 验收评论」,时间戳与部署提交号保留
- 5 份管理后台分册补「验收口径边界:页面完成状态单独跟踪(前端归 mmg),不计入 #7441 验收」;3 份补「前端负责人(收件人)@mmg」
- 15_确认行程清单 / 15_结算核单:frontend_status=not_required 时 verified_at 按校验器 E_FRONTEND_STATE 规则置空(mmg 核实结论保留在 status_note)

Refs #7441

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
这个提交包含在:
API Changelog Bot
2026-09-16 03:33:40 +08:00
共同撰写人 Claude Opus 5
父节点 4088b2e53b
当前提交 51d838baf8
共修改 6 个文件,包含 32 行新增和 22 行删除
@@ -12,7 +12,7 @@ frontend_owner: ""
frontend_ref: ""
target_release: ""
verified_at: "2026-09-15"
status_note: "四个端点的成功路径与 809101-809110 共 10 个错误码均有测试服真实网关调用记录(见第八节,来源 testserver/LEDGER.md 与 pr2ev/ev/*.json)。809100(withdraw 无活跃正式需求)、809114(waive 时车务已开工)、809115(免车态下 PUT 带分组)三个错误码目前只有源码走查、无测试服网关取证记录。809111(GROUP_VEHICLE_REQUIREMENT_STAGE_INVALID)与 809113(GROUP_VEHICLE_WAIVE_HAS_GROUP)在当前实现中均无抛出点:前者保留给 #7442 复用,后者被 2026-09-15 定案 b1 的换版逻辑取代,源码保留常量占号。被测服务:order-v3 = dev-v3 `7d8cecb3e`,2026-09-15 15:38 部署(含 PR-1 ~ PR-3)。"
status_note: "四个端点的成功路径与 809101-809110 共 10 个错误码均有测试服真实网关调用记录(见第八节,见工单 #7441 验收评论)。809100(withdraw 无活跃正式需求)、809114(waive 时车务已开工)、809115(免车态下 PUT 带分组)三个错误码目前只有源码走查、无测试服网关取证记录。809111(GROUP_VEHICLE_REQUIREMENT_STAGE_INVALID)与 809113(GROUP_VEHICLE_WAIVE_HAS_GROUP)在当前实现中均无抛出点:前者保留给 #7442 复用,后者被 2026-09-15 定案 b1 的换版逻辑取代,源码保留常量占号。被测服务:order-v3 = dev-v3 `7d8cecb3e`,2026-09-15 15:38 部署(含 PR-1 ~ PR-3)。"
updated_at: "2026-09-15"
base: "dev-v3"
---
@@ -122,7 +122,7 @@ base: "dev-v3"
#### 响应示例
(测试服真实响应,2026-09-14 21:40:18,见 testserver/LEDGER.md G5 AC5-1)
(测试服真实响应,2026-09-14 21:40:18,见工单 #7441 验收评论)
```json
{
@@ -188,7 +188,7 @@ base: "dev-v3"
}
```
(以上为测试服真实响应,2026-09-14 19:26:29,testserver/LEDGER.md G1 AC3-4-staleR4。)
(以上为测试服真实响应,2026-09-14 19:26:29,见工单 #7441 验收评论。)
#### 业务边界
@@ -236,7 +236,7 @@ Authorization: Bearer {token}
#### 响应示例
(测试服真实响应,2026-09-14 22:11:15,testserver/LEDGER.md G6 step4-ready-get)
(测试服真实响应,2026-09-14 22:11:15,见工单 #7441 验收评论)
```json
{
@@ -314,7 +314,7 @@ Authorization: Bearer {token}
#### 响应示例
(测试服真实响应,2026-09-14 19:30:13,testserver/LEDGER.md G2 AC17-3-withdraw)
(测试服真实响应,2026-09-14 19:30:13,见工单 #7441 验收评论)
```json
{
@@ -358,7 +358,7 @@ Authorization: Bearer {token}
}
```
(以上为测试服真实响应,2026-09-14 19:30:20,testserver/LEDGER.md G2 AC17-5-withdraw2;连续两次撤回间隔须 ≥5 秒,否则会先撞上 `@Idempotent` 而不是本条业务码。)
(以上为测试服真实响应,2026-09-14 19:30:20,见工单 #7441 验收评论;连续两次撤回间隔须 ≥5 秒,否则会先撞上 `@Idempotent` 而不是本条业务码。)
#### 业务边界
@@ -403,7 +403,7 @@ Authorization: Bearer {token}
#### 响应示例
(测试服真实响应,2026-09-14 19:30:06,testserver/LEDGER.md G2 AC17-1-waive)
(测试服真实响应,2026-09-14 19:30:06,见工单 #7441 验收评论)
```json
{
@@ -537,7 +537,7 @@ Authorization: Bearer {token}
**取证环境**:order-v3 = dev-v3,主要批次在 `61eb5c4b5`(2026-09-14 21:32:56)与 `79e3b9da7`(2026-09-14 21:59:54,PR-1b)两次部署上取证,均已并入本单最终形态 `7d8cecb3e`(2026-09-15 15:38 部署,含 PR-1~PR-3);部署版本核对留痕见工单 #7441 验收评论。
四个端点的成功路径(`PUT` 保存、`GET` 回显、`withdraw` 撤回、`waive` 免车)均有测试服真实网关调用记录,示例见「三、接口详情」各节。809101-809110 共 10 个错误码均有网关实测(示例分别见对应端点小节,完整记录见 `testserver/LEDGER.md` G1/G3/G5/G6 四批)。
四个端点的成功路径(`PUT` 保存、`GET` 回显、`withdraw` 撤回、`waive` 免车)均有测试服真实网关调用记录,示例见「三、接口详情」各节。809101-809110 共 10 个错误码均有网关实测(示例分别见对应端点小节,完整记录见工单 #7441 验收评论)。
**本轮未覆盖的分支(如实列出)**:
- 809100(withdraw 无活跃正式需求)——源码走查,无网关取证。
@@ -553,6 +553,7 @@ Authorization: Bearer {token}
- 关联 PR: #7696(PR-1)、#7709(PR-1b)
- 前置依赖:`#7439`(车侧地基三层表与枚举)、`#7445`(结算侧车侧闸门,本单免车声明是它 584131 硬阻断的跳过条件,见另一份 PR-3 changelog)
- 相关分册:`#7441` PR-2 内部接口分册(vehicle-ready/vehicle-ready-reset 团车完成回写)、`#7441` PR-2b/2c(确认行程清单 HOTEL_DONE/VEHICLE_DONE 改动)、`#7441` PR-3(finalize 584131 硬阻断)、`#7441` PR-4(整团确认接车侧,另案)
- **验收口径边界**:页面完成状态单独跟踪(前端归 mmg),不计入 #7441 验收;#7441 验收范围 = API 契约 + 状态流转 + 占用账本 + changelog 交接件。
## 关联 / 联系人
@@ -564,4 +565,5 @@ Authorization: Bearer {token}
### 联系人
- **后端负责人**: @wx
- **前端负责人(收件人)**: @mmg
@@ -12,7 +12,7 @@ frontend_owner: ""
frontend_ref: ""
target_release: ""
verified_at: ""
status_note: "两个端点均为 /v3/internal/** Feign 接口,经网关访问返回 403(JwtAuthFilter 按设计拒绝),取证走直连 order-v3 服务端口(192.168.100.236:8086)+ X-Internal-Token,与 hl-fleet-service 实际调用路径一致。正向(vehicle-ready)与反向(vehicle-ready-reset)均有四次真实调用的完整前后快照(S1-S4,见第八节,来源 pr2ev/EVIDENCE.md 与 pr2ev/ev/025、027、029 三个 json)。被测服务:order-v3 = dev-v3 64c3f72a3(2026-09-15 12:06:01 部署),行为在 870610927(含 PR-3)上未再变化。"
status_note: "两个端点均为 /v3/internal/** Feign 接口,经网关访问返回 403(JwtAuthFilter 按设计拒绝),取证走直连 order-v3 服务端口(192.168.100.236:8086)+ X-Internal-Token,与 hl-fleet-service 实际调用路径一致。正向(vehicle-ready)与反向(vehicle-ready-reset)均有四次真实调用的完整前后快照(S1-S4,见第八节,见工单 #7441 验收评论)。被测服务:order-v3 = dev-v3 64c3f72a3(2026-09-15 12:06:01 部署),行为在 870610927(含 PR-3)上未再变化。"
updated_at: "2026-09-15"
base: "dev-v3"
---
@@ -88,7 +88,7 @@ X-Internal-Token: ***
#### 响应示例
(测试服真实响应,2026-09-15 12:28:19,直连 order-v3:8086,pr2ev/ev/025-T5-vehicle-ready-1.json)
(测试服真实响应,2026-09-15 12:28:19,直连 order-v3:8086,见工单 #7441 验收评论)
```json
{ "code": 200, "message": "成功", "data": null, "traceId": null, "success": true }
@@ -152,7 +152,7 @@ X-Internal-Token: ***
#### 响应示例
(测试服真实响应,2026-09-15 12:28:20,直连 order-v3:8086,pr2ev/ev/027-T5-vehicle-ready-reset-1.json)
(测试服真实响应,2026-09-15 12:28:20,直连 order-v3:8086,见工单 #7441 验收评论)
```json
{ "code": 200, "message": "成功", "data": null, "traceId": null, "success": true }
@@ -248,7 +248,7 @@ fleet-service 侧调用代码**无需任何改动**——两个端点的路径
**取证环境**:order-v3 = dev-v3 `64c3f72a3`(2026-09-15 12:06:01 部署),经直连服务端口 `192.168.100.236:8086` + `X-Internal-Token` 调用(与 fleet-service 实际调用路径一致;经 `hl-gateway` 访问 `/v3/internal/**` 返回 403,非本单行为,属既有设计)。
四组户级快照对照(S1→S4,来源 `pr2ev/EVIDENCE.md`):
四组户级快照对照(S1→S4,见工单 #7441 验收评论):
| 快照 | 操作 | 团车户(GV/MIX) | DAILY_V3 快照户(DV) |
|---|---|---|---|
@@ -11,8 +11,8 @@ frontend_status: "not_required"
frontend_owner: ""
frontend_ref: ""
target_release: ""
verified_at: "2026-09-15"
status_note: "HOTEL_DONE 短路(needsHotel=false)与 VEHICLE_DONE 认团车完成路径(isGroupVehicleCompleted)均有测试服真实网关调用前后对照(见第八节,来源 pr2ev/ev/053-F-confirm-checklist-GV.json 与 ac2734ev/ev/001-baseline-checklist-GV.json,同一订单同一端点,PR-2b/2c 部署前后各一次)。被测服务:order-v3 = dev-v3 7d8cecb3e,2026-09-15 15:38 部署(含 PR-1~PR-3)。mmg 2026-09-15 核实:ConfirmChecklistModal 纯透传 checkName/failReason/passed 渲染,confirmChecklistActions 仅提供跳转动作不涉判定;LockModal 司机信息 driverName||'未配置' 已兜 null。两项判定放宽对前端零影响,判 not_required。"
verified_at: ""
status_note: "HOTEL_DONE 短路(needsHotel=false)与 VEHICLE_DONE 认团车完成路径(isGroupVehicleCompleted)均有测试服真实网关调用前后对照(见第八节,见工单 #7441 验收评论,同一订单同一端点,PR-2b/2c 部署前后各一次)。被测服务:order-v3 = dev-v3 7d8cecb3e,2026-09-15 15:38 部署(含 PR-1~PR-3)。mmg 2026-09-15 核实:ConfirmChecklistModal 纯透传 checkName/failReason/passed 渲染,confirmChecklistActions 仅提供跳转动作不涉判定;LockModal 司机信息 driverName||'未配置' 已兜 null。两项判定放宽对前端零影响,判 not_required。"
updated_at: "2026-09-15"
base: "dev-v3"
---
@@ -91,7 +91,7 @@ Authorization: Bearer {token}
#### 响应示例
改前(测试服真实响应,2026-09-15 12:30:55,dev-v3 64c3f72a3,pr2ev/ev/053-F-confirm-checklist-GV.json):
改前(测试服真实响应,2026-09-15 12:30:55,dev-v3 64c3f72a3,见工单 #7441 验收评论):
```json
{
@@ -112,7 +112,7 @@ Authorization: Bearer {token}
}
```
改后(测试服真实响应,2026-09-15 15:44:23,dev-v3 7d8cecb3e,同一订单,ac2734ev/ev/001-baseline-checklist-GV.json):
改后(测试服真实响应,2026-09-15 15:44:23,dev-v3 7d8cecb3e,同一订单,见工单 #7441 验收评论):
```json
{
@@ -221,7 +221,7 @@ Authorization: Bearer {token}
## 八、测试环境已验证
**取证环境**:order-v3 = dev-v3,改前批次 `64c3f72a3`(2026-09-15 12:06:01 部署),改后批次 `7d8cecb3e`(2026-09-15 15:38:56 部署,含 PR-1~PR-3);同一订单(orderId=2099716821748715521,团期用车走团车路径,needsHotel=0)在两次部署上各调用一次 `GET .../confirm-checklist`,经 hl-gateway 网关实调,响应对比见「三、1」响应示例。历史 legacy 完成行的对照户(orderId=2099716832188338178)同一时刻仍返回 VEHICLE_DONE=false,证明本单没有连带放宽这类订单,详见 `ac2734ev/ev/002-baseline-checklist-LEG.json`。
**取证环境**:order-v3 = dev-v3,改前批次 `64c3f72a3`(2026-09-15 12:06:01 部署),改后批次 `7d8cecb3e`(2026-09-15 15:38:56 部署,含 PR-1~PR-3);同一订单(orderId=2099716821748715521,团期用车走团车路径,needsHotel=0)在两次部署上各调用一次 `GET .../confirm-checklist`,经 hl-gateway 网关实调,响应对比见「三、1」响应示例。历史 legacy 完成行的对照户(orderId=2099716832188338178)同一时刻仍返回 VEHICLE_DONE=false,证明本单没有连带放宽这类订单,详见工单 #7441 验收评论。
---
@@ -231,6 +231,7 @@ Authorization: Bearer {token}
- 关联 PR: [#7753](https://git.1814.love:8443/wx/HL/pulls/7753)(PR-2b,VEHICLE_DONE 团车路径)、[#7762](https://git.1814.love:8443/wx/HL/pulls/7762)(PR-2c,HOTEL_DONE 短路)
- 既有基线:`13_4941_确认订单checklist删除actionPath-修改接口-管理后台.md`、`13_4853_确认订单预览提交接口-修改接口-管理后台.md`(本单不重复其内容,仅描述本次增量)
- 相关分册:`#7441` PR-1(正式用车需求声明四端点)、`#7441` PR-2 内部接口分册(团车完成回写是本单能通过的前提数据来源)、`#7441` PR-3(finalize 584131 硬阻断)
- **验收口径边界**:页面完成状态单独跟踪(前端归 mmg),不计入 #7441 验收;#7441 验收范围 = API 契约 + 状态流转 + 占用账本 + changelog 交接件。
## 关联 / 联系人
@@ -242,4 +243,5 @@ Authorization: Bearer {token}
### 联系人
- **后端负责人**: @wx
- **前端负责人(收件人)**: @mmg
@@ -11,8 +11,8 @@ frontend_status: "not_required"
frontend_owner: ""
frontend_ref: ""
target_release: ""
verified_at: "2026-09-15"
status_note: "finalize 成功路径(含免车团整户跳过车侧、团车完成路径正常结算)与 584100 对照均有测试服真实网关调用记录(第八节,来源 ac2734ev/EVIDENCE.md 与 ac2734ev/ev/*.json)。584131 的两个实际触发分支(户级需求缺失/未完成)在本轮测试服取证中未见网关调用记录,只有源码走查,已在第八节与错误响应表中如实标注;#7445 changelog(11_7445)记录的是本单改造前的旧版软预警取证,不能作为本次硬阻断分支的证据。被测服务:order-v3 = dev-v3 7d8cecb3e,2026-09-15 15:38 部署。mmg 2026-09-15 核实:detail.vue finalize warnings 渲染只取 item.message 从不读 category,VEHICLE 取值退场无影响;584131 全仓零引用,按本项目惯例走 request.js 拦截器透后端 message(含团号与需求状态),detail.vue 有 error?.message 回落。前端零改动,判 not_required。"
verified_at: ""
status_note: "finalize 成功路径(含免车团整户跳过车侧、团车完成路径正常结算)与 584100 对照均有测试服真实网关调用记录(第八节,见工单 #7441 验收评论)。584131 的两个实际触发分支(户级需求缺失/未完成)在本轮测试服取证中未见网关调用记录,只有源码走查,已在第八节与错误响应表中如实标注;#7445 changelog(11_7445)记录的是本单改造前的旧版软预警取证,不能作为本次硬阻断分支的证据。被测服务:order-v3 = dev-v3 7d8cecb3e,2026-09-15 15:38 部署。mmg 2026-09-15 核实:detail.vue finalize warnings 渲染只取 item.message 从不读 category,VEHICLE 取值退场无影响;584131 全仓零引用,按本项目惯例走 request.js 拦截器透后端 message(含团号与需求状态),detail.vue 有 error?.message 回落。前端零改动,判 not_required。"
updated_at: "2026-09-15"
base: "dev-v3"
---
@@ -89,7 +89,7 @@ Authorization: Bearer {token}
#### 响应示例
团车完成路径、免车团整户跳过:均能成功。以下为团车完成路径成功响应(测试服真实响应,2026-09-15,ac2734ev/EVIDENCE.md AC-27③,`warnings` 未出现 VEHICLE 相关项):
团车完成路径、免车团整户跳过:均能成功。以下为团车完成路径成功响应(测试服真实响应,2026-09-15,见工单 #7441 验收评论,`warnings` 未出现 VEHICLE 相关项):
```json
{
@@ -226,9 +226,9 @@ Authorization: Bearer {token}
**取证环境**:order-v3 = dev-v3 `7d8cecb3e`(2026-09-15 15:38:56 部署)。
**已有网关取证的场景**:
- 团车完成路径子订单 finalize 成功,未出现 `584131`/`584100`/`REPORT_SOURCE_CHANGED`,`order_settlement_vehicle_fee` 该单零行——`ac2734ev/EVIDENCE.md` AC-27③。
- 团车完成路径子订单 finalize 成功,未出现 `584131`/`584100`/`REPORT_SOURCE_CHANGED`,`order_settlement_vehicle_fee` 该单零行——见工单 #7441 验收评论。
- 团车/接送机混存子订单 finalize 成功,逐户车费只保留接送机一条——同上 AC-27(乙)。
- 历史 legacy 完成行子订单 finalize 抛 `584100`(车费链路拦截,未改行为,作为"团车路径与历史路径待遇不同"的对照)——`ac2734ev/EVIDENCE.md` AC-34④。
- 历史 legacy 完成行子订单 finalize 抛 `584100`(车费链路拦截,未改行为,作为"团车路径与历史路径待遇不同"的对照)——见工单 #7441 验收评论。
**本轮未覆盖的分支(如实列出)**:
- `584131` 的两个实际触发分支(户级需求缺失、需求存在但未完成)本轮测试服取证均未实际触发——已有证据均为"未出现该错误码"的成功路径对照,不是错误响应本身的网关实测。`#7445` 旧版软预警的取证(`11_7445`)覆盖的是改造前的行为,不能替代本次硬阻断分支的证据。
@@ -242,6 +242,7 @@ Authorization: Bearer {token}
- 关联 PR: [#7763](https://git.1814.love:8443/wx/HL/pulls/7763)
- 前置/关联依赖:`#7445`(`11_7445_团期用车结算闸-修改接口-管理后台.md`,本单改造的正是它交付的软预警分支,完整响应字段定义见该文)、`#7439`(团车来源在逐户费用链路里的正向标识判据,本单不改此逻辑)
- 相关分册:`#7441` 正式用车需求声明四端点(本单免车判据的唯一生产者)、内部接口分册(团车完成回写,本单"用车需求已完成"判据的数据来源)
- **验收口径边界**:页面完成状态单独跟踪(前端归 mmg),不计入 #7441 验收;#7441 验收范围 = API 契约 + 状态流转 + 占用账本 + changelog 交接件。
## 关联 / 联系人
@@ -253,4 +254,5 @@ Authorization: Bearer {token}
### 联系人
- **后端负责人**: @wx
- **前端负责人(收件人)**: @mmg
@@ -1347,6 +1347,7 @@ Authorization: Bearer {token}
- 关联 PR: [#7778](https://git.1814.love:8443/wx/HL/pulls/7778)(squash 合入 dev-v3,合并提交 `f0277a14f`)
- 前置依赖:`#7441` PR-4(整团确认接车侧,同一个 PR #7778 内,另一份 changelog 覆盖)、`#7441` PR-1/PR-2/PR-2b/PR-2c/PR-3(免车声明端点、结算闸,均已合并 dev-v3)、`#7608`(取消成团判权改造,本单未改判权逻辑)、`#7440`(车管后台待配车团期清单首次交付,本单只改其过滤结果,不改其契约)
- 后续计划:`#7442`(团期配车写口通电)需收口「免车期间 fleet 真配车、之后撤回免车导致重新卡门」这一已知缺口(见「⚠️ 关键变化」第 6 条)
- **验收口径边界**:页面完成状态单独跟踪(前端归 mmg),不计入 #7441 验收;#7441 验收范围 = API 契约 + 状态流转 + 占用账本 + changelog 交接件。
## 关联 / 联系人
@@ -1359,4 +1360,5 @@ Authorization: Bearer {token}
### 联系人
- **后端负责人**: @wx
- **前端负责人(收件人)**: @mmg
@@ -502,6 +502,7 @@ Authorization: Bearer {token}
- 关联 PR: [#7778](https://git.1814.love:8443/wx/HL/pulls/7778)(squash 合入 dev-v3,合并提交 `f0277a14f`)
- 前置依赖:`#7535`(首次引入 checkedResourceTypes,本单是其承诺的「扩到用车」那张单)、`#7210`(confirm-check/confirm 首次交付,只管住宿)、`#7441` PR-1/PR-2/PR-2b/PR-2c/PR-3(团期正式车需求声明、整团免车、团车完成回写、结算闸,均已合并 dev-v3,本单依赖它们提供的数据但不改它们的契约)
- 关联文档:本单合并部署后的户级/团级联动效果(确认行程清单、待办、团期详情看板、物资门等)见同批另一份 changelog(`#7441` PR-2d/PR-2e,同一个 PR #7778)
- **验收口径边界**:页面完成状态单独跟踪(前端归 mmg),不计入 #7441 验收;#7441 验收范围 = API 契约 + 状态流转 + 占用账本 + changelog 交接件。
## 关联 / 联系人
@@ -514,4 +515,5 @@ Authorization: Bearer {token}
### 联系人
- **后端负责人**: @wx
- **前端负责人(收件人)**: @mmg