协议承保规则接口对接文档.md 8.5 KB

协议承保规则接口对接文档


一、新增承保规则

接口路径POST /agreementRules/rulesAdd

请求参数

字段名 类型 必填 描述
agreementId String 协议ID
startTime String 生效开始时间
endTime String 生效截止时间
rulesAttrList Array<PtlAgreementUndwrtRulesAttrLink> 并且规则属性(AND 逻辑,单条规则模式)
rulesGroups Array<RulesGroupParam> 【新增】 规则属性分组(批量多条规则模式)

两种模式说明

  • 单条规则模式:使用 rulesAttrList,创建一条规则,parentId 为空
  • 批量规则模式:使用 rulesGroups,一次创建多条规则,共享同一个 parentId,按分组顺序生成 orderNum
  • 两种模式互斥,优先使用 rulesGroups 批量模式

RulesGroupParam 结构

字段名 类型 必填 描述
rulesAttrList Array<PtlAgreementUndwrtRulesAttrLink> 该组规则属性(AND 逻辑)

PtlAgreementUndwrtRulesAttrLink 结构

字段 类型 描述
attrId String 协议属性ID
attrCode String 协议属性编码
min String 左操作数(单选/输入值,数组时逗号分隔)
operator String 运算符:1.范围 2.小于 3.小于等于 4.大于 5.大于等于
max String 右操作数(范围值上限)
minArray String[] 左操作数数组(用于 checkbox/select/inputTag,非数据库字段)

请求体示例

单条规则模式

{
    "agreementId": "123456",
    "startTime": "2026-01-01",
    "endTime": "2026-12-31",
    "rulesAttrList": [
        {
            "attrCode": "VehicleAge",
            "min": "0",
            "max": "5",
            "operator": "1"
        },
        {
            "attrCode": "LicenseArea",
            "min": "BJ,SH",
            "operator": "1"
        }
    ]
}

批量规则模式

{
    "agreementId": "123456",
    "startTime": "2026-01-01",
    "endTime": "2026-12-31",
    "rulesGroups": [
        {
            "rulesAttrList": [
                {
                    "attrCode": "VehicleAge",
                    "min": "0",
                    "max": "5",
                    "operator": "1"
                }
            ]
        },
        {
            "rulesAttrList": [
                {
                    "attrCode": "LicenseArea",
                    "min": "BJ,SH",
                    "operator": "1"
                },
                {
                    "attrCode": "Brand",
                    "min": "AUDI,BMW",
                    "operator": "1"
                }
            ]
        }
    ]
}

响应

{
    "code": 200,
    "msg": "添加承保规则成功"
}

二、修改承保规则

接口路径POST /agreementRules/rulesEdit

请求参数

字段名 类型 必填 描述
id String 承保规则ID
agreementId String 协议ID
startTime String 生效开始时间
endTime String 生效截止时间
rulesAttrList Array<PtlAgreementUndwrtRulesAttrLink> 并且规则属性(AND 逻辑)

请求体示例

{
    "id": "987654",
    "agreementId": "123456",
    "startTime": "2026-01-01",
    "endTime": "2026-12-31",
    "rulesAttrList": [
        {
            "attrCode": "VehicleAge",
            "min": "0",
            "max": "5",
            "operator": "1"
        }
    ]
}

修改逻辑:先删除该规则下的所有旧属性关联数据,再重新插入新的规则属性。

响应

{
    "code": 200,
    "msg": "修改承保规则成功"
}

三、承保规则列表查询

接口路径GET /agreementRules/rulesList

请求参数

参数 类型 必填 描述
agreementId String 协议ID

响应字段

字段 类型 描述
id String 主键
agreementId String 协议ID
startTime String 生效开始时间
endTime String 生效截止时间
ruleDescription String 规则描述文字
parentId String 【新增】 父规则ID(批量模式时共用)
orderNum Integer 显示顺序
costsAttrLinks Array 规则属性详情
costVoList Array 关联费用列表

响应示例

{
    "code": 200,
    "data": [
        {
            "id": "987654",
            "agreementId": "123456",
            "startTime": "2026-01-01",
            "endTime": "2026-12-31",
            "ruleDescription": "车龄范围值0到5,",
            "parentId": "1792000000000000001",
            "orderNum": 1,
            "costsAttrLinks": [],
            "costVoList": []
        },
        {
            "id": "987655",
            "agreementId": "123456",
            "startTime": "2026-01-01",
            "endTime": "2026-12-31",
            "ruleDescription": "上牌城市为北京市,上海市,品牌为奥迪,宝马,",
            "parentId": "1792000000000000001",
            "orderNum": 2,
            "costsAttrLinks": [],
            "costVoList": []
        }
    ]
}

四、获取承保规则详情

接口路径GET /agreementRules/rulesGet

请求参数

参数 类型 必填 描述
ruleId String 承保规则ID

响应

与列表接口返回结构一致,包含 parentId 字段。


五、根据父ID查询规则列表【新增】

接口路径GET /agreementRules/rulesListByParentId

请求参数

参数 类型 必填 描述
parentId String 父规则ID

功能说明

当使用批量规则模式(rulesGroups)新增规则时,同批次的所有子规则共享同一个 parentId。调用此接口可根据 parentId 查询该批次下的所有子规则列表。

响应字段

rulesList 接口返回结构一致。

响应示例

{
    "code": 200,
    "data": [
        {
            "id": "987654",
            "agreementId": "123456",
            "startTime": "2026-01-01",
            "endTime": "2026-12-31",
            "ruleDescription": "车龄范围值0到5,",
            "parentId": "1792000000000000001",
            "orderNum": 1,
            "costsAttrLinks": [],
            "costVoList": []
        },
        {
            "id": "987655",
            "agreementId": "123456",
            "startTime": "2026-01-01",
            "endTime": "2026-12-31",
            "ruleDescription": "上牌城市为北京市,上海市,",
            "parentId": "1792000000000000001",
            "orderNum": 2,
            "costsAttrLinks": [],
            "costVoList": []
        }
    ]
}

六、删除承保规则

接口路径DELETE /agreementRules/rulesDelete

请求参数

参数 类型 必填 描述
id String 承保规则ID

响应

{
    "code": 200,
    "data": "删除成功"
}

七、获取承保规则明细

接口路径GET /agreementRules/getRuleInfo

请求参数

参数 类型 必填 描述
ruleId String 承保规则ID

响应

返回该规则下所有属性关联明细列表。


变更总结

接口 变更点 变更内容
POST /rulesAdd 请求参数新增 rulesGroups(批量规则分组),支持一次创建多条规则
POST /rulesAdd 逻辑变更 批量模式下所有子规则共享同一 parentId,按分组顺序生成 orderNum
GET /rulesList 返回值新增 parentId(父规则ID)
GET /rulesGet 返回值新增 parentId(父规则ID)
GET /rulesListByParentId 新增接口 根据父ID查询子规则列表

业务逻辑说明

  • 单条模式:使用 rulesAttrList 创建一条规则,parentIdnull
  • 批量模式:使用 rulesGroups 一次创建多条规则,系统生成统一 parentId 关联同一批次的所有子规则
  • 批量模式与单条模式互斥,优先处理 rulesGroups
  • 通过 rulesListByParentId 接口可按 parentId 查询同批次的所有子规则
  • 修改接口仅支持对单条规则进行编辑

数据库变更说明

ptl_agreement_undwrt_rules 表需新增字段:

ALTER TABLE ptl_agreement_undwrt_rules ADD COLUMN parent_id VARCHAR(64) DEFAULT NULL COMMENT '父规则ID';