油站使用内网系统做业务,对于那些订单都要开票。原先是一个一个的去录,有些专票还要再额外开一张附加费普票比较麻烦。我们做一个开票系统,对接开票平台,对方从业务系统导出订单,然后导入到开票系统。就可以直接开票了不需要一个个去手动录
点击空白处退出提示
油站使用内网系统做业务,对于那些订单都要开票。原先是一个一个的去录,有些专票还要再额外开一张附加费普票比较麻烦。我们做一个开票系统,对接开票平台,对方从业务系统导出订单,然后导入到开票系统。就可以直接开票了不需要一个个去手动录
项目主要模块有
1.订单导入,这里导入订单并发起开票和冲红申请,可以查看开票信息
2.发票查询,这里是发票信息,已开和未开还有冲红的发票都在这里查看,可以下载发票pdf和图片,也可以发起冲红
3.发票审核,所有的开票、冲红申请都在这里审核,审核通过了才会开票
4.还有站点管理、商品维护、客户信息维护、人员配置模块
技术栈:项目使用springboot + mysql + redis + element-ui
我负责前端和后端整个项目的开发
亮点:
1. 第一个亮点是针对导出订单做适配,同一家企业有很多个订单只开1张票,并且有同一个商品的多次购买记录,所以要针对这一批按企业名和商品名、规格合并订单,另外还有一些开票要用但是导出表没有的数据在发起开票申请时手动录入。同时保存企业信息,下次导入遇到同一家企业自动带出上次手动录入的数据。
2. 第二个亮点是开票审核,在审核通过之前还不能开票但是可以看开票数据是什么样的,这样可以看到开票后的界面展示数据,在开票前知道数据有没有问题。
3. 第三个亮点是对接诺税通开票,由于开票是异步的,所以需要轮询开票结果。红票需要经过红字确认单-获取申请单结果-开红票-查结果,这个过程只需要填写冲红原因,剩下的系统自动生成。
难点:
1. 发票拆分,开票申请时对特定商品的发票数据拆分,这一部分的计算比较复杂。在设计的时候1张发票就是一条数据,并且有关联订单id,可以很好的区分最终生成的数据以帮助修改。
2. 开票审核,需要以友好的方式预先查看结果。在发起开票申请时就要计算发票数据,并存到发票表里。审核通过才调用诺税通接口正式开票,如果驳回那么重新申请时可以清掉这个还未开票的数据。
3. 冲红,冲红的流程比较复杂要请求4次不同的接口。在设计时就要有申请单对应的表预存数据,冲红时先存数据在申请红字确认单再查状态,如果正常再冲红,然后获取结果。还有一个定时任务保证某一部份出错时能够重试,以申请单为起始点,根据状态定时走这一套流程。








评论