1. 引言
在现如今的市场大潮中,到处充满着激烈的竞争,众多企业为了提高自身的竞争力和工作效率,积极地对传统的公司管理体制进行变革,也一步步地将企业信息管理系统引入。财务信息在整个信息管理系统中占有重要地位,任何企业的运作都需要财务系统的支撑。企业想要在现代社会竞争中立足,能够严格地把控好财务的收支是关键,企业产品盈利能力的大小和在市场中竞争水平的高低往往都会受到一个企业对财务的把控能力的影响 [1]。
在企业日常运作中,报销业务是必不可少的环节,是企业成本管理中的关键要素,也是发生频率高的业务。无论是哪个行业,无论企业的规模大小,费用的报销始终是各个企业都可能面临并且需要解决的问题。虽然它并不会影响着企业发展的方向,但它的过程运作对整体的工作效率有着重要影响,同时也反映着企业的先进性 [2]。因此企业报销系统作为成本支出的一个重要窗口,对管制企业成本起着关键性作用,企业必须对所有的报销支出进行严格监控,而不只是关注报销业务的处理。
长期以来,人们都习惯了采用传统的手工方式实现报销的整个审批流程。员工在申请报销时,需规范填写各种单据并递交给各级领导审批,最终财务部门还需进行审核。这种模式下暴露出的单据填写不规范效率低、报销不能及时查看、上级领导对全过程的监管力度低下、财务人员审核效率低、报销量大等问题日趋严重,传统的报销模式已经不能顺应企业的发展。因此,开发一个网上报销审批系统供企业使用,有利于规范报销审批流程,提高费用报销管理效率,对加大报销管理的监控、提高企业在市场上的竞争力有着重要意义。
2. 国内外现状分析
随着信息技术的成熟以及计算机产业的快速发展,国内国外都涌现出许多种网上报销系统,这些系统不仅能够在报销流程过程中提高企业单位的监管力度,还能在一定程度上提高审批效率,达到“数据多跑路,群众少跑路”的效果。
在上个世纪末,国外就开始对费用报销审批系统进行研究以及应用。实现网上报销审批系统所使用的技术多种多样,可以将这些技术按照底层技术架构分为.NET平台架构和J2EE平台架构 [3]。国外报销审批系统的集成度都相对较高,系统可通过录入员工口令,以方便查明信息来源,从而达到规范化管理的要求。基于工作流技术,定义一些流程规则,在数据输入时会按照规则进行处理,并存储到相应的数据库中,使得所有授权人员共享数据,避免出现决策矛盾 [4]。
在国内,财务工作信息化的较晚,基本上通过人工审批的模式实现费用报销工作,使得工作流程十分繁琐。虽然国内也曾出现过相似管理系统,在一定程度上对费用的控制有所帮助,但这类系统不是专门为企业开发的,在很多地方还有不足,所以阻碍了这类系统的发展。目前,我国国内从事财务管理系统研究与开发的企业还不多,大家也没有统一的标准,普遍都是按照客户的不同进行具体开发。国内一些有一定规模的、颇具实力的财务报销软件公司,比如元年科技、用友集团、金蝶、安财等公司都开发了各自的网上报销系统,其报销流程都是基于Internet [5]。其中元年科技在国内起步最早,是应用最为广泛的网上报销软件供应商,他们开发的“云快报”是一个基于移动互联网的消费和报销管理应用,主要针对的是中小型企业。
3. 系统需求与可行性分析
3.1. 系统需求分析
经过查阅相关资料,并结合市面上已有的网上报销审批系统具备的一些功能,通过分析得出此系统的服务对象包括四种:申请人、审批人、财务经理和管理员。系统的服务模型如图1所示:
企业网上报销审批系统的功能需要包括个人费用报销模块、专项费用报销模块、统计分析管理模块、我的模块、审批工作台、历史审批记录模块、人员管理模块、报销单管理模块、用户权限管理模块、流程定义管理模块10大功能模块,系统的功能模型图如图2所示:
![](//html.hanspub.org/file/7-2690557x11_hanspub.png?20210809141125997)
Figure 2. System function model diagram
图2. 系统功能模型图
3.2. 技术可行性分析
企业网上报销审批系统的开发主要是根据实际业务需求进行开展的。该系统主要采用MVC设计模式,选取Spring、SpringMVC、MyBatis技术即SSM框架,创建maven工程,借助MySql数据库等,构建基于Web的整体系统架构。前端通过HTML5、JSP技术设计页面,并结合CSS、HTML、JQuery、JavaScript、Ajax 技术、Bootstrap框架完善页面的样式布局和实现交互操作。系统的三层架构图如图3所示:
![](//html.hanspub.org/file/7-2690557x12_hanspub.png?20210809141125997)
Figure 3. Three layer architecture of the system
图3. 系统三层架构图
3.2.1. Spring + SpringMVC + MyBatis (SSM框架)
Spring是一个轻量级的IOC和AOP容器框架,是为了简化企业级的开发而创建的,从简单性和松耦合的角度而言,Spring是一个大容器,在开发中能够通过Spring容器对Bean对象,Dao组件对象以及Service组件对象等进行管理。这样高内聚低耦合的开发模式,使得复杂的代码变得更加简洁,项目后期的维护和升级更加方便。
SpringMVC是一种采用了MVC设计思想,同时基于Java的轻量级Web框架,它会将Web层职责解耦。与其他框架的差异在于它更具有可扩展性和灵活性,主要使用了松散耦合可插拔组件结构。框架的主要作用就是为了协助我们,使开发简易化,而SpringMVC就有效的做到了这一点。
Mybatis是能够进行普通SQL查询的持久层框架。它可以定制SQL、存储过程和高级映射,从而消除大多数参数、JDBC代码的设置和检索结果集。它可以使开发人员不再关心注册驱动、连接创建和其他过程,只关注SQL语句本身。
3.2.2. Bootstrap
Bootstrap是由动态CSS语言Less编写的。它是基于JavaScript、HTML和CSS开发的前端开发框架,非常简单直观使得Web开发更加方便。Bootstrap定义了基本的HTML元素样式,为用户提供了全局CSS设置、可扩展的class和高级的网格系统。此外,它还包含丰富的Web组件,可以用来创建下拉菜单、导航、警告框、弹出框等,快速完成网站的建设。
4. 系统设计
4.1. 费用报销模块设计
费用报销模块设计包括个人费用报销模块和专项费用报销模块,都是为申请人填写并提交报销单提供服务,其中个人费用报销模块还包括差旅费用报销和日常费用报销两个子模块。在各个模块中都包括搜索查看报销单、增删改报销单以及提交报销单。
1) 搜索查看报销单
用户可看到所有个人填写的报销单,可以根据报销单的状态进行筛选,包括待提交、审批中、已通过、已拒绝四种状态。在日常费报销子模块中还可以根据报销单的类别进行筛选,包括招待费、办公用品、打车费、培训费等。找到报销单后可点击查看报销单详细情况,包括消费记录、审批所需流程、审批进度等。搜索查看报销单业务流程图如图4所示。
2) 增删改报销单
点击创建报销单后来到创建界面,不同模块创建报销单所需填写的信息有所不同。差旅费报销单需填写项目编号、出差事由、消费记录,其中消费记录可根据实际情况自定义添加交通费用、住宿费用、其他费用;日常费报销单需填写项目编号、报销类别、费用用途、花费时间、金额以及添加附件;专项费报销单需填写项目编号、项目名称、项目开始时间、项目结束时间、项目经费。报销单创建成功后,系统还允许用户更改报销单信息,点击修改可重新修改报销单。对于不需要的报销单或者填写有误的报销单还可以进行删除。增删改报销单业务流程图如图5所示。
3) 提交报销单
用户在创建完报销单后,确认无误可提交报销单,点击提交按钮并确定后,根据系统设定好的流程,报销单会自动提交到对应的审批人手中,等待审批人的审核。提交报销单业务流程图如图6所示。
![](//html.hanspub.org/file/7-2690557x13_hanspub.png?20210809141125997)
Figure 4. Search and view the flow chart of reimbursement document
图4. 搜索查看报销单流程图
![](//html.hanspub.org/file/7-2690557x14_hanspub.png?20210809141125997)
Figure 5. Flow chart of adding, deleting and modifying reimbursement documents
图5. 增删改报销单业务流程图
![](//html.hanspub.org/file/7-2690557x15_hanspub.png?20210809141125997)
Figure 6. Flow chart of submitting reimbursement document
图6. 提交报销单业务流程图
4.2. 审批工作台模块设计
审批工作台模块主要包括查看待审批报销单和审批报销单。
1) 查看待审批报销单
审批人端和财务经理端的用户在该模块可以查看到需要自己审批的报销单,分为差旅费报销待审批、日常费报销待审批和专项费报销待审批三个小模块。点击查看全部可以查看对应模块下的全部报销单,可根据需要对报销单进行模糊查询。点击可查看报销单的详细情况,包括报销单的基本信息以及审批进度。查看待审批报销单业务流程图如图7所示:
![](//html.hanspub.org/file/7-2690557x16_hanspub.png?20210809141125997)
Figure 7. View the flow chart of reimbursement document to be approved
图7. 查看待审批报销单业务流程图
![](//html.hanspub.org/file/7-2690557x17_hanspub.png?20210809141125997)
Figure 8. Flow chart of approval of reimbursement document
图8. 审批报销单业务流程图
2) 审批报销单
审批人或者财务经理在确认完报销单的信息之后,可以对报销单进行审批,选择同意或者不同意按钮,然后输入审批意见和审批码将审批结果进行提交。如果审批码已经过期,将不能完成审批并会提醒用户及时去更新审批码。如果用户输入的审批码不正确,也不能完成审批。审批报销单业务流程图如图8所示。
4.3. 流程定义管理模块设计
流程定义管理模块主要包括搜索查看流程和新增删除流程。
1) 搜索查看流程
管理员端用户可在流程定义管理模块看到已经定义好的所有流程基本信息,包括流程编号、流程名、创建时间。能够通过输入流程名进行模糊查询,点击查看可看到流程图。搜索查看流程业务流程图如图9所示:
2) 新增删除流程
用户可以根据实际需要,点击新增流程,然后输入流程定义的相关信息以及上传流程图来创建流程。也可以点击删除,然后点击确定来删除不需要的流程。新增流程业务流程图如图10所示。
![](//html.hanspub.org/file/7-2690557x18_hanspub.png?20210809141125997)
Figure 9. Search to see the flow chart of process business
图9. 搜索查看流程业务流程图
![](//html.hanspub.org/file/7-2690557x19_hanspub.png?20210809141125997)
Figure 10. New added process business flow chart
图10. 新增流程业务流程图
5. 系统实现
5.1. 费用报销模块实现
费用报销模块主要包括三个部分,分别是搜索查看报销单、增删改报销单以及提交报销单,模块中各个功能的具体实现过程如下:
1) 搜索查看报销单
申请人在状态筛选栏选择报销单状态进行筛选,在搜索框输入关键字点击搜索报销单进行搜查。后台根据前端传来的条件,在数据库中筛选相应的数据并传回到前端界面进行显示。点击查看,前端将报销单对应的id传递到后台,再在数据库中根据主键id搜索数据并返回到前端,前端跳转到报销单详情界面并显示传来的数据。搜索查看报销单实现代码流程图如图11所示:
![](//html.hanspub.org/file/7-2690557x20_hanspub.png?20210809141125997)
Figure 11. Search and view the implementation code flow chart of reimbursement document
图11. 搜索查看报销单实现代码流程图
搜索查看差旅费报销单界面如图12所示,查看差旅费报销单详情界面如图13所示。
2) 增删改报销单
点击创建报销单,输入报销单基本信息,点击保存后前端将信息传递给后台。后台获取到报销单对
![](//html.hanspub.org/file/7-2690557x21_hanspub.png?20210809141125997)
Figure 12. Search and view travel expense reimbursement document interface
图12. 搜索查看差旅费报销单界面
![](//html.hanspub.org/file/7-2690557x22_hanspub.png?20210809141125997)
Figure 13. View travel expense reimbursement document details interface
图13. 查看差旅费报销单详情界面
象后,若信息全部填写完整,将报销单对象存入对应类别的报销单数据表中,并设置报销单的state字段为1,表示报销单处于待提交状态,可以进行编辑修改;否则将返回提醒信息提示用户。点击修改,在相应信息栏重新输入想要修改的信息,点击保存后数据传递到后台,后台会将信息根据报销单id更新到对应的数据表中。点击删除,需要点击确定进行确认,确认后会将报销单的id传到后台,后台根据报销单id在对应的报销单表中删除数据。增删改报销单实现代码流程图如图14所示,增删改报销单界面如图15所示:
![](//html.hanspub.org/file/7-2690557x23_hanspub.png?20210809141125997)
Figure 14. Implementation code flow chart of adding, deleting and modifying reimbursement document
图14. 增删改报销单实现代码流程图
![](//html.hanspub.org/file/7-2690557x24_hanspub.png?20210809141125997)
Figure 15. Create daily expense reimbursement document interface
图15. 创建日常费报销单界面
3) 提交报销单
点击提交按钮,确认后前端将报销单id传到后台,在数据库中找到对应报销单数据,修改其state字段为2表示待审批状态。根据流程查找审批人信息,同时修改报销单当前流程更新数据。提交报销单实现代码流程图如图16:
![](//html.hanspub.org/file/7-2690557x25_hanspub.png?20210809141125997)
Figure 16. Implementation code flow chart of submitting reimbursement document
图16. 提交报销单实现代码流程图
5.2. 审批工作台模块实现
审批工作台模块主要包括查看待审批报销单和审批报销单两个部分,模块中各个功能的具体实现过程如下:
1) 查看待审批报销单
前端发出获取信息请求,后台根据当前登录用户的id去数据库查询所有待审批状态而且审批人是当前用户的报销单,将查询到的数据传到前端显示。前端点击单个报销单,则将报销单的id传到后台查询该条报销单的所有信息,并跳转到报销单详情界面进行显示。查看待审批报销单实现代码流程图如图17所示:
![](//html.hanspub.org/file/7-2690557x26_hanspub.png?20210809141125997)
Figure 17. View the flow chart of reimbursement document code to be approved
图17. 查看待审批报销单代码流程图
审批工作台界面如图18所示,查看全部待审批差旅费报销单界面如图19所示:
![](//html.hanspub.org/file/7-2690557x28_hanspub.png?20210809141125997)
Figure 19. View all travel expense reimbursement documents to be approved
图19. 查看全部待审批差旅费报销单界面
2) 审批报销单
前端点击同意或者不同意按钮弹出模态框,输入审批意见以及审批密码。后台先对审批密码进行判断,如果审批密码近30天都未曾修改将会提示审批码已经失效无法审批;再进一步判断审批码是否正确,如果审批码错误也将无法完成审批。若审批密码匹配成功,将审批结果插入到报销单审批结果关联表中,再记录审批进度,查找下一个审批人信息,然后在数据库中修改报销单的相关字段。审批报销单实现代码流程图如图20所示:
![](//html.hanspub.org/file/7-2690557x29_hanspub.png?20210809141125997)
Figure 20. Code flow chart interface of approval reimbursement document
图20. 审批报销单代码流程图界面
审批报销单界面如图21所示:
![](//html.hanspub.org/file/7-2690557x30_hanspub.png?20210809141125997)
Figure 21. Approve reimbursement document interface
图21. 审批报销单界面
5.3. 流程定义管理模块实现
流程定义管理模块主要包括搜索查看流程和新增删除流程,模块中各个功能的具体实现过程如下:
1) 搜索查看流程
管理员在搜索框输入关键字点击搜索流程进行搜索。后台根据前端传来的关键字,在数据库中筛选相应的数据并传到前端界面进行显示。点击查看,将会弹出该流程所对应的流程图,搜索查看流程实现代码流程图如图22所示,搜索查看流程界面如图23所示:
![](//html.hanspub.org/file/7-2690557x31_hanspub.png?20210809141125997)
Figure 22. Search and view flow implementation code flow chart
图22. 搜索查看流程实现代码流程图
2) 新增删除流程
管理员点击新增流程,输入流程名称并上传流程图,前端将用户输入的数据传到后台。后台先将流程图保存到服务器上,然后将图片存储地址和流程名称插入到数据库流程信息表中,前端再更新页面数据。点击删除按钮,前端将相应的流程编号传到后台,后台根据编号在流程信息表中删除数据。新增流程实现代码流程图如图24所示,新增流程界面如图25所示:
![](//html.hanspub.org/file/7-2690557x33_hanspub.png?20210809141125997)
Figure 24. Flow chart of new added process implementation code
图24. 新增流程实现代码流程图
6. 结论
伴随着现代信息化技术在企业管理中的应用,以信息化的方式来代替人工报销审批将会成为一个必然结果。本课题研究的企业网上报销审批系统,经过代码实现并对其功能测试完成后,可以给企业提供一套完整的网上报销服务。员工只需通过互联网,便可随时随地申请费用报销 [6]。各级领导也可随时对申请进行审批,并对流程进行监控 [7]。在接收到报销申请和审批意见后,财务部门对原始凭证审核,确认无误后则可进行拨款 [8]。管理员也能根据企业的需求,自定义调整报销流程。这种方式打破了以往需人工进行的繁琐的报销模式,使整个报销审批流程网络化,将会大大提高财务审批效率以及业务处理能力。