hl-api-changelog/changelogs-v2/2026-08/12_5870_5871_看板详情展示序号与候选需求不匹配原因-修改接口-管理后台.md
Mimingguang 7c5eafada3
所有检测均成功
changelog-filename-gate / validate (push) Successful in 2s
docs(changelogs-v2): #5870/5871 前端已接入交付
frontend_status 翻 implemented,frontend_ref=b9b17dbf,补前端接入说明(slotDisplayNo
展示序号 + requirementMismatchMessage 候选文案)。hl-admin v2.1 已 push。
2026-08-12 14:14:54 +08:00

5.7 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
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
hl-changelog/v2 5870 看板详情 vehicleSlots 新增展示序号 slotDisplayNo + 候选车辆新增需求不匹配原因字段 admin 修改接口 wx(GIT) deployed verified implemented mmg b9b17dbf 2026-08-12 后端已修复并部署测试服,API 实测通过。(1) #5870 项8详情端点 `/admin/fleet/board/orders/{orderId}` 的 vehicleSlots 每条新增 slotDisplayNo1 起,当前有效槽位按 fleetItemIndex 升序位次,删除意图槽过滤不占编号;换版保留行 superseded 尾部追加 slotDisplayNo=null。实测订单 HL20260811204009314活跃 idx1 + 已删意图 idx2 + canceled idx0 → vehicleSlots 返回 displayNo=1,2,删除意图槽不占位。(2) #5871 项6候选接口 `/admin/fleet/assignments/candidates` 车辆候选项新增 requirementMismatchReasonCodeVEHICLE_TYPE/SEATS/VEHICLE_TYPE_AND_SEATS,匹配时 null+ requirementMismatchMessage后端直出中文指明本槽位需求,如「本槽位需求为商务车7座,该车为SUV」。实测订单 HL20260811205737244需求 mpv×211 台 SUV/大巴 mismatch 车辆 reasonCode=VEHICLE_TYPE 且文案指明本槽位需求,大巴正确识别「大巴客车」。前端 2026-08-12 已接入并交付:①详情/列表槽位「车辆槽位 N」改读 slotDisplayNo构建侧 batchAssignmentSlots+daily-vehicle-plan 透传,6 处展示点统一走 display.js resolveSlotDisplayNo,兜底 fleetItemIndex+1→列表位次;②候选「需求不匹配」标签改读 requirementMismatchMessageVehiclePickerList 两处 NTag,兜底「需求不匹配」,只提示不阻断,reasonCode 仅透传未用。fleet/board 35 文件 421 用例全绿,checkpoint 含生产构建全过。 2026-08-12 dev-v3

看板详情展示序号 + 候选需求不匹配原因(#5870 项8 / #5871 项6,PR #5908 + #5909

服务: hl-fleet-service PR: #5908候选 mismatch 字段 + Step2 多车型建槽定位)+ #5909详情端点 slotDisplayNo 补齐) 日期: 2026-08-12 背景: #5893 按等价实现修了 #5870/#5871 核心缺陷,但两个契约字段按工单方案原文应下发而未落地。本批补全兑现,全部为新增响应字段,向后兼容,无破坏性变更


一、变更接口

方法 路径 变更
GET /admin/fleet/board/orders/{orderId} vehicleSlots[] 新增 slotDisplayNo 字段
GET /admin/fleet/board/orders assignmentSlots[] 新增 slotDisplayNo 字段(列表端点同步)
POST /admin/fleet/assignments/candidates 车辆候选项新增 requirementMismatchReasonCode / requirementMismatchMessage

二、#5870 项 8看板详情展示序号 slotDisplayNo

为什么改

前端「车辆槽位 N」此前用 fleetItemIndex + 1 本地计算。删槽-加槽后 fleetItemIndex 走「最小空缺复用」,身份序号与展示位次会劈叉;前端加/删槽的乐观更新与刷新竞态还会出现跳号/重号。必须由后端统一下发与身份序号解耦的展示序号。

契约字段

字段 类型 说明
slotDisplayNo Integer 当前有效槽位按 fleetItemIndex 升序的展示位次,1 起。删除意图命中的槽位被过滤、不占编号;换版保留行superseded追加在尾部,slotDisplayNo=null 不参与当前编号。详情 vehicleSlots 与列表 assignmentSlots 同口径下发。

前端接入

「车辆槽位 N」改读 slotDisplayNo(兜底 fleetItemIndex + 1)。删除槽位后其余槽位的 slotDisplayNo 由后端刷新时重新计算,前端无需本地重排。


三、#5871 项 6候选需求不匹配原因

为什么改

车型/座位不匹配此前只有 requirementMatched: false 裸布尔,前端只能笼统打「需求不匹配」,无法讲清「本槽位到底要什么」。本批让后端直出可直显的维度与文案。

契约字段

字段 类型 说明
requirementMismatchReasonCode String 不匹配维度:VEHICLE_TYPE(车型不符)/ SEATS(座位不足)/ VEHICLE_TYPE_AND_SEATS(双不符)。requirementMatched=true 时为 null;槽位需求不可达回退前端传参时也为 null(保持「仅提示不限制」)。
requirementMismatchMessage String 后端直出中文文案,指明本槽位需求,如「本槽位需求为商务车7座,该车为SUV」「本槽位需求座位数为7,该车核定座位不足」。匹配或需求不可达时为 null

selectable 的关系(务必分清)

车型/座位不匹配只提示不阻断requirementMatched=false 不影响 selectable,与 #5810 / #5824 / #5849 既定口径一致。前端不应据 mismatch 字段禁用选择。

前端接入

候选列表「需求不匹配」标签文案改读 requirementMismatchMessage(兜底「不符合本槽位需求」)。


验证证据(测试服 API 实测)

  • 详情 slotDisplayNo:订单 HL20260811204009314活跃 idx1 + 删除意图 idx2 + canceled idx0vehicleSlots 返回 slotDisplayNo=1,2,删除意图槽idx2被过滤不占编号,序号连续补位。
  • 候选 mismatch 字段:订单 HL20260811205737244需求 mpv×2→ 11 台 SUV/大巴 mismatch 车辆 requirementMismatchReasonCode=VEHICLE_TYPE,文案「本槽位需求为商务车7座,该车为SUV」;大巴车正确识别为「大巴客车」验证 label↔key 闭合)。