基于Drools规则引擎和Aviator表达式框架的物流计费系统研究

也是最近目前公司的一个物流系统费用项多种多样,各种规则疲于应付,初版程序各种规则基本都是用程序代码硬编码的方式,每次更改规则需要重新测试,系统重新打包发布,在疲于应付之间,开始寻求其他解决方案,因此根据系统现实的问题总结出三个要求

1、系统具备良好的可拓展性

     计费系统需要应对于多种计费模型,由于相关物流费如零担费用,费用项是以公式来计算,因此系统提供费用项相关信息录入,提供费用计算公式,在此我采用Aviator框架,通过录入计算公式以及输入相应的参数计算出相应的费用

2、系统应具备良好的用户界面,最好是将匹配规则放到客户端,由业务人员自行编辑规则,系统根据规则自动触发条件表达式进行费用计算,要求规则匹配能否方便的为业务人员所理解,学习成本低,因此采用Drools规则引擎

3、业务和规则解耦

最好系统能独立出计费模块,尽量不要让业务代码侵入到里面,将业务和规则分离

初步规划如下

组件规划图

涉及组件

1、字典管理:管理各种规则字段描述信息,基础资料,元数据信息

2、费用项管理:费用项以EXCEL方式导入系统,并提供管理界面,这里主要是配置费用项计算公式

3、规则管理:提供规则管理界面,根据字典数据和费用项数据可配置计费规则

4、物流提货单:提供界面供业务人员录入真实的物流数据用于费用计算

5、规则引擎:根据提货单条件触发规则引擎并调用计费框架实现费用自动计算

6、计费框架:根据匹配后的条件执行具体的计算任务

主要流程如下


计算流程图

物流费用项管理

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容