From c64da7c0e088320f6b3ce0b499d7f1c4510fbbbd Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Fri, 31 Jul 2026 12:55:12 +0800 Subject: [PATCH] docs: persist 5338 closeout evidence --- ...订单分窗状态集合守恒-修改接口-管理后台.md | 52 +++++++++++-------- 1 file changed, 30 insertions(+), 22 deletions(-) diff --git a/changelogs-v2/2026-07/28_5338_Fleet按订单分窗状态集合守恒-修改接口-管理后台.md b/changelogs-v2/2026-07/28_5338_Fleet按订单分窗状态集合守恒-修改接口-管理后台.md index b7bfb81..89b6cba 100644 --- a/changelogs-v2/2026-07/28_5338_Fleet按订单分窗状态集合守恒-修改接口-管理后台.md +++ b/changelogs-v2/2026-07/28_5338_Fleet按订单分窗状态集合守恒-修改接口-管理后台.md @@ -10,9 +10,9 @@ frontend_status: "implemented" frontend_owner: "hl-ui-pi" frontend_ref: "868739d793aff1ca265296a7bf2cd681fcb557bd" target_release: "" -verified_at: "2026-07-29T14:30:49+08:00" -status_note: "frontend-only:复用 #4760 grid/unassigned 与 #5301 coarse status 已部署契约,无新增后端发布;本次只交接前端最终集合过滤,fresh gateway probe 不适用" -updated_at: "2026-07-29" +verified_at: "" +status_note: "frontend-only:复用 #4760 grid/unassigned 与 #5301 coarse status 已部署契约;#5338 无后端 diff、PR、测试或部署要求。前端代码已有 implemented 证据,但尚无 target_release 或页面验证证据,不上调 released/verified" +updated_at: "2026-07-31" base: "dev-v3" --- @@ -25,9 +25,9 @@ base: "dev-v3" ## 问题与根因 -`matrix-solo?solo=byOrder&status=assigned` 已把 route status 传给 grid,且 coarse assigned 正确映射为 `holding/holding_urgent/assigned`。但共享 composable 仍无条件请求并合并不带 status 的 `unassigned-orders`,`SoloByOrderView.visibleOrders` 只排除 canceled,未按 route status 最终收口。 +修复前,`matrix-solo?solo=byOrder&status=assigned` 已把 route status 传给 grid,且 coarse assigned 正确映射为 `holding/holding_urgent/assigned`;但共享 composable 会继续合并不带 status 的 `unassigned-orders`,`SoloByOrderView.visibleOrders` 又只排除 canceled,未按 route status 最终收口。 -因此 assigned 分窗会混入无车的 `unassigned/unassigned_urgent` rows。主矩阵已使用共享 `matchesMatrixStatusFilter` 做最终过滤,缺口只在 byOrder 分窗没有复用同一保护;不得归因于后端 grid 或 coarse status 契约。 +这会令 assigned 分窗混入无车的 `unassigned/unassigned_urgent` rows。主矩阵原本已使用共享 `matchesMatrixStatusFilter`;#5338 只补齐 byOrder 分窗的同一保护,不归因于后端 grid 或 coarse status 契约。 ## 变更接口 @@ -43,30 +43,38 @@ base: "dev-v3" - `backend_status=deployed` 仅表示上述既有接口契约已部署,不表示 #5338 有后端代码发布。 - `gateway_status=not_required`:根因是前端将两个成功响应合并后缺少 view-level route filter,fresh API probe 不能证明页面集合守恒。 -## 前端必须调整 +## 前端实现结果(implemented,不代表 released/verified) -1. `SoloByOrderView` 最终展示复用共享 `matchesMatrixStatusFilter`,不维护第二套状态映射。 +1. `SoloByOrderView` 最终展示复用共享 `matchesMatrixStatusFilter`,未维护第二套状态映射。 2. route query、grid/unassigned 请求、visibleOrders 与跨窗口 drag source 使用同一筛选 identity。 -3. `assigned` 只显示 `holding/holding_urgent/assigned`,并排除全部无车未派 rows。 -4. `unassigned` 只显示 `unassigned/unassigned_urgent`,并排除已绑车 rows;`all` 才合并两侧。 -5. 最终过滤后的集合同时用于渲染与拖拽,禁止拖拽源绕过 visibleOrders。 +3. `assigned` 只显示 `holding/holding_urgent/assigned`,排除全部无车未派 rows。 +4. `unassigned` 只显示 `unassigned/unassigned_urgent`,排除已绑车 rows;仅 `all` 合并两侧。 +5. 最终过滤后的同一数组同时用于渲染与拖拽,drag source 不再绕过 visibleOrders。 -## 前端验收 +## 前端实现验收(6/6;不代表页面发布/验证) -- [ ] 组件挂载测试覆盖 route `all/unassigned/assigned`,显示集合与主矩阵同筛选口径守恒。 -- [ ] `assigned` 样本同时包含 `holding/holding_urgent/assigned`,并排除 `unassigned/unassigned_urgent` 无车 rows。 -- [ ] `unassigned` 只含未派 rows 并排除所有已绑车 rows;只有 `all` 合并两侧。 -- [ ] 最终展示与 drag source 都复用 `matchesMatrixStatusFilter` 的同一过滤结果。 -- [ ] year/month/fleetTeamIds/typeKeys/status 从 route、请求到 visible/drag 集合保持同一身份。 -- [ ] 不改变 grid、unassigned-orders、statuses[] 或 coarse status 后端契约。 +- [x] 组件挂载测试覆盖 route `all/unassigned/assigned`,显示集合与主矩阵同筛选口径守恒。 +- [x] `assigned` 样本同时包含 `holding/holding_urgent/assigned`,并排除 `unassigned/unassigned_urgent` 无车 rows。 +- [x] `unassigned` 只含未派 rows 并排除所有已绑车 rows;只有 `all` 合并两侧。 +- [x] 最终展示与 drag source 都复用 `matchesMatrixStatusFilter` 的同一过滤结果。 +- [x] year/month/fleetTeamIds/typeKeys/status 从 route、请求到 visible/drag 集合保持同一身份。 +- [x] 不改变 grid、unassigned-orders、statuses[] 或 coarse status 后端契约。 ## 验证证据 -- 权威审计:`C:/Users/Administrator/AppData/Local/Temp/fleet-frontend-current-remote-audit-task_e6c54bb3a8b9.md` -- 审计 SHA-256:`ab3ceafdf3a433ea7d0a99d1f8962839ed49d2819d4eab1d6de13c85e891d882` -- 当前前端远端源码:`mmg/hl-ui v2.1@18daf2a03e9946c46d7bf31c7577adcb05d3c168` -- 源码证据:`matrix-status.js:27-36,49-66`、`useFleetMatrixData.js:350-364,505-525`、`SoloByOrderView.vue:52-82,101-105`。 -- 现有 composable 测试确认 `allOrders` 即使在 assigned exact 下仍包含 unassigned row,但当前远端没有 SoloByOrder route 挂载测试;本条目初始状态为 `pending`,不宣称前端已修复或测试已通过。 +- 前端业务提交:[`mmg/hl-ui@868739d793aff1ca265296a7bf2cd681fcb557bd`](https://git.1814.love:8443/mmg/hl-ui/commit/868739d793aff1ca265296a7bf2cd681fcb557bd),仅修改 `SoloByOrderView.vue` 并新增 `SoloByOrderView.spec.js`;没有后端文件。 +- 前端任务账本:`mmg/hl-ui:.claude/tasks/done/changelog-5338-3c335437bf.md`,记录 `status=done`、`source_status=implemented`、6 个 mount tests、21 个 composable tests、source 46 tests、ESLint/Prettier/Stylelint 与 production build 通过。 +- Changelog 领取/完成提交:`wx/hl-api-changelog@4ad3a92f66741651b60d6d1c6f3d12983e96ea56` / `@73c4daab04bf094507698d9ab814cdbdd711bf73`。 +- 2026-07-31 只读复核时,当前 `v2.1@6b3b04c58da5126f922cdaea52caeb13ab343444` 仍保留共享 `matchesMatrixStatusFilter`、`visibleOrders` 最终过滤与 `setupCrossWindowDrag(() => visibleOrders.value)`;实现提交已在当前分支祖先链中。 +- Deploy Panel 测试环境任务 `a44ef795` 已把当前 `v2.1@6b3b04c58da5` 构建部署成功,但本条目没有 `target_release` 或浏览器页面验证证据;因此 `frontend_status` 保持 `implemented`,不得表述为 `released` 或 `verified`。 +- 前端仓库没有关联 PR,交付形态为直接提交;本记录不追建事后 PR。 + +## 后端独立闭环证据 + +- #5338 是 frontend-only 集合过滤,后端 contract review 结论为 **no contract change**:Controller、DTO/VO、Feign、字段、枚举、错误码与数据库均无 diff;故 #5338 的后端 merge/test/deploy 均为 `not_required`,不伪造 PR、测试或发布。 +- 既有 `grid + unassigned-orders` 契约已由 #4760 完成:PR #4761/#4772 已合并,Fleet/User 定向测试、Fleet reactor、Spotless、测试部署及独立账号真实 API 回归证据均持久记录在 [wx/HL#4760](https://git.1814.love:8443/wx/HL/issues/4760)。 +- coarse/精确状态契约已由 #5301 完成:PR #5304 squash 合并到 `dev-v3@ed56bec1fa466f92e0d41d7b92de3ad4756517b3`;51 个定向测试、Fleet reactor 2474 tests、Spotless、Fleet 双实例部署及真实网关验证记录在 [wx/HL#5301](https://git.1814.love:8443/wx/HL/issues/5301)。 +- 当前 `dev-v3` 源码仍明确实现 coarse `assigned = holding + holding_urgent + assigned`,并保留 grid/unassigned-orders 契约;#5338 不需要 fresh gateway probe,因为 API 成功不能证明前端合并后的页面集合。 ## 关联与去重 -- 2.43.0