一种基于脚本引擎的保险产品业务规则热更新方法及系统与流程
本发明涉及规则引擎与保险业务处理,尤其涉及一种基于脚本引擎的保险产品业务规则热更新方法及系统。
背景技术:
1、保险建议书系统作为保险业务数字化的核心平台,承担着险种展示、投保规则校验、保费试算等关键功能。目前,行业内多数系统的业务规则仍采用硬编码方式实现,将渠道限制、年龄限制、性别限制、保额限制以及险种显示控制、默认值设置、停售判断等逻辑直接写入java源代码。开发人员根据产品需求,通过if-else条件分支将各类规则固化在代码层面。当保险规则因市场变化或政策调整需要变更时,必须修改源码、重新编译打包,并经测试验证后才能发布上线。
2、上述技术方案在实际运营中暴露出多方面的局限性。规则变更的上线周期较长,通常需要数天甚至数周,难以匹配保险产品快速迭代的市场节奏。随着产品数量持续增加,硬编码的业务规则代码不断膨胀,导致系统代码量剧增,维护难度和成本显著上升。频繁修改核心业务代码并重新发布系统,容易引入生产环境故障,对系统稳定性构成威胁。业务人员无法直接修改规则,必须经过it部门进行需求中转,沟通成本高且容易出现理解偏差,业务响应速度受到明显制约。此外,针对不同销售渠道、不同分支机构以及不同时间段的差异化规则配置,硬编码方式难以实现灵活管理,代码中充斥着大量渠道判断和条件分支,进一步加剧了系统的复杂程度。
3、因此,亟需提供一种技术方案解决上述问题。
技术实现思路
1、为解决上述技术问题,本发明提供了一种基于脚本引擎的保险产品业务规则热更新方法及系统。
2、第一方面,本发明提供一种基于脚本引擎的保险产品业务规则热更新方法,该方法的技术方案如下:
3、将保险产品的业务规则脚本和五维配置参数存储至规则配置数据库,所述业务规则脚本包含初始化函数、校验函数和最终校验函数,所述五维配置参数包含渠道维度、机构维度、时间维度、投保人属性维度和脚本条件维度;
4、通过脚本引擎从所述规则配置数据库加载并编译所述业务规则脚本,将编译后的所述业务规则脚本缓存于缓存管理器;
5、响应于保费试算请求,获取建议书上下文数据,调用所述初始化函数构建规则执行环境,在所述规则执行环境中依次执行产品级校验和险种级校验,在所述产品级校验和所述险种级校验中分别调用所述校验函数对所述建议书上下文数据进行合法性校验;
6、在所述产品级校验和所述险种级校验均通过后,调用保费计算引擎进行保费计算并获取保费计算结果,调用所述最终校验函数对所述保费计算结果进行合法性校验;
7、按照所述渠道维度、所述机构维度、所述时间维度、所述投保人属性维度和所述脚本条件维度的优先级顺序,对所述保险产品下的各险种进行逐级匹配过滤,根据过滤结果确定各险种的可见性和录入项控制结果;
8、当检测到所述业务规则脚本或所述五维配置参数发生变更时,更新缓存刷新标志位,所述缓存管理器根据所述缓存刷新标志位的变化清除所述脚本引擎的缓存,并在下一次保费试算请求到达时重新从所述规则配置数据库加载所述业务规则脚本并编译后存入所述缓存管理器。
9、本发明的一种基于脚本引擎的保险产品业务规则热更新方法的有益效果如下:
10、本发明的方法通过将保险产品的业务规则脚本和五维配置参数存储至规则配置数据库,利用脚本引擎加载编译并缓存业务规则脚本,在保费试算过程中依次调用初始化函数、校验函数和最终校验函数完成产品级、险种级及保费结果的多级合法性校验,同时按照渠道、机构、时间、投保人属性和脚本条件五个维度进行逐级匹配过滤以控制险种可见性与录入项,并在规则变更时通过缓存刷新标志位触发缓存清除与重新加载,解决了传统硬编码方式下规则变更周期长、代码维护困难、业务响应滞后以及差异化规则配置不灵活的问题,实现了业务规则与程序代码的分离部署和动态热更新,提高了规则变更的响应速度与配置灵活性,降低了系统维护成本和版本发布风险。
11、在上述方案的基础上,本发明的一种基于脚本引擎的保险产品业务规则热更新方法还可以做如下改进。
12、在一种可选的方式中,所述产品级校验的步骤,包括:
13、对所述建议书上下文数据执行停售状态校验,判断所述保险产品是否已停售;
14、执行渠道可用性校验,判断发起所述保费试算请求的渠道是否允许销售所述保险产品;
15、执行产品组合合法性校验,判断所述保险产品中主险与附加险的搭配组合是否符合预设组合规则。
16、采用上述可选方式的有益效果为:进一步在产品级校验环节对保险产品的停售状态、渠道可用性以及主险与附加险的搭配组合进行合法性校验,在产品层面拦截不符合销售条件的投保请求,避免进行不必要的保费计算,提升业务处理准确性与合规性。
17、在一种可选的方式中,所述险种级校验的步骤,包括:
18、分别获取所述保险产品下各险种的投保参数,对各险种的所述投保参数执行年龄限制校验、性别限制校验、保额上下限校验、交费期限校验和职业风险等级校验,每个险种独立输出校验通过或校验不通过的判定结果。
19、采用上述可选方式的有益效果为:进一步在险种级校验环节对各险种的年龄、性别、保额、交费期限及职业风险等级进行独立校验,使每个险种均输出独立的判定结果,细化投保规则的校验粒度,保障各险种准入条件的精确控制。
20、在一种可选的方式中,所述按照所述渠道维度、所述机构维度、所述时间维度、所述投保人属性维度和所述脚本条件维度的优先级顺序,对所述保险产品下的各险种进行逐级匹配过滤的步骤,包括:
21、根据所述保险产品的产品编码和所述保险产品下各险种的险种编码,结合所述渠道维度的渠道编码和所述机构维度的机构编码,生成匹配key集合,按照所述匹配key中维度数量从多到少的顺序对所述匹配key集合进行排序,按照排序结果在所述规则配置数据库中匹配所述五维配置参数;
22、对匹配到的所述五维配置参数,先按照所述渠道维度进行校验,再按照所述机构维度进行校验,然后按照所述时间维度进行校验,再按照所述投保人属性维度进行校验,最后按照所述脚本条件维度进行校验;
23、其中,各维度按照所述优先级顺序逐级执行,当前维度的校验不通过时终止后续维度的校验,所有维度校验通过后确定所述险种的可见性为允许显示。
24、采用上述可选方式的有益效果为:进一步生成匹配key集合并按维度数量从多到少排序以匹配五维配置参数,再按渠道、机构、时间、投保人属性及脚本条件逐级校验并在不通过时终止后续,缩短匹配路径并提升规则匹配效率,保障规则执行严谨性。
25、在一种可选的方式中,所述时间维度的校验步骤,包括:
26、获取所述五维配置参数中的显示开始时间和显示结束时间;
27、在所述显示开始时间为空且当前时间大于所述显示结束时间的情况下,确定所述时间维度校验不通过;
28、在所述显示结束时间为空且当前时间小于所述显示开始时间的情况下,确定所述时间维度校验不通过;
29、在所述显示开始时间小于所述显示结束时间且当前时间不属于所述显示开始时间与所述显示结束时间之间的情况下,确定所述时间维度校验不通过;
30、在所述显示开始时间大于所述显示结束时间且当前时间属于所述显示开始时间与所述显示结束时间之间的情况下,确定所述时间维度校验不通过。
31、采用上述可选方式的有益效果为:进一步通过显示开始时间与显示结束时间的多种组合逻辑对时间维度进行精确校验,覆盖时间区间为空、正向区间及反向区间等多种场景,满足不同保险产品在时间维度上的差异化展示需求。
32、在一种可选的方式中,所述渠道维度的校验步骤,包括:
33、获取所述五维配置参数中所述渠道维度的渠道编码,提取所述渠道编码的首字符作为前缀,根据所述前缀生成前缀匹配key,通过所述前缀匹配key匹配以所述前缀开头的全部子渠道。
34、采用上述可选方式的有益效果为:进一步通过提取渠道编码首字符作为前缀来生成前缀匹配key,匹配以相同前缀开头的全部子渠道,实现渠道维度的一对多批量匹配,简化渠道配置工作量,提升渠道规则管理的便捷性。
35、在一种可选的方式中,所述当检测到所述业务规则脚本或所述五维配置参数发生变更时,更新缓存刷新标志位的步骤,包括:
36、当所述业务规则脚本或所述五维配置参数发生变更时,控制所述缓存管理器更新数据库中的refresh.riskconfflag标志位以触发缓存刷新信号;
37、控制所述缓存管理器轮询检测所述refresh.riskconfflag标志位,当检测到所述refresh.riskconfflag标志位发生变化时,控制所述缓存管理器根据变更所对应的产品编码清除所述缓存管理器中存储的对应脚本引擎实例;
38、控制所述缓存管理器清除所述脚本引擎实例后,在下一次保费试算请求到达时,重新从所述规则配置数据库加载所述业务规则脚本并编译后存储于所述缓存管理器,控制所述缓存管理器通过concurrenthashmap存储所述脚本引擎实例并以产品编码和版本号的组合为键,通过reentrantlock实现双重检查锁以防止并发场景下的重复初始化。
39、采用上述可选方式的有益效果为:进一步通过数据库标志位变化触发缓存清除与脚本重新加载,并结合concurrenthashmap与双重检查锁机制防止并发场景下的重复初始化,保障规则热更新过程的线程安全性与数据一致性。
40、第二方面,本发明提供一种基于脚本引擎的保险产品业务规则热更新系统,该系统的技术方案如下:
41、存储模块,用于将保险产品的业务规则脚本和五维配置参数存储至规则配置数据库,所述业务规则脚本包含初始化函数、校验函数和最终校验函数,所述五维配置参数包含渠道维度、机构维度、时间维度、投保人属性维度和脚本条件维度;
42、处理模块,用于通过脚本引擎从所述规则配置数据库加载并编译所述业务规则脚本,将编译后的所述业务规则脚本缓存于缓存管理器;
43、响应模块,用于响应于保费试算请求,获取建议书上下文数据,调用所述初始化函数构建规则执行环境,在所述规则执行环境中依次执行产品级校验和险种级校验,在所述产品级校验和所述险种级校验中分别调用所述校验函数对所述建议书上下文数据进行合法性校验;
44、调用模块,用于在所述产品级校验和所述险种级校验均通过后,调用保费计算引擎进行保费计算并获取保费计算结果,调用所述最终校验函数对所述保费计算结果进行合法性校验;
45、过滤模块,用于按照所述渠道维度、所述机构维度、所述时间维度、所述投保人属性维度和所述脚本条件维度的优先级顺序,对所述保险产品下的各险种进行逐级匹配过滤,根据过滤结果确定各险种的可见性和录入项控制结果;
46、更新模块,用于当检测到所述业务规则脚本或所述五维配置参数发生变更时,更新缓存刷新标志位,所述缓存管理器根据所述缓存刷新标志位的变化清除所述脚本引擎的缓存,并在下一次保费试算请求到达时重新从所述规则配置数据库加载所述业务规则脚本并编译后存入所述缓存管理器。
47、本发明的一种基于脚本引擎的保险产品业务规则热更新系统的有益效果如下:
48、本发明的系统通过将保险产品的业务规则脚本和五维配置参数存储至规则配置数据库,利用脚本引擎加载编译并缓存业务规则脚本,在保费试算过程中依次调用初始化函数、校验函数和最终校验函数完成产品级、险种级及保费结果的多级合法性校验,同时按照渠道、机构、时间、投保人属性和脚本条件五个维度进行逐级匹配过滤以控制险种可见性与录入项,并在规则变更时通过缓存刷新标志位触发缓存清除与重新加载,解决了传统硬编码方式下规则变更周期长、代码维护困难、业务响应滞后以及差异化规则配置不灵活的问题,实现了业务规则与程序代码的分离部署和动态热更新,提高了规则变更的响应速度与配置灵活性,降低了系统维护成本和版本发布风险。
49、第三方面,本发明的一种电子设备的技术方案如下:
50、包括存储器、处理器及存储在所述存储器上并在所述处理器上运行的程序,所述处理器执行所述程序时实现如本发明的基于脚本引擎的保险产品业务规则热更新方法的步骤。
51、第四方面,本发明提供的一种计算机可读存储介质的技术方案如下:
52、计算机可读存储介质中存储有指令,当计算机可读存储介质读取所述指令时,使所述计算机可读存储介质执行如本发明的基于脚本引擎的保险产品业务规则热更新方法的步骤。
53、上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com