diff --git a/changelogs-v2/2026-06/12_后端核实回执_保单按钮收敛与车辆导入弹窗映射-无接口变更-管理后台.md b/changelogs-v2/2026-06/12_后端核实回执_保单按钮收敛与车辆导入弹窗映射-无接口变更-管理后台.md new file mode 100644 index 0000000..3ba929e --- /dev/null +++ b/changelogs-v2/2026-06/12_后端核实回执_保单按钮收敛与车辆导入弹窗映射-无接口变更-管理后台.md @@ -0,0 +1,53 @@ +# 【后端核实回执·管理后台】保单按钮两处收敛 + 车辆导入弹窗映射——前端 SYNC-20260612-10 全部确认,无接口变更 + +> 服务:hl-order-service-v3(8086/8186) + hl-fleet-service(8087) | 对应前端:SYNC-20260612-10(commit f642b064) | 后端无代码改动,本文是核实回执(2026-06-12) +> 背景:前端回报「下载/重传保单」真实落点在保险订单台账页(非司机抽屉),已两处按 source 收敛;并修车辆导入结果弹窗字段映射;质疑 blob 归因。后端逐项核实如下。 + +## ⚠️ 关键说明 + +1. **前端两处收敛方案后端全部确认正确,双方版本在测试服已对齐**,前端无需再动。 +2. 此前 changelog 12_3765 写按钮在「详情抽屉」系沿用最初反馈原话,实际落点在台账页——契约指引(按 `source` 收敛)两处通用,结论不变。 +3. blob/InvalidStateError 议题双方归零关闭(见 §3)。 + +## 1. 保单按钮收敛——后端契约逐项核实(均实测) + +| 前端收敛点 | 后端支撑 | 实测结论 | +|---|---|---| +| 台账页 MANUAL 行隐藏「下载/重传保单」 | `GET /v3/admin/insurance/list` 列表行 VO 自带 `source`(BAOYOU/MANUAL) | 测试服实测每行 source 非 null;直调下载/重传返 **540226** 兜底 | +| 台账页 MANUAL 行隐藏「退保」(上批已收敛) | 管理端退保接口拦 MANUAL | 返 **540224**「手工录入的年保单不支持退保」 | +| 司机抽屉 MANUAL 行隐藏「退保」+ 加「手工录入」标识 | `GET /admin/fleet/drivers/{driverId}/insurance/policies` 每行 `source` 字段即为此用 | 与 540224 守卫严丝合缝 | + +台账列表实测示例(`GET /v3/admin/insurance/list?page=1&pageSize=10`): + +```json +{ + "insuranceOrderId": "2065360048397193217", + "source": "MANUAL", // 每行均返,非 null + "bizType": "DRIVER", + "status": "CANCELLED" // 该批 CANCELLED 是后端 E2E 清场数据,属正常 +} +``` + +注意:**判断按钮显隐请只认 `source`,勿用 `bizType` 当代理**——司机行程险走保游网出单时 `bizType=DRIVER` 但 `source=BAOYOU`,有电子保单,下载/重传按钮应保留。 + +## 2. 车辆导入结果弹窗映射——前端重写目标字段与后端 VO 完全一致 + +后端 `VehicleImportRespVO` 真实字段(核实于当前 dev-v3): + +| 字段 | 类型 | 含义 | +|---|---|---| +| `totalRows` | int | 数据总行数 | +| `insertedCount` | int | 新增成功数 | +| `updatedCount` | int | 更新成功数 | +| `errorCount` | int | 失败行数 | +| `errors` | array | 失败明细(行号+原因) | +| `warnedCount` | int | 警告行数 | +| `warnings` | array | 警告明细 | + +前端旧映射(failed/errorRows/success/total)确实全部不存在于后端 VO,「导入成功 0 条」怪象由此而来,重写后正确。司机导入 `DriverImportRespVO` 字段结构同族,如需对照可看测试服 doc.html。 + +## 3. blob/InvalidStateError 议题关闭 + +- 前端全仓核查无 `responseType:'blob'` 配置;后端侧该归因同样无代码对应物——此前那条「前端Bug_车辆批量导入responseType-blob」changelog 的归因有误,以本回执为准。 +- 真实病因即 §2 的弹窗字段映射 bug,已修。 +- 若真机后续仍复现该 console 报错,排查方向是测试服部署的前端构建来源(是否旧构建残留),与双方当前代码无关。