一种发票自动核销方法和装置制造方法及图纸

技术编号:36348494 阅读:15 留言:0更新日期:2023-01-14 18:03
本发明专利技术公开了一种发票自动核销方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括响应于待核销请求,获取待核销结算单以确定输出发票集合的总金额;获取待核销发票集合和预设的输出发票数量,以从待核销发票集合中筛选得到第一发票集合和第二发票集合,确定第二发票集合的目标总金额;调用预设的双指针算法,判断在第二发票集合中是否存在符合第二发票集合的目标总金额的发票,若是则将所述发票添加至第一发票集合并输出,以执行对待核销结算单的处理,若否则重新筛选得到第一发票集合,直至得到输出发票集合以执行对待核销结算单的处理。从而,本发明专利技术的实施方式能够解决现有财务侧发票核销时间复杂度高、可实现性低的技术问题。的技术问题。的技术问题。

【技术实现步骤摘要】
一种发票自动核销方法和装置


[0001]本专利技术涉及电子信息
,尤其涉及一种发票自动核销方法和装置。

技术介绍

[0002]目前,财务侧对每个商家进行付费结算时,商家通常会按照一张结算单金额开具多张发票,财务侧需根据对应金额的发票和结算单对发票进行核销。财务侧自动核销系统采用迭代算法从多张发票中筛选得到符合一张结算单金额的发票组合,为财务侧提供了方便、快捷的结算服务,极大地降低了间成本和人工成本。
[0003]在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:
[0004]财务侧对每个商家进行付费结算时,每个商家可能会有多张结算单,且每张结算单可能会对应多张发票,而发票核销不是实时进行的,因此不同结算单对应的发票会混合不清,发票核销时费时费力费人工。另一方面,财务侧自动核销系统采用的迭代算法,是一种暴力破解的算法,运算过程会遍历所有的组合方式,因此时间复杂度很高,当发票数量上升至一定数量,这种算法无法在短时间求出可行的组合方式,甚至可能运行不出结果,因此这种算法在实际场景中可行性很低。

技术实现思路

