From 7ca25653383bcc7dabf82478a15c8d51ffcbd933 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Sat, 8 Aug 2026 14:42:33 +0800 Subject: [PATCH] =?UTF-8?q?changelog(#5698):=20=E6=94=B9=E6=B4=BE=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E2=80=94=E2=80=94=E5=B7=B2=E6=B4=BE=E5=85=A8=E7=A8=8B?= =?UTF-8?q?=E8=A1=8C=E6=94=B9=E6=B4=BE=E7=94=9F=E6=95=88=20+=20=E6=B8=85?= =?UTF-8?q?=E9=99=A4=E5=8F=B8=E6=9C=BA/=E8=BD=A6=E8=BE=86=E5=90=8E?= =?UTF-8?q?=E6=A7=BD=E4=BD=8D=E7=A9=BA=E6=80=81=E5=BE=85=E9=87=8D=E9=80=89?= =?UTF-8?q?=EF=BC=88=E5=89=8D=E7=AB=AF=E4=BA=A4=E6=8E=A5=20pending?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...效+清除司机车辆后槽位空态待重选-修改接口-管理后台.md | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/changelogs-v2/2026-08/08_5698_改派修复已派全程行改派生效+清除司机车辆后槽位空态待重选-修改接口-管理后台.md b/changelogs-v2/2026-08/08_5698_改派修复已派全程行改派生效+清除司机车辆后槽位空态待重选-修改接口-管理后台.md index 0ada89f..857cc45 100644 --- a/changelogs-v2/2026-08/08_5698_改派修复已派全程行改派生效+清除司机车辆后槽位空态待重选-修改接口-管理后台.md +++ b/changelogs-v2/2026-08/08_5698_改派修复已派全程行改派生效+清除司机车辆后槽位空态待重选-修改接口-管理后台.md @@ -12,7 +12,7 @@ frontend_owner: "hl-ui" frontend_ref: "" target_release: "" verified_at: "" -status_note: "后端接口行为修复:POST /admin/fleet/assignments/{id}/change 对已派全程行(service_date 为空、start/end 覆盖整个服务期)改派时,计费日期/费用快照/组派冲突检查按整段服务期展开——此前 serviceDateOf 只回退生效日第一天,前端按全部服务日提交计费日期即报「计费日期必须属于本派车组服务日期」,改派完全不生效(TEST 操作日志 13:59 连续 7 次 change_failed 实证)。修复后网关实证改派成功(双向往返均生效)。前端配合项见正文「前端交接」。" +status_note: "后端接口行为修复:POST /admin/fleet/assignments/ID/change 对已派全程行(service_date 为空、start/end 覆盖整个服务期)改派时,计费日期/费用快照/组派冲突检查按整段服务期展开——此前 serviceDateOf 只回退生效日第一天,前端按全部服务日提交计费日期即报「计费日期必须属于本派车组服务日期」,改派完全不生效(TEST 操作日志 13:59 连续 7 次 change_failed 实证)。修复后网关实证改派成功(双向往返均生效)。前端配合项见正文「前端交接」。" updated_at: "2026-08-08" base: "dev-v3" generated: "2026-08-08T15:00:00+08:00" @@ -74,13 +74,32 @@ TEST 操作日志实证:订单 HL20260808105342627(蒙A-E2E99+王信,8/17- 期望(口径 B):清除后该槽位行显示**空态(待重选)**,用户明确"已清空",随后重新选择车/司机,提交改派生效。后端派单必须车+司机的终态不变(**改派提交前仍是原值**),清除只是前端进入"待重选"展示态。 - 相关代码:`src/views/fleet/board/components/AssignModal.vue`(`clearChangeAssignmentDraft` / `changeDraftCleared` / 槽位表「当前车辆/当前司机」列) -- 交互参考:清除后已有「已清除草稿,可重新选择」提示与「选择车辆/司机」入口,仅需将槽位表两列在 `changeDraftCleared=true` 时改为空态展示(如「待重新选择」占位) +- 交互参考:清除后已有「已清除草稿,可重新选择」提示与「选择车辆/司机」入口,仅需将槽位表两列在 `changeDraftCleared=true` 时改为空态展示(如显示「待重新选择」) - 验收:清除后槽位行不再显示原车/原司机;重选新司机提交后列表展示新司机 ### 2. 统一改派链路 后端修复后,前端现有提交链路(`useAssignFlow.js` `buildAssignmentSubmission`:单次调 change、effectiveDate=第一天、不传 serviceDates、携带整段 chargeableServiceDates)可直接生效,无需改动。按天改派(serviceDates)不受影响。 +## 变更接口 + +### `POST /admin/fleet/assignments/ID/change`(行为修复,接口契约不变) + +- 已派全程行(`service_date` 为空、`start_date`/`end_date` 覆盖整个服务期)改派时,入参 `chargeableServiceDates` 允许携带该行覆盖的**全部服务日**(此前只认生效日第一天,其余日期报「计费日期必须属于本派车组服务日期」导致改派失败回滚) +- `chargeableServiceDates` 超出目标行服务期仍拒绝(守卫不放宽);其余入参语义不变(`effectiveDate` 必填、`serviceDates` 空=连续后缀整体改派、`newVehicleId`/`newDriverId` 可空=保留原值) +- 响应结构不变;替换行费用快照/报价按整段服务期计算(不再只算第一天) + +## 前端/调用方动作 + +- 后端无动作:现有提交链路(单次调 change + effectiveDate=第一天 + 整段计费日期)修复后直接生效 +- **前端配合项(pending)**:改派页「清除车辆/司机」后槽位行显示空态(待重选),不再显示原车/原司机——见上文「前端交接」 + +## 验证证据 + +- 定向测试:`AssignmentServiceTest` 400 项全绿(新增 2 项全程行整段计费日期改派成功/越界拒绝);回归 FleetAssignmentMapper 61 + 候选 50 + 快照 11 + 看板 88 全绿;fleet verify 3293 项全绿;spotless 通过 +- 部署:TEST 滚动部署 hl-fleet-service 双实例 UP(8087/8187,dev-v3 @ fb8945e97) +- 网关实证(wx 实测现场 HL20260808105342627):统一改派到新司机/新车辆业务成功(修复前 7 连败),替换行 assigned 全程形态 8/17-8/20;换回原派同样成功;现场已还原 + ## 验收清单(本单) - [x] 清除司机正常清空(司机+车辆都清)——口径 B 已定:前端清除后槽位空态待重选(**前端交接 pending**);后端终态语义不变