前言

在一开始做这个项目的时候,中途碰上了疫情、也遇到了别的需求插在这个项目中间,导致磕磕碰碰历时差不多两三月左右才完成;到现在已经基本上完成(当然肯定还是需要进行测试的)
那么,下面就来展示我完成的成果吧。

逻辑分析

用户进入本应用后,会显示四大模块
发票上传发票记录报销申请报销记录

并且获取用户的userId,根据用户的userId去获取该用户的上传的发票数据

本系统基于企业微信API进行开发

其中,发票上传模块,用户可以上传发票的文件,分为两块,一个为专门上传pdf文件,一个专门上传图片,不能够上传除了这两种文件的类型,当上传完成后需要等待解析

在解析中,会通过金税接口去解析发票信息,当发票信息解析出来会根据状态判断解析成功还是解析失败;当解析成功的时候,会根据它的解析出来的字段的值,去赋值不同的费用类型以及赋值总金额、未税金额、税金和税率等数据。

解析完成后,用户可以在发票记录看到上传的文件的解析状态,发票记录分为三类;
第一类为未解析和解析失败的文件
第二类为解析成功但未报销完成的发票
第三类为报销结束的发票

点击未解析的文件会显示该文件的图片,点击解析失败的文件会跳转到手动编辑的页面;
在该页面,用户能够进行三种操作,删除、重新解析和手动编辑。

进行删除操作的时候,会删除解析失败的文件;进行重新解析的操作,会立即重新解析一遍文件;进行手动编辑的操作时,用户能够修改该发票的总金额、税金、税率以及发票种类和费用项目等数据;点击提交将状态变更为解析成功并加入到上述第二类解析成功但未报销完成的发票状态
在解析成功但未报销完成的一类里面,用户同样也可以手动去变更解析成功后的发票数据,根据发票图片的数据去设置正确的值(有的解析后不一定全部正确)。

到设置检查完成发票信息后,就转到了报销申请模块;报销申请模块获取该用户的个人信息和解析成功并且未报销的发票供用户报销申请,点击添加按钮,可以显示出所有未报销过得发票,并且用户可以去筛选不同的报销发票类型,以及点击选择和全选报销的发票,选择完成后会根据选择的发票自动计算发票的报销总金额、总的税金等数据。

当点击提交的时候,会把流程转到OA系统,然后由OA系统上的流程进行操作。

本系统有关联到泛微的OA系统,把报销申请的发票数据转给OA进行出来
具体要了解是什么可百度

这个时候,就转到了报销记录模块,报销记录会显示两个,一个是未报销结束,一个是报销结束,不管是哪个状态,都可以查看报销的记录数据。

具体流程和步骤

  1. 进入发票报销系统
  2. 数电发票 系统对接 Java 流程 电子发票系统开发_数据

  3. 2.进行发票文件上传
  4. 数电发票 系统对接 Java 流程 电子发票系统开发_数据_02


数电发票 系统对接 Java 流程 电子发票系统开发_上传_03


数电发票 系统对接 Java 流程 电子发票系统开发_vue.js_04


3. 查看未校验发票信息

数电发票 系统对接 Java 流程 电子发票系统开发_上传_05


解析失败进入页面

数电发票 系统对接 Java 流程 电子发票系统开发_node.js_06


手动编辑时的弹出层

数电发票 系统对接 Java 流程 电子发票系统开发_node.js_07


未解析时显示图片

数电发票 系统对接 Java 流程 电子发票系统开发_vue.js_08


4.已校验未报销发票信息

数电发票 系统对接 Java 流程 电子发票系统开发_数据_09


点击弹出层信息

数电发票 系统对接 Java 流程 电子发票系统开发_数据_10


修改用途

数电发票 系统对接 Java 流程 电子发票系统开发_node.js_11


5.报销申请界面

数电发票 系统对接 Java 流程 电子发票系统开发_vue.js_12


已解析未报销发票信息

数电发票 系统对接 Java 流程 电子发票系统开发_数据_13


数电发票 系统对接 Java 流程 电子发票系统开发_vue.js_14

数电发票 系统对接 Java 流程 电子发票系统开发_数据_15


6.报销模块

数电发票 系统对接 Java 流程 电子发票系统开发_vue.js_16


数电发票 系统对接 Java 流程 电子发票系统开发_vue.js_17


报销记录

数电发票 系统对接 Java 流程 电子发票系统开发_上传_18

结语

以上,为我完成的发票报销系统