CN113486627B - 一种单号生成方法、装置及电子设备 - Google Patents

一种单号生成方法、装置及电子设备 Download PDF

Info

Publication number
CN113486627B
CN113486627B CN202110608138.XA CN202110608138A CN113486627B CN 113486627 B CN113486627 B CN 113486627B CN 202110608138 A CN202110608138 A CN 202110608138A CN 113486627 B CN113486627 B CN 113486627B
Authority
CN
China
Prior art keywords
generated
single number
numbers
sequence
generating
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110608138.XA
Other languages
English (en)
Other versions
CN113486627A (zh
Inventor
侯圣鸿
时雷
王吉玲
刘松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peoples Insurance Company of China
Original Assignee
Peoples Insurance Company of China
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Peoples Insurance Company of China filed Critical Peoples Insurance Company of China
Priority to CN202110608138.XA priority Critical patent/CN113486627B/zh
Publication of CN113486627A publication Critical patent/CN113486627A/zh
Application granted granted Critical
Publication of CN113486627B publication Critical patent/CN113486627B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书实施例公开了一种单号生成方法、装置及电子设备。所述方法包括:响应于来自单号请求方的单号生成请求,构建满足预设的业务格式需求的单证号头,以及根据所述单号生成请求中的待生成单号的业务相关信息,构建所述待生成单号的序列头;基于所述待生成单号的序列头,生成满足所述待生成单号的数量且与所述待生成单号的序列号头的类型相匹配的所述待生成单号的数字序列值;基于所述待生成单号的数字序列值,生成预设格式的所述待生成单号的单证流水号;根据所述待生成单号的单证号头、所述待生成单号的单证流水号和生成所述待生成单号的服务提供方的标识,生成满足所述待生成单号的数量的所述待生成单号。

Description

一种单号生成方法、装置及电子设备
技术领域
本发明实施例涉及互联网技术领域,尤其涉及一种单号生成方法、装置及电子设备。
背景技术
目前,单号的生成方法主要有两种:一种方法是通过数据库表维护当前单号的流水最大号,以保证生成单号的连续唯一性;另一种方法则是由数据库记录当前使用的流水号段,并将该流水号段放在Redis缓存中,从Redis缓存的流水号段中取号,待Redis缓存中的号源被取空后,再更新数据库表和Redis缓存中的流水号段,以记录下一个流水号段,如此反复。
然而,上述第一种方法中由于涉及数据库行并发锁,如果同时有多个单号生成请求,则会导致单号生成效率低,且存在生成重复单号的可能。而第二种方法中在Redis缓存中的已缓存号段使用完,进行新号段切换时,则需要数据库生成下一个流水号段,并放到Redis缓存中。如果在业务高峰期进行新号段切换,则会导致性能大幅下降。且由于第二种方法中Redis缓存中的数据没有被持久化,无法记录当前已被分发的流水号,若Redis缓存异常丢失,为保证生成流水号的唯一性,只能废弃缓存的整个号段。
因此,如何提高单号的生成效率、并且保证所生成的单号的唯一性,仍然需要提供进一步的解决方案。
发明内容
本发明实施例提供一种单号生成方法、装置及电子设备,用于解决现有的单号生成方法效率较低且难以保证所生成单号的唯一性的问题。
本发明实施例采用下述技术方案:
第一方面,提供了一种单号生成方法,包括:
响应于来自单号请求方的单号生成请求,构建满足预设的业务格式需求的单证号头,以及根据所述单号生成请求中的待生成单号的业务相关信息,构建所述待生成单号的序列头,所述单号生成请求中至少携带有所述待生成单号的业务相关信息和所述待生成单号的数量;
基于所述待生成单号的序列头,生成满足所述待生成单号数量且与所述待生成单号的序列号头的类型相匹配的所述待生成单号的数字序列值;
基于所述待生成单号的数字序列值,生成预设格式的所述待生成单号的单证流水号;
根据所述单证号头、所述待生成单号的单证流水号和生成所述待生成单号的服务提供方的标识,生成满足所述待生成单号的数量的所述待生成单号。
第二方面,提供了一种单号生成装置,包括:
请求响应单元,用于响应于来自单号请求方的单号生成请求,构建满足预设的业务格式需求的单证号头,以及根据所述单号生成请求中的待生成单号的业务相关信息,构建所述待生成单号的序列头,所述单号生成请求中至少携带有所述待生成单号的业务相关信息和所述待生成单号的数量;
序列值生成单元,用于基于所述待生成单号的序列头,生成满足所述待生成单号数量且与所述待生成单号的序列号头的类型相匹配的所述待生成单号的数字序列值;
流水号生成单元,用于基于所述待生成单号的数字序列值,生成预设格式的所述待生成单号的单证流水号;
单号生成单元,用于根据所述单证号头、所述待生成单号的单证流水号和生成所述待生成单号的服务提供方的标识,生成满足所述待生成单号的数量的所述待生成单号。
第三方面,提供了一种电子设备,包括:
存储器,存储有计算机程序指令;
处理器,当所述计算机程序指令被所述处理器执行时实现如第一方面所述的单号生成方法。
第四方面,提供了一种计算机可读存储介质,
所述计算机可读存储介质包括指令,当所述指令在计算机上运行时,使得计算机执行如第一方面所述的单号生成方法。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:
本说明书实施例在生成单号时,能够响应于来自单号请求方的单号生成请求,构建满足预设的业务格式需求的单证号头,以及根据单号生成请求中的待生成单号的业务相关信息,构建待生成单号的序列头;以及基于待生成单号的序列头,生成满足待生成单号数量且与待生成单号的序列号头的类型相匹配的待生成单号的数字序列值;并能基于待生成单号的数字序列值,生成预设格式的待生成单号的单证流水号;最后,根据单证号头、待生成单号的单证流水号和生成待生成单号的服务提供方的标识,生成待生成单号。通过一次性接收多种类型单号的生成请求,并依据各单号生成请求中携带的待生成单号数量信息,一次性批量生成不同类型的不同数量的单号,提高了单号的生成效率。同时,通过本方案生成的单号由单证号头、待生成单号的单证流水号和生成待生成单号的服务提供方的标识组成,生成待生成单号的服务提供方的标识可被动态配置,用来标识不同的服务提供方,保证了不同服务提供方生成的单号之间相互独立以及唯一性。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本说明书的一个实施例提供的一种单号生成方法的实现流程示意图;
图2为本说明书的一个实施例提供的一种单号生成装置的结构示意图;
图3为本说明书的一个实施例提供的一种电子设备的硬件结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为解决现有的单号生成方法效率较低且难以保证所生成单号的唯一性的问题,本说明书实施例提供一种单号生成方法。本说明书实施例提供的方法的执行主体可以但不限于个人电脑、服务器等能够被配置为执行本发明实施例提供的该方法装置中的至少一种。
为便于描述,下文以该方法的执行主体为能够执行该方法的服务器为例,对该方法的实施方式进行介绍。可以理解,该方法的执行主体为服务器只是一种示例性的说明,并不应理解为对该方法的限定。
具体地,本说明书一个或多个实施例提供的一种单号生成方法的实现流程示意图如图1所示,包括:
步骤110,响应于来自单号请求方的单号生成请求,构建满足预设的业务格式需求的单证号头,以及根据单号生成请求中的待生成单号的业务相关信息,构建待生成单号的序列头。
其中,单号生成请求中至少携带有待生成单号的业务相关信息和待生成单号的数量。
其中,单证号头还可根据单号生成请求中的待生成单号的业务相关信息生成,只要生成的单证号头满足预设的业务格式需求即可。
其中,待生成单号的业务相关信息用于指示待生成单号所要应用的业务领域,以待生成单号为保险单号为例,该待生成单号的业务相关信息可包括待生成单号所属的保险业务类型等业务相关信息。待生成单号的数量可以是一个也可以是多个,当待生成单号的数量为多个时,本说明书实施例可根据单号请求方的单号生成请求,批量生成多个待生成单号,提高单号的生成效率。
可选地,为了保证待生成单号的唯一性,本说明书实施例中的单号在生成之前,还可以依据待生成单号的业务相关信息和生成待生成单号的服务提供方的标识,构建待生成单号的序列头。具体地,根据所述单号生成请求中的待生成单号的业务相关信息,构建所述待生成单号的序列头,包括:
根据所述待生成单号的业务相关信息和生成所述待生成单号的服务提供方标识,构建所述待生成单号的序列头。
可选地,上述单号生成请求中还可携带单号请求方的标识,该单号请求方的标识通常为单号请求方的唯一标识,用于区分该单号请求方与其他的单号请求方,也可用于限定该单号请求方请求生成的单号的作用范围,比如将某一单证号按不同业务渠道区分不同单号请求方使用独立的号池。具体地,当单号生成请求中携带有单号请求方的标识时,根据待生成单号的业务相关信息和生成待生成单号的服务提供方标识,构建待生成单号的序列头,包括:
根据待生成单号的业务相关信息、生成待生成单号的服务提供方标识和单号请求方的标识,构建待生成单号的序列头。
可选地,待生成单号的序列头还可包括待生成单号的单号生成日期(即由生成待生成单号的服务提供方提供的待生成单号的时间戳)和单号请求方的标识,具体可由待生成单号的业务相关信息、生成所述待生成单号的服务提供方标识、待生成单号的时间戳和单号请求方的标识这几项信息拼接得到。具体地,当待生成单号的序列头中包括时间戳时,根据待生成单号的业务相关信息和生成待生成单号的服务提供方标识,构建待生成单号的序列头,包括:
根据待生成单号的业务相关信息、生成待生成单号的服务提供方标识和时间戳,构建待生成单号的序列头。
该时间戳的格式可动态配置,可选格式包括年(由四位数字标识,如2021)、月(由一位数字或字母标识,其中A、B和C分别表示10月、11月和12月),以及年月(四位数字年+一位字符月)。
可选地,待生成单号的序列头中还可包括时间戳且单号生成请求中还可携带有单号请求方的标识,根据待生成单号的业务相关信息和生成待生成单号的服务提供方标识,构建待生成单号的序列头,包括:
根据待生成单号的业务相关信息、生成待生成单号的服务提供方标识、时间戳和单号请求方的标识,构建待生成单号的序列头。
步骤120,基于待生成单号的序列头,生成与待生成单号的序列号头的类型相匹配的待生成单号的数字序列值。
可选地,为了避免浪费已生成且未被使用的序列值,本说明书实施例可在服务提供方维护一个漏号回收队列,用于回收未被使用的序列值,如果该待生成单号的序列头对应的漏号回收队列中存在漏号,则可直接从漏号回收队列中获取漏号作为待生成单号的序列值,而如果漏号回收队列中不存在漏号,则可基于待生成单号的序列头,通过数据库序列生成与待生成单号的序列号头的类型相匹配的待生成单号的序列值。具体地,基于待生成单号的序列头,生成与待生成单号的序列号头的类型相匹配的待生成单号的数字序列值,包括:
确定该待生成单号的序列头对应的漏号回收队列中是否存在漏号;
如果该待生成单号的序列头对应的漏号回收队列中不存在漏号,则基于待生成单号的序列头,通过数据库序列生成与待生成单号的序列号头的类型相匹配的待生成单号的数字序列值。
其中,确定该待生成单号的序列头对应的漏号回收队列中是否存在漏号具体可对漏号回收队列执行lPop操作,如果返回值若为空,则表明该待生成单号的序列头对应的漏号回收队列中不存在漏号,此时可基于待生成单号的序列头,通过数据库序列生成与待生成单号的序列号头的类型相匹配的待生成单号的序列值;若返回值不为空,则表明漏号回收队列中存在漏号,此时可返回获取的漏号,作为待生成单号的序列值。
如果该待生成单号的序列头对应的漏号回收队列中不存在漏号,则可由能高性能生成序列号的数据库序列提供待生成单号的数字序列值的生成服务。可高性能生成序列值的数据库,如PostgrelSQ数据库,其可提供唯一且连续数字序列值的生成能力,并提供与Redis内存数据库相当的流水号生成性能,系统吞吐量(即每秒生成序列值的数量)可达万级,而且使用数据库成熟的高可用性、负载均衡、复制与集群方案,能够提供可靠的序列值生成服务。同时,提供的批量生成连续序列值的能力可保证批量生成单号的性能。
可选地,确定待生成单号的序列头对应的漏号回收队列中是否存在漏号之后,所述方法还包括:
如果待生成单号的序列头对应的漏号回收队列中存在漏号,则从漏号回收队列中获取漏号作为待生成单号的序列值。
上述漏号回收队列在实际应用中可基于Redis队列提供漏号回收以及复用能力。在漏号回收模式下,优先从漏号回收队列即Redis队列中获取回收的漏号返回,作为待生成单号的序列值。
其中,Redis中可维护队列recyList用于记录可回收的序列值,并设置定时任务用于定期检测漏号并更新队列recyList。具体的漏号回收的流程可包括:
S1,清空单号临时表prpmaxuse_recy。
S2,将存储已生成的序列值的prpmaxuse表中未被检测的序列值拷贝到prpmaxuse_recy单号临时表,作为待检测的数字序列值。
S3,清空漏号记录表no_leak_recorder。
S4,检测prpmaxuse_recy表中的数字序列值数据,并将所得的漏号段记录到漏号记录表no_leak_recorder中。
S5,初始化漏号回收表no_recycler。
S6,按最新配置格式化no_leak_recorder表中的漏号并记录到漏号回收表no_recycler中。
S7,将漏号回收表no_recycler中待回收的单号添加到Redis中的漏号回收队列中。
步骤130,基于待生成单号的数字序列值,生成预设格式的待生成单号的单证流水号。
单证中的单证流水号的长度由业务设定的单证号格式确定,其长度决定了该业务单证号的容量,如6位数字单证流水号,最多只能标识一百万个不同的单号,对应一百万个数字序列值。为扩增可生成单号的数量,使限定长度的单证流水号能够标识大于该限定长度的数字序列值,可选地,本说明书实施例中的单证流水号可包括“借位字母”和“数字流水”两部分,其中“数字流水”可由待生成单号的数字序列值的指定位数的部分构成,“借位字母”由待生成单号的数字序列值中除指定位数的部分经过指定进制转换和按需补位得到。其中,“借位字母”可在单证流水号的长度被限制的情况下,扩展单证流水号的实际容量。具体地,基于待生成单号的数字序列值,生成预设格式的待生成单号的单证流水号,包括:
获取预设格式的单证流水号中“借位字母”的长度和“数字流水”的长度;
获取待生成单号的数字序列值的指定位数的部分,作为预设格式的单证流水号中的“数字流水”,指定位数与所述“数字流水”的长度一致;
获取待生成单号的序列值中除指定位数的部分,并将待生成单号的数字序列值的第二指定位数的部分转换为36进制,得到与“借位字母”长度一致的36进制数,作为预设格式的单证流水号中的“借位字母”;
基于预设格式的单证流水号中的“借位字母”和预设格式的单证流水号中的“数字流水”,生成预设格式的待生成单号的单证流水号。
假设单证流水号长度限定为Length,“借位字母”的长度为DynLength,“数字流水”的长度为NumLength,“借位字母”的长度和“数字流水”的长度作为单证流水号配置参数支持动态配置。那么,基于待生成单号的数字序列值,生成预设格式的待生成单号的单证流水号的过程可包括:
首先,可由高性能生成序列号的数据库序列生成原始的数字流水号InitNum,该高性能生成序列号数据库在实际应用中可以是PostgrelSQL数据库;
然后,从原始的数字流水号InitNum中从右往左截取前NumLength位作为单证流水号的“数字流水”部分;
再,从原始的数字流水号InitNum中从右往左截取第(NumLength+DynLenth)位到第(NumLength+1)位数字流水,并对截取的第(NumLength+DynLenth)位到第(NumLength+1)位数字流水进行十进制转36进制的运算,再按需补位至长度DynLength,如此所得长度为DynLength的36进制数作为单证流水号的“借位字母”部分;
最后,拼接上述“借位字母”+“数字流水”,构成“单证流水号”。
上述“借位字母”DynLength的长度可支持动态变更,从而在限定单证流水号长度的情况下实现单证流水号号池容量的动态扩增。
步骤140,根据单证号头、待生成单号的单证流水号和生成待生成单号的服务提供方的标识,生成满足待生成单号的数量的待生成单号。
可选地,根据单证号头、待生成单号的单证流水号和生成待生成单号的服务提供方的标识,生成满足待生成单号的数量的待生成单号,包括:
按照指定的拼接规则,将单证号头、待生成单号的单证流水号和生成待生成单号的服务提供方的标识进行拼接,生成满足待生成单号的数量的待生成单号。
其中,待生成单号可由单证号头、待生成单号的单证流水号和生成待生成单号的服务提供方的标识拼接组成。具体地,待生成单号可以是待生成单号的单证号头+生成待生成单号的服务提供方的标识+待生成单号的单证流水号拼接得到,应理解,该拼接规则只是一种示例性的说明,不构成对本说明书实施例中待生成单号的生成规则的限定。
可选地,当上述待生成单号的序列头中包含时间戳时,根据单证号头、待生成单号的单证流水号和生成待生成单号的服务提供方的标识,生成满足所述待生成单号的数量的待生成单号,包括:
按照指定的拼接规则,将单证号头、待生成单号的单证流水号、时间戳和生成待生成单号的服务提供方的标识进行拼接,生成满足所述待生成单号的数量的待生成单号。
其中,待生成单号可由单证号头、待生成单号的单证流水号、时间戳和生成待生成单号的服务提供方的标识拼接组成。具体地,待生成单号可以是待生成单号的单证号头+生成待生成单号的服务提供方的标识+时间戳+待生成单号的单证流水号拼接得到,应理解,该拼接规则只是一种示例性的说明,不构成对本说明书实施例中待生成单号的生成规则的限定。
本说明书实施例中所生成的待生成单号,其序列头不同,以保证所生成单号的唯一性,但单证号头可能一样。因此,在序列头不变的情况下,待生成单号的格式可根据业务需求进行变更,该待生成单号的格式的可配置项包括:单证号头、时间戳、业务相关信息的格式、以及单证流水号的长度等。
可选地,根据待生成单号的单证号头、待生成单号的单证流水号和生成待生成单号的服务提供方的标识,生成满足所述待生成单号的数量的待生成单号之后,所述方法还包括:
将满足所述待生成单号的数量的待生成单号发送至单号请求方。
应理解,在将待生成单号发送至单号请求方之前,可对已生成的待生成单号进行备份,保存在预先维护好的单号数据库中,以备后续的单号查找和查重等。
本说明书实施例在生成单号时,能够响应于来自单号请求方的单号生成请求,构建满足预设的业务格式需求的单证号头,以及根据单号生成请求中的待生成单号的业务相关信息,构建待生成单号的序列头;以及基于待生成单号的序列头,生成满足待生成单号数量且与待生成单号的序列号头的类型相匹配的待生成单号的序列值;并能基于待生成单号的数字序列值,生成预设格式的待生成单号的单证流水号;最后,根据单证号头、待生成单号的单证流水号和生成待生成单号的服务提供方的标识,生成待生成单号。通过一次性接收多种类型单号的生成请求,并依据各单号生成请求中携带的待生成单号数量信息,一次性批量生成不同类型的不同数量的单号,提高了单号的生成效率。同时,通过本方案生成的单号由单证号头、待生成单号的单证流水号和生成待生成单号的服务提供方的标识组成,生成待生成单号的服务提供方的标识可被动态配置,用来标识不同的服务提供方,保证了不同服务提供方生成的单号之间相互独立以及唯一性。
图2是本说明书的一个实施例提供的一种单号生成装置200的结构示意图。在一种软件实施方式中,该单号生成装置200可包括请求响应单元201、序列值生成单元202、流水号生成单元203和单号生成单元204,其中:
请求响应单元201,用于响应于来自单号请求方的单号生成请求,构建满足预设的业务格式需求的单证号头,以及根据所述单号生成请求中的待生成单号的业务相关信息,构建所述待生成单号的序列头,所述单号生成请求中至少携带有所述待生成单号的业务相关信息和所述待生成单号的数量;
序列值生成单元202,用于基于所述待生成单号的序列头,生成满足所述待生成单号数量且与所述待生成单号的序列号头的类型相匹配的所述待生成单号的数字序列值;
流水号生成单元203,用于基于所述待生成单号的数字序列值,生成预设格式的所述待生成单号的单证流水号;
单号生成单元204,用于根据所述单证号头、所述待生成单号的单证流水号和生成所述待生成单号的服务提供方的标识,生成满足所述待生成单号的数量的所述待生成单号。
可选地,在一种实施方式中,所述序列值生成单元202,用于:
确定所述待生成单号的序列头对应的漏号回收队列中是否存在漏号;
如果所述待生成单号的序列头对应的漏号回收队列中不存在漏号,则基于所述待生成单号的序列头,通过数据库序列生成与所述待生成单号的序列号头的类型相匹配的所述待生成单号的序列值。
可选地,在一种实施方式中,所述装置还包括:
漏号获取单元,用于如果所述待生成单号的序列头对应的漏号回收队列中存在漏号,则从所述待生成单号的序列头对应的漏号回收队列中获取漏号作为所述待生成单号的序列值。
可选地,在一种实施方式中,所述请求响应单元201,用于:
根据所述待生成单号的业务相关信息和生成所述待生成单号的服务提供方标识,构建所述待生成单号的序列头。
可选地,在一种实施方式中,所述单号生成请求中还携带有所述单号请求方的标识,所述请求响应单元201,用于:
根据所述待生成单号的业务相关信息、生成所述待生成单号的服务提供方标识和所述单号请求方的标识,构建所述待生成单号的序列头。
可选地,在一种实施方式中,所述流水号生成单元203,用于:
获取所述预设格式的单证流水号中“借位字母”的长度和“数字流水”的长度;
获取所述待生成单号的数字序列值的指定位数的部分,作为所述预设格式的单证流水号中的“数字流水”,所述指定位数与所述“数字流水”的长度一致;
获取所述待生成单号的序列值中除所述指定位数的部分,并将所述待生成单号的数字序列值的第二指定位数的部分转换为36进制,得到与所述“借位字母”的长度一致的36进制数,作为所述预设格式的单证流水号中的“借位字母”;
基于预设格式的单证流水号中的“借位字母”和预设格式的单证流水号中的“数字流水”,生成预设格式的待生成单号的单证流水号。
可选地,在一种实施方式中,所述单号生成单元204,用于:
按照指定的拼接规则,将所述单证号头、所述待生成单号的单证流水号和生成所述待生成单号的服务提供方的标识进行拼接,生成所述待生成单号。
可选地,在一种实施方式中,所述单号生成单元204根据所述待生成单号的单证号头、所述待生成单号的单证流水号和生成所述待生成单号的服务提供方的标识,生成满足所述待生成单号的数量的所述待生成单号之后,所述装置还包括:
单号发送单元,用于将满足所述待生成单号的数量的所述待生成单号发送至所述单号请求方。
单号生成装置200能够实现图1的方法实施例的方法,具体可参考图1所示实施例的单号生成方法,不再赘述。
图3是本说明书的一个实施例提供的电子设备的结构示意图。请参考图3,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图3中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成单号生成装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
响应于来自单号请求方的单号生成请求,构建满足预设的业务格式需求的单证号头,以及根据所述单号生成请求中的待生成单号的业务相关信息,构建所述待生成单号的序列头,所述单号生成请求中至少携带有所述待生成单号的业务相关信息和所述待生成单号的数量;
基于所述待生成单号的序列头,生成满足所述待生成单号数量且与所述待生成单号的序列号头的类型相匹配的所述待生成单号的数字序列值;
基于所述待生成单号的数字序列值,生成预设格式的所述待生成单号的单证流水号;
根据所述单证号头、所述待生成单号的单证流水号和生成所述待生成单号的服务提供方的标识,生成满足所述待生成单号的数量的所述待生成单号。
本说明书实施例在生成单号时,能够响应于来自单号请求方的单号生成请求,构建满足预设的业务格式需求的单证号头,以及根据单号生成请求中的待生成单号的业务相关信息,构建待生成单号的序列头;以及基于待生成单号的序列头,生成满足待生成单号数量且与待生成单号的序列号头的类型相匹配的待生成单号的序列值;并能基于待生成单号的数字序列值,生成预设格式的待生成单号的单证流水号;最后,根据单证号头、待生成单号的单证流水号和生成待生成单号的服务提供方的标识,生成待生成单号。通过一次性接收多种类型单号的生成请求,并依据各单号生成请求中携带的待生成单号数量信息,一次性批量生成不同类型的不同数量的单号,提高了单号的生成效率。同时,通过本方案生成的单号由单证号头、待生成单号的单证流水号和生成待生成单号的服务提供方的标识组成,生成待生成单号的服务提供方的标识可被动态配置,用来标识不同的服务提供方,保证了不同服务提供方生成的单号之间相互独立以及唯一性。
上述如本说明书图1所示实施例揭示的单号生成方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书一个或多个实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书一个或多个实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图1的单号生成方法,本说明书在此不再赘述。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1所示实施例的方法,并具体用于执行以下操作:
响应于来自单号请求方的单号生成请求,构建满足预设的业务格式需求的单证号头,以及根据所述单号生成请求中的待生成单号的业务相关信息,构建所述待生成单号的序列头,所述单号生成请求中至少携带有所述待生成单号的业务相关信息和所述待生成单号的数量;
基于所述待生成单号的序列头,生成满足所述待生成单号数量且与所述待生成单号的序列号头的类型相匹配的所述待生成单号的数字序列值;
基于所述待生成单号的数字序列值,生成预设格式的所述待生成单号的单证流水号;
根据所述单证号头、所述待生成单号的单证流水号和生成所述待生成单号的服务提供方的标识,生成满足所述待生成单号的数量的所述待生成单号。
当然,除了软件实现方式之外,本说明书的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书一个或多个实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书一个或多个实施例的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

Claims (9)

1.一种单号生成方法,其特征在于,包括:
响应于来自单号请求方的单号生成请求,构建满足预设的业务格式需求的单证号头,以及根据所述单号生成请求中的待生成单号的业务相关信息,构建所述待生成单号的序列头,所述单号生成请求中至少携带有所述待生成单号的业务相关信息和所述待生成单号的数量;
基于所述待生成单号的序列头,生成满足所述待生成单号数量且与所述待生成单号的序列头的类型相匹配的所述待生成单号的数字序列值;
基于所述待生成单号的数字序列值,生成预设格式的所述待生成单号的单证流水号;
根据所述单证号头、所述待生成单号的单证流水号和生成所述待生成单号的服务提供方的标识,生成满足所述待生成单号的数量的所述待生成单号;
其中,基于所述待生成单号的数字序列值,生成预设格式的所述待生成单号的单证流水号,包括:
获取所述预设格式的单证流水号中“借位字母”的长度和“数字流水”的长度;
获取所述待生成单号的数字序列值的指定位数的部分,作为所述预设格式的单证流水号中的“数字流水”,所述指定位数与所述“数字流水”的长度一致;
获取所述待生成单号的数字序列值中除所述指定位数的部分,并将所述待生成单号的数字序列值中除所述指定位数的部分转换为36进制,得到与所述“借位字母”的长度一致的由大写字母和数字组成的36进制数,作为所述预设格式的单证流水号中的“借位字母”;
基于预设格式的单证流水号中的“借位字母”和预设格式的单证流水号中的“数字流水”,生成预设格式的待生成单号的单证流水号。
2.如权利要求1所述的方法,其特征在于,基于所述待生成单号的序列头,生成满足所述待生成单号数量且与所述待生成单号的序列头的类型相匹配的所述待生成单号的数字序列值,包括:
确定所述待生成单号的序列头对应的漏号回收队列中是否存在漏号;
如果所述待生成单号的序列头对应的漏号回收队列中不存在漏号,则基于所述待生成单号的序列头,通过数据库序列生成满足所述待生成单号数量且与所述待生成单号的序列头的类型相匹配的所述待生成单号的数字序列值。
3.如权利要求2所述的方法,其特征在于,所述方法还包括:
如果所述待生成单号的序列头对应的漏号回收队列中存在漏号,则从所述待生成单号的序列头对应的漏号回收队列中获取漏号作为所述待生成单号的数字序列值。
4.如权利要求1所述的方法,其特征在于,根据所述单号生成请求中的待生成单号的业务相关信息,构建所述待生成单号的序列头,包括:
根据所述待生成单号的业务相关信息和生成所述待生成单号的服务提供方标识,构建所述待生成单号的序列头。
5.如权利要求4所述的方法,其特征在于,所述单号生成请求中还携带有所述单号请求方的标识,根据所述待生成单号的业务相关信息和生成所述待生成单号的服务提供方标识,构建所述待生成单号的序列头,包括:
根据所述待生成单号的业务相关信息、生成所述待生成单号的服务提供方标识和所述单号请求方的标识,构建所述待生成单号的序列头。
6.如权利要求1所述的方法,其特征在于,根据所述单证号头、所述待生成单号的单证流水号和生成所述待生成单号的服务提供方的标识,生成满足所述待生成单号的数量的所述待生成单号,包括:
按照指定的拼接规则,将所述单证号头、所述待生成单号的单证流水号和生成所述待生成单号的服务提供方的标识进行拼接,生成满足所述待生成单号的数量的所述待生成单号。
7.一种单号生成装置,其特征在于,包括:
请求响应单元,用于响应于来自单号请求方的单号生成请求,构建满足预设的业务格式需求的单证号头,以及根据所述单号生成请求中的待生成单号的业务相关信息,构建所述待生成单号的序列头,所述单号生成请求中至少携带有所述待生成单号的业务相关信息和所述待生成单号的数量;
序列值生成单元,用于基于所述待生成单号的序列头,生成满足所述待生成单号数量且与所述待生成单号的序列头的类型相匹配的所述待生成单号的数字序列值;
流水号生成单元,用于基于所述待生成单号的数字序列值,生成预设格式的所述待生成单号的单证流水号;
单号生成单元,用于根据所述单证号头、所述待生成单号的单证流水号和生成所述待生成单号的服务提供方的标识,生成满足所述待生成单号的数量的所述待生成单号;
其中,所述流水号生成单元,用于:
获取所述预设格式的单证流水号中“借位字母”的长度和“数字流水”的长度;
获取所述待生成单号的数字序列值的指定位数的部分,作为所述预设格式的单证流水号中的“数字流水”,所述指定位数与所述“数字流水”的长度一致;
获取所述待生成单号的数字序列值中除所述指定位数的部分,并将所述待生成单号的数字序列值中除所述指定位数的部分转换为36进制,得到与所述“借位字母”的长度一致的由大写字母和数字组成的36进制数,作为所述预设格式的单证流水号中的“借位字母”;
基于预设格式的单证流水号中的“借位字母”和预设格式的单证流水号中的“数字流水”,生成预设格式的待生成单号的单证流水号。
8.一种电子设备,其特征在于,包括:
存储器,存储有计算机程序指令;
处理器,当所述计算机程序指令被所述处理器执行时实现如权利要求1-6任一项所述的单号生成方法。
9.一种计算机可读存储介质,其特征在于,
所述计算机可读存储介质包括指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1-6任一项所述的单号生成方法。
CN202110608138.XA 2021-06-01 2021-06-01 一种单号生成方法、装置及电子设备 Active CN113486627B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110608138.XA CN113486627B (zh) 2021-06-01 2021-06-01 一种单号生成方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110608138.XA CN113486627B (zh) 2021-06-01 2021-06-01 一种单号生成方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN113486627A CN113486627A (zh) 2021-10-08
CN113486627B true CN113486627B (zh) 2023-08-08

Family

ID=77933769

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110608138.XA Active CN113486627B (zh) 2021-06-01 2021-06-01 一种单号生成方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN113486627B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109597853A (zh) * 2018-10-22 2019-04-09 平安科技(深圳)有限公司 业务场景元素序列号生成方法、装置、介质和计算机设备
WO2019085579A1 (zh) * 2017-10-30 2019-05-09 阿里巴巴集团控股有限公司 一种信息推送方法和装置
CN110807035A (zh) * 2019-11-05 2020-02-18 泰康保险集团股份有限公司 流水号生成方法、装置、设备及存储介质
WO2021052029A1 (zh) * 2019-09-17 2021-03-25 苏宁云计算有限公司 数据对象标识生成方法、装置、计算机设备和存储介质
CN112651794A (zh) * 2020-09-30 2021-04-13 全景智联(武汉)科技有限公司 订单号管理方法、系统及存储介质
CN112860661A (zh) * 2021-01-20 2021-05-28 上海悦易网络信息技术有限公司 一种数据序列标识的生成方法及设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150348056A1 (en) * 2014-05-30 2015-12-03 Raja Sekhar Surapaneni Technique, method and process for generating one or more Non-sequential Unique Random Alpha Numeric Strings.
JP6890396B2 (ja) * 2016-09-29 2021-06-18 キヤノン株式会社 情報処理システム及び情報処理方法、文書処理システム、プログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019085579A1 (zh) * 2017-10-30 2019-05-09 阿里巴巴集团控股有限公司 一种信息推送方法和装置
CN109597853A (zh) * 2018-10-22 2019-04-09 平安科技(深圳)有限公司 业务场景元素序列号生成方法、装置、介质和计算机设备
WO2021052029A1 (zh) * 2019-09-17 2021-03-25 苏宁云计算有限公司 数据对象标识生成方法、装置、计算机设备和存储介质
CN110807035A (zh) * 2019-11-05 2020-02-18 泰康保险集团股份有限公司 流水号生成方法、装置、设备及存储介质
CN112651794A (zh) * 2020-09-30 2021-04-13 全景智联(武汉)科技有限公司 订单号管理方法、系统及存储介质
CN112860661A (zh) * 2021-01-20 2021-05-28 上海悦易网络信息技术有限公司 一种数据序列标识的生成方法及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
High-Order Photonic W-states for Random Number Generation;Graefe, Markus;《 APS Division of Atomic and Molecular Physics》;第1页 *

Also Published As

Publication number Publication date
CN113486627A (zh) 2021-10-08

Similar Documents

Publication Publication Date Title
US10877930B2 (en) Blockchain-based cross-chain data access method and apparatus
CN107818115B (zh) 一种处理数据表的方法及装置
US11347787B2 (en) Image retrieval method and apparatus, system, server, and storage medium
CN111352902A (zh) 日志处理方法、装置、终端设备及存储介质
CN111258966A (zh) 一种数据去重方法、装置、设备及存储介质
CN104794123A (zh) 一种为半结构化数据构建NoSQL数据库索引的方法及装置
JP2012526320A (ja) 検索エンジンインデクシング及びインデックスを使用する検索のための方法とシステム
US9514170B1 (en) Priority queue using two differently-indexed single-index tables
CN111324665B (zh) 一种日志回放方法及装置
CN107391544B (zh) 列式存储数据的处理方法、装置、设备及计算机储存介质
CN112182036A (zh) 数据的发送与写入方法、装置、电子设备及可读存储介质
WO2019100853A1 (zh) 分页查询方法及装置和电子设备
CN108399175B (zh) 一种数据存储、查询方法及其装置
CN111831691A (zh) 一种数据读写方法及装置、电子设备、存储介质
CN113486627B (zh) 一种单号生成方法、装置及电子设备
CN117493319A (zh) 数据去重方法、装置、电子设备及存储介质
CN115293243A (zh) 数据资产智能匹配的实现方法、装置及设备
CN113419792A (zh) 一种事件处理方法、装置、终端设备和存储介质
CN114564501A (zh) 一种数据库数据存储、查询方法、装置、设备及介质
CN114647658A (zh) 一种数据检索方法、装置、设备及机器可读存储介质
CN114817293A (zh) 一种基于分布式sql的数据查询方法及系统
CN112948389A (zh) 基于md5的数据库表数据比对方法及设备
CN117435640A (zh) 一种用于定位相似实例的方法、装置和电子设备
CN111858603B (zh) 区块链的数据写入方法及系统
CN110209666B (zh) 一种数据存储方法及终端设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant