hl-api-changelog/changelogs-v2/2026-07/26_5262_派车逐日车费与核单实时接口-修改接口-管理后台.md
yaosutu 450c9a6dfc
一些检查失败了
changelog-filename-gate / validate (push) Failing after 1s
恢复管理后台 changelog 完整正文
2026-07-27 10:27:17 +08:00

6.0 KiB

schema, ticket, title, consumer, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, path_aliases, status_note, updated_at, base, generated
schema ticket title consumer change_type backend_status gateway_status frontend_status frontend_owner frontend_ref target_release verified_at path_aliases status_note updated_at base generated
hl-changelog/v2 5262 派车逐日车费、只读总价与核单实时接口 admin 修改接口 deployed verified implemented hl-ui-pi mmg/hl-ui@2dfe8ab40f 2026-07-26T16:37:00+08:00 changelogs-v2/2026-07/26_5262_派车逐日车费与核单实时接口-修改接口-前端待处理-管理后台.md 后端 PR wx/HL#5266 已合并到 dev-v39bfd21de6,Fleet/Order 测试双实例已部署并完成管理端网关与 internal Feign 实测;hl-admin 已在 2dfe8ab40f3db446d0a079d7511986a2d7fdce33 接入逐日车费、只读总价和旧字段移除,verify:changed 通过,尚未发布及页面联调。本契约替代 #5253 的“手工填写每车总价”口径。 2026-07-26 dev-v3 2026-07-26T16:20:00+08:00

派车逐日车费、只读总价与核单实时接口

关联

关键变化

  1. 多日派车按服务日保存 assignment,每个槽位 4 天即 4 条每日记录。
  2. 价格日历改为提供逐日参考价;车务可覆盖本次派车的某日车费,覆盖值不回写价格日历。
  3. vehicleFeeTotal 改为只读合计,恒等于收费日 assignmentPrice 之和。
  4. 创建、批量派车、确认和改派请求继续兼容解析旧总价字段,但只要传值即返回稳定业务错误,不再接受手工总价。
  5. 配置车辆不写 Order 核单表;核单后端通过新的 Fleet internal API 实时读取逐日车辆费用。

变更接口

方法 路径 变化
POST /admin/fleet/assignments/candidates 车辆候选新增逐日车费参考
POST /admin/fleet/assignments 新增 dailyVehicleFees;旧 vehicleFeeTotal 禁止传值
POST /admin/fleet/assignments/batch 每个最终车辆槽位分别提交 dailyVehicleFees
POST /admin/fleet/assignments/:assignmentId/change 新派车段提交逐日车费;保留段沿用原逐日快照
POST /admin/fleet/assignments/:assignmentId/confirm 旧总价字段禁止传值;总价由已保存逐日车费只读计算
GET /admin/fleet/board/orders/:orderId 槽位返回 dailyVehicleFees 和只读合计

请求字段

dailyVehicleFees[]

字段 类型 必填 说明
serviceDate LocalDate 本次覆盖的服务日期
price Decimal 本次派车单日车费,最小 0.00,最多 2 位小数

规则:

  • 未提交覆盖值的收费日使用车型价格日历当天价格。
  • 收费日缺少日历价格且未提交覆盖值时,后端拒绝最终派车。
  • 覆盖值与日历参考价不一致时提交 vehicleFeeAdjustmentReason
  • 免费日期 assignmentPrice 固定为 "0.00",不计入总价。
  • vehicleFeeTotalretainedVehicleFeeTotal 以及对应旧调整原因字段不得再由前端提交。

响应字段

候选、派车写响应和看板槽位新增或统一返回 dailyVehicleFees[]

字段 类型 说明
serviceDate LocalDate 服务日期
chargeable Boolean 是否收取车费
calendarPrice Decimal/null 车型价格日历参考价;缺价时为空
assignmentPrice Decimal/null 本次派车单日车费;收费日必须有值,免费日为 "0.00"
source String CALENDAR / OVERRIDE / FREE / MISSING
calendarPriceMissing Boolean 价格日历是否缺价

vehicleFeeTotal 继续返回,但语义变为只读:

vehicleFeeTotal = sum(dailyVehicleFees[chargeable=true].assignmentPrice)

金额字段按字符串消费,雪花 ID 继续按字符串消费。

页面展示矩阵

区域 展示 空态 状态/颜色 守恒规则
收费日期 每日显示日历参考价与本次派车价 选车前“待计算”;缺价“价格日历缺价” 参考价中性、覆盖蓝、缺价橙 一服务日一条派车记录
最终总车费 只读合计,不渲染金额输入框 缺价时“价格不完整” 正常中性、缺价橙 等于全部收费日本次派车价之和
已结束行程 只允许查看逐日价格和总价 不适用 只读灰 前端禁用与后端拒绝一致

前端处理清单

  • 移除“最终总车费”输入框,改为只读合计。
  • 收费日期逐日展示 calendarPrice,并允许编辑当前槽位的 assignmentPrice
  • 仅把修改后的日期组装为 dailyVehicleFees,不调用车型价格日历写接口。
  • 使用 sourcecalendarPriceMissing 展示覆盖与缺价状态。
  • 创建、批量派车、确认和改派请求不再传旧总价字段。
  • 行程结束后禁用逐日车费、槽位和改派入口。

验证证据

  • OpenAPI/oasdiffnot_configured;已完成 Controller/VO 源码比对和 Fleet 接口测试回退证据。
  • Spring Cloud Contractnot_configured;已完成 Fleet producer、Order Feign consumer 和 shared DTO 测试回退证据。
  • Fleetmvn -pl hl-fleet-service -am verifyspotless:check 通过。
  • Ordermvn -pl hl-order-service-v3 -am verify 完成,Surefire 零失败并生成可执行 JAR。
  • 部署Fleet 630858f8、Order 63f9ba60 成功,8087/8187 与 8086/8186 双实例健康。
  • 网关:管理端订单详情返回 4 条逐日车费及约定的 6 个逐日字段;internal Feign 正向响应严格为顶层 5 个字段、item 12 个字段。
  • frontend_statuspending;真实领取后再迁移为 claimed