hl-api-changelog/changelogs-v2/2026-08/06_5589_HOLD通知派车组不存在修复-修改接口-管理后台.md
API Changelog Bot cfe34b9439
一些检查失败了
changelog-filename-gate / validate (push) Failing after 2s
changelog(5589): HOLD通知派车组不存在500修复(后端完成,网关验证通过)
2026-08-06 13:23:55 +08:00

3.4 KiB

schema, ticket, title, consumer, change_type, author, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base, generated
schema ticket title consumer change_type author backend_status gateway_status frontend_status frontend_owner frontend_ref target_release verified_at status_note updated_at base generated
hl-changelog/v2 5589 HOLD 通知派车组不存在 500 修复(全程槽占位消费组 id 回填 + 单行组查询回退) admin 修改接口 wx(GIT) deployed verified not_required v2.1 2026-08-06 后端完成PR #5590 已合并 dev-v3 并部署 TEST13:20 滚动 DONE;网关验证全链路 PASSbatchCreate holdMode=1 200修复前 500 派车组不存在)、组 id 回填=行 id、通知日志/outbox 正常、司机确认→确认执行 assigned。前端无需配合。 2026-08-06 dev-v3 2026-08-06T12:50:00+08:00

HOLD 通知派车组不存在 500 修复

服务: hl-fleet-service PR: #5590 Issue: #5589 日期: 2026-08-06 影响: 🟢 缺陷修复,无契约变更。管理后台 HOLD 通知派车holdMode=1此前 500「HOLD 通知派车组不存在」,本次修复后全链路可用。前端无需改代码。

背景

#5589P1协调台实测batchCreate 派单 holdMode=0直接 assigned成功,holdMode=1HOLD 通知500 IllegalStateException: HOLD 通知派车组不存在: groupId=…

根因#5562 全程槽模型下,全程/单行占位行的 assignment_group_id 保持 NULL有意设计,占位消费升级consumePlaceholderToActive也未回填。HOLD 通知链路对单行组使用「组 id=行 id」回退语义effectiveGroupId),但组查询(selectByAssignmentGroupId)只按 assignment_group_id 匹配 → 查空 → 发送结果提交 500。

修复内容(内部,无接口/字段变化)

  1. 占位消费回填组 idconsumePlaceholderToActive 消费单行占位时 assignment_group_id=自身行 id(与历史行迁移回填约定一致,新数据根治);
  2. 组查询单行组回退selectByAssignmentGroupId / selectByAssignmentGroupIdForUpdate 按组 id 查空时,回退 assignment_id=groupId AND assignment_group_id IS NULL(覆盖存量 NULL 组行,发送授权/结果提交/行程短信统一入口);
  3. CAS 回写回退markHoldNotificationSent 按组更新 0 行时按行 id 回退更新(单行组 hold_sent_at 回写)。

受影响接口(行为修正,无字段增减)

POST /admin/fleet/assignments/batch-create        holdMode=1 不再 500
POST /admin/fleet/assignment-hold-notifications   (发送授权/重试对单行组可用)

验证

  • 定向FleetAssignmentMapperTest 61/61+4组 id 回填/双回退、AssignmentHoldNotificationResultServiceTest 16/16+1全程单行组 commitSent、AssignmentServiceTest 372/372、HOLD 通知域 253/253;fleet 全量 3183 仅 2 个 MySQL 集成 Error 为 3306 端口竞争其他会话容器,空闲窗口补跑全绿MutationFence 2/2 + InsuranceCostFence 2/2 + ReleaseE 10/10
  • 网关TEST 13:20 部署 → batchCreate holdMode=1 200(修复前 500→ 行 holding + 组 id 回填=行 id → HOLD 通知日志/outbox 正常(无行程短链产品降级为站内通知,非异常)→ 司机确认 driver_confirmed → 车务确认执行 assigned + confirmedAt → DB 对账全绿