[0005]有鉴于此,本专利技术实施例提供一种发票自动核销方法和装置,能够解决现有财务侧发票核销时间复杂度高、可实现性低的技术问题。
[0006]为实现上述目的,根据本专利技术实施例的一个方面,提供了一种发票自动核销方法,其特征在于,包括响应于待核销处理的请求,获取待核销结算单,以确定输出发票集合的总金额;获取待核销发票集合和预设的输出发票数量,以从待核销发票集合中筛选得到第一发票集合,进而从待核销发票集合中删除第一发票集合得到第二发票集合,以及根据输出发票集合的总金额和第一发票集合的总金额确定第二发票集合的目标总金额;调用预设的双指针算法,判断在所述第二发票集合中是否存在符合第二发票集合的目标总金额的发票信息,若是则将所述发票信息添加至第一发票集合得到最终输出发票集合,以执行对待核销结算单的处理;若否则从待核销发票集合中重新筛选得到第一发票集合或更新输出发票数量,直至得到最终输出发票集合以执行对待核销结算单的处理。
[0007]可选地,获取待核销发票集合之后,包括:
[0008]判断待核销发票集合的总金额是否等于所述输出发票集合的总金额;若是则将待核销发票集合作为输出发票集合,以执行对待核销结算单的处理;若否则判断待核销发票集合的总金额是否大于所述输出发票集合的总金额,如果是则获取预设的输出发票数量,如果否则生成核销处理失败信息并输出。
[0009]可选地,获取预设的输出发票数量之后,包括:
[0010]判断预设的输出发票数量是否大于二;若是则根据预设的输出发票数量筛选得到第一发票集合;若否则判断预设的输出发票数量是否等于二,如果是则确定第一发票集合
为空集,将待核销发票集合作为第二发票集合,确定输出发票集合的目标总金额为第二发票集合的目标总金额;如果否则生成核销处理失败信息并输出。
[0011]可选地,根据预设的输出发票数量筛选得到第一发票集合之前,包括:
[0012]调用发票预处理模型,对所述待核销发票集合计算第一阈值,以判断第一阈值与所述输出发票集合总金额的大小关系,根据所述大小关系对待核销发票集合进行排序,得到排序后的待核销发票集合。
[0013]可选地,得到排序后的待核销发票集合之后,包括:
[0014]根据预设的输出发票数量顺序获取排序后待核销发票集合中的发票生成第三发票集合,判断第三发票集合的总金额是否等于所述输出发票集合的总金额;若是则将所述第三发票集合作为输出发票集合,以执行对待核销结算单的处理;若否则判断所述第一阈值与所述第三发票集合的总金额是否均大于或者均小于所述输出发票集合总金额,如果是则改变预设的输出发票数量,如果否则从待核销发票集合中筛选预设输出发票数量减二个发票生成第一发票集合。
[0015]可选地,调用预设的双指针算法,判断在所述第二发票集合中是否存在符合第二发票集合的目标总金额的两张发票信息,包括:
[0016]对第二发票集合进行排序,设置双指针分别指向位于排序后第二发票集合两端的发票信息,判断所述被指向的两张发票的总金额是否等于第二发票集合的目标总金额;若是则将所述被指向的两张发票信息添加至第一发票集合得到最终输出发票集合;若否则根据被指向的两张发票的总金额与输出发票集合的总金额的大小关系,选择双指针中的一根指针向左或者向右移动一个单位至相邻发票,再次判断被指向的两张发票的总金额是否等于第二发票集合的目标总金额。
[0017]可选地,更新输出发票数量,包括:
[0018]更新输出发票数量,并判断更新后的输出发票数量是否有效;
[0019]若是则获取更新后的输出发票数量作为改变后的预设输出发票数量,若否则获取更新前的输出发票数量加一作为改变后的预设的输出发票数量。
[0020]另外,本专利技术还提供了一种发票自动核销装置,包括:获取模块,用于响应于待核销处理的请求,获取待核销结算单,以确定输出发票集合的总金额,以及用于获取待核销发票集合和预设的输出发票数量;计算模块,用于从待核销发票集合中筛选得到第一发票集合,以及用于从待核销发票集合中删除第一发票集合得到第二发票集合,以及用于根据输出发票集合的总金额和第一发票集合对应的总金额确定第二发票集合的目标总金额;筛选模块,用于调用预设的双指针算法,判断在所述第二发票集合中是否存在符合第二发票集合的目标总金额的发票信息,若是则将所述的两张发票信息添加至第一发票集合得到最终输出发票集合,以执行对待核销结算单的处理,若否则计算模块从待核销发票集合中重新筛选得到第一发票集合或更新输出发票数量,直至得到最终输出发票集合以执行对待核销结算单的处理。
[0021]上述专利技术中的一个实施例具有如下优点或有益效果:本专利技术通过响应于待核销处理请求,获取待核销结算单和待核销发票集合,确定了输出发票集合的总金额,获取预设的输出发票数量并据此筛选得到第一发票集合与第二发票集合,将多数求和问题简化为两数求和问题,有效降低了时间复杂度,而后又调用预设的双指针算法进行遍历求和,压缩了查
找次数,在完成自动核销系统功能的同时大幅减少运行时间;并且,通过判断待核销发票集合的总金额与输出发票集合总金额的大小关系,添加了第一项剪枝条件判断是否提前结束核销流程,避免在错误的核销输入中运算浪费时间,因此提高了发票核销的效率;此外,通过获取预设的输出发票数量,并根据所述数量数值所在的范围,判断是否提前结束循环、是否流程跳步,或是否继续当前流程,添加了第二项剪枝条件,预判总体核销流程中对于当前预设的输出发票数值无实际意义的步骤并跳步,进一步压缩发票自动核销系统的运行时长;同时,对待核销发票集合排序,筛选其中前预设的输出发票数量张金额最大或金额最小的发票即所述第三发票集合,并比较其总金额与输出发票集合总金额的大小关系,添加了第三项剪枝条件,初步估算是否存在符合条件的输出发票组合,避免查找全量数据的情况,提前否定了不合理的预设输出发票数量值并重新获取输出本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种发票自动核销方法,其特征在于,包括:响应于待核销处理的请求,获取待核销结算单,以确定输出发票集合的总金额;获取待核销发票集合和预设的输出发票数量,以从待核销发票集合中筛选得到第一发票集合,进而从待核销发票集合中删除第一发票集合得到第二发票集合,以及根据输出发票集合的总金额和第一发票集合的总金额确定第二发票集合的目标总金额;调用预设的双指针算法,判断在所述第二发票集合中是否存在符合第二发票集合的目标总金额的发票信息,若是则将所述发票信息添加至第一发票集合得到最终输出发票集合,以执行对待核销结算单的处理;若否则从待核销发票集合中重新筛选得到第一发票集合或更新输出发票数量,直至得到最终输出发票集合以执行对待核销结算单的处理。2.根据权利要求1所述的方法,其特征在于,获取待核销发票集合之后,包括:判断待核销发票集合的总金额是否等于所述输出发票集合的总金额;若是则将待核销发票集合作为输出发票集合,以执行对待核销结算单的处理;若否则判断待核销发票集合的总金额是否大于所述输出发票集合的总金额,如果是则获取预设的输出发票数量,如果否则生成核销处理失败信息并输出。3.根据权利要求1所述的方法,其特征在于,获取预设的输出发票数量之后,包括:判断预设的输出发票数量是否大于二;若是则根据预设的输出发票数量筛选得到第一发票集合;若否则判断预设的输出发票数量是否等于二,如果是则确定第一发票集合为空集,将待核销发票集合作为第二发票集合,确定输出发票集合的目标总金额为第二发票集合的目标总金额;如果否则生成核销处理失败信息并输出。4.根据权利要求1所述的方法,其特征在于,从待核销发票集合中筛选得到第一发票集合之前,包括:调用发票预处理模型,对所述待核销发票集合计算第一阈值,以判断第一阈值与所述输出发票集合总金额的大小关系,根据所述大小关系对待核销发票集合进行排序,得到排序后的待核销发票集合。5.根据权利要求4所述的方法,其特征在于,得到排序后的待核销发票集合之后,包括:根据预设的输出发票数量顺序获取排序后待核销发票集合中的发票生成第三发票集合,判断第三发票集合的总金额是否等于所述输出发票集合的总金额;若是则将所述第三发票集合作为输出发票集合,以执行对待核销结算单的处理;若否则判断所述第一阈值与所述第三发票集合的总金额是否均大于或者均小于所述输出发...

【专利技术属性】
技术研发人员:陈砺然
申请(专利权)人:北京京东振世信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1