# 公式变量管理需求文档

## 定义

__公式变量__指用于账单生成过程中参与计算或判断用的公式中的变量，如`房屋_计费面积 * 计费单价`中的`房屋_计费面积`和`计费单价`即为计算变量；`房屋_楼层 >= 2`中的`房屋楼层`即为判断变量。

__计算变量__用于参与费用计算，__判断变量__用于满足什么条件下才生成本项费用。

## 表单说明 [原型地址](https://org.modao.cc/app/e6901721256b50fa80884755fcf42250e875e733)

| 字段名称  | 字段类型   | 字段说明                                                                         | 是否必填 |
| ----- | ------ | ---------------------------------------------------------------------------- | ---- |
| 分类    | String | 当前变量归属分类，即变量的分组名称，方便按类别展示变量。建议长度不超过6个字                                       | 是    |
| 变量名称  | String | 变量名称，如计费面积                                                                   | 是    |
| 类名    | String | 变量对应的Java类全路径名称，包括包名路径，如com.wisdomcity.serve.house                           | 是    |
| 属性名   | String | 变量对应Java类对象的成员属性名                                                            | 是    |
| 数值类型  | Enum   | 变量的数值类型，包括int，double和boolean，其中double在数据库存储应当以decimal类型存储，并使用BigDecimal参与计算。 | 是    |
| 使用默认值 | Bool   | 该变量是否使用默认值，如果不使用默认值则程序在计算前必须给变量进行赋值，否则可能产生异常。                                | 是    |
| 默认值   | Number | 当选择使用默认值时，必须填写，填写的数值类型应当和变量的数值类型一致。                                          | 否    |
| 计算变量  | Bool   | 该变量是否能用于计算公式，参与计算                                                            | 是    |
| 判断变量  | Bool   | 该变量是否能用于判断公式，参与费用生成判断                                                        | 是    |
| 备注    | String | 备注说明                                                                         | 否    |

## 业务说明

* 由于计算变量存储于客户数据库，平台需要通过业务接口读取客户变量数据。因此查看列表时必须先选择对应的客户，通过客户去查找其计算变量。添加时也必须先选定客户。

* 计算变量信息比较简单，为简化操作，不设查看详情页面，点击查看按钮时直接在当前行展开详情，显示列表未展示的其他字段，如类名，属性名，是否使用默认值，默认值，备注和更新事件等信息。

* 计算变量不允许编辑，如果有误，应当删除，重新添加新的计算变量。

* 计算变量允许删除，但是删除后可能导致账单生成出现异常，因此需要确保删除的变量未参与任何公式。




