账务系统不停机日切点快照余额的方法技术方案

技术编号:22185817 阅读:31 留言:0更新日期:2019-09-25 03:32
本发明专利技术公开了一种账务系统不停机日切点快照余额的方法,属于计算机系统应用技术领域。通过使用账户数据中每个账户的ID号与分片数进行取余运算;将取余运算后得到相同值的账户ID放入同一队列中;每个队列均进行循环遍历获取账户ID,利用账户ID到账户余额表中查找对应账户的当前余额值和余额更新日期,以账务变更流水表的记录写入日期为依据,对每个队列中的所有账户利用回溯算法计算任意时刻T的准确快照余额,得到所有账户余额的最终快照集合list。本发明专利技术解决了现有技术无法进行任意账户在任意时间点的余额快照回溯以及处理效率低的问题;实现了在任意时刻进行账户余额精准快照和在短时间内高效完成海量历史变更记录回溯的目的。

The Method of Snapshot Balance of Daily Cut-off Point in Accounting System

【技术实现步骤摘要】
账务系统不停机日切点快照余额的方法
本专利技术属于计算机系统应用
,特别是涉及一种账务系统不停机日切点快照余额的方法。
技术介绍
现有技术在进行日切余额快照时更多的采用双余额档法,就是在每次交易时同时考虑两个余额的更新。在账户余额表中设置“当前余额”、“前日余额”、“最近更新日期”。“当前余额”是实时余额,保存最新的账户余额,“前日余额”是保存账户中每个日切后的更新余额。在当天第一笔交易时,将“当前余额”直接赋值到“前日余额”中,并加工“当前余额”,最后更新“最近更新日期”;当日切后需要使用“前日余额”的业务时,需要进行特别的加工处理才能获取正确的“前日余额”,加工方法为:如果“当前日期”等于“最近更新日期”,则取“上日余额”的值作为“前日余额”,如果“当前日期”不等于“最近更新日期”,则取当前档中的余额作为“前日余额”。最终以的“前日余额”作为账户日切快照余额。现有技术存在明显不足,具体而言,“前日余额”字段有时候并不是真实,后续必须进行特别处理,较容易出错;并且不能做到任意账户任意时间点的余额快照回溯;如果数据出现错误,将很难修复;同时,处理效率较低,随着账户的增多处理时间也会成倍增加。因此,亟需一种账务系统不停机日切点快照余额的方法,以解决现有技术中存在的易出错、无法进行任意账户在任意时间点的余额快照回溯以及错误难修复、处理效率低的问题。
技术实现思路
本专利技术的目的在于提供一种账务系统不停机日切点快照余额的方法,解决了现有技术中存在的易出错、无法进行任意账户在任意时间点的余额快照回溯以及错误难修复、处理效率低的问题;实现了在任意时刻进行账户余额精准快照和在短时间内高效完成海量历史变更记录回溯的目的。本专利技术所采用的技术方案是提供了一种账务系统不停机日切点快照余额的方法,包括以下步骤:S1,使用账户数据中每个账户的ID号与分片数进行取余运算;S2,将所述S1中经取余运算后得到相同值的账户ID放入同一队列中;S3,并发处理所述S2中形成的每个队列,所述每个队列均进行循环遍历获取账户ID,利用所述账户ID到账户余额表中查找对应账户的当前余额值和余额更新日期,并将当前余额值记入临时变量X中,将余额更新日期记入临时变量Y中;S4,以账务变更流水表的记录写入日期为依据,针对所述S3每个队列中的所有账户,利用回溯算法计算任意时刻T的准确快照余额,得到所有账户余额的最终快照集合list。进一步地,所述S4中计算任意T时刻的准确快照余额包括以下步骤:S41,新建存放快照余额的集合list;S42,取所述S3中分片取得的每个账户的临时变量X和临时变量Y,比较前一天T时刻的时间戳与Y的时间戳大小:若Y的时间戳小于前一天T时刻的时间戳,则将账户X作为该账户的快照余额值,并放入到list中;若Y的时间戳大于或等于前一天T时刻的时间戳,同时小于或等于T时刻的时间戳,则进行下一步;S43,用上述账户的ID号,根据账务变更流水表中变更日期的时间戳查找小于或等于T时刻时间戳的最后一条账务变更记录,若查找到此条流水记录,则取该条记录的变更后余额值作为该账户的在T时刻的快照余额值,并放入到list;若未查找到则进行下一步;S44,在账务变更流水表中查找T时刻往后日期为最小的流水记录,用此条记录的变更后余额值减去变更值得到快照余额值,并添加到最终快照余额的集合list;若未找到则进行下一步;S45,直接使用账户的X值作为快照余额值,放入到list;直到将所有分片处理结束,余额快照集合list最终添加完毕。进一步地,所述任意时刻T为系统设定的当天日切点;所述分片数为同时进行作业处理的线程任务数;所述账户余额表是用于存放每个账户实时余额的表,内容包括当前余额值和余额更新日期;所述账务变更流水表是用于反映账户余额变化的流水日志,包含每个账户余额变化的变更额、变更后余额值和变更日期。本专利技术的有益效果是:本专利技术可高效完成任意时刻海量账户余额数据的精准快照,为后续的账务核算提供强力支撑,大大缩短了整个账务日终处理过程的时间。同时提供海量快照数据的存储和快照检索,为后续业务开展做好准备。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术的整体流程图。图2是快照回溯方案图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。本技术方案是基于“账户余额表”和“账务变更流水表”,利用归并算法及回溯算法结合来快速精确获取全量账户任意时刻的余额快照数据。名词解释:“账户余额表”是用于存放每个账户实时余额的表,主要包含“当前余额”及“余额更新日期”。“账务变更流水表”是用于反映账户余额变化的流水日志,每条记录主要包含每个账户余额变化的“变更额”、“变更后余额值”及“变更日期”。1.为提高海量账户查找速度,在“账户余额表”中使用归并算法,查找各账户的“当前余额”值。算法步骤如下:A)使用账户数据中每个账户的ID号与分片数进行取余运算。注:这里分片数定义为同时进行作业处理的线程任务数。B)将运算后得到结果相同值的账户ID放入到同一队列中,等待处理。C)通过分片作业并发处理各集合列表,每个集合都进行循环遍历来获取账户ID号,用此账户ID到账户余额表中查找对应账户的“当前余额”及“余额更新日期”并放入临时变量X,Y中,等待下一步处理。实施例假如有5个账户,账户编号为1001、1002、1003、1004;分片处理的任务数为2,那么:1001%2=1;1002%2=0;1003%2=1;1004%2=0;则,1001、1003账户归为一组放入到队列A中,1002、1004账户归为一组放入到队列B中。分片任务并发同时进行A、B组处理作业:假如A开始遍历到1001,通过ID1001到"账户余额表"取1001的“当前余额”值放入变量X,取“余额更新日期”放入变量Y。而后进入下一大步骤处理。2.基于“账务变更流水表”的记录写入日期来作为依据,采用“回溯算法”来计算任意时间点T时刻的准确“余额快照”。算法步骤如下:A)新建存放“快照余额”的集合list。B)取上述“步骤1”中分片拿到的每个账户的X“当前余额”及Y“余额更新日期”,比较(T时刻-1天)与Y的大小,如果Y小于(T时刻-1天),则将账户X作为该账户的“快照余额”值,并放入到list中。若Y大于等于(T时刻-1天)且小于等于T时刻,则进行下一步;C)用上述账户的ID号,在“账务变更流水表”中根据流水记录的“变更日期”查找小于等于T时刻的最后一条账务变更记录,若查找到此条流水记录,则取该条记录的“变更后余额值”作为该账户的在T时刻的“快照余额值”,并放入到list。若未查找到则进行下一步;D)在“账务变更流水表”中查找T时刻往后日期为最小的流水记录,用此条记录的“变更后余额值本文档来自技高网...

