该模块应用于企业增值税申报和财务取数场景。税表主表与多张附表之间存在大量跨表、跨栏次的联动计算关系,传统实现将计算规则硬编码在业务代码中,当税表字段、计税规则或栏次关系发生变化时,需要重新修改代码、测试和发布,维护成本较高。同时,不同公式之间存在先后依赖,财务取数前后需要分别执行部分计算,容易出现计算顺序错误、空值处理不一致和金额精度问题。为解决以上问题,将税种、税表、栏次、目标字段、表达式及计算轮次进行配置化管理,使税表计算规则能够在不修改核心业务代码的情况下进行调整。
点击空白处退出提示
该模块应用于企业增值税申报和财务取数场景。税表主表与多张附表之间存在大量跨表、跨栏次的联动计算关系,传统实现将计算规则硬编码在业务代码中,当税表字段、计税规则或栏次关系发生变化时,需要重新修改代码、测试和发布,维护成本较高。同时,不同公式之间存在先后依赖,财务取数前后需要分别执行部分计算,容易出现计算顺序错误、空值处理不一致和金额精度问题。为解决以上问题,将税种、税表、栏次、目标字段、表达式及计算轮次进行配置化管理,使税表计算规则能够在不修改核心业务代码的情况下进行调整。
系统提供税表公式配置、公式格式校验、跨表字段引用、计算轮次控制、财务取数前置计算、取数后联动计算及计算结果回写等功能。公式配置可以指定税种、税表、栏次、目标列字段、计算表达式、执行轮次和前置计算标记;支持在表达式中引用增值税主表及多张附表的指定栏次和字段。引擎内置加、减、乘、除、赋值、负数归零、两数取小值及指定精度乘法等自定义函数,使用BigDecimal处理金额精度、四舍五入、空值和除零场景。系统按照配置的计算轮次顺序加载规则,解析字段坐标,读取对应税表数据,执行表达式并将结果写回目标字段。
本人提出配置化动态计算方案并独立完成该模块后端代码。首先设计税表公式数据模型,将税种编码、税表编码、栏次、目标字段、公式、计算轮次及前置计算标记持久化,并实现公式配置的新增、修改、删除、查询和格式校验接口。基于AviatorScript封装统一表达式执行服务,自定义实现ADD、SUB、MUL、DIV、ASSIGN、LTZAZ、N1LTN2和MULHELP等财税计算函数,统一使用BigDecimal处理金额计算、空值、除零和精度控制。设计税表字段坐标解析规则,根据税表编码、栏次和字段描述动态定位数据,将字段值组装为表达式上下文,执行后通过反射写回目标税表字段。通过Feign从主数据服务获取公式配置,按照计算轮次排序,并分别在财务取数前后执行联动计算,完成原有硬编码计算逻辑向配置驱动模式的改造,同时参与需求确认、方案设计、联调、上线及异常排查。




评论