hl-api-changelog/changelogs-v2/2026-08/19_6057_多槽位越需求索引派车业务码拦截-修改接口-管理后台.md
Mimingguang 7e1e6657ec
一些检查失败了
changelog-filename-gate / validate (push) Failing after 2s
docs(changelogs-v2): #6052/#6057 回写 not_required(frontend_owner=mmg)
2026-08-19 09:14:18 +08:00

4.9 KiB

schema, ticket, title, consumer, author, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base, generated
schema ticket title consumer author change_type backend_status gateway_status frontend_status frontend_owner frontend_ref target_release verified_at status_note updated_at base generated
hl-changelog/v2 6057 多槽位越需求索引派车业务码 605911/605912 替代 500required_vehicle_type 落 NULL 防御) admin wx 修改接口 deployed verified not_required mmg 2026-08-19 后端完成PR #6064 + #6065 已合并 dev-v3584f3adc3 / b07855c228并部署 TESThl-fleet-service Deploy task d6cb4687 + 3bed5be8,jar 01:27:55、双实例 01:28 重启)。越界索引由 500vehicleType is required收敛为 605911 业务码;快照车型兜底缺失拦成 605912。错误消息自解释,前端全局错误处理可直接展示,无需适配;派车看板正常只发送已声明/已增槽槽位,行为不变。 2026-08-19 dev-v3 2026-08-19T01:32:00+08:00

多槽位越需求索引派车业务码 605911/605912 替代 500#6057

背景

批量派车(车务最终实派方案)fleetDecisionFinal 放行的 fleetItemIndex 可能越出当前需求 fleet[] 声明的车辆总数(如需求声明 1 辆车却按 index=1 派第 2 辆)。该场景此前 resolveFleetItemByIndex 返 null、无占位可消费走拉单组装,required_vehicle_type 落 NULLDAILY_V3 快照契约 required 字段),确认派车阶段快照校验炸 vehicleType is required 500P1 复现单 R2

变更接口

接口 变更
POST /admin/fleet/assignments/batchitems[] 行为变更fleetItemIndex 越出当前需求声明车辆数且该索引无 addSlot/展开占位可消费时,整批 fail-fast 返回 605911,零写入;有占位(经 POST /admin/fleet/assignments/slots 增槽或展开生成)的越界索引不受影响,正常消费占位车型快照派车
POST /admin/fleet/assignments/batch(防御) 需求项定位不到且所选车辆型号归一不出规范车型时,落库前拦 605912,不再留 NULL 车型脏行到确认派车阶段炸 500

新增错误码fleet 605xxx 段)

错误码 消息 触发条件 前端处置
605911 用车条目索引越界:超出当前需求声明的车辆数 fleetItemIndex ≥ 需求 fleet[] 全部 count 之和且该索引无占位 引导车务调整需求条目数或先经增槽addSlot再派;消息自解释可直接 toast
605912 派车快照缺少需求车型,请检查用车需求车型明细 需求项定位不到且车辆型号无法归一(罕见,防御性) 检查用车需求车型明细

行为口径

  • 合法索引不变index < 声明车辆数(含 count-1 边界)与占位消费(增槽/展开)路径 200 正常,落库 required_vehicle_type 非空。
  • 整批原子:越界索引在锁内拉单组装前 fail-fast,任一项失败整批回滚、零写入。
  • 对照一致:需求声明条目数调整到位后同一请求 200复现单 R2 实测验证)。
  • 接口说明swagger notes已同步新口径多派/新增槽位须先经 addSlot 生成占位。

前端动作

无必须动作:错误消息自解释,走全局错误提示即可。派车看板正常只发送已声明/已增槽的槽位索引,交互不变。若后续做 605911 专属引导文案,可按上表触发条件提示「调整需求车辆数或先增槽」。

验证证据

  • 单测AssignmentServiceTest 513 全绿):越界索引批派 605911 拦截且 insert 零写入;index=count-1 命中/index=count 越界边界;占位消费的新增槽位仍成功;车型无法归一 605912 防御。mvn -pl hl-fleet-service -am verify 3838 测试仅剩 1 个 ReleaseEMixedBinaryHarnessTest Windows 环境抖动失败(基线 dev-v3 @ b93c7ddcc 同款失败、单跑通过;Testcontainers 集成测试 12 条通过。
  • 部署PR #6064 squash 合并 dev-v3merge commit 584f3adc3+ 文档对齐 PR #6065b07855c228;Deploy Panel task d6cb4687 + 3bed5be8 success,测试服 jar mtime 2026-08-19 01:27:54110669169 bytes,双实例 8087/8187 滚动重启健康。
  • 网关实测TEST,admin token复现单 R2 HL20260818215924074(需求声明 suv×1批量派车 fleetItemIndex=1605911(非 500;复现单 R1 HL20260818215914552 同场景 → 605911;同单合法索引 fleetItemIndex=0 → 200 assigned,落库 required_vehicle_type='suv' 非空、越界请求零写入DB 核对仅 2 行合法行)。

关联 / 联系人