本发明涉及基于groovy语言可视化计算公式实现的方法技术领域,具体为一种基于groovy语言可视化计算公式实现的方法。
背景技术:
groovy是一种动态语言,基于jvm的敏捷开发语言,可直接运行在java虚拟机中,并且具备脚本语言的特点。当运行groovy脚本时,由于已经集成了java类库,脚本会被编译成java类字节码,这样groovy脚本即可用于任何装有java虚拟机的服务。目前的groovy计算需要专业人员配置,使用复杂,对普通人员不具备易用性,一方面计算公式配置繁琐,另一方面结果无法作用于其他计算公式进行联动,因此,亟待一种改进的技术来解决现有技术中所存在的这一问题。
技术实现要素:
本发明的目的在于提供一种基于groovy语言可视化计算公式实现的方法,计算公式可视化配置界面,便于操作,可视化配置的计算公式解析编译引擎,用于groovy可识别公式,实现与其他计算公式进行联动,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:一种基于groovy语言可视化计算公式实现的方法,包括以下步骤:
步骤一:首先由开发人员建立底层方法库,随后底层方法库录入计算公式方法库;
步骤二:管理人员将可视化设计界面采用调用计算公式方法库的方法进行配置;
步骤三:根据用户的需要,配置并选择好的计算公式;
步骤四:将配置好的计算公式进行方法解析,随后采用groovy执行,随后将热点计算公式进行自动缓存,针对解析后相同的公式字符串,对相同的公式进行编译后的字节码缓存;
步骤五:进行多线程公式计算引擎输出计算结果计算公式方法库。
优选的,所述步骤一中计算公式方法库包括普通文本拼接,数字的数学计算、大小比较,日期取值、大小比较、日期差,系统信息取值,组织机构信息取值,枚举下拉取值、比较,针对cap表单特性,提供明细表的操作特性及自定义方法库实现。
优选的,所述普通文本拼接包括函数and、or、(、)、in、notin等高级运算符拼接以及常规的操作符比较。
优选的,所述步骤二中调用采用selffunc调用。
优选的,所述步骤二中配置包括普通设置及高级设置。
优选的,所述步骤四中方法解析采用公式解析编译引擎,根据可视化界面配置的公式字符串,使用基础方法库将公式解析为groovy可执行的公式代码,并在调用groovy引擎执行时提供公式所需要的参数变量信息。
与现有技术相比,本发明的有益效果是:
本发明计算公式可视化配置界面,便于操作;可视化配置的计算公式解析编译引擎,用于groovy可识别公式,实现与其他计算公式进行联动;热点计算公式的自动缓存,针对热点公式无需再次编译字节码即可使用缓存执行。
附图说明
图1为本发明流程示意图。
图2为计算公式设置界面示意图。
图3为计算公式操作界面示意图。
图4为递归计算原理示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1-3,本发明提供一种技术方案:一种基于groovy语言可视化计算公式实现的方法,包括以下步骤:
步骤一:首先由开发人员建立底层方法库,随后底层方法库录入计算公式方法库;
步骤二:管理人员将可视化设计界面采用调用计算公式方法库的方法进行配置;
步骤三:根据用户的需要,配置并选择好的计算公式;
步骤四:将配置好的计算公式进行方法解析,随后采用groovy执行,随后将热点计算公式进行自动缓存,针对解析后相同的公式字符串,对相同的公式进行编译后的字节码缓存;
步骤五:进行多线程公式计算引擎输出计算结果计算公式方法库。
其中,步骤一中计算公式方法库包括普通文本拼接,数字的数学计算、大小比较,日期取值、大小比较、日期差,系统信息取值,组织机构信息取值,枚举下拉取值、比较,针对cap表单特性,提供明细表的操作特性及自定义方法库实现。
其中,普通文本拼接包括函数and、or、(、)、in、notin等高级运算符拼接以及常规的操作符比较。方法库针对不同类型建立分组,比如数字、日期以及取值表单数据域的值等,并且方法库支持自定义实现(自行实现方法库,在可视化界面即可使用selffunc调用)。
其中,步骤二中配置包括普通设置及高级设置,提供高级计算公式设置,增加公式作为前置条件,针对不同的前置条件,执行不同的分支结果。计算公式执行模块支持结果的递归计算。在运用场景中,a/b/c/d/e五个字段设置计算公式,计算最终的结果f,如图4所示。可视化界面计算公式配置提供公式的有效性校验,保证易用性。
其中,步骤四中方法解析采用公式解析编译引擎,根据可视化界面配置的公式字符串,使用基础方法库将公式解析为groovy可执行的公式代码,并在调用groovy引擎执行时提供公式所需要的参数变量信息。
热点计算公式的自动缓存,针对解析后相同的公式字符串,对相同的公式进行编译后的字节码缓存,避免性能损耗在重复执行groovy编译,提升计算公式的执行效率。
多线程公式计算引擎,充分利用电脑提供的线程数,并发性执行计算引擎得到结果。针对公式作为粒度拆分,提升复杂的多表单、多公式的计算能力。
计算引擎通过sandbox机制限制公式中的危险操作,如runtime、system、classloader、thread级别的操作,限制jdbc访问和io操作。
本发明计算公式可视化配置界面,便于操作;可视化配置的计算公式解析编译引擎,用于groovy可识别公式,实现与其他计算公式进行联动;热点计算公式的自动缓存,针对热点公式无需再次编译字节码即可使用缓存执行。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
1.一种基于groovy语言可视化计算公式实现的方法,其特征在于:包括以下步骤:
步骤一:首先由开发人员建立底层方法库,随后底层方法库录入计算公式方法库;
步骤二:管理人员将可视化设计界面采用调用计算公式方法库的方法进行配置;
步骤三:根据用户的需要,配置并选择好的计算公式;
步骤四:将配置好的计算公式进行方法解析,随后采用groovy执行,随后将热点计算公式进行自动缓存,针对解析后相同的公式字符串,对相同的公式进行编译后的字节码缓存;
步骤五:进行多线程公式计算引擎输出计算结果计算公式方法库。
2.根据权利要求1所述的一种基于groovy语言可视化计算公式实现的方法,其特征在于:所述步骤一中计算公式方法库包括普通文本拼接,数字的数学计算、大小比较,日期取值、大小比较、日期差,系统信息取值,组织机构信息取值,枚举下拉取值、比较,针对cap表单特性,提供明细表的操作特性及自定义方法库实现。
3.根据权利要求2所述的一种基于groovy语言可视化计算公式实现的方法,其特征在于:所述普通文本拼接包括函数and、or、(、)、in、notin等高级运算符拼接以及常规的操作符比较。
4.根据权利要求1所述的一种基于groovy语言可视化计算公式实现的方法,其特征在于:所述步骤二中调用采用selffunc调用。
5.根据权利要求1所述的一种基于groovy语言可视化计算公式实现的方法,其特征在于:所述步骤二中配置包括普通设置及高级设置。
6.根据权利要求1所述的一种基于groovy语言可视化计算公式实现的方法,其特征在于:所述步骤四中方法解析采用公式解析编译引擎,根据可视化界面配置的公式字符串,使用基础方法库将公式解析为groovy可执行的公式代码,并在调用groovy引擎执行时提供公式所需要的参数变量信息。