CN108090034A - 基于集群的单证代码统一编码生成方法和系统 - Google Patents
基于集群的单证代码统一编码生成方法和系统 Download PDFInfo
- Publication number
- CN108090034A CN108090034A CN201711486601.8A CN201711486601A CN108090034A CN 108090034 A CN108090034 A CN 108090034A CN 201711486601 A CN201711486601 A CN 201711486601A CN 108090034 A CN108090034 A CN 108090034A
- Authority
- CN
- China
- Prior art keywords
- document
- cluster
- code
- template
- sequence
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/126—Character encoding
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)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开了一种基于集群的单证代码统一编码生成方法和系统,其中,方法包括根据获取的业务类型信息和单证类型信息选择对应的预设编码模板,根据解码策略对预设编码模板和获取的单证字符信息进行解析拆分得到编码段结构数组;编码段结构数组包括若干序列标识符、宽度参数以及补零参数;将每个序列标识符在集群中使用原子操作创建序列实例或递增操作,并得到返回序列值;遍历编码段结构数组获取宽度参数和补零参数,再结合返回序列值进行拼合生成对应的单证代码。本发明不仅避免因单点存储不可用引起的序列值丢失问题,避免并发重号的发生;而且通过集群可以分解因序列数快速增加而引起的计算资源扩展需求,达到统一单证代码的目的,方便管理。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于集群的单证代码统一编码生成方法和系统。
背景技术
随着社会进步及科技的发展,互联网技术也得到飞速的发展,尤其是进入互联网+时代后,互联网企业在伴随其业务飞速发展的同时,用户需求也越来越复杂且多变,进而会产生巨量的数据信息。对于单证来说,由于业务的不同,导致了其编码的类型和编码规则均不相同,而在SaaS应用针对单证号码的生成有两方面的要求:一方面生成的单证号码需要人工阅读便利,并具备平台唯一性,另一方面需要能够快速生成响应。
目前,对于单证的常规编码生成主要依赖数据库序列发生机制,并结合记录查重判定编码唯一性。这种方案存在以下缺陷:1、由于普通数据库(如MySQL)没有序列发生机制,编码中的序号需查询当前表单对象数据库,并提取已使用序数的最大值,单库表单可以采用行锁机制控制并发,但当一个编号需要跨多个对象数据库时,要逐个遍历数据库查询,行锁机制失效,导致并发重号。2、在各SaaS应用交易模块各自生成编码,需要不断同步可用编码段,增加开发平台的管理成本,不利于ISV团队开发,加大了管理风险。
发明内容
本发明的目的是提供一种基于集群的单证代码统一编码生成方法和系统,通过预设编码模板和集群的快速持久机制实现单证代码的统一编码生成和保存,不仅避免因单点存储不可用引起的序列值丢失问题,避免并发重号的发生;而且通过集群可以分解因序列数快速增加而引起的计算资源扩展需求,达到统一单证代码的目的,方便管理。
本发明提供了一种基于集群的单证代码统一编码生成方法,包括以下步骤;
获取每个业务模块的单证信息;所述单证信息包括业务类型信息、单证类型信息以及单证字符信息;
根据所述业务类型信息和单证类型信息选择对应的预设编码模板,根据解码策略对所述预设编码模板和单证字符信息进行解析拆分,得到编码段结构数组;所述编码段结构数组包括若干序列标识符、宽度参数以及补零参数;
将每个所述序列标识符在集群中使用原子操作创建序列实例或递增操作,并得到返回序列值;
遍历所述编码段结构数组获取所述宽度参数和补零参数,再结合返回序列值进行拼合生成对应的单证代码。
作为一种可实施方式,所述根据所述业务类型信息和单证类型信息选择对应的预设编码模板,根据解码策略对所述预设编码模板和单证字符信息进行解析拆分,得到编码段结构数组包括以下步骤;
根据所述业务类型信息和单证类型信息选择对应的预设编码模板,结合所述预设编码模板和单证字符信息生成模板字符串信息;
根据解码策略对所述模板字符串信息进行分段拆解,得到模板分段串信息;
通过模板解析语法对模板分段串信息进行编译解析,得到编码段结构数组。
作为一种可实施方式,本发明提供的基于集群的单证代码统一编码生成方法还包括以下步骤;
在将每个所述序列标识符在集群中使用原子操作创建序列实例或递增操作之前,将所述序列标识符、宽度参数以及补零参数分别进行存储。
作为一种可实施方式,所述将每个所述序列标识符在集群中使用原子操作创建序列实例或递增操作,并得到返回序列值,包括以下步骤;
将每个指定的所述序列标识符作为对应的序列关键词,并根据所述序列关键词判断在集群中是否已创建对应的序列实例;
若没有创建对应的序列实例,则以序列关键词创建序列实例,得到返回序列值;
若已创建对应的序列实例,则将对应的序列实例进行加1原子操作,得到返回序列值。
作为一种可实施方式,本发明提供的基于集群的单证代码统一编码生成方法还包括以下步骤;
在将对应的序列实例进行加1原子操作之前,对所述序列实例进行排他性处理。
相应的,本发明还提供一种基于集群的单证代码统一编码生成系统,包括接口获取模块、解析拆分模块、集群创建模块以及拼合处理模块;
所述接口获取模块,用于获取每个业务模块的单证信息;所述单证信息包括业务类型信息、单证类型信息以及单证字符信息;
所述解析拆分模块,用于根据所述业务类型信息和单证类型信息选择对应的预设编码模板,根据解码策略对所述预设编码模板和单证字符信息进行解析拆分,得到编码段结构数组;所述编码段结构数组包括若干序列标识符、宽度参数以及补零参数;
所述集群创建模块,用于将每个所述序列标识符按照原子操作在集群中创建序列实例或递增序列值,并得到返回序列值;
所述拼合处理模块,用于遍历所述编码段结构数组获取所述宽度参数和补零参数,再结合返回序列值进行拼合生成对应的单证代码。
作为一种可实施方式,所述解析拆分模块包括选择单元、分段拆解单元以及编译解析单元;
所述选择单元,用于根据所述业务类型信息和单证类型信息选择对应的预设编码模板,结合所述预设编码模板和单证字符信息生成模板字符串信息;
所述分段拆解单元,用于根据解码策略对所述模板字符串信息进行分段拆解,得到模板分段串信息;
所述编译解析单元,用于通过模板解析语法对模板分段串信息进行编译解析,得到编码段结构数组。
作为一种可实施方式,本发明提供的基于集群的单证代码统一编码生成系统还包括存储模块;
所述存储模块,用于在将每个所述序列标识符按照原子操作在集群中创建序列实例或递增序列值之前,将所述序列标识符、宽度参数以及补零参数分别进行存储。
作为一种可实施方式,所述集群创建模块包括判断单元、创建单元以及操作单元;
所述判断单元,用于将每个指定的所述序列标识符作为对应的序列关键词,并根据所述序列关键词判断在集群中是否已创建对应的序列实例;
所述创建单元,用于若没有创建对应的序列实例,则以序列关键词创建序列实例,得到返回序列值;
所述操作单元,用于若已创建对应的序列实例,则将对应的序列实例进行加1原子操作,得到返回序列值。
作为一种可实施方式,拼合处理模块包括排他处理单元;
所述排他处理单元,用于在将对应的序列实例进行加1原子操作之前,对所述序列实例进行排他性处理。
与现有技术相比,本技术方案具有以下优点:
本发明提供的基于集群的单证代码统一编码生成方法和系统,其中,方法包括根据获取的业务类型信息和单证类型信息选择对应的预设编码模板,根据解码策略对预设编码模板和获取的单证字符信息进行解析拆分,得到编码段结构数组;编码段结构数组包括若干序列标识符、宽度参数以及补零参数;将每个序列标识符在集群中使用原子操作创建序列实例或递增操作,并得到返回序列值;遍历编码段结构数组获取宽度参数和补零参数,再结合返回序列值进行拼合生成对应的单证代码。本发明通过预设编码模板和集群的快速持久机制实现单证代码的统一编码生成和保存,不仅避免因单点存储不可用引起的序列值丢失问题,避免并发重号的发生;而且通过集群可以分解因序列数快速增加而引起的计算资源扩展需求,达到统一单证代码的目的,方便管理。
附图说明
图1为本发明实施例一提供的基于集群的单证代码统一编码生成方法的流程示意图;
图2为模板解析语法的解析示意图;
图3为本发明实施例二提供的基于集群的单证代码统一编码生成系统的结构示意图;
图4为图3中集群创建模块的结构示意图;
图中:100、接口获取模块;200、解析拆分模块;210、选择单元;220、分段拆解单元;230、编译解析单元;300、集群创建模块;310、判断单元;320、创建单元;330、操作单元;400、拼合处理模块;500、存储模块。
具体实施方式
以下结合附图,对本发明上述的和另外的技术特征和优点进行清楚、完整地描述,显然,所描述的实施例仅为本发明的部分实施例,而不是全部实施例。
请参阅图1,本发明实施例一提供的基于集群的单证代码统一编码生成方法,包括以下步骤;
S100、获取每个业务模块的单证信息;单证信息包括业务类型信息、单证类型信息以及单证字符信息;
S200、根据业务类型信息和单证类型信息选择对应的预设编码模板,根据解码策略对预设编码模板和单证字符信息进行解析拆分,得到编码段结构数组;编码段结构数组包括若干序列标识符、宽度参数以及补零参数;
S300、将每个序列标识符按照原子操作在集群中创建序列实例或递增序列值,并得到返回序列值;
S400、遍历编码段结构数组获取宽度参数和补零参数,再结合返回序列值进行拼合生成对应的单证代码。
需要说明的是,业务模块包括不限于类似SaaS应用如项目招标模块、网超模块、询价模块、定点模块、协议供货模块以及机构注册模块等,不同的业务模块其包含的编码类型信息也不相同,每个编码类型信息都有对应的编码规则;业务类型信息也就是具体判断属于哪个业务模块的参数信息,可以是直接定义参数,比如,业务类型信息为项目招标或者字母A等。而预设编码模板就是预先根据各类编码规则设置的编码模板。也就是说,每个业务类型信息中的单证类型信息都有唯一对应的一个预设编码模板。
如表1中,列出本发明中的常用的业务模块信息、编码类型信息以及与编码类型信息对应的编码规则。
表1
现对表1中包含的内容进行说明,其中,表1详细列举了业务类型信息以及每个业务类型信息中包含的编码类型信息;在此,需要说明的是,表中列举的只是常用业务,其他业务类型信息和编码类型信息在此就不一一列举。表中的编码规则是基于人工阅读便利性要求,各种单证编码需要集成常用的分类字符串,一般为年月日、机构编码、文档类型等。比如,对于项目招标中的合同编号。基于国家标准定义的代码集都具备专有的代码集标识。财政部CZ0001-2010《财政业务基础数据规范》中,政府采购合同类型和组织机构代码分别作如下标识符定义:政府采购合同类型-代码集标识符-CS779;9位组织机构代码-代码集标识符-CS043;年份和4位顺序码,分别定义为ZE004和{4}ZE001,因此合同编号根据编码规则定义为:CS779{2}+CS043+ZE004+{4}ZE001。由于预设编码模板就是预先根据各类编码规则设置的编码模板,因此,根据合同编号的编码规则,合同编号的预设编码模板为CS043+ZE004+{2}ZE005+{4}ZE001。类似的,结算单号的预设编码模板为ZE010+CS043+ZE001。保险单号的预设编码模板为CS043+ZE010+{5}ZE001。
对于编码模板中的{num},其作为前缀和后缀出现在代码集标识符的前后两个位置,用以说明该代码集标识符选定的代码项在结果输出时按num值限定宽度。num为非零整数值,一般大小在20以内。比如,在合同编号的编码规则中,{num}出现在了CS779后面和ZE001前面。{num}本身不存在于码值中,而是为了表示该码值的输出宽度的大小。比如CS779{2},意思就是CS779中的代码项“1”,实际宽度为1,但在结果输出是需要扩展为2位。num值在应保证大于等于实际的代码项最大宽度。而且在编码模板中,{num}不是一定会有的,如不需要限定代码段的宽度时,则{num}在该编码模板中不作定义。比如在CS043和ZE004都不作宽度限定。
对于编码段结构数组,其包括若干固定字符串、序列标识符、宽度参数以及补零参数;当时由于{num}不一定存在,也会导致某个编码段结构数组只包含若干固定字符串和序列标识符的情况。补零参数也就是{num}中num的具体数值以及{num}出现的位置。
在将每个序列标识符按照原子操作在集群中创建序列实例或递增操作,于本实施例中,集群为redis集群,由于序列标识符基本采用按月、按日、按小时分别计数的序列,随着外部应用需求的增长,需要同时维护百万及千万级的序列,通过redis集群可以分解因序列数快速增加而引起的计算资源扩展需求。
遍历编码段结构数组获取宽度参数和补零参数,再结合返回序列值,将返回序列值按宽度参数和补零参数根据补零机制生成本段代码,并逐段拼合代码段生成对应的单证代码。
本发明提供的基于集群的单证代码统一编码生成方法和系统,其中,方法包括根据获取的业务类型信息和单证类型信息选择对应的预设编码模板,根据解码策略对预设编码模板和获取的单证字符信息进行解析拆分,得到编码段结构数组;编码段结构数组包括若干序列标识符、宽度参数以及补零参数;将每个序列标识符在集群中使用原子操作创建序列实例或递增操作,并得到返回序列值;遍历编码段结构数组获取宽度参数和补零参数,再结合返回序列值进行拼合生成对应的单证代码。本发明通过预设编码模板和集群的快速持久机制实现单证代码的统一编码生成和保存,不仅避免因单点存储不可用引起的序列值丢失问题,避免并发重号的发生;而且通过集群可以分解因序列数快速增加而引起的计算资源扩展需求,达到统一单证代码的目的,方便管理。
进一步的,步骤S200包括以下步骤;
S210、根据业务类型信息和单证类型信息选择对应的预设编码模板,结合预设编码模板和单证字符信息生成模板字符串信息;
S220、根据解码策略对模板字符串信息进行分段拆解,得到模板分段串信息;
S230、通过模板解析语法对模板分段串信息进行编译解析,得到编码段结构数组。
在上述步骤中,需要对预设编码模板中连接符的作用进行说明,结合表1连接符为“+”,用以区分各代码集标识符。代码集标识符和序列标识符为解析前后不同的名称;对模板字符串信息的分段拆解主要是根据解码策略按连接符进行的。
结合图2对得到编码段结构数组的具体解析过程进行说明:
通过逐个遍历模板字符串信息,一次性提取模板字符串信息中的各代码段对应的代码集标识符,代码段限定宽度{num}及前后缀位置。模板解析语法解析采用典型的编译状态机编程实现。状态机将行为划分为若干个状态,对于每一个状态规定其行为和可能的状态转换关系。状态机的状态即可以由其内部定义的状态转换关系改变,从而影响状态机的行为。
当解析开始时,设置解码状态值为1,对应语法图中状态结点1。
状态1:后续读入字符为单个或连续空格,则保持状态,忽略读入空白字符,当读为字符为字母则转入状态2,同时记录当前段的代码集标识符字符;当读入字符为“{”时,表示代码段宽度限定前缀{num}开始,标识符记录完成,转入状态3,等待后续数字字符的读取;
状态2:后续读入字符为字母或数字时,持续记录到本段代码集标识符变量串中。当遇到字符串行结束标记时则整个解析过程结束,如读入字符为“{”时,表示代码段宽度限定后缀{num}起始,转入状态5;如读入字符为“+”时,表示下一代码段开始,相关的代码段信息保存并重置变量;
状态3:后续读入字符为连续数字时,持续记录数字字符到num变量串中,如读入字符为“}”,则表示{num}提取结束,转入状态4;
状态4:后续读入字符为字母时,记录该字母到代码标识符变量串中,转入状态2,以读入标识符的后续字符;
状态5:后续读入字符为连续数字时,持续记录数字到num变量串中,如读入字符为“}”,则表示{num}提取结束,转入状态6,表示代码段{num}后缀读取结束;
状态6:当遇到字符串行结束标记时则整个解析过程结束,如读入字符为“+”时,表示下一代码段开始,相关的代码段信息保存并重置变量;
注:以上各状态中,后续读入字符未在状态流向中定义或直接遇eol行结束标记,表示模板解析语法错误,编码生成器返回模板定义语法错误。如果解析成功,则解析出的标识符分别为:CS779,CS043,ZE004,ZE001;解析出的{num}分别为{2}(后缀),{4}(前缀)。
在解析出编码段结构数组后,将解析出编码段结构数组进行存储;包括了编码段结构数组的固定字符串、序列标识符、宽度参数以及补零参数分别进行存储。比如,将序列标识符保存在Identifier中;{num}中的num宽度值保存在Width中;将前缀用1表示,后缀用2表示,并将这些表示的常数保存于ZeroFormat中。代码段结构定如下:
structsegment{
Identifier string,
Width integer,
ZeroFormat integer
}。其中,分段串{num}中的num数值,定义各代码项的码值宽度以及{num}前后缀位置确定补0方向。
在最终拼合时,需要遍历编码段结构数组,对编码段结构数组中的序列标识符保存位置进行判断,如果序列标识符定义的Identifier为序列项,则按序列标识符获取返回序列值,非序列项直接提取JSON入参中对应的值,按宽度参数和补零参数根据补零机制生成本段代码,并逐段拼合代码段生成对应的单证代码。JSON入参为外部应用访问时,提供编码模板字符串作为入参。例:“CS779{2}+CS043+ZE004+{4}ZE001”。
进一步的,步骤S300包括以下步骤;
S310、将每个指定的序列标识符作为对应的序列关键词,并根据序列关键词判断在集群中是否已创建对应的序列实例;
S320、若没有创建对应的序列实例,则以序列关键词创建序列实例,得到返回序列值;
S330、若已创建对应的序列实例,则将对应的序列实例进行加1原子操作,得到返回序列值。
上述步骤对集群中创建序列实例或递增序列值以及得到返回序列值进行了说明,步骤S320为创建实例,步骤S330为递增序列值,返回序列值均是通过原子操作得到的。一个编码模板根据序列ZE001(顺序码)使用的个数,需要创建相应个数的序列实例。而序列实例的Key定义为:模板ID+“-”+Identifier;序列的计数采用典型Key-Value数据库Redis集群的原子操作实现。
以序列Key作为序列关键词访问redis集群,如该序列关键词未创建,则创建该序列关键词,对应的value值置为1,序列新值记为1。
如该序列关键词已存在,则对该序列关键词对应数值value进行加1原子操作。序列新值记为value+1。在执行加1操作时,redis集群对同一值的操作进行排他性处理,保证每一次加1操作不会被干扰覆盖。利用内存化的key-value数据库,用以替代传统关系数据库的序列发生机制。序列增长后的物理介质持久化保存利用redis集群的快速持久机制实现,避免因单点redis集群不可用引起的序列值丢失问题。而且内存化的key-value数据库提供了最快速计数执行效率,保证了代码发生器的高可用性。
基于同一发明构思,本发明实施例还提供一种基于集群的单证代码统一编码生成系统,该系统的实施可参照上述方法的过程实现,重复之处不再冗述。
如图3所示,是本发明实施例二提供的基于集群的单证代码统一编码生成系统的结构示意图,包括接口获取模块100、解析拆分模块200、集群创建模块300以及拼合处理模块400;接口获取模块100用于获取每个业务模块的单证信息;单证信息包括业务类型信息、单证类型信息以及单证字符信息;解析拆分模块200用于根据业务类型信息和单证类型信息选择对应的预设编码模板,根据解码策略对预设编码模板和单证字符信息进行解析拆分,得到编码段结构数组;编码段结构数组包括若干序列标识符、宽度参数以及补零参数;集群创建模块300用于将每个序列标识符按照原子操作在集群中创建序列实例或递增序列值,并得到返回序列值;拼合处理模块400用于遍历编码段结构数组获取宽度参数和补零参数,再结合返回序列值进行拼合生成对应的单证代码。
本发明通过预设编码模板和集群的快速持久机制实现单证代码的统一编码生成和保存,不仅避免因单点存储不可用引起的序列值丢失问题,避免并发重号的发生;而且通过集群可以分解因序列数快速增加而引起的计算资源扩展需求,达到统一单证代码的目的,方便管理。本发明具有适用于各类业务类型,降减大数据量业务对象数据库ID最大值的查询流量;支持百万级序列数的发生和可靠持久化;提供SDK函数为所有SaaS应用开发提供基础公共调用;配套元数据中心定义执行平台统一数据规范等优点。
进一步的,解析拆分模块200包括选择单元210、分段拆解单元220以及编译解析单元230;选择单元210用于根据业务类型信息和单证类型信息选择对应的预设编码模板,结合预设编码模板和单证字符信息生成模板字符串信息;分段拆解单元220用于根据解码策略对模板字符串信息进行分段拆解,得到模板分段串信息;编译解析单元230用于通过模板解析语法对模板分段串信息进行编译解析,得到编码段结构数组。
本发明实施例二提供的基于集群的单证代码统一编码生成系统还包括存储模块500;存储模块500用于在将每个序列标识符按照原子操作在集群中创建序列实例或递增序列值之前,将序列标识符、宽度参数以及补零参数分别进行存储。
如图4所示,为集群创建模块300的结构示意图,包括判断单元310、创建单元320以及操作单元330;判断单元310用于将每个指定的序列标识符作为对应的序列关键词,并根据序列关键词判断在集群中是否已创建对应的序列实例;创建单元320用于若没有创建对应的序列实例,则以序列关键词创建序列实例,得到返回序列值;操作单元330用于若已创建对应的序列实例,则将对应的序列实例进行加1原子操作,得到返回序列值。
进一步的,拼合处理模块400包括排他处理单元,排他处理单元用于在将对应的序列实例进行加1原子操作之前,对序列实例进行排他性处理。
本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。
Claims (10)
1.一种基于集群的单证代码统一编码生成方法,其特征在于,包括以下步骤;
获取每个业务模块的单证信息;所述单证信息包括业务类型信息、单证类型信息以及单证字符信息;
根据所述业务类型信息和单证类型信息选择对应的预设编码模板,根据解码策略对所述预设编码模板和单证字符信息进行解析拆分,得到编码段结构数组;所述编码段结构数组包括若干序列标识符、宽度参数以及补零参数;
将每个所述序列标识符在集群中使用原子操作创建序列实例或递增操作,并得到返回序列值;
遍历所述编码段结构数组获取所述宽度参数和补零参数,再结合返回序列值进行拼合生成对应的单证代码。
2.如权利要求1所述的基于集群的单证代码统一编码生成方法,其特征在于,所述根据所述业务类型信息和单证类型信息选择对应的预设编码模板,根据解码策略对所述预设编码模板和单证字符信息进行解析拆分,得到编码段结构数组包括以下步骤;
根据所述业务类型信息和单证类型信息选择对应的预设编码模板,结合所述预设编码模板和单证字符信息生成模板字符串信息;
根据解码策略对所述模板字符串信息进行分段拆解,得到模板分段串信息;
通过模板解析语法对模板分段串信息进行编译解析,得到编码段结构数组。
3.如权利要求1所述的基于集群的单证代码统一编码生成方法,其特征在于,还包括以下步骤;
在将每个所述序列标识符在集群中使用原子操作创建序列实例或递增操作之前,将所述序列标识符、宽度参数以及补零参数分别进行存储。
4.如权利要求1所述的基于集群的单证代码统一编码生成方法,其特征在于,所述将每个所述序列标识符在集群中使用原子操作创建序列实例或递增操作,并得到返回序列值,包括以下步骤;
将每个指定的所述序列标识符作为对应的序列关键词,并根据所述序列关键词判断在集群中是否已创建对应的序列实例;
若没有创建对应的序列实例,则以序列关键词创建序列实例,得到返回序列值;
若已创建对应的序列实例,则将对应的序列实例进行加1原子操作,得到返回序列值。
5.如权利要求4所述的基于集群的单证代码统一编码生成方法,其特征在于,还包括以下步骤;
在将对应的序列实例进行加1原子操作之前,对所述序列实例进行排他性处理。
6.一种基于集群的单证代码统一编码生成系统,其特征在于,包括接口获取模块、解析拆分模块、集群创建模块以及拼合处理模块;
所述接口获取模块,用于获取每个业务模块的单证信息;所述单证信息包括业务类型信息、单证类型信息以及单证字符信息;
所述解析拆分模块,用于根据所述业务类型信息和单证类型信息选择对应的预设编码模板,根据解码策略对所述预设编码模板和单证字符信息进行解析拆分,得到编码段结构数组;所述编码段结构数组包括若干序列标识符、宽度参数以及补零参数;
所述集群创建模块,用于将每个所述序列标识符按照原子操作在集群中创建序列实例或递增序列值,并得到返回序列值;
所述拼合处理模块,用于遍历所述编码段结构数组获取所述宽度参数和补零参数,再结合返回序列值进行拼合生成对应的单证代码。
7.如权利要求6所述的基于集群的单证代码统一编码生成系统,其特征在于,所述解析拆分模块包括选择单元、分段拆解单元以及编译解析单元;
所述选择单元,用于根据所述业务类型信息和单证类型信息选择对应的预设编码模板,结合所述预设编码模板和单证字符信息生成模板字符串信息;
所述分段拆解单元,用于根据解码策略对所述模板字符串信息进行分段拆解,得到模板分段串信息;
所述编译解析单元,用于通过模板解析语法对模板分段串信息进行编译解析,得到编码段结构数组。
8.如权利要求6所述的基于集群的单证代码统一编码生成系统,其特征在于,还包括存储模块;
所述存储模块,用于在将每个所述序列标识符按照原子操作在集群中创建序列实例或递增序列值之前,将所述序列标识符、宽度参数以及补零参数分别进行存储。
9.如权利要求6所述的基于集群的单证代码统一编码生成系统,其特征在于,所述集群创建模块包括判断单元、创建单元以及操作单元;
所述判断单元,用于将每个指定的所述序列标识符作为对应的序列关键词,并根据所述序列关键词判断在集群中是否已创建对应的序列实例;
所述创建单元,用于若没有创建对应的序列实例,则以序列关键词创建序列实例,得到返回序列值;
所述操作单元,用于若已创建对应的序列实例,则将对应的序列实例进行加1原子操作,得到返回序列值。
10.如权利要求9所述的基于集群的单证代码统一编码生成系统,其特征在于,拼合处理模块包括排他处理单元;
所述排他处理单元,用于在将对应的序列实例进行加1原子操作之前,对所述序列实例进行排他性处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711486601.8A CN108090034B (zh) | 2017-12-29 | 2017-12-29 | 基于集群的单证代码统一编码生成方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711486601.8A CN108090034B (zh) | 2017-12-29 | 2017-12-29 | 基于集群的单证代码统一编码生成方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108090034A true CN108090034A (zh) | 2018-05-29 |
CN108090034B CN108090034B (zh) | 2021-02-26 |
Family
ID=62181358
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711486601.8A Active CN108090034B (zh) | 2017-12-29 | 2017-12-29 | 基于集群的单证代码统一编码生成方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108090034B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488399A (zh) * | 2020-05-06 | 2020-08-04 | 北京俩撇科技有限公司 | 一种区块链系统、交易处理方法及装置 |
CN113642039A (zh) * | 2021-08-09 | 2021-11-12 | 平安科技(深圳)有限公司 | 单证模板的配置方法、装置、计算机设备和存储介质 |
CN113642039B (zh) * | 2021-08-09 | 2024-05-28 | 平安科技(深圳)有限公司 | 单证模板的配置方法、装置、计算机设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080235758A1 (en) * | 2007-03-21 | 2008-09-25 | Chuan Da Hsiung | Method for processing securities data |
CN101933297A (zh) * | 2008-01-31 | 2010-12-29 | 微软公司 | 使用模板化参数的消息编码/解码 |
CN105354747A (zh) * | 2015-10-09 | 2016-02-24 | 徐蔚 | 基于统一发码的信息处理网络及方法和传感接入设备 |
-
2017
- 2017-12-29 CN CN201711486601.8A patent/CN108090034B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080235758A1 (en) * | 2007-03-21 | 2008-09-25 | Chuan Da Hsiung | Method for processing securities data |
CN101933297A (zh) * | 2008-01-31 | 2010-12-29 | 微软公司 | 使用模板化参数的消息编码/解码 |
CN105354747A (zh) * | 2015-10-09 | 2016-02-24 | 徐蔚 | 基于统一发码的信息处理网络及方法和传感接入设备 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111488399A (zh) * | 2020-05-06 | 2020-08-04 | 北京俩撇科技有限公司 | 一种区块链系统、交易处理方法及装置 |
CN113642039A (zh) * | 2021-08-09 | 2021-11-12 | 平安科技(深圳)有限公司 | 单证模板的配置方法、装置、计算机设备和存储介质 |
CN113642039B (zh) * | 2021-08-09 | 2024-05-28 | 平安科技(深圳)有限公司 | 单证模板的配置方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108090034B (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Karnitis et al. | Migration of relational database to document-oriented database: Structure denormalization and data transformation | |
CN102460404B (zh) | 生成混淆数据 | |
US10698916B1 (en) | Data preparation context navigation | |
US8972460B2 (en) | Data model optimization using multi-level entity dependencies | |
CN103793422B (zh) | 基于增强星型模型的立方体元数据及查询语句生成 | |
CN110472068A (zh) | 基于异构分布式知识图谱的大数据处理方法、设备及介质 | |
de la Vega et al. | Mortadelo: Automatic generation of NoSQL stores from platform-independent data models | |
CN104063314A (zh) | 一种测试数据自动生成装置及方法 | |
Tao | Approximate string joins with abbreviations | |
US11886395B2 (en) | Processes and systems for onboarding data for a digital duplicate | |
CN115544183A (zh) | 数据可视化方法、装置、计算机设备和存储介质 | |
Ionescu et al. | Transforming Financial Decision-Making: The Interplay of AI, Cloud Computing and Advanced Data Management Technologies | |
CN101963993B (zh) | 一种数据库单表记录快速查找的方法 | |
CN114860727A (zh) | 拉链表更新方法及装置 | |
Del Grosso et al. | An approach for mining services in database oriented applications | |
CN101770367A (zh) | .net文件压缩方法和装置 | |
CN108090034A (zh) | 基于集群的单证代码统一编码生成方法和系统 | |
Williams | The associative model of data | |
CN115840775A (zh) | 数据的提取方法、装置、服务器及存储介质 | |
CN111260452B (zh) | 一种税务大数据模型的构建方法及系统 | |
CN112667859A (zh) | 基于内存的数据处理方法及装置 | |
CN102393868B (zh) | 一种实现解决具有复杂计算关系的指标计算模型的方法 | |
Pivert | NoSQL Data Models | |
van Otterdijk et al. | Succinct Data Structures and Delta Encoding for Modern Databases | |
Bonifati et al. | Data Models |
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 |