diff --git a/changelogs-v2/2026-08/06_5586_投保成功出单后司机档案保险状态自动同步为有保(INSURED回调兜底重绑)-修改接口-管理后台.md b/changelogs-v2/2026-08/06_5586_投保成功出单后司机档案保险状态自动同步为有保(INSURED回调兜底重绑)-修改接口-管理后台.md new file mode 100644 index 0000000..41466d7 --- /dev/null +++ b/changelogs-v2/2026-08/06_5586_投保成功出单后司机档案保险状态自动同步为有保(INSURED回调兜底重绑)-修改接口-管理后台.md @@ -0,0 +1,70 @@ +--- +schema: "hl-changelog/v2" +ticket: "5586" +title: "投保成功出单后司机档案保险状态自动同步为有保(INSURED回调兜底重绑)" +consumer: "admin" +change_type: "修改接口" +author: "wx(GIT)" +backend_status: "deployed" +gateway_status: "verified" +frontend_status: "not_required" +frontend_owner: "" +frontend_ref: "" +target_release: "" +verified_at: "" +status_note: "后端完成:PR #5587 已合并 dev-v3 并部署 TEST;网关实测 bindAnnual=false 投保(档案 none)→ INSURED 回调 → 档案自动兜底重绑 annual+保单号;退保→解绑→再投保闭环正常。纯后端数据同步修复,无前端契约变更。" +updated_at: "2026-08-06" +base: "dev-v3" +generated: "2026-08-06T11:58:00+08:00" +--- + +# 投保成功出单后司机档案保险状态自动同步为有保(INSURED回调兜底重绑) + +> **服务**: hl-fleet-service +> **PR**: [#5587](https://git.1814.love:8443/wx/HL/pulls/5587) +> **Issue**: [#5586](https://git.1814.love:8443/wx/HL/issues/5586) +> **日期**: 2026-08-06 + +## 背景 + +协调台实测(2026-08-06 11:14):司机"菜单师傅"(2073742230014644225)真实保游投保成功出单(insurance_order 2085202532040155138,INSURED,保单号 11209006600507258063,¥3),但 `fleet_driver.insurance_type` 仍 none、policy_no 空——投保成功→司机档案保险状态同步链路未闭合。#5558 已修"投保 bindAnnual 缺省绑定全年保险"(受理即绑),但档案无保(投保受理绑定缺失,或 FAILED/CANCELLED 通知先于 INSURED 乱序到达把绑定解掉后未重绑)时,INSURED 回调仍被"绑定一致性/来源守卫"提前跳过。 + +## 变更接口 + +| 方法 | 路径 | 来源 | 变更 | +|---|---|---|---| +| `POST` | `/internal/fleet/drivers/insurance/annual-policy-status` | `InternalDriverInsuranceController`(fleet) | 语义变更:INSURED 通知在 CAS 补填未命中且档案无保(none/空)时**兜底重绑年保**(type=annual+保单号+保费+保障起止+insurance_order_id+source=baoyou) | + +字段结构不变,仅通知处理语义调整。**行为矩阵**: + +| 档案状态 | INSURED 通知 | FAILED/CANCELLED 通知 | +|---|---|---| +| 绑该单(annual+baoyou+orderId 匹配) | CAS 补填保单号(原行为) | CAS 解绑回 none(原行为) | +| **档案无保(none/空,orderId=null)** | **兜底重绑年保(#5586 新增)** | 解绑 CAS 短路(affectedRows=0,静默) | +| 绑别的单 / perTrip / manual 台账年保 | 跳过(不覆盖换绑与手动语义) | 跳过 | + +## 前端/调用方动作 + +- **无需前端改动**(纯后端数据同步修复,接口字段不变)。 +- 司机详情"投保"后刷新即可看到档案有保(保险 Tab 展示源=档案 insurance 字段 + 保单列表)。 + +## 验证证据 + +- 定向测试:DriverServiceTest 147/147(+3:档案 none+INSURED→兜底重绑 / perTrip 档案→不动 / 缺保障起止→跳过);既有守卫测试(绑定不一致/source 非 baoyou/FAILED 解绑/INSURED 补填)保持通过;DriverInsuranceServiceTest 25/25、DriverPolicyStatusOutboxEffectServiceTest 2/2。 +- fleet 全量 `mvn -pl hl-fleet-service -am verify`:BUILD SUCCESS(3168 tests,0 failures,0 errors,4 skipped,含 spotless)。 +- 网关验证(TEST,司机=菜单师傅):① bindAnnual=true 投保→受理即绑 annual→INSURED 回调补填保单号;② 退保→保单 CANCELLED→档案解绑回 none;③ **bindAnnual=false 投保(档案保持 none)→ INSURED 回调→档案自动兜底重绑**(type=annual、policyNo=11209006600507256613、orderId=2085211341932400641、source=baoyou);④ 司机详情"有保"显示与 insurance_order 一致。 +- 历史数据批量同步 SOP:internal 端点幂等重放 INSURED 通知(档案 none 自动兜底重绑);本环境 Nacos 断连期间无法经网关直达 internal 端点(403 属正常,Feign LB 直连),重放由 Nacos 可达环境执行。 + +## 关联/联系人 + +### 链接 + +- [后端工单 #5586](https://git.1814.love:8443/wx/HL/issues/5586) +- [后端 PR #5587](https://git.1814.love:8443/wx/HL/pulls/5587) +- Merge commit: [df0c5d2c7](https://git.1814.love:8443/wx/HL/commit/df0c5d2c7029f19eae85c39ad9c04223faeffc5e) +- 关联:[#5558 投保缺省绑定全年保险](https://git.1814.love:8443/wx/HL/issues/5558)、[#3760 保游年险绑定](https://git.1814.love:8443/wx/HL/issues/3760) + +### 联系人 + +- **后端负责人**: @wx +- **前端消费**: 无需改动