From 69fe46f55c7166e7b92f7041f08ba6fb2f2c575e Mon Sep 17 00:00:00 2001 From: API Changelog Bot Date: Tue, 28 Jul 2026 02:25:56 +0800 Subject: [PATCH] docs(changelog): hand off fleet daily plan invariant fix (#5305) --- ...–¹æ¡ˆé‡æä¸Žå®Œæˆé—­çޝä¸å˜é‡-修改接å£-管ç†åŽå°.md | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 changelogs-v2/2026-07/28_5305_逿—¥æ–¹æ¡ˆé‡æä¸Žå®Œæˆé—­çޝä¸å˜é‡-修改接å£-管ç†åŽå°.md diff --git a/changelogs-v2/2026-07/28_5305_逿—¥æ–¹æ¡ˆé‡æä¸Žå®Œæˆé—­çޝä¸å˜é‡-修改接å£-管ç†åŽå°.md b/changelogs-v2/2026-07/28_5305_逿—¥æ–¹æ¡ˆé‡æä¸Žå®Œæˆé—­çޝä¸å˜é‡-修改接å£-管ç†åŽå°.md new file mode 100644 index 0000000..762b153 --- /dev/null +++ b/changelogs-v2/2026-07/28_5305_逿—¥æ–¹æ¡ˆé‡æä¸Žå®Œæˆé—­çޝä¸å˜é‡-修改接å£-管ç†åŽå°.md @@ -0,0 +1,79 @@ +--- +schema: "hl-changelog/v2" +ticket: "5305" +title: "逿—¥æ–¹æ¡ˆé‡æä¸Žå®Œæˆé—­çޝä¸å˜é‡" +consumer: "admin" +change_type: "修改接å£" +backend_status: "deployed" +gateway_status: "verified" +frontend_status: "not_required" +frontend_owner: "" +frontend_ref: "" +target_release: "" +verified_at: "" +status_note: "ä»…ä¿®æ­£æ—¢æœ‰é€æ—¥æ´¾è½¦ä¿å­˜ä¸Žéœ€æ±‚完æˆäº‹åŠ¡è¯­ä¹‰ï¼›æŽ¥å£è·¯å¾„ã€æ–¹æ³•ã€è¯·æ±‚å“应字段和å‰ç«¯äº¤äº’å‡ä¸å˜" +updated_at: "2026-07-28" +base: "dev-v3" +--- + +# Fleetï¼šé€æ—¥æ–¹æ¡ˆé‡æä¸Žå®Œæˆé—­çޝä¸å˜é‡ + +> **æœåŠ¡**:`hl-fleet-service` +> **Issue**:#5305 +> **å½±å“页é¢**:管ç†åŽå°è½¦åŠ¡ç®¡ç† â†’ 逿—¥é€è½¦æ´¾è½¦æ–¹æ¡ˆä¿å­˜ +> **兼容性**:接å£è·¯å¾„ã€æ–¹æ³•ã€è¯·æ±‚/å“应字段ã€é”™è¯¯ç å’Œæ•°æ®åº“结构ä¸å˜ï¼Œä»…修正既有事务语义 + +## 问题与目标 + +逿—¥æ´¾è½¦æ”¯æŒé‡å¤æäº¤æœ€ç»ˆæ–¹æ¡ˆã€‚旧实现存在五类边界:全程ä¸ç”¨è½¦æˆ–没有实际创建命令时会绕过最终订å•基线;留车/直派模å¼å˜åŒ–å¯èƒ½è¢«è¯¯åˆ¤ä¸ºæ— å˜åŒ–ï¼›æ··åˆæ–¹æ¡ˆä¸­çš„历å²å·²å®Œç»“切片å¯èƒ½å› æ—§å†»ç»“标记缺失阻断需求完æˆï¼›ä»…ä¿®æ”¹é€æ—¥ä»·æ ¼åŽŸå› ä¸ä¼šè½åº“ï¼›åŒæ§½ç´¢å¼•çš„æ—§å–æ¶ˆç‰ˆæœ¬å¯èƒ½æŠ¢å å½“å‰ç¨³å®šæ§½ä½ã€‚ + +本次åŽç«¯ç»Ÿä¸€ä¿®å¤ä¸Šè¿°é‡æã€å†»ç»“和完æˆé—­çŽ¯ï¼Œä¸æ–°å¢žå‰ç«¯å‚数或返回字段。 + +## å˜æ›´æŽ¥å£ï¼ˆæ—¢æœ‰è¯­ä¹‰ä¿®æ­£ï¼‰ + +### `POST /admin/fleet/assignments/batch` + +请求和å“应形状ä¸å˜ï¼š + +1. åŒ…å« `dailyPlan` çš„ä¿å­˜ä¼šåœ¨èµ„æºé”内完æˆå†™å…¥åŽã€å†»ç»“最终方案和生æˆéœ€æ±‚å®Œæˆ Outbox å‰ï¼Œå†æ¬¡è¯»å–当å‰è®¢å•详情ã€è¡Œç¨‹å’Œ active 用车需求;日期ã€äººæ•°ã€è¡Œç¨‹æˆ–需求版本漂移时整批事务回滚。 +2. å³ä½¿å…¨éƒ¨ `dailyPlan[].used=false`,或本次没有实际创建车辆/叿œºæ´¾å•,也执行åŒä¸€æœ€ç»ˆåŸºçº¿é—¨ç¦ã€‚ +3. é‡ææ—¶åŒæ—¶æ¯”较目标 `holdMode`ã€æ´¾å•状æ€ã€è½¦è¾†ã€å¸æœºã€æŽ¥æœºå‚与ã€é€æ—¥ä»·æ ¼å’Œé€æ—¥ä»·æ ¼è°ƒæ•´åŽŸå› ï¼š + - `holding → direct` ä¼šæŒ‰ç›´æ´¾ç›®æ ‡é‡æ–°è½åœ°ï¼› + - `assigned → hold` ä¼šæŒ‰ç•™è½¦ç›®æ ‡é‡æ–°è½åœ°ï¼› + - 原因新增ã€ä¿®æ”¹å’Œåœ¨ä¸å†å离日历价时清空ä¸å†è¢«å¿½ç•¥ï¼›åç¦»æ—¥åŽ†ä»·æ—¶åŽŸå› å¿…å¡«è§„åˆ™ä¿æŒä¸å˜ã€‚ +4. åŽ†å² `completed` 逿—¥åˆ‡ç‰‡å³ä½¿æ¥è‡ªæ—§æ•°æ®ã€æ²¡æœ‰ `dispatchPlanFinalized=1`,在åŒä¸€çŸ©é˜µå·²æœ‰æ˜¾å¼å†»ç»“切片时也按ä¸å¯å˜çš„å·²å®Œæˆæƒå¨æ—¥å¤„ç†ï¼›ä¸ä¿®æ”¹å…¶ä¸šåŠ¡çŠ¶æ€ï¼Œä¹Ÿä¸ä¼šæŠŠçº¯æ—§ç‰ˆæœªå†»ç»“æ‹“æ‰‘è¯¯è®¤æˆæ–°æœ€ç»ˆæ–¹æ¡ˆã€‚ +5. åŒä¸€ `fleetItemIndex` åŒæ—¶å­˜åœ¨æ—§ `canceled` 版本和当å‰åœ¨é€”/éžå–消版本时,稳定槽ä½ä¼˜å…ˆæ²¿ç”¨å½“å‰ç‰ˆæœ¬ï¼Œé¿å…é‡å†™å‘½ä¸­åކ岿§½ä½ã€‚ + +æ‰€æœ‰å¤±è´¥ä»æ²¿ç”¨çŽ°æœ‰é”™è¯¯å“应结构;事务失败ä¸äº§ç”Ÿéœ€æ±‚完æˆäº‹ä»¶ã€‚ + +## å‰ç«¯å¤„ç† + +无需修改å‰ç«¯ä»£ç ï¼š + +- ç»§ç»­æäº¤çŽ°æœ‰ `dailyPlan`ã€`holdMode` å’Œé€æ—¥ä»·æ ¼åŽŸå› ï¼› +- 基线漂移时继续展示åŽç«¯çŽ°æœ‰å¤±è´¥æç¤ºå¹¶åˆ·æ–°åŽé‡è¯•ï¼› +- ä¸éœ€è¦æ–°å¢žå­—段ã€çжæ€åˆ†æ”¯æˆ–页é¢ç»„件。 + +å› æ­¤ `frontend_status=not_required`。 + +## ä¸å½±å“范围 + +- ä¸ä¿®æ”¹ Controllerã€VO/DTO/BOã€Feign 或 shared Java 契约。 +- ä¸ä¿®æ”¹æ•°æ®åº“字段ã€è¿ç§»ã€Long ID 字符串和手机å·è„±æ•规则。 +- 䏿”¹å˜å·²å®Œæˆ/已喿¶ˆä¸šåŠ¡çŠ¶æ€ï¼Œä¸æ”¾å®½åކå²ã€å®Œç»“或关账åªè¯»é—¨ç¦ã€‚ +- ä¸ä¿®æ”¹ `hl-ui` 仓库。 + +## 验è¯è¯æ® + +- åŽç«¯ PR `[wx/HL#5306](https://git.1814.love:8443/wx/HL/pulls/5306)` å·² squash åˆå¹¶è‡³ `dev-v3`,åˆå¹¶æäº¤ ``594d932db``。 +- `hl-fleet-service` 已滚动部署测试环境,8087/8187 åŒå®žä¾‹å¥åº·ã€‚ +- å®šå‘ `AssignmentServiceTest,FleetAssignmentMapperTest`:328 tests,0 failures,0 errors,0 skipped。 +- Fleet reactor verify:2480 tests,0 failures,0 errors,1 skippedï¼›Spotless 628 Java files clean。 +- 独立 Reviewer 无未解决 P0–P1。 +- 真实测试网关通过登录和车务矩阵åªè¯»æŸ¥è¯¢ç¡®è®¤éƒ¨ç½²åŽç½‘å…³ã€è®¤è¯åŠ Fleet æœåŠ¡é“¾è·¯æ­£å¸¸ï¼›æœ¬æ¬¡å†…éƒ¨äº‹åŠ¡ä¿®æ­£æ²¡æœ‰å¯å®‰å…¨æž„é€ çš„å†™ä¾§æ­£ä¾‹ï¼Œæ ¸å¿ƒäº”ç±»è¾¹ç•Œç”±å®šå‘æµ‹è¯•覆盖,探针ä¸äº§ç”Ÿä¸šåŠ¡å†™å…¥ã€‚ +- ç½‘å…³è¯æ®ï¼š`D:/work2/HL-v3/.tmp/5305-gateway.json`,SHA-256 ``4698b3b8b1765715f6dc823664b3d24df2e977d26e6e19da08b5e298c6b6b0f6``。 +- 契约审查:`not_required`ï¼›å½“å‰ diff æ—  Controllerã€è¯·æ±‚å“应模型ã€Feign 或 shared Java å˜åŒ–。 + +当å‰çжæ€ï¼šåŽç«¯å·²éƒ¨ç½²ã€ç½‘关兼容探针已通过,å‰ç«¯æ— éœ€æ”¹é€ ã€‚ + +å…³è”:#5305。 -- 2.43.0