71 行
4.4 KiB
Markdown
71 行
4.4 KiB
Markdown
---
|
||
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
|
||
- **前端消费**: 无需改动
|