hl-api-changelog/changelogs-v2/2026-08/12_5912_改期后旧实派车旧日期派车页栅格不可见-修改接口-管理后台.md
API Changelog Bot 0d2122d4b6
所有检测均成功
changelog-filename-gate / validate (push) Successful in 2s
docs(changelog): #5912 改期后旧实派车栅格不可见——栅格并入旧行日期+改期残留标记字段(PR #5918)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-12 16:56:29 +08:00

5.6 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 5912 改期后旧实派车(旧日期)派车页栅格不可见——栅格并入旧行日期+新增改期残留标记字段 admin 修改接口 wx(GIT) deployed verified pending mmg 2026-08-12 后端已修复并部署测试服,订单 HL20260809095537293(26-0821,改期 08-18→08-21) API 实测通过Step2 栅格 editableServiceDates 并入旧行日期后返回 [08-18..08-24] 全 7 天,旧实派行 08-18/19/20 恢复 USED+实车+rescheduleResidue=true+canDelete=true,08-21(在新窗内)不误标,新窗 08-22~24 待派占位。新增透出字段 rescheduleResidue/canDelete/deleteBlockReason 需前端消费:挂「改期残留/待清理」徽标 + 醒目删除/取消入口。 2026-08-12 dev-v3

改期后旧实派车(旧日期)派车页栅格不可见(#5912 / PR #5918)

服务: hl-fleet-service PR: #5918 日期: 2026-08-12 背景: 订单改期(出发日期变更)后,已配车完成的旧实派车(assigned,旧 service_date)在派车页 Step2 排车栅格里消失,观感像旧配车日期被错平移。产品裁决:栅格=新需求窗 旧派车行日期,旧行保留原日期可见 + 带改期残留标记 + 醒目删除/取消入口;取消后司机/车辆自动恢复空闲;旧行不删干净订单无法推进下一步。


根因(简述)

改期触发 fleet 需求换版 + #5810 整槽平移(仅改 requirement_id、旧 service_date 原样保留,数据本身正确);而 Step2 栅格 editableServiceDates 以「需求 serviceDates(新日期窗)」为权威短路返回,旧日期行落在窗外、按 slotId:serviceDate 索引无 cell 键命中 → 渲染不到。数据没错,是栅格日期窗脱钩。

变更接口

接口 说明
POST /admin/fleet/assignments/candidates 派单弹窗候选(Step2 排车栅格 canonical snapshot)
GET /admin/fleet/board/orders/{orderId} 看板订单详情(vehicleSlots 槽位 + dailyVehiclePlan 逐日行)

改动一:栅格日期窗并入旧派车行日期(核心)

canonicalSnapshot.editableServiceDates 由「仅新需求窗」改为「新需求窗 在途(unassigned/holding/assigned)旧行覆盖日期」,确定性幂等;completed/canceled 终态行不并入。旧实派行保留原日期重新在栅格可见、可手动取消。

实测(26-0821,改期 08-18→08-21)

editableServiceDates = [08-18, 08-19, 08-20, 08-21, 08-22, 08-23, 08-24]
  08-18  USED · rescheduleResidue=true  · canDelete=true · 带实车   ← 旧实派行恢复可见
  08-19  USED · rescheduleResidue=true  · canDelete=true · 带实车
  08-20  USED · rescheduleResidue=true  · canDelete=true · 带实车
  08-21  USED · rescheduleResidue=false · canDelete=true · 带实车   ← 新旧窗重叠日,在窗内不标残留
  08-22  待派(used=null) · canDelete=true                            ← 新窗新增日待派占位
  08-23  待派(used=null) · canDelete=true
  08-24  待派(used=null) · canDelete=true

改动二:新增透出字段(前端需消费)

Step2 栅格 cell(canonicalSnapshot.cells[])、看板详情槽位(vehicleSlots[])、看板详情逐日行(dailyVehiclePlan[])三处同步新增:

字段 类型 说明
rescheduleResidue boolean 是否改期残留旧日期行(true=本行/本 cell 服务日期越出当前需求日期窗,属改期后待清理的旧实派车)。与 605062 越窗门禁同口径。
canDelete boolean 是否可删除/取消。改期残留行恒 true(只能改派或取消释放占用);受只读窗口约束时 false。残留行即使「服务日期已过去/已关账」只读也保留取消入口(取消是处置不是推进)。
deleteBlockReason string 不可删除原因;可删除时为 null。

判定收口:三处共用 AssignmentDailyPlanFacts.isRescheduleResidue 同一判定(§15.7 单一口径),与 #5788 详情页 superseded 语义对齐。

前端展示建议

  • rescheduleResidue=true 的行/槽位挂「改期残留/待清理」徽标(醒目色),与正常新窗行区分。
  • canDelete=true 提供醒目的删除/取消入口;点击调既有 DELETE /admin/fleet/assignments/{assignmentId},取消后该日期司机/车辆 occupancy 自动释放恢复空闲。
  • 存在未清理残留行时,推进(确认执行)被 605062 阻断,前端把 605062 渲染成「请先清理改期残留旧派车」的阻断提示。

改动三:看板纯改期残留分流(无字段变化,行为修复)

纯改期残留(当前需求全部在途行日期都越出当前日期窗)不再被「换版改车型」口径覆写成「待派车」、不计入待派缺口;卡片态与进度计数口径一致。一旦有落在新窗内的行(换版/新派)即回到常规换版口径。

验证证据(测试服 API 实测,订单 HL20260809095537293 / 2086270141158346754)

  • editableServiceDates 返回 7 天(旧 08-1821 新 08-2124)。
  • 旧实派行 08-18/19/20 恢复 USED + vehicleId/driverId + rescheduleResidue=true + canDelete=true
  • 08-21 在新窗内 rescheduleResidue=false(不误标)。
  • 新窗 08-22~24 待派占位 used=null + canDelete=true
  • 编译 / ArchTest 13·13 / spotless / 全量 mvn -pl hl-fleet-service test 3671 跑 0 错。

关联 / 联系人

联系人

  • 后端负责人: @wx
  • 前端消费: @mmg(rescheduleResidue/canDelete/deleteBlockReason 三处透出)