From a98151dc0ac8cd527a224e8ee6596402ca234be9 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Sat, 15 Aug 2026 21:31:16 +0800 Subject: [PATCH] =?UTF-8?q?docs(changelog):=20#5928=20=E4=BF=9D=E5=8D=95?= =?UTF-8?q?=E5=88=86=E9=A1=B5POST=E5=A5=91=E7=BA=A6=20+=20#5923=20?= =?UTF-8?q?=E5=B7=B2=E5=8F=96=E6=B6=88tab=E5=8F=AA=E6=94=B6=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E7=9C=9F=E5=8F=96=E6=B6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...已取消tab只收订单真取消-修改接口-管理后台.md | 51 +++++++++++++++++++ ...机险保单分页新主链POST-修改接口-管理后台.md | 49 ++++++++++++++++++ 2 files changed, 100 insertions(+) create mode 100644 changelogs-v2/2026-08/15_5923_看板已取消tab只收订单真取消-修改接口-管理后台.md create mode 100644 changelogs-v2/2026-08/15_5928_司机险保单分页新主链POST-修改接口-管理后台.md diff --git a/changelogs-v2/2026-08/15_5923_看板已取消tab只收订单真取消-修改接口-管理后台.md b/changelogs-v2/2026-08/15_5923_看板已取消tab只收订单真取消-修改接口-管理后台.md new file mode 100644 index 0000000..595dcba --- /dev/null +++ b/changelogs-v2/2026-08/15_5923_看板已取消tab只收订单真取消-修改接口-管理后台.md @@ -0,0 +1,51 @@ +--- +schema: "hl-changelog/v2" +ticket: "5923" +title: "派单看板已取消 tab 只收订单真取消来源" +consumer: "admin" +author: "wx" +change_type: "修改接口" +backend_status: "deployed" +gateway_status: "verified" +frontend_status: "pending" +frontend_owner: "" +frontend_ref: "" +target_release: "" +verified_at: "" +status_note: "后端完成:PR #5978 已合并 dev-v3(dbdf2723f)并部署 TEST(hl-fleet-service 双实例 UP)。已取消 tab 列表与计数只纳入 cancel_source=order_cancelled 的派单;车务删槽/换版/占位撤销/手动取消联动取消行不再误挂。测试环境当前无取消数据故实测返回空,过滤语义由 172 单测覆盖。" +updated_at: "2026-08-15" +base: "dev-v3" +generated: "2026-08-15T21:31:00+08:00" +--- + +# 派单看板已取消 tab 只收订单真取消来源(#5923) + +## 背景 + +派单看板「已取消」tab 原按 `assignment_status=canceled` 计数/展示。但 canceled 行有多种来源:订单真取消、车务删槽联动取消、换版跟随取消、占位撤销、手动取消等。按 #5828 决策,**已取消 tab 只收「订单真取消」**——订单 order_status=CANCELLED 的派单才进已取消 tab;车务删槽/换版等联动取消的派单不再误挂(否则 26-9313 这类车务操作单被误归类)。 + +## 实现口径 + +- 权威路径采用 #5924 落地的 `cancel_source` 结构化枚举(比读订单态更稳,#5924 已把订单取消事件经 internal Feign 在 fleet 单事务盖章 `cancel_source=order_cancelled`)。 +- 已取消 facet 过滤:`cancel_source=order_cancelled` 才计入/展示;`manual`/`requirement_replaced`/`slot_removed`/`unassigned_placeholder_revoked`/`NULL` 一律排除。 + +## 变更接口 + +| 接口 | 变更 | +| --- | --- | +| `GET /admin/fleet/board/orders?statuses=canceled` | 已取消 facet 只返回 `cancel_source=order_cancelled` 的派单 | +| `GET /admin/fleet/board/summary` | `statusCounts.canceled` 计数口径同步只数订单真取消 | + +## 行为变化 + +- 车务删槽/换版/占位撤销/手动取消产生的 canceled 派单,**不再**出现在已取消 tab、不计入已取消计数。 +- 其它 tab(待派/排车/已派/已完结)口径不受影响。 + +## 前端动作 + +- 已取消 tab 现在只代表「订单真取消」。如前端曾对已取消 tab 做「车务操作单也在这」的提示/分类,请按新口径调整文案。 + +## 验证证据 + +- BoardOrderServiceTest 147 + BoardSummaryServiceTest 12 + FleetRedLineArchTest 13 = 172 全绿(六来源仅 order_cancelled 通过、非取消 facet 回归、计数一致),spotless 通过。 +- 网关(TEST, 真 SUPER_ADMIN token)实测:`/admin/fleet/board/summary` 返回 `statusCounts.canceled=0`(测试环境当前无取消数据),`orders?statuses=canceled` 返回空——过滤语义由单测覆盖。 diff --git a/changelogs-v2/2026-08/15_5928_司机险保单分页新主链POST-修改接口-管理后台.md b/changelogs-v2/2026-08/15_5928_司机险保单分页新主链POST-修改接口-管理后台.md new file mode 100644 index 0000000..7e8c6cd --- /dev/null +++ b/changelogs-v2/2026-08/15_5928_司机险保单分页新主链POST-修改接口-管理后台.md @@ -0,0 +1,49 @@ +--- +schema: "hl-changelog/v2" +ticket: "5928" +title: "车务司机险保单分页新主链改 POST JSON body + 新路径 GET 显式 405" +consumer: "admin" +author: "wx" +change_type: "修改接口" +backend_status: "deployed" +gateway_status: "verified" +frontend_status: "pending" +frontend_owner: "" +frontend_ref: "" +target_release: "" +verified_at: "" +status_note: "后端完成:PR #5977 已合并 dev-v3(a006b2b46)并部署 TEST(hl-fleet-service 双实例 UP)。网关实测:POST 新主链 code=200 返回分页;GET 新路径 405;旧 GET /policies 兼容 code=200;新旧 coverage 字段混传 code=100001。" +updated_at: "2026-08-15" +base: "dev-v3" +generated: "2026-08-15T21:30:00+08:00" +--- + +# 车务司机险保单分页新主链改 POST JSON body + 新路径 GET 显式 405(#5928) + +## 背景 + +司机险保单分页主链含预筛集合(最多 1000 个雪花 ID),GET query 会撑爆 URL,故主链强制 POST JSON body。本次对齐契约:新主链路径改 POST,GET 显式拒绝;旧路径保留 deprecated 兼容。 + +## 变更接口 + +| 接口 | 变更 | +| --- | --- | +| `POST /admin/fleet/insurance/driver-policies/page` | 新主链,`@RequestBody` JSON;只收新字段 `coverageStartDate`/`coverageEndDate`;预筛 ID 集合走 body | +| `GET /admin/fleet/insurance/driver-policies/page` | 显式 **405 Method Not Allowed**(防 `/driver-policies/{insuranceOrderId}` 模板把 `page` 当保单 ID 吞掉);Swagger 隐藏 | +| `GET /admin/fleet/insurance/policies` | 保留 deprecated 兼容别名,仅收旧标量参数 `coverageStartDateFrom`/`coverageStartDateTo` | + +## 行为变化 + +- **新旧 coverage 字段不可混传**:新路径传 `coverageStartDateFrom`/`coverageStartDateTo` 或与 `coverageStartDate`/`coverageEndDate` 混传,返回 **100001**(参数非法),message 明确提示「仅旧路径 /policies 使用」。 +- 新路径不再支持 GET;前端保单 Tab 请改用 POST + JSON body。 + +## 前端动作 + +- 保单分页改调 `POST /admin/fleet/insurance/driver-policies/page`,参数放 JSON body。 +- 使用新字段名 `coverageStartDate`/`coverageEndDate`;不要再对新路径传 `coverageStartDateFrom/To`。 +- 旧 `GET /policies` 仅为兼容保留,新代码请迁移到新主链。 + +## 验证证据 + +- FleetInsuranceTaskControllerTest 17 + FleetRedLineArchTest 13 = 30 全绿,spotless 通过。 +- 网关(TEST, 真 SUPER_ADMIN token)实测:POST 新主链 code=200 返回 46 条分页;GET 新路径 405;旧 GET /policies code=200;新旧 coverage 混传 code=100001。