From 264e05e6043014cc78126b7d01930999b4cf6768 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Thu, 6 Aug 2026 01:35:07 +0800 Subject: [PATCH] =?UTF-8?q?changelog(5571):=20=E6=B4=BE=E8=BD=A6=E4=BB=B70?= =?UTF-8?q?=E4=B8=8E=E6=9C=AA=E5=A1=AB=E4=BB=B7=E6=A0=BC=E5=85=81=E8=AE=B8?= =?UTF-8?q?=E5=8F=91=E9=80=81=E5=8F=B8=E6=9C=BA=EF=BC=880=E4=BB=B7?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E8=A2=AB=E9=9D=9E=E8=B4=9F=E9=87=91=E9=A2=9D?= =?UTF-8?q?=E6=8B=A6=E6=88=AA=EF=BC=8Canchor=20#5571=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...送司机(0价不再被非负金额拦截)-修改接口-管理后台.md | 72 +++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 changelogs-v2/2026-08/06_5571_派车价0与未填价格允许发送司机(0价不再被非负金额拦截)-修改接口-管理后台.md diff --git a/changelogs-v2/2026-08/06_5571_派车价0与未填价格允许发送司机(0价不再被非负金额拦截)-修改接口-管理后台.md b/changelogs-v2/2026-08/06_5571_派车价0与未填价格允许发送司机(0价不再被非负金额拦截)-修改接口-管理后台.md new file mode 100644 index 0000000..8ec5a21 --- /dev/null +++ b/changelogs-v2/2026-08/06_5571_派车价0与未填价格允许发送司机(0价不再被非负金额拦截)-修改接口-管理后台.md @@ -0,0 +1,72 @@ +--- +schema: "hl-changelog/v2" +ticket: "5571" +title: "派车价0与未填价格允许发送司机(0价不再被非负金额拦截)" +consumer: "admin" +change_type: "修改接口" +author: "wx(GIT)" +backend_status: "deployed" +gateway_status: "verified" +frontend_status: "pending" +frontend_owner: "" +frontend_ref: "" +target_release: "" +verified_at: "" +status_note: "后端完成:PR #5577 + #5580 已合并 dev-v3 并部署 TEST;网关实测 0 价 batchCreate 发送司机成功(assigned/protocolPrice=0.00)。前端需确认校验规则放行 0/空价并适配日格价格默认值展示(anchor #5571,hl-ui v2.1 已有 DailyVehicleFeeList 编辑入口,需前端部署后核验)。" +updated_at: "2026-08-06" +base: "dev-v3" +generated: "2026-08-06T01:33:44+08:00" +--- + +# 派车价0与未填价格允许发送司机(0价不再被非负金额拦截) + +> **服务**: hl-fleet-service +> **PR**: [#5577](https://git.1814.love:8443/wx/HL/pulls/5577) + [#5580](https://git.1814.love:8443/wx/HL/pulls/5580) +> **Issue**: [#5571](https://git.1814.love:8443/wx/HL/issues/5571) +> **日期**: 2026-08-06 + +## 背景 + +#5571(P1 阻断)协调台浏览器实测:26-4220 派车 2 全程槽派好车/司机后,日格"本次派车价"显示 ¥0.00,行内报"**价格应为非负金额,整数最多 10 位、小数最多 2 位**","下一步·发送给司机"被前端表单校验拦死(0/8 日格无法完成)。wx 口径:**实际派车价格为 0 是允许的**(含团费/内部结算等场景)——0 价不得拦截发送司机。 + +## 校验出处定位 + +- 该文案出自**前端** hl-ui v2.1 `src/views/fleet/board/utils/daily-vehicle-plan.js` 提交门禁(`ASSIGNMENT_PRICE_PATTERN` 拒绝空值)与 `DailyVehiclePlanMatrix` 输入校验;**后端 dev-v3 无此文案**。 +- 触发链:后端详情 `dailyVehiclePlan[].assignmentPrice` 曾回显 `null`(逐日行未冻结价格时直接取单值 `protocolPrice`),前端显示层兜底为 ¥0.00 但提交校验拿到空值即拦截。 + +## 变更接口 + +| 方法 | 路径 | 来源 | 变更 | +|---|---|---|---| +| `POST` | `/admin/fleet/assignments/batch` | `AssignmentController`(fleet) | 语义变更:用车日 `assignmentPrice` 允许为空或 0(未填→日历参考价代入);0 价为合法派车价 | +| `GET` | `/admin/fleet/board/orders/` | `BoardOrderController`(fleet) | 语义变更:`dailyVehiclePlan[].assignmentPrice` 不再回显 null——快照价→协议价→日历参考价→0 兜底;`priceSource` 同步(快照源优先,全缺=MISSING) | +| `POST` | `/admin/fleet/assignments//change` 等 | `AssignmentController`(fleet) | 语义变更:DAILY_V3 快照豁免矩阵仅约束免费日;收费日 0 价(无豁免原因)不再被拦截 | + +字段结构均不变(无新增/删除/改名),仅取值语义与门禁口径调整。 + +## 前端/调用方动作(anchor #5571) + +1. **校验规则放行 0 与空价**:`daily-vehicle-plan.js` 提交门禁与矩阵输入校验应允许 `0` 与空值(空值按 0/日历价兜底,由后端回显保证非 null);仅负数与超精度(整数≤10 位、小数≤2 位)拒绝 +2. **日格价格默认值展示**:后端已按"日历参考价代入→0 兜底"回显;前端如遇 `assignmentPrice=null` 的历史数据(修复前已存),可显示 `0.00` 或 `-`,不得触发"价格应为非负金额"拦截 +3. **编辑入口**:hl-ui v2.1 已具备 `DailyVehicleFeeList` 日格价格输入框(editable 状态);若当前部署版本无编辑入口,请升级前端或按后端候选参考价自动代入 +4. 与日历参考价不一致的 0 价仍必须填写改价原因(`priceAdjustmentReason`,#5292 口径),前端原因输入逻辑保持不变 + +## 验证证据 + +- 定向测试:VehicleFeeQuoteServiceTest 16/16(未填→日历价代入、显式 0 价、0 日历价)、AssignmentServiceTest 371/371(null/0 放行、负数/缺司机拒绝)、BoardOrderServiceTest 84/84(回显兜底链:快照 0 优先/日历价回退/全缺 0+MISSING)、DailyVehicleAssignmentSnapshotFactoryTest 9/9(收费日 0 价免豁免、免费日必填豁免);fleet 全量 `mvn -pl hl-fleet-service -am verify`:3168 tests,0 failures,0 errors,4 skipped(含 spotless:check) +- 网关验证(TEST):0 价 batchCreate(HL20260804104759654,5 日 dailyPlan 全 0 价 + 改价原因,holdMode=0)→ code=200 发送司机成功:assigned、protocolPrice=0.00、vehicleFeeTotal=0.00、MANUAL;详情回显 2080599963561005058 8/8 日格 assignmentPrice 非 null 且为逐日快照价(600-730)而非旧 protocolPrice 单值;候选接口日历价参考回显不变(1500.00 CALENDAR) +- 环境说明:MySQL 集成测试依赖 127.0.0.1:3306 固定映射,本机 Docker 端口 TIME_WAIT 竞争导致部分用例偶发失败,清理残留容器+等待端口消退后单独重跑全绿 + +## 关联/联系人 + +### 链接 + +- [后端工单 #5571](https://git.1814.love:8443/wx/HL/issues/5571) +- [后端 PR #5577](https://git.1814.love:8443/wx/HL/pulls/5577)(null/0 门禁放开 + 回显兜底链)+ [#5580](https://git.1814.love:8443/wx/HL/pulls/5580)(快照豁免矩阵放开收费日 0 价) +- Merge commits: [349f97cc5](https://git.1814.love:8443/wx/HL/commit/349f97cc52d572c2465f90d05f797e655be60291)(#5577)、[ce28c53a8](https://git.1814.love:8443/wx/HL/commit/ce28c53a829860b240695792ac6a99e387d9d96e)(#5580) +- 关联:[#5292 逐日派车模型(0 价口径)](https://git.1814.love:8443/wx/HL/issues/5292)、[#5562 全程槽模型](https://git.1814.love:8443/wx/HL/issues/5562) + +### 联系人 + +- **后端负责人**: @wx +- **前端消费**: 待认领(hl-admin)