changelog-filename-gate / validate (push) Failing after 2s
处置明细(mmg 2026-09-18): - 68 条机械核验通过批量翻 verified:frontend_ref 均可达且为 v2.1 祖先、 交付文件 HEAD 均在、关联 spec 批量 58 文件 891 例全绿。 - 11 条带演进史的例外逐条核后翻 verified:3 条交付自删文件(06_5610/ 07_5655/11_5810,删除即交付内容且终态保持);8 条被后续 changelog 预期 演进(10_5784→#5810、07_5664/08_5592→#5827、07_5665→去槽位化 U1、 01_5380/05_5356/06_5567/06_5581→settlement 族A扁平化与 mock 清理), status_note 均如实记录演进链。 - 05_5552 改判 not_required:frontend_ref 自述前端无需改动,grep 实证 vehicleFeeAmount.js 直接读后端 calendarPrice/calendarPriceMissing。 - 11_5827 frontend_ref 原空,经核交付即 753503c8(向导 4 步改 3 步提交 即派定),补登全哈希 753503c87cc635e5646b4368a8ed506746c79cf1。 另:保险域 2 条相邻条目(05_5530/06_5593)同标准复核翻 verified。 2026-07 历史月 45 条按规则不回扫,保持原状。
4.5 KiB
4.5 KiB
schema, ticket, title, consumer, author, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base, generated
| schema | ticket | title | consumer | author | change_type | backend_status | gateway_status | frontend_status | frontend_owner | frontend_ref | target_release | verified_at | status_note | updated_at | base | generated |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| hl-changelog/v2 | 5676 | 改派支持按天改派(排车表逐行改派按钮)+ 统一选择修复交接 | admin | wx | 修改接口 | deployed | verified | verified | mmg | 3df533a5 | 2026-09-18 | 后端完成:PR #5686 合并 dev-v3(4e993920440cad0b6105a5f7682d6b33d1444bad)并部署 TEST,网关验证按天改派只改指定天+统一选择单次全改均通过。统一选择「只改第一天」bug 实证为前端逐日循环互覆盖(后端无 bug),修复=前端改单次调 change。待前端接入按天改派+统一选择单次调用。[mmg 2026-09-18 批量复核翻 verified] ref 3df533a5 可达且为 v2.1 祖先;交付文件 HEAD 均在;关联 spec 批量 891 例全绿。 | 2026-09-18 | dev-v3 | 2026-08-08T11:10:00+08:00 |
改派支持按天改派 + 统一选择修复交接(#5676)
需求
- 排车表**每行(每个服务日)**有【改派】按钮——单独改某天的车/司机(按天改派,每天可不同)
- 统一选择按钮=整体改派(所有日期),保留
- wx 实测补充:统一选择现在不好使,只能改第一天(选的车/司机只应用到第一天)
统一选择「只改第一天」bug 根因(后端无 bug,前端修复)
根因 = 前端「统一选择」逐日循环调 change 互相覆盖,非后端问题:
- 改派操作日志实证:order
2080600006514872322在 2026-08-06 17:25 对同一槽位连续两次调 change(effectiveDate=2026-08-29和2026-08-28分开、每天一行)——前端对「统一选择」逐日循环(每天调一次)。 - change 语义 = 「effectiveDate 起连续后缀」:eff=8/29 改 8/29 起后缀,eff=8/28 又改 8/28 起后缀(覆盖 8/29)…… 逐日循环互相覆盖 → 只有部分天生效(表现为「只改第一天」)。
- 后端单次 change 正确全改:单测证明逐日槽位 3 天,单次
change(effectiveDate=第一天, 不传 serviceDates)→ 取消整段后缀 + 重建 3 行全新车/司机。
修改接口:POST /admin/fleet/assignments/{assignmentId}/change
新增可选字段 serviceDates(List<LocalDate>,其余字段不变):
| 字段 | 说明 |
|---|---|
serviceDates |
按天改派限定的服务日期集。非空=按天改派模式:只改这些日期的行(其余天保留);空/不传=现状(effectiveDate 起连续后缀整体改派)。 |
前端交接(两种改派的正确调用方式)
1. 统一选择(整体改派)——修复点:
{
"effectiveDate": "<第一天>",
"newVehicleId": ..., "newDriverId": ...,
"holdMode": 0, "reason": "...", "requestId": "<唯一>"
}
- 单次调用,
effectiveDate=第一天,不传serviceDates→ 一次整体改派所有天。 - 不要再逐日循环调 change(会互相覆盖)。
- 每次操作生成唯一
requestId(幂等)。
2. 按天改派(新增,每行改派按钮):
{
"effectiveDate": "<该天>",
"serviceDates": ["<该天>"],
"newVehicleId": ..., "newDriverId": ...,
"holdMode": 0, "reason": "...", "requestId": "<唯一>"
}
- 某天【改派】→
effectiveDate=该天 +serviceDates=[该天]→ 只改该天,其他天不变。 - 每天可不同车/司机(逐行各调一次,每天独立
requestId)。 assignmentId路径参数=该槽位任一派单行 ID。
行为说明
- 校验按天:按天改派的档期/占用/常驻/保险校验只针对
serviceDates指定的天(某天换车/司机只需该天资源空闲,不影响其他天)。 - 逐日价格:按天改派后逐日车费按各天价格日历/车型分别算(
resolveDaily按子集日期逐日取价)。 - 兼容:
serviceDates不传时行为与现状完全一致(统一选择整体改派)。
验证
- AssignmentServiceTest 397/397(新增 3:按天单天只改该天/按天非连续子集其余保留/统一选择单次全改对照);dev-v3 全量 verify 3273/0F/0E。
- 网关实证(TEST,槽位
344052387587166208,order2085662570479304706,8/21-8/23 三天):- 按天改派:
change(serviceDates=[8/22])换车 → 只 8/22 变,8/21/8/23 保留原车; - 统一选择单次:
change(effectiveDate=8/21, 不传 serviceDates)换车 → 3 天全改。
- 按天改派: