业务流水号生成装置和方法

文档序号:9432615阅读:569来源:国知局
业务流水号生成装置和方法
【专利说明】业务流水号生成装置和方法
[0001]
技术领域
[0002]本发明涉及数据处理技术领域,具体地,涉及一种业务流水号生成装置和一种业务流水号生成方法。
[0003]
【背景技术】
[0004]在软件系统中,经常会遇到给单据设置一个业务流水号的情况。业务流水号,可以手工录入,也可以通过一定的算法生成。对于不同的单据,通常会对业务流水号有一定的规则要求,如:加上固定的前缀,按一定的依据从新从零开始流水等等。
[0005]手工录入业务流水号,一方面,容易照成错误,录入不符合规则的业务流水号,另一方面,难以保证连续,在并发录入的情况下,容易照成重复。对系统生成的流水号,目前很多软件系统都是自己实现了一些简单的生成方式,实现了业务流水号的生成和回收,缺乏通用性和可扩展性。
[0006]因此,需要一种新的业务流水号生成技术,可以在现有的业务流水号生成方式基础上,充分利用单对象类型完成多对象类型元数据的业务流水号生成,建立多对象类型元数据参与的面向复杂类型业务流水号生成的通用、统一生成思路。
[0007]

【发明内容】

[0008]本发明正是基于上述问题,提出了一种新的业务流水号生成技术,可以在现有的业务流水号生成方式基础上,充分利用单对象类型完成多对象类型元数据的业务流水号生成,建立多对象类型元数据参与的面向复杂类型业务流水号生成的通用、统一生成思路。
[0009]有鉴于此,本发明提出了一种业务流水号生成装置,包括:流水号生成单元,用于基于用户请求生成业务流水号,并基于生成的业务流水号进行元素处理、持久化处理和模型处理;数据库行锁单元,用于基于元素处理、持久化处理和模型处理后的业务流水号,进行相关信息保存和记录锁定处理;业务流水号连续性处理单元,用于基于相关信息保存和记录锁定处理后的业务流水号,进行场景分类处理,得到用户所需业务流水号。在该技术方案中,可以对业务流水号的使用进行分析,基于数据库行锁,提出通用的解决方式,有很好的扩展性和通用性,能够灵活的配置业务流水号的生成规则。
[0010]在上述技术方案中,优选地,所述流水号生成单元,具体包括:流水号生成引擎,用于基于用户请求,对于满足预设业务流水号生成条件的业务流水号生成请求,采用默认配置生成所需业务流水号;流水号元素处理引擎,用于将生成的业务流水号或单据业务流水号的所有信息,被凝练到业务流水号核心信息中,根据序列号生成器获取序列号元素的值,将业务流水号模型中的序列号占位符替换,获得最终业务流水号;需要退号时,根据系统时间进行退号处理;流水号生成引擎持久化接口,用于基于获得的最终业务流水号,通过流水号生成上下文获取流水号元素处理器,对最终业务流水号进行流水号处理引擎持久化处理;流水号规则模型,用于基于流水号处理引擎持久化处理后的最终业务流水号,进行规则计算,在业务流水号规则计算中产生能够唯一识别业务流水号的随机号码;单据值对象模型,用于基于产生的随机号码,获取与该随机号码对应的业务流水号元素,分别提供默认的元素处理器;流水号生成上下文模型,用于基于提供的元素处理器,获取流水号生成上下文信息,进行业务流水号的信息配置,并对配置的信息进行保存,用于业务流水号生成过程中的随时调用。在该技术方案中,可以通过业务流水号的生成和稳固性处理,解决业务流水号的通用性与可扩展性。
[0011 ] 在上述技术方案中,优选地,所述流水号生成引擎,还用于对于默认配置不能满足业预设业务流水号生成条件的业务流水号生成请求,采用扩展方式和业务流水号规则的动态调整方式,生成所需单据业务流水号;和/或,所述业务流水号核心信息,包括序列号信息、系统时间信息和核心规则模型,序列号信息包含当前需要使用的序列号生成器,核心规则信息包括流水归零依据和业务流水号模型;和/或,所述退号处理的具体操作,包括:如果系统时间是归零依据,根据系统时间信息去截取要回退的流水号中的系统时间,反算出本回退号的时间流水依据,如果和当前获得的系统时间的流水依据一致,并且其他流水依据也一致,则执行退号操作,否则号码不回退,直接抛弃;和/或,所述最终业务流水号,由多个子字段拼装组合而成,该多个子字段为业务流水号元素信息;在业务流水号的生成过程中使用的元素信息包括:和具体的单据值无关的信息,包括常量、系统时间、序列号和随机码;和单据信息有关的信息即单据上直接录入的信息或引用别的单据的信息,包括业务时间、手工录入的字符串。在该技术方案中,可以在运行维护时,提供业务流水号规则的动态调整能力,支持单据业务流水号生成方式的调整。
[0012]在上述技术方案中,优选地,所述数据库行锁单元,具体包括:相关信息保存模块,用于基于生成的业务流水号,采用业务流水号关系型数据库保存流水号生成相关信息,并对获取业务流水号的方法启动新的事务;所述流水号生成相关信息,包括当前最大流水号、回退号;最大流水号记录锁定模块,用于基于启动的新事物,执行数据库行锁,锁定当前归零依据下的最大流水号记录,这样,在当前流水号申请结束前,数据库中的本条数据一直锁定,直到当前流水号申请结束,提交事务后,第二个同一流水依据的流水号申请方法才能结束等待,继续执行。在该技术方案中,可以采用的是数据库行锁,锁定的只是一行数据,对其他流水依据的流水号获取,能够并行执行,保证了获取业务流水号好的效率。
[0013]在上述技术方案中,优选地,所述业务流水号连续性处理单元,具体包括:场景分类模块,用于数据库行锁处理后,对使用业务流水号的场景进行分类,对不同的场景进行不同的处理;前编码场景处理模块,用于在前编码场景下,通过前编码表保证业务流水号的连续性;该通过前编码表保证业务流水号的连续性的操作,具体包括:在前编码的情况下,当业务单据人员在获取业务流水号后,既没有保存,也没有取消,而是直接关闭页面或者系统时,前编码表中的数据会一直存;对超过预设时长的前编码表数据进行清理后,将该清理的前编码表数据转移到回退表中,保证业务流水号的连续性;后编码场景处理模块,用于在后编码的场景下,通过事务监控外部事务,根据事务成功失败来进行相应的请求级内存操作,保证业务流水号的连续性。在该技术方案中,可以解决业务流水号的唯一性与连续性,方便软件开发人员和提供运行态规则调整的能力。
[0014]根据本发明的又一个方面,还提出了一种业务流水号生成方法,包括:步骤202:基于用户请求生成业务流水号,并基于生成的业务流水号进行元素处理、持久化处理和模型处理;步骤204:基于元素处理、持久化处理和模型处理后的业务流水号,进行相关信息保存和记录锁定处理;步骤206:基于相关信息保存和记录锁定处理后的业务流水号,进行场景分类处理,得到用户所需业务流水号。在该技术方案中,可以对业务流水号的使用进行分析,基于数据库行锁,提出通用的解决方式,有很好的扩展性和通用性,能够灵活的配置业务流水号的生成规则。
[0015]在上述技术方案中,优选地,所述步骤202,具体包括:步骤302:基于用户请求,对于满足预设业务流水号生成条件的业务流水号生成请求,采用默认配置生成所需业务流水号;步骤304:将生成的业务流水号或单据业务流水号的所有信息,被凝练到业务流水号核心信息中,根据序列号生成器获取序列号元素的值,将业务流水号模型中的序列号占位符替换,获得最终业务流水号;需要退号时,根据系统时间进行退号处理;步骤306:基于获得的最终业务流水号,通过流水号生成上下文获取流水号元素处理器,对最终业务流水号进行流水号处理引擎持久化处理;步骤308:基于流水号处理引擎持久化处理后的最终业务流水号,进行规则计算,在业务流水号规则计算中产生能够唯一识别业务流水号的随
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1