From 92b53da54d90954a7df72e7054c565c4b7f38065 Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Fri, 24 Jul 2026 11:10:25 +0800 Subject: [PATCH] docs(order): hand off vehicle rejection history (#5200) --- ...¦éœ€æ±‚驳回历å²ä¸Žé‡æ–°æäº¤-修改接å£-管ç†åŽå°.md | 150 ++++++++++++++++++ 1 file changed, 150 insertions(+) create mode 100644 changelogs-v2/2026-07/24_5200_用车需求驳回历å²ä¸Žé‡æ–°æäº¤-修改接å£-管ç†åŽå°.md diff --git a/changelogs-v2/2026-07/24_5200_用车需求驳回历å²ä¸Žé‡æ–°æäº¤-修改接å£-管ç†åŽå°.md b/changelogs-v2/2026-07/24_5200_用车需求驳回历å²ä¸Žé‡æ–°æäº¤-修改接å£-管ç†åŽå°.md new file mode 100644 index 0000000..18d0fd7 --- /dev/null +++ b/changelogs-v2/2026-07/24_5200_用车需求驳回历å²ä¸Žé‡æ–°æäº¤-修改接å£-管ç†åŽå°.md @@ -0,0 +1,150 @@ +--- +schema: "hl-changelog/v1" +ticket: "5200" +title: "用车需求驳回历å²ä¸Žé‡æ–°æäº¤" +consumer: "admin" +backend: "verified" +gateway: "verified" +frontend: "pending" +base: "dev-v3" +generated: "2026-07-24T11:05:00+08:00" +--- + +# ã€ä¿®æ”¹æŽ¥å£Â·å‰ç«¯å¾…处ç†Â·ç®¡ç†åŽå°ã€‘用车需求驳回历å²ä¸Žé‡æ–°æäº¤ + +## 目标å‰ç«¯ + +- 端类型:管ç†åŽå°ï¼ˆWeb) +- 目标仓库:`mmg/hl-ui` +- 目标分支:`v2.1` +- è”è°ƒ/验收环境: +- å°ç¨‹åºï¼šæ— éœ€å¤„ç† + +> **æœåŠ¡**: hl-order-service-v3ã€hl-fleet-service +> +> **å·¥å•**: [wx/HL#5200](https://git.1814.love:8443/wx/HL/issues/5200) +> +> **å½±å“范围**: 订å•详情行程安排中的用车需求ã€é©³å›žåŽçš„釿–°æäº¤ + +## 业务å£å¾„ + +- 用车需求被车务驳回åŽï¼Œæ—§ç‰ˆæœ¬ç»ˆæ€å¤±æ´»å¹¶ä½œä¸ºåªè¯»åކå²ä¿ç•™ï¼Œä¸æ˜¯â€œå·²å›žé…â€ã€‚ +- é©³å›žåŽæ²¡æœ‰å½“å‰ active 用车需求,订å•详情å…è®¸å®šåˆ¶å¸ˆé‡æ–°æäº¤ã€‚ +- 釿–°æäº¤åˆ›å»ºæ–°çš„ active ç‰ˆæœ¬å¹¶é‡æ–°è¿›å…¥è½¦åŠ¡æµç¨‹ï¼Œä¸å¤æ´»æˆ–覆盖旧版本。 +- 新旧版本å¯ä»¥åŒå±å±•示:当å‰ç‰ˆæœ¬ä¿ç•™åŽŸæœ‰æ“作,历å²ç‰ˆæœ¬åªè¯»ã€‚ + +## 一ã€è®¢å•详情行程安排 + +接å£ï¼š + +```http +GET /v3/admin/order/{orderId}/itinerary +``` + +å“应 `data` 新增: + +```json +{ + "vehicleGroup": null, + "vehicleHistory": [ + { + "requirementId": "2080186927616606210", + "version": 1, + "status": "REJECTED_TO_CONSULTANT", + "isActive": false, + "submittedAt": "2026-07-23 15:03:06", + "returnedAt": "2026-07-24 09:20:00", + "returnRemark": "当地无åˆé€‚车辆", + "vehicleTypeSummary": "suv×1", + "specialTags": ["儿童安全座椅", "大行æŽç©ºé—´"], + "pickupRequired": true, + "dropoffRequired": true, + "remark": "原需求备注" + } + ], + "canContactFleet": false, + "contactFleetDisabledReason": "请先æäº¤æœ‰æ•ˆç”¨è½¦éœ€æ±‚åŽå†è”系车务" +} +``` + +### `vehicleHistory` 字段 + +| 字段 | 类型 | 说明 | +| --- | --- | --- | +| `requirementId` | `String` | 历å²éœ€æ±‚ ID | +| `version` | `Integer` | 版本å·ï¼Œåˆ—è¡¨æŒ‰ç‰ˆæœ¬å€’åº | +| `status` | `String` | 驳回场景为 `REJECTED_TO_CONSULTANT` 或 `REJECTED_TO_ADMIN` | +| `isActive` | `Boolean` | 历å²é¡¹å›ºå®šä¸º `false` | +| `submittedAt` | `LocalDateTime` | 原需求æäº¤æ—¶é—´ | +| `returnedAt` | `LocalDateTime/null` | 驳回时间 | +| `returnRemark` | `String/null` | 驳回原因 | +| 其余摘è¦å­—段 | 与 `vehicleGroup.requirement` ç›¸åŒ | 车型ã€åº§ä½ã€æŽ¥é€ã€ç‰¹æ®Šè¯‰æ±‚和备注等原需求快照 | + +边界行为: + +- 从未æäº¤ç”¨è½¦éœ€æ±‚:`vehicleGroup=null`ã€`vehicleHistory=[]`。 +- å·²é©³å›žä¸”å°šæœªé‡æï¼š`vehicleGroup=null`ã€`vehicleHistory` 包å«é©³å›žåކå²ã€‚ +- 已釿–°æäº¤ï¼š`vehicleGroup.requirement` 是新 active 版本,`vehicleHistory` ä»åŒ…嫿—§ç‰ˆæœ¬ã€‚ +- 历å²åˆ—表还å¯èƒ½åŒ…å«è¢«æ­£å¸¸é‡ç‰ˆæ›¿æ¢çš„失活版本,å‰ç«¯æŒ‰ `status` 决定是å¦å±•示“已驳回â€ã€‚ + +## 二ã€é‡æ–°æäº¤ + +继续使用现有接å£ï¼š + +```http +PUT /v3/admin/order/{orderId}/vehicle-requirement +``` + +é©³å›žåŽæäº¤çš„è¿”å›žè¯­ä¹‰ï¼š + +```json +{ + "code": 200, + "data": { + "version": 2, + "isActive": true, + "status": "PENDING", + "branchTaken": "INIT_SUBMIT" + } +} +``` + +版本规则: + +- æ–°ç‰ˆæœ¬å· = åŽ†å²æœ€é«˜ç‰ˆæœ¬å· + 1ï¼› +- æ–°ç‰ˆæœ¬ä¸ºå½“å‰ active 需求; +- 旧驳回版本继续留在 `vehicleHistory`ï¼› +- 仅新版本进入车务看æ¿å’Œæ´¾å•æµç¨‹ã€‚ + +## 三ã€å‰ç«¯å¤„ç†æ¸…å• + +- [ ] 订å•详情用车å¡ç‰‡å›ºå®šæ”¯æŒâ€œåކå²éœ€æ±‚â€åªè¯»åŒºåŸŸï¼Œä¸è®ºå½“å‰ active 需求是å¦å­˜åœ¨ã€‚ +- [ ] 历å²é¡¹å±•示版本ã€åŽŸéœ€æ±‚å†…å®¹ã€é©³å›žçжæ€ã€`returnedAt` å’Œ `returnRemark`。 +- [ ] 历å²é¡¹ä¸å¾—显示修改ã€è”ç³»è½¦åŠ¡ã€æ´¾è½¦æˆ–“已回é…â€ç­‰å½“å‰éœ€æ±‚æ“作/文案。 +- [ ] `vehicleGroup=null` 且 `vehicleHistory` éžç©ºæ—¶ï¼Œç»§ç»­æ˜¾ç¤ºâ€œæäº¤ç”¨è½¦éœ€æ±‚â€å…¥å£ã€‚ +- [ ] 有新 `vehicleGroup.requirement` æ—¶ï¼ŒåŒæ—¶å±•示当å‰éœ€æ±‚和旧历å²ï¼Œåކå²é¡¹ä¸è¦†ç›–当å‰çжæ€ã€‚ +- [ ] ä¸è¦æŠŠ `vehicleHistory` 项映射æˆå½“å‰ `vehicleGroup.requirement`。 +- [ ] è¦†ç›–é©³å›žæœªé‡æã€é©³å›žåŽé‡æã€å­˜åœ¨å¤šä¸ªåކå²ç‰ˆæœ¬ä¸‰ä¸ªåœºæ™¯ã€‚ + +## å››ã€å…¼å®¹è¯´æ˜Ž + +现有å‰ç«¯åœ¨ `vehicleGroup=null` 时已能进入“æäº¤ç”¨è½¦éœ€æ±‚â€ç©ºæ€ï¼Œå› æ­¤åŽç«¯éƒ¨ç½²åŽä¸ä¼šå†æŠŠé©³å›žéœ€æ±‚误显示æˆâ€œå·²å›žé…â€ã€‚新增历å²åŒºåŸŸéœ€è¦å‰ç«¯æŒ‰ä¸Šæ–¹æ¸…å•æŽ¥å…¥ï¼›æœªæŽ¥å…¥æ—¶åªæ˜¯æš‚ä¸å±•示历å²å†…容,ä¸å½±å“釿–°æäº¤ã€‚ + +## 五ã€åŽç«¯éªŒè¯ + +- 驳回 CAS åŽŸå­æ›´æ–° `status`ã€`is_active=false`ã€é©³å›žåŽŸå› /时间并清空接å•人。 +- Fleet Outbox 按“订å•需求驳回æˆåŠŸ → å–æ¶ˆæœªæ´¾å ä½â€çš„é¡ºåºæ‰§è¡Œï¼›é‡æ”¾å·²å¤±æ´»é©³å›žåކ岿—¶å¹‚ç­‰æˆåŠŸã€‚ +- æ—  active éœ€æ±‚æ—¶æŒ‰åŽ†å²æœ€é«˜ç‰ˆæœ¬é€’增,兼容旧 active rejected æ•°æ®ã€‚ +- 订å•/Fleet ç›¸å…³å®šå‘æµ‹è¯•累计 658 项通过。 +- `mvn -pl hl-order-service-v3 -am verify`ã€`mvn -pl hl-fleet-service -am verify` å’Œ fleet `spotless:check` 全部通过。 +- åŽç«¯ PR [wx/HL#5206](https://git.1814.love:8443/wx/HL/pulls/5206) å·²åˆå¹¶åˆ° + `dev-v3@c13a035d0`;测试环境滚动部署任务 `a2a5a9fa` æˆåŠŸï¼Œ8086/8186 两实例å¥åº·ã€‚ +- 网关以 `wx` 验è¯è®¢å• `26-9919`:驳回è¿ç§»åŽ `vehicleGroup=null`, + `vehicleHistory` 返回 v1ã€`REJECTED_TO_CONSULTANT`ã€`isActive=false` åŠåŽŸé©³å›žåŽŸå› ï¼› + 釿–°æäº¤è¿”回 v2ã€`PENDING`ï¼Œå†æ¬¡æŸ¥è¯¢åŒæ—¶ä¿ç•™ v1 历å²å’Œ v2 当å‰éœ€æ±‚。 +- 测试库核对:v1 已失活且ä¿ç•™ï¼Œv2 为唯一 activeï¼›Fleet 为 v2 ç”Ÿæˆ 6 æ¡ + `unassigned` 日切片,旧 v1 çš„ 6 æ¡æ´¾å•ä¿æŒ `canceled`。 +- å¼‚å¸¸å›¢å· `26-4165` çš„ 3 æ¡æ—§æ´¾å•å‡å·²å–消并软删除,0 æ¡å¯è§ã€0 æ¡åœ¨é€”ï¼› + 对应失败 Outbox 已进入 `QUARANTINED`ï¼Œç½‘å…³çœ‹æ¿æŒ‰å›¢å·æœç´¢è¿”回 0 æ¡ã€‚ + +> 本文是å‰ç«¯æŽ¥å…¥é€šçŸ¥ï¼Œä¸ä»£è¡¨å·²ä¿®æ”¹æˆ–å‘布 `mmg/hl-ui`。