【技术保护点】
1.一种账务系统不停机日切点快照余额的方法,其特征在于,包括以下步骤:S1,使用账户数据中每个账户的ID号与分片数进行取余运算;S2,将所述S1中经取余运算后得到相同值的账户ID放入同一队列中;S3,并发处理所述S2中形成的每个队列,所述每个队列均进行循环遍历获取账户ID,利用所述账户ID到账户余额表中查找对应账户的当前余额值和余额更新日期,并将当前余额值记入临时变量X中,将余额更新日期记入临时变量Y中;S4,以账务变更流水表的记录写入日期为依据,针对所述S3每个队列中的所有账户,利用回溯算法计算任意时刻T的准确快照余额,得到所有账户余额的最终快照集合list。

【技术特征摘要】
1.一种账务系统不停机日切点快照余额的方法,其特征在于,包括以下步骤:S1,使用账户数据中每个账户的ID号与分片数进行取余运算;S2,将所述S1中经取余运算后得到相同值的账户ID放入同一队列中;S3,并发处理所述S2中形成的每个队列,所述每个队列均进行循环遍历获取账户ID,利用所述账户ID到账户余额表中查找对应账户的当前余额值和余额更新日期,并将当前余额值记入临时变量X中,将余额更新日期记入临时变量Y中;S4,以账务变更流水表的记录写入日期为依据,针对所述S3每个队列中的所有账户,利用回溯算法计算任意时刻T的准确快照余额,得到所有账户余额的最终快照集合list。2.根据权利要求1所述的一种账务系统不停机日切点快照余额的方法,其特征在于,所述S4中计算任意T时刻的准确快照余额包括以下步骤:S41,新建存放快照余额的集合list;S42,取所述S3中分片取得的每个账户的临时变量X和临时变量Y,比较前一天T时刻的时间戳与Y的时间戳大小:若Y的时间戳小于前一天T时刻的时间戳,则将账户X作为该账户的快照余额值,并放入到list中;若Y的时间戳...

【专利技术属性】
技术研发人员:付杰朱青
申请(专利权)人:必成汇成都科技有限公司
类型:发明
国别省市:四川,51

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

1