产险保单查询 —— 新增字段清单(前端对接)

需求来源:《佰盈销售新核心系统功能需求_产险业务管理需求规格说明书》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:
Sql
复制成功
select * from view_car_missmessage where POLICYNO = '保单号'; -- 车险
select * from view_nocar_missmessage where POLICYNO = '保单号'; -- 非车
-- 小额保单也应该有结果(以前查不到)
select POLICYNO, PREMIUM, PREMIUMNOTAX, BIZFORM from car_main where PREMIUM < 50000 limit 10;

七、部署顺序(后端 / DBA)

  1. 团财车辆险种列补充_BYXM-1891_20261026.sql(车/非车 charge 表加 CLASSBIGCODE、使用性质扩列)
  2. 团财当事人企业补充字段_BYXM-1891_20261026.sql(party 表补 7 列)
  3. 团财保费与手续费字段补充_BYXM-1891_20261026.sql(本次新增:加列 + 存量回填)← 新增
  4. 团财缺失必录项视图_重建_BYXM-1891_20261026.sql(已改为不限 5 万,重建两个视图)
  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)也应出现在结果里

本页笔记

加载中…