hl-api-changelog/changelogs-v2/2026-08/06_5594_退保前校验保单已出单未出单撤销投保任务-修改接口-管理后台.md
API Changelog Bot 557bbf4ad1
所有检测均成功
changelog-filename-gate / validate (push) Successful in 2s
changelog(v2): 退保前校验保单已出单,未出单撤销投保任务(#5594)
2026-08-06 16:29:30 +08:00

3.9 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 5594 退保前校验保单已出单,未出单撤销投保任务而非退保成功 admin wx(GIT) 修改接口 deployed verified not_required 后端完成PR #5606 已合并 dev-v3 并部署 TEST,网关验证通过。退保收敛前校验保单已出单INSURED,未出单时撤销投保任务并收敛退保为撤销终态,不再产生'未投保却退保成功'假象。 2026-08-06 dev-v3 2026-08-06T16:10:00+08:00

退保前校验保单已出单,未出单撤销投保任务而非退保成功

后端完成PR #5606 已合并 dev-v3 并部署 TEST,网关验证通过。

关联 / 联系人

链接

联系人

  • 后端负责人: @wx

背景

TEST 实证(道尔吉 08-30派单取消退保时,投保任务PURCHASE仍处于 PENDING错误 100503「司机险任务锁暂不可用」,insurance_order_id 为空,但同日退保检查REFUND_CHECK已收敛 SUCCESS——形成「未投保成功却退保成功」假象。

根因:refundServiceDateIfNoActiveAssignment 在退保候选保单INSURED/INSURING为空时直接收敛 REFUND_CHECK 为 SUCCESS;retryRefund/refundPolicyUnderLifecycleLock 在无保单或非退保候选时按幂等「退保成功」收敛——未出单投保任务被悬挂、退保却显示成功,投保/退保状态机不一致。

变更接口

方法 路径 来源 说明
GET /fleet/driver-insurance/task/list DriverInsuranceControllerfleet 状态枚举新增 CANCELLED(已撤销)终态:未出单投保任务撤销后任务列表展示「已撤销」,退保任务同样收敛为「已撤销」而非「成功」

无请求/响应字段增减;仅 FleetInsuranceTaskStatusEnum 新增 CANCELLED 状态值,管理后台任务状态展示与筛选可见新增状态。无前端 API 变化

行为变化

  • 退保前校验保单已出单refundServiceDateIfNoActiveAssignment 发现该司机该服务日无已出单保单INSURED且存在未出单投保任务PURCHASE PENDING/PROCESSING 且 insurance_order_id 为空)时,先撤销投保任务为 CANCELLED(终态),再收敛退保任务为撤销终态,不再产生「退保成功」假象
  • 幂等边界:已有保险订单的投保中任务(如退保后重投)不撤销,避免误伤合法在途投保
  • 投保/退保状态机一致性PURCHASE 未出单 → CANCELLED撤销,无保单;REFUND/REFUND_CHECK 在无投保任务时保持既有幂等 SUCCESS权威保单本就无可退;撤销场景统一收敛 CANCELLED
  • 汇总收敛summarizeRefundChecks 将 CANCELLED 计为撤销收敛,避免误判 RETRYABLE_FAILURE 无限重试

前端/调用方动作

无。任务列表状态展示自动透出新枚举值「已撤销」,无需前端配合。

验证证据

  • 定向测试FleetInsuranceTaskServiceTest 142/142含 3 个新增用例:取消退保撤销投保、无任务幂等成功、重试退保撤销);保险域 187 项全过
  • fleet verify 3199 项(含 MySQL 集成0 失败;spotless 通过
  • 网关验证TEST,16:22 部署后):① 任务列表 200,道尔吉 08-30 存量任务可见PURCHASE PENDING 未出单 + REFUND SUCCESS 旧假象),部署未破坏存量;② 保单接口实证 08-30 起保保单 0 张("未投保却退保成功"场景实锤);③ 对已 SUCCESS REFUND 任务 retry 幂等安全(返回 SUCCESS、不调保司、不重复退保