Browse Source

完善说明文档

leichangchun2022@163.com 2 years ago
parent
commit
245987f8f3
2 changed files with 49 additions and 21 deletions
  1. 1 0
      .gitignore
  2. 48 21
      README.md

+ 1 - 0
.gitignore

@@ -0,0 +1 @@
+/target/

+ 48 - 21
README.md

@@ -1,37 +1,64 @@
 # xbc-cm
 
 #### 介绍
-公式管理、公式计算、公式计算结果管理
+表达式计算引擎、公式管理、公式计算、公式计算结果管理
 
 #### 软件架构
-软件架构说明
-
+由撒部分构成
+1.表达式计算引擎
+  src/engine/java
+  此部分可以单独做成jar,提供表达式计算功能
+2.公式管理
+  src/main/java 下面的 xbc.formula.fmlmgr
+  此部分用于管理公式配置
+3.公式计算与结果管理
+  src/main/java 下面的 xbc.formula.calcmgr
+  此部分用于公式计算以及计算结果管理
 
 #### 安装教程
-
-1.  xxxx
-2.  xxxx
-3.  xxxx
+1.安装java环境: jdk1.8
+2.下载工程,导入eclipse
+  推荐使用 Eclipse IDE for Java Developers, Version: 2020-12
+3.通过运行table目录下的table_dml.txt里面的SQL语句,创建工程运行所需的数据库表以及初始化番号管理表数据
 
 #### 使用说明
+1.启动springboot主程序: CalculateManagerApplication
+2.通过运行table目录下的reset_ddl.txt里面的SQL语句,创建示例用的公式(有点类似于个人所得税计算的相关公式)
+3.用http的客户端工具(如postman),使用如下参数,调用接口: /calculatemanager/calculate
+  {"productId":1,"bizType":"geshui","paramMap":{"jibenjixiao":9700,"jibengongzi":12300,"jianzhishouru":3240,"zashui":100,"caipiaoshouru":-200},"saveResult":true}
+  公式计算结果将会写入到 calc_result 表,计算过程中用到的指标以及子公式的结果将会写入到 calc_indicator_result 表。
+  上述接口会返回计算结果id。
+4.用http的客户端工具(如postman),使用如下参数(calcResultId=结算结果id),调用接口: /calculatemanager/desc
+  此接口会返回公式运算过程的描述信息。
+5.可以通过往 fml_formula 表里面配置公式,往 fml_formula_indicator 表里面配置指标,然后再往 calc_formula 表里面配置在什么产品什么业务类型使用该公式,实现自己的公式使用。
 
-1.  xxxx
-2.  xxxx
-3.  xxxx
+#### 公式与指标
+1.公式
+  用于计算某项业务数据的表达式,比如用于计算【工资】的一种表达式:
+  基本工资 + 绩效工资 + 其它收入
+  在xbc-cm中,公式用 xbc.formula.engine.fml.vo.XbcFmlFormulaVo 进行描述
+2.指标
+  参与公式计算的变量。比如,上面的工资公式里面,下面三个变量都是指标:
+  基本工资,绩效工资,其它收入
+  在xbc-cm中,指标用 xbc.formula.engine.fml.vo.XbcFmlFormulaIndicatorVo 进行描述
+3.指标类型
+  在 XbcFmlFormulaIndicatorVo 里面,定义了指标的五种类型:
+  1)SPECIFIED_TYPE
+    指定值类型。表示在公式计算时,直接使用指标对象的【specifiedVal】值,作为指标值进行运算。
+    计算引擎会试图将该值转换为BigDecimal类型,如果转换失败,则使用String进行计算。
+  2)SCRIPT_TYPE
+    脚本类型。表示在公式计算时,这个指标需要运行一段脚本程序得到指标值。目前的版本还未实现。
+  3)FORMULA_TYPE
+    公式类型。表示在公式计算时,这个指标自身也是一个公式,公式存放在【formulaVo】里面。需要先对该公式进行计算,计算的结果作为这个指标的值,参与主公式的计算。
+  4)PARAM_TYPE
+    参数类型。表示在公式计算时,这个指标是外部传入的一个参数。
+    计算引擎会以指标的【specifiedVal】值为key在 XbcFmlCalculator.calculte 的 【Object... formulaParams】参数里面的Map类型参数里面查找,如果没有Map类型的参数,
+    则以指标的【specifiedVal】值为字段名,在formulaParams的数据对象里面查找。找到后,则将找到的值作为指标值,参与公式计算。
+  5)FUNC_TYPE
+    函数类型。表示指标本身是一个自定义函数,系统会先运行该自定义函数,并将结果作为指标值,进行公式计算。
 
 #### 参与贡献
 
-1.  Fork 本仓库
-2.  新建 Feat_xxx 分支
-3.  提交代码
-4.  新建 Pull Request
-
 
 #### 特技
 
-1.  使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md
-2.  Gitee 官方博客 [blog.gitee.com](https://blog.gitee.com)
-3.  你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解 Gitee 上的优秀开源项目
-4.  [GVP](https://gitee.com/gvp) 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
-5.  Gitee 官方提供的使用手册 [https://gitee.com/help](https://gitee.com/help)
-6.  Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)