公司选择了工作流引擎:炎黄。基于炎黄工作流引擎开发了财务模块。记录一下开发过程中出现的问题以及一些思考。
目前财务拆解为不同的模块:
- 预算模块(其他模块的基础)
- 报销模块 (与个人关系最紧密)
- 采购模块(付款类型的基础)
- 合同业务(对公业务基础)
- 对公付款(钱财大项 涉及各个模块)
预算模块的搭建与思路
根据产品经理梳理原OA 的预算管理与使用情况,结合公司目前的情况决定照搬原来的形式与结构进行底层业务的实现。此模块针对于【年度预算】进行开发。
预算承担部门:部门别称 在预算系统中的部门的概念
预算单元: 每个部门对应预算消耗单元(多个部门对应一个预算单元)
预算科目: 每个预算单元对应的不同消耗科目(多个预算科目对应一个预算单元) 预算编制或追加/调整时使用到预算科目 拥有属性控制维度
在预算基本信息中跟据该属性进行汇总到(月/季/年) 在预算消耗控制时 控制金额扣减
费用科目: 比预算科目更细一级的科目枚举(多个费用科目对应一个预算科目) 一般用于预算消耗
年度预算:每年初对全年进行统一的预测编制,由使用部门进行对其对应的预算单元进行发起年度预算编制单,确定基础额度,并分配至每个月,季度上进行展示;在此基础上可以进行预算追加/预算调整。预算调整为某一个预算单元调入到另一个预算单元的科目中。
预算基础信息
主子表结构 主表记录预算单元相关信息 (预算年份/预算科目/预算单元/控制维度/预算联系人/控制维度)
年度编制 一次性本年所有月份的预算 编制完成写入【年度初值】中
预算消耗完成过程中 先写入【预占用金额】 流程完结写入【已占用金额】
预算消耗前校验预算控制金额是否足够 控制金额与控制维度有关 【月】只校验当前月金额是否够 【季】校验当前季(Q1/Q2/。。)的金额是否够【年】 校验当前年是否够
【历史预占】【历史已占】为迁移原OA 数据用于记录历史流程数据问题
预算追加流程 完成 写入【追加金额】
预算调整流程完成 写入【调整金额】
预算编制单 / 预算追加单 / 预算调整单
年度预算编制,主要分为两部分:统编编制与自编编制
统编编制为 财务部在海波龙系统对特殊的预算单元(行政预算单元 与 人力薪酬预算单元)进行预测编制,编制完成后由海波龙主动调用开发预留的接口,进行推送数据到OA 预算模块留存数据并审批。
自编编制为 各个不同部门发起本部门的预算单元年度编制。主要针对每年预算进行编制发起。
年度预算编制完成后,写入预算基础信息中,当前预算单元搭配预算科目进行展示当前年所有预算情况
【预算追加单】主要用于预算金额不足时候 进行申请预算
【预算调整单】主要用于预算金额在不同预算单元下的调整分配
结语
年度预算为最基础的模块,所有涉及钱财大部分都会涉及该项预算的使用。该模块涉及年度预算的基础模块如 预算单元/预算科目/费用科目/预算承担部门 及 他们之间的对应关系,财务部门最常用的就是预算单元与预算部门之间关系的改动。预算流程是预算产生的源头,在【预算基础信息】中与预算流程进行联动 可以反查到对应的流程信息。基础信息产生后,会在此基础进行消耗,需要提供对应的接口进行检验或者占用:1.校验当前剩余金额是否足够 2. 预占金额 3.取消预占 4.预占完成 5. 查询可用金额 6 .查询预算控制月份。 在接口中进行预占消耗或取消时候,应写入消耗明细中一条关于当前消耗单据的简单描述,便于查询