一些检查失败了
changelog-filename-gate / validate (push) Failing after 1s
修改原因:已派全程槽联动删除已完成前端适配。 修改内容:回写 implemented 与业务提交引用。 实际验证:pnpm checkpoint 通过。 Changelog:#5572 source 文档。
6.8 KiB
6.8 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 | 5572 | 派车全程槽删除支持已派车联动取消释放(删除按钮点击无响应修复) | admin | 修改接口 | wx(GIT) | deployed | verified | implemented | pi-main-session | hl-admin@045434c1926505d7524239e00464d74e66e52d6b | v2.1 | 2026-08-06 | 后端完成:PR #5576 + #5579 已合并 dev-v3 并部署 TEST;网关验证通过(已派车槽删除联动取消+释放占用 cancelledAssignmentCount=5、605007 仅剩 completed/finalized、slot_removal 防复活、修复占用上下文 500)。前端需修复删除按钮 handler 静默 return 并适配已派车槽删除交互(anchor #5572)。 | 2026-08-06 | dev-v3 | 2026-08-06T00:10:04+08:00 |
派车全程槽删除支持已派车联动取消释放
服务: hl-fleet-service PR: #5576 + #5579(占用上下文修复) Issue: #5572 日期: 2026-08-06
背景
#5572(P1)协调台实测:26-4220 派车页已派车/待确认全程槽的「删除」按钮点击完全无响应。定位结论:
- 前端(hl-ui,本单交接):
AssignModal.handleDeleteVehicleSlot对已派车槽(isExistingAssignment)或非草稿模式静默 return(无确认/toast),且 #5562 全程槽 changelog 前端未消费(pending)——按钮显示但点击无事件; - 后端(本单修复):删除接口对
holding/assigned槽返回 605007,与 #5562「槽可修改/删除」口径及 #5572 验收「已派车槽位删除的联动(释放车辆/司机占用、日格清理)」冲突。
变更接口
| 方法 | 路径 | 来源 |
|---|---|---|
DELETE |
/admin/fleet/assignments/slots/{slotId} |
AssignmentController(fleet) |
路径前缀 /admin/fleet/** 已由网关登录/角色校验与 FleetAdminRoleGuardInterceptor(VEHICLE_MANAGER / SUPER_ADMIN)收口,无需新增网关规则。
1. 删除车辆槽位 DELETE /admin/fleet/assignments/slots/{slotId}(口径变更)
请求参数不变:slotId(PathVar)+ reason(Body 选填 ≤200 字)。
删除规则(业务口径,#5572 变更):
- 可删(含已派车):槽位行均为
unassigned/普通canceled历史,或存在holding/assigned(已派车/待确认)行——删除前联动取消派车:逐行assigned→canceled(CAS)+ 状态机 + 取消事件(释放车辆/司机占用、保险退保意图、需求重开)+ 操作日志;看板逐日派生自然过滤 canceled(日格清理) - 拒绝(605007):槽位存在
completed行(已完成行程保留历史),或已最终确认方案(dispatchPlanFinalized=1)的取消行(防 reconcile 复活 + 对账关联) - 拒绝(605027):行程已出发(today > 服务开始日)的已派车槽位,与取消派单口径一致
- 605012:槽位不存在
删除动作(事务内):
- (有已派车时)联动取消该槽全部
holding/assigned行并释放占用 - 软删该槽位全部
unassigned每日切片(canceled 历史行保留——对账/保险 REFUND 关联不丢失) fleet_assignment_slot_removal写入删除意图(条件放宽:纯已派车槽 removed=0 也写,防重新展开复活)- Step2 canonical 快照:
retainedSlotIds移除该槽位 +snapshotVersion递增 +contentDigest重算 - 派单操作日志追加
slot_removed(幂等键slot-remove:{slotId})
响应 data(新增字段):
| 字段 | JSON 类型 | 说明 |
|---|---|---|
slotId |
string(Long) | 被删除槽位 ID |
requirementId / orderId |
string(Long) | 归属需求/订单 |
removedRowCount |
int | 软删除的未派单切片行数 |
cancelledAssignmentCount |
int | 新增:联动取消的已派车/待确认行数(0=无已派车) |
retainedSlotIds |
array(string) | 删除后快照保留槽位集合 |
snapshotVersion |
string(Long) | 删除后快照版本(无快照为 null) |
错误码变更:605007 文案由「槽位已派车或已确认,请先取消派车后再删除」改为「槽位已完成派车或已最终确认,不可删除」;新增 605027(行程已出发,不能删除已派车槽位)。
2. 订单详情 GET /admin/fleet/board/orders/{orderId}(语义变更,字段不变)
vehicleSlots[].canDelete:已派车/待确认槽位由 false 改为 true(删除时联动取消释放);仅 completed/finalized 取消行或订单只读时仍为 false。deleteBlockReason 文案同步更新。
前端/调用方动作(anchor #5572)
- 修复删除按钮点击无响应:
AssignModal.handleDeleteVehicleSlot对isExistingAssignment/!slotDraftMode的静默 return 需改为可见反馈;已派车槽位删除应弹二次确认(提示将联动取消派车并释放车辆/司机占用)后调DELETE /admin/fleet/assignments/slots/{slotId} - 已派车槽位删除入口:删除按钮
v-if="!slot.isExistingAssignment"需放开至已派车槽(后端已支持联动释放);或保留按canDelete控制并展示 605007/605027 错误 toast(注意前端写死的 605007 文案已过时,需改为「槽位已完成派车或已最终确认,不可删除」) - #5562 全程槽语义适配(原 pending):全程行(service_date NULL)的
isExistingAssignment判定、删除后刷新候选(cancelledAssignmentCount可作删除结果提示)
验证证据
- 定向测试:AssignmentServiceTest 371/371(+3:已派车槽联动取消删除成功/已出发 605027/completed 605007)、BoardOrderServiceTest 84/84(已派车槽 canDelete=true)、AssignmentControllerTest 41/41;spotless:check 通过
- 网关验证(TEST):已派车槽 DELETE 200 + cancelledAssignmentCount=5(5 条 assigned 行联动取消)+ 行全部 canceled + 占用释放 + slot_removal 持久化;修复前网关实测 500(缺 occupancy context)已由 PR #5579 修复
- 环境说明:fleet verify 3167 用例 Failures=0;MySQL 集成测试 13/13(FleetAssignmentSlotRemovalMysqlTest 3/3 + ReleaseEOccupancyMysql8033RecoveryTest 10/10,3306 竞争窗口补跑)
关联/联系人
链接
联系人
- 后端负责人: @wx
- 前端消费: 待认领(hl-admin)