产险保单查询 —— 新增字段清单(前端对接)
需求来源:《佰盈销售新核心系统功能需求_产险业务管理需求规格说明书》1.1 产险保单查询 + 桌面《产险查询.docx》(红色修订部分=本次新增字段)
配套文档:产险保单查询_前端联调说明_BYXM-1891_20261026.md(查询条件、校验、missMessage 口径)
文档日期:2026-10-26 基准分支:开发分支 tabycore一句话:后端已经把这些字段落库并在「保单详情」接口里返回了,前端按下面的字段名直接取即可;不加也能跑,加了才看得到。
一、本次后端做了什么
| # | 内容 | 说明 |
|---|---|---|
| 1 | 主表 / 险种表补列 | car_main、no_car_main 加 BIZFORM、PREMIUMNOTAX;car_charge 加 AMOUNT、PREMIUMNOTAX、PAYTYPE、SETTLECOMMISSIONRATE、SETTLECOMMISSIONBASIS;no_car_charge 加后 4 列(AMOUNT 原表已有) |
| 2 | 导入落库写入 | 审批回写时按导入清单写入:业务形式、总保费(不含税)、保险金额、险种保费(不含税)、缴费方式、结算手续费率、手续费结算依据;总保费(不含税)=该保单各险种保费(不含税)之和 |
| 3 | 历史数据回填 | 已审批通过的老批次从 pi_policy_*_stg 回写一次,页面不用重新导入就能看到值(脚本第 5 段,幂等) |
| 4 | 详情接口返回新字段 | 字段名见 §三 / §四,车险另补了此前一直为空的「生效日期」和「受益人信息(syInfoList)」 |
| 5 | 5 万以下保单也判必录项 | view_car_missmessage / view_nocar_missmessage 去掉 PREMIUM >= 50000 过滤,全量保单都参与「缺失必录项」判断 |
开发库已全部执行并验证:车险 37 单、非车 26 单全部进入视图(改之前只有 5 万以上的才进)。
二、字段名对照总表(页面中文名 → JSON 字段名 → 数据库列)
| 页面字段(docx 里的名字) | JSON 字段名(前端取值) | 所属节点 | 数据库列 | 新增? |
|---|---|---|---|---|
| 生效日期 | generateDate |
policyBasicInfo |
car_main.GENERATEDATE |
车险新增取值,非车原有 |
| 业务形式 | bizForm |
policyBasicInfo |
car_main/no_car_main.BIZFORM |
✅ 新增 |
| 总保费(含税) | premium |
policyBasicInfo |
car_main/no_car_main.PREMIUM |
原有 |
| 总保费(不含税) | premiumNoTax |
policyBasicInfo |
car_main/no_car_main.PREMIUMNOTAX |
✅ 新增 |
| 保险金额 | amount |
vciRiskInfo / tciRiskInfo |
car_charge.AMOUNT |
✅ 车险新增(非车原有) |
| 保额 | amount |
noCarRiskInfo |
no_car_charge.AMOUNT |
原有 |
| 保费(含税) | paidPremium |
同上三个 | *.PREMIUM |
原有 |
| 保费(不含税) | premiumNoTax |
同上三个 | *.PREMIUMNOTAX |
✅ 新增 |
| 缴费方式 | payType |
同上三个 | *.PAYTYPE |
✅ 新增 |
| 结算手续费率(%) | settleCommissionRate |
同上三个 | *.SETTLECOMMISSIONRATE |
✅ 新增 |
| 手续费结算依据 | settleCommissionBasis |
同上三个 | *.SETTLECOMMISSIONBASIS |
✅ 新增 |
| 车船税金额 | totalTax |
tciRiskInfo |
car_charge.TOTALTAX |
原有(仅交强险) |
| 险种大类 | classType |
同上三个 | *.CLASSBIGCODE(翻译后) |
原有 |
| 法定代表人/负责人 | legalPerson |
insureInfo |
*_party.LEGALPERSON |
✅ 上次新增 |
| 授权业务人员姓名 | authorizedName |
insureInfo |
*_party.AUTHORIZEDNAME |
✅ 上次新增 |
| 授权业务人员证件类型 | authorizedIdType |
insureInfo |
*_party.AUTHORIZEDIDTYPE |
✅ 上次新增 |
| 授权业务人员证件号码 | authorizedIdNo |
insureInfo |
*_party.AUTHORIZEDIDNO |
✅ 上次新增 |
| 授权业务人员证件有效止期 | authorizedIdValidDate |
insureInfo |
*_party.AUTHORIZEDIDVALIDDATE |
✅ 上次新增 |
| 授权业务人员移动电话 | authorizedMobile |
insureInfo |
*_party.AUTHORIZEDMOBILE |
✅ 上次新增 |
三、车险保单详情(queryType=1,policyQuery/detail)
返回结构:{ policyBasicInfo, carInfo, insureInfo, agentInfo, vciRiskInfo, tciRiskInfo, insuredInfoList, syInfoList, noCarRiskInfoMap }
3.1 基本信息 policyBasicInfo
| 字段名 | 页面名 | 备注 |
|---|---|---|
generateDate |
生效日期 | 本次补齐(之前车险这一格是空的),格式 yyyy-MM-dd |
bizForm |
业务形式 | 中文原样返回:自有业务 / 渠道业务 |
premium |
总保费(含税) | 保单汇总=商业险+交强险+车船税,保留 2 位小数 |
premiumNoTax |
总保费(不含税) | 保单下所有险种保费(不含税)合计,保留 2 位小数 |
3.2 商业险 vciRiskInfo / 交强险 tciRiskInfo(结构完全相同)
| 字段名 | 页面名 | 备注 |
|---|---|---|
riskCode / riskName |
险种代码 / 险种名称 | 原有 |
classType |
险种大类 | 原有(后端按 RISK+代码 翻译) |
amount |
保险金额 | 本次补齐(车险原来没有这一格) |
paidPremium |
保费(含税) | 原有,2 位小数 |
premiumNoTax |
保费(不含税) | ✅ 新增,2 位小数 |
payType |
缴费方式 | ✅ 新增:趸交 / 按年缴 / 不定期 |
settleCommissionRate |
结算手续费率(%) | ✅ 新增,页面自己补 %,2 位小数 |
settleCommissionBasis |
手续费结算依据 | ✅ 新增:保费(含税) / 保费(不含税) |
totalTax |
车船税金额 | 仅交强险槽位有值(商业险为 null) |
startTime / endTime |
保险起期 / 保险止期 | 原有 |
3.3 投保人 insureInfo(企业投保人专有,个人时这几个字段为 null)
legalPerson、authorizedName、authorizedIdType、authorizedIdNo、authorizedIdValidDate、authorizedMobile—— 与上次交付一致,仅在 insureInfo.type = 企业 时展示;authorizedIdValidDate 为长期时后端直接返回「长期」。
3.4 受益人 syInfoList
本次补齐:车险详情原来完全不查受益人,syInfoList 一直是空数组,页面「受益人信息」段空白。现在按 car_party.PARTYFLAG='3' 返回,元素结构同 insuredInfoList(InsuredInfo):type / insuredName / sexType / identifyType / identifyNumber / identifyValidDate / mobilePhone / companyPhone / partyAddress / insRelationInsured。法定受益人不会落明细行 → 数组为空 → 页面按文档规则隐藏整个「受益人信息」段即可。
四、非车保单详情(queryType=2)
返回结构:{ policyBasicInfo, insureInfo, agentInfo, noCarRiskInfo, insuredInfoList, syInfoList }
4.1 基本信息 policyBasicInfo
bizForm(业务形式)、premiumNoTax(总保费不含税)同车险;generateDate 非车本来就有。
4.2 险种信息 noCarRiskInfo(单对象)
| 字段名 | 页面名 | 备注 |
|---|---|---|
riskCode / riskName / classType |
险种代码 / 名称 / 大类 | 原有 |
amount |
保额 | 原有 |
paidPremium / premiumNoTax |
保费(含税)/(不含税) | 后者 ✅ 新增 |
payType / settleCommissionRate / settleCommissionBasis |
缴费方式 / 结算手续费率 / 手续费结算依据 | ✅ 新增 |
⚠️ 非车一张保单多个险种时,这个对象仍是一个(取导入顺序的第一个)。
no_car_charge里完整保存了所有险种,要按列表展示需要 VO 加 list + 前端循环渲染,本次未做(业务确认后再排期)。
4.3 投保人 / 受益人
insureInfo 企业六项同车险;syInfoList 非车本来就有。
五、字典与展示规则
| 字段 | 取值 | 前端处理 |
|---|---|---|
bizForm |
自有业务 / 渠道业务 |
后端直接返回中文,不要再翻译 |
payType |
趸交 / 按年缴 / 不定期 |
同上;空值显示「-」 |
settleCommissionBasis |
保费(含税) / 保费(不含税) |
同上 |
settleCommissionRate |
数字(如 12.5000) |
展示 2 位小数并拼 %:12.50% |
金额类(premium / premiumNoTax / amount / totalTax) |
字符串数字 | 展示 2 位小数 |
identifyType / authorizedIdType |
1身份证 2营业执照 3许可证 4其他 5统一社会信用代码 |
前端 enum.documentType 源码里要补 5: "统一社会信用代码"(dist 里已临时打过补丁,重新构建会丢) |
六、「缺失必录项」口径变更(重要)
- 取消 5 万保费门槛:两个视图
view_car_missmessage/view_nocar_missmessage已去掉PREMIUM >= 50000,所有保单都会参与必录项判断。 - 影响:列表「是否缺失必录项 = 是」的筛选项(
missFlag=1)结果会明显变多,这是预期效果,不是 bug。 - 判断字段与上次交付一致(个人 / 企业两套口径 + 法定受益人不判受益人),本次只改了「参与范围」。
- 自测 SQL:
七、部署顺序(后端 / DBA)
团财车辆险种列补充_BYXM-1891_20261026.sql(车/非车 charge 表加CLASSBIGCODE、使用性质扩列)团财当事人企业补充字段_BYXM-1891_20261026.sql(party 表补 7 列)团财保费与手续费字段补充_BYXM-1891_20261026.sql(本次新增:加列 + 存量回填)← 新增团财缺失必录项视图_重建_BYXM-1891_20261026.sql(已改为不限 5 万,重建两个视图)- 发版后端代码
第 2、3 步必须先于第 4 步(视图引用新列);四个脚本都幂等,可重复执行。开发库已全部执行并验证。
八、前端 Checklist
- 车险详情「基本信息」补:生效日期
generateDate、业务形式bizForm、总保费(不含税)premiumNoTax(总保费含税改名展示为「总保费(含税)」)。 - 商业险 / 交强险 / 非车险种段补:保险金额
amount(车险)、保费(不含税)premiumNoTax、缴费方式payType、结算手续费率settleCommissionRate、手续费结算依据settleCommissionBasis。 - 车险详情「受益人信息」段接
syInfoList(与insuredInfoList同结构);法定受益人时数组为空 → 隐藏该段。 - 源码常量
enum.documentType补5: "统一社会信用代码"(dist 补丁会在下次构建丢失)。 - 保单列表「缺失必录项」:5 万以下保单现在也会有值,确认分页/文案没问题。
- 金额统一 2 位小数;费率拼
%;bizForm/payType/settleCommissionBasis直接展示中文,不要走字典翻译。
九、联调自测(可直接抄的期望值,开发库)
| 场景 | 入参 | 期望 |
|---|---|---|
| 车险详情·新字段 | policyQuery/detail,queryType=1,policyNo=2026101600040004 |
bizForm=自有业务、premium=3400.00、premiumNoTax=3280.00、vciRiskInfo.amount=500000.00、vciRiskInfo.premiumNoTax=3100.00、payType=趸交、generateDate 有值 |
| 非车详情·新字段 | queryType=2,policyNo=022026102300010003 |
bizForm=自有业务、premiumNoTax=4000.00、noCarRiskInfo.premiumNoTax=4000.00、payType=趸交 |
| 车险受益人 | 导入时选「指定受益人」的保单 | syInfoList 长度 ≥ 1;「法定受益人」的保单 syInfoList = [] |
| 小额保单必录项 | 列表 missFlag=1 + 日期区间 |
保费 100 元的保单(2026101600010001)也应出现在结果里 |