hl-api-changelog/changelogs-v2/2026-08/08_frontend_多槽位派单batchCreate请求体缺顶层字段丢槽-前端缺陷-管理后台.md
Mimingguang 8e1ec2ff65
一些检查失败了
changelog-filename-gate / validate (push) Failing after 2s
docs(changelog): frontend-fleet-batch3slot 实证为旧批量形态已替换,关闭 not_required
2026-08-09 00:04:15 +08:00

5.2 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 frontend-fleet-batch3slot 多槽位3 槽)派单提交 batchCreate 请求体缺顶层必填字段且丢槽,派单未创建 admin wx(GIT) 前端缺陷 not_required not_required not_required 前端缺陷3 槽位派单排车页点「下一步·发送给司机」,POST /admin/fleet/assignments/batch 请求体仅 {items:[2 个]}——缺 orderId/requirementId/startDate/endDate/holdMode/requestId 顶层必填字段,且 3 槽只发出 2 个 items丢 1 槽)。后端返回 200 但未创建派单(看板 3 槽仍待派车。2 槽位26-6040请求体完整、派单成功。后端无问题,待前端修复 3 槽位 batchCreate 请求体构造。 2026-08-09 dev-v3 2026-08-08T22:10:00+08:00

多槽位3 槽)派单提交 batchCreate 请求体缺顶层必填字段且丢槽,派单未创建

前端缺陷,待前端修复。后端接口与逻辑无问题。

关联 / 联系人

联系人

  • 前端负责人: @mmg
  • 后端负责人: @wx已确认后端无问题

现象TEST 实测,2026-08-08

订单 26-4254id=2086056645539885057,跨月 8/30-9/1,18 人,用车需求 SUV×1 + 商务车×1 + 大巴×1 共 3 槽位

  1. 排车页 3 个槽位逐日全部应用完成(页面显示「已完成 3/3 个最终方案槽位」,槽1 蒙A-E2E01 道尔吉 / 槽2 蒙A-E5555 阿木古愣 / 槽3 蒙C08E08 宝音德力格尔,各 3 天已确认)。
  2. 勾上 8/30 接机「参与」(消除「至少一辆用车必须参与接机」警告)后,点底部「下一步 · 发送给司机3 辆)」。
  3. 抓包:POST /admin/fleet/assignments/batch 请求体为——
{
  "items": [
    {"orderId":"2086056645539885057","vehicleId":"2085284111341023234","driverId":"2065272150012444674","assignmentGroupId":"2086057368872779778","serviceDates":["2026-08-30","2026-08-31","2026-09-01"]},
    {"orderId":"2086056645539885057","vehicleId":"2064998142394183681","driverId":"2065272145633591298","assignmentGroupId":"2086057368876974082","serviceDates":["2026-08-30","2026-08-31","2026-09-01"]}
  ]
}

两个错误

  • 顶层缺必填字段:无 orderId / requirementId / startDate / endDate / holdMode / requestId(这些字段只在每个 item 里出现了 orderId/assignmentGroupId,顶层全缺
  • 丢槽3 个槽位只发出 2 个 items(丢了 1 个槽)。
  1. 结果:后端返回 200,但看板 3 槽位仍全部「待派车」activeAssignments=0,派单未创建。

对比(正常)

订单 26-60402 槽位同样操作batchCreate 请求体含完整顶层字段orderId/requirementId/startDate/endDate/holdMode/requestId+ 2 个 items,返回 200 且派单正常创建holding

期望

3 槽位多槽位派单提交时,batchCreate 请求体应:

  • 顶层携带完整必填字段:orderId / requirementId / startDate / endDate / holdMode / requestId
  • items 包含全部槽位3 槽发 3 个 item,不丢槽;
  • 每个 item 的 fleetItemIndex / vehicleId / driverId / serviceDates 与各槽位选择一致。

复现路径

派单看板 → 26-4254 → 派车派人 → 下一步 → 3 个槽位分别「统一选择车辆/司机」选好车+司机应用到槽位3/3→ 勾 8/30 接机「参与」→ 点「下一步 · 发送给司机3 辆)」→ 抓 batchCreate 请求体。

备注

  • 单槽位派单AssignModal 单体 createAssignment,走 useAssignFlow.handleSubmit,payload 含完整字段)正常;问题在多槽位排车页的批量提交路径。
  • 后端 batchCreate 接口对缺顶层字段的请求返回 200 而非 400 参数校验,建议后端顺带评估是否应 fail-fast另案,不阻塞本前端修复

前端实证确认2026-08-09 mmg,hl-admin v2.1

该缺陷对应已被替换的旧批量实现,当前 v2.1 不满足复现条件,无需改动:

  • 形态不符:抓包的 {items:[...]}(缺顶层必填字段 + 3 槽发 2 个)是 69847975 多车槽位原子批量派车 的旧 items 形态;7b99fe7d 支持逐日逐车派车方案起已改为逐日逐车 dailyPlan 模型
  • 顶层字段齐全:当前 buildBatchAssignmentSubmissionuseAssignFlow.js:375)产出的 data 含完整顶层必填字段 orderId/orderNo/requirementId/startDate/endDate/headcount/holdMode/fromEntry/requestId + dailyPlanitems;测试 useAssignFlow.spec.js:271 明确断言 data 不含 items
  • 丢槽结构性不可能validateDailyVehiclePlandaily-vehicle-plan.js:518-527)对每个服务日 × 每个槽位序号做笛卡尔积完整性校验,3 槽 × 3 天必须满 9 格,缺任一格在提交前即 throw 拦截(服务日 X 缺少车辆槽位 N),不会发出丢槽请求。
  • 结论TEST 抓包来自旧前端版本。当前 v2.1 批量派单顶层字段齐全且丢槽被结构校验拦截,本单关闭为 not_required。