问题背景:为什么计息规则每年要重写三次?
金融产品政策调整、监管新规落地、客户协议差异化约定,共同驱动年化利率、罚息起算日、阶梯计息阈值等关键参数高频变更------实践中,此类规则平均每年需调整3次以上。
传统响应路径是:财务提需求 → IT理解语义 → 编写Java函数 → 嵌入服务 → UAT验证 → 灰度发布,全程耗时7--15个工作日。问题不只在周期长,更在于语义损耗:原始业务描述(如'逾期超30天按日息1.5‰计收')在代码中被拆解为嵌套if-else,逻辑耦合度高、测试成本大、后续修改易引发连锁风险。
本质是架构节奏错配:规则变化快,而代码改动慢。数据孤岛、规则孤岛与人工经验依赖进一步放大这一张力,导致'制度已更新、系统未就位'成为常态。
技术解法:用函数计算器重构规则表达层
JVS-Rules函数计算器并非低代码平台,而是面向规则计算场景的轻量级执行引擎。其核心设计原则是:让财务用熟悉的表达方式定义逻辑,而非要求其学习编程范式。
它支持类Excel公式语法,例如:
scss
=IF(逾期天数>30, 本金*0.015, 本金*0.008)
该表达式无需Java/SQL基础即可完整承载阶梯计息逻辑,且直接映射业务语义。
底层采用清晰的数据分层模型:

- 原始字段层 :
本金、合同签订日、当前日期等来自ERP、合同系统或系统函数; - 加工变量层 :通过
DATEDIF(合同签订日,当前日期,"D")生成逾期天数,或调用SQL聚合历史还款记录生成剩余应还本金; - 规则表达层 :基于加工后的变量构建判断逻辑,所有函数均为
y=f(x)单输入单输出映射,不涉及多行状态管理。
这种分层保障了三点关键能力:
- 可读性:逻辑直白,条件与结果一一对应;
- 可维护性:修改仅限表达式文本,无需动代码结构;
- 动态性:变量值实时更新不影响规则结构,计算始终基于最新数据。
关键实现路径:四步完成可验证的计息配置
财务人员可在无IT介入下,独立完成从变量接入到规则上线的全链路操作:
- 第一步:接入变量
- 在数据源管理界面绑定核心字段:如从ERP同步
本金,从合同模块拉取合同签订日,调用NOW()注入当前日期;
- 在数据源管理界面绑定核心字段:如从ERP同步

-
第二步:加工变量
- 进入函数编辑器,定义加工逻辑:
逾期天数 = DATEDIF(合同签订日, 当前日期, "D");近6个月平均日均余额 = SQL("SELECT AVG(daily_balance) FROM ...");
- 进入函数编辑器,定义加工逻辑:
-
第三步:表达规则
- 拖拽IF节点,设置条件
逾期天数 > 30; - 真分支填入
=本金 * 0.015,假分支填入=本金 * 0.008; - 支持嵌套与多分支,但每条路径仍保持纯函数式表达;
- 拖拽IF节点,设置条件
-
第四步:测试发布
- 使用在线调试器输入模拟数据(如
本金=1000000,逾期天数=45),实时查看各节点输出与最终结果; - 确认后点击保存,规则即时生效,无需重启服务或部署新版本。
- 使用在线调试器输入模拟数据(如
该流程覆盖变量定义、函数调用、条件编排与反馈验证闭环,所有操作均基于元数据驱动,不生成硬编码。
架构启示:解耦才是可持续自治的前提
业务自主 ≠ 技术退场,而是职责再分工:
-
技术人员聚焦底层能力建设:
- 封装外部接口(如人行征信API、OCR识别服务);
- 开发高复用变量逻辑(如
近6个月平均日均余额、M0/M1/M2逾期状态判定); - 维护DB连接池、权限策略与执行沙箱安全边界;
-
业务人员专注规则语义表达:
- 设定阈值、组合条件、映射结果;
- 不接触代码、部署、服务器运维;

所有规则执行过程自动留痕:
- 规则版本号、修改人、修改时间;
- 每次执行的完整输入参数;
- 各节点级输出值与执行耗时;
- 全链路不可篡改的判断路径日志。
这种'业务只依赖技术提供的底层变量'的解耦模式,在提升敏捷性的同时,满足风控、合规与审计对可解释性 和可追溯性的刚性要求------每一笔计息结果,都可回溯至确定的输入、明确的函数调用与清晰的条件分支。