一种自定义流水号的生成方法及装置制造方法及图纸

技术编号:36693799 阅读:14 留言:0更新日期:2023-02-27 20:03
本申请公开了一种自定义流水号的生成方法及装置,涉及流水号技术领域,包括以下步骤:服务器响应于客户端发送的流水号生成请求,获取用户自定义的子流水号搭配策略以及与搭配策略对应的至少一个子流水号生成器的配置参数;根据搭配策略确定至少一个子流水号生成器的调用链路,并根据调用链路和对应的配置参数依次调用至少一个子流水号生成器得到目标流水号。本申请在系统业务复杂度不断增加同类型场景下可以达到快速开发、交付流水号的目的,大大节省研发成本,并开发了自定义规则配置窗口给客户,使得无需集成开发就可以满足客户对流水号的差异化定制需求。流水号的差异化定制需求。流水号的差异化定制需求。

【技术实现步骤摘要】
一种自定义流水号的生成方法及装置


[0001]本申请涉及流水号
,尤其涉及一种自定义流水号的生成方法及装置。

技术介绍

[0002]在一些特定场景如单据填写、文档创建、费用归档下,都需要生成有规律或唯一的编码来关联内容,以便于通过生成的编码来高效的传递、查询或定位详细内容,而现有的策略一般是先分析具体的规则需求,再开发对应的编码生成业务逻辑代码来实现具体效果。
[0003]但这种方式存在以下问题:一是随着业务复杂度的不断增加,需要应用流水号的场景也会增加,而每个场景之间会有共通的特性也会有不同的异性,这就导致每出现一个场景就需要单独设计其流水号生成规则,还需要投入大量的研发成本对这些场景配置单独且分散的生成处理逻辑;二是所有生成流水号的规则逻辑一般都跟场景绑定,因此企业用户没有分布式系统中流水号的生成逻辑的能力,只能做一些简单的扩展。

技术实现思路

[0004]本申请提供的一种自定义流水号的生成方法,旨在解决现有技术中用户不能自定义分布式系统中流水号的生成逻辑的问题。
[0005]为实现上述目的,本申请采用以下技术方案:
[0006]本申请的一种自定义流水号的生成方法,应用于服务器,包括以下步骤:
[0007]接收客户端发送的流水号生成请求;
[0008]响应于所述流水号生成请求,获取用户自定义的子流水号搭配策略以及与所述搭配策略对应的至少一个子流水号生成器的配置参数;
[0009]根据所述搭配策略确定所述至少一个子流水号生成器的调用链路,根据所述调用链路和对应的配置参数依次调用所述至少一个子流水号生成器得到目标流水号。
[0010]作为优选,在接收客户端发送的流水号生成请求之前,还包括:
[0011]构建若干子流水号生成器,所述子流水号生成器包括固定字符生成器、日期生成器、自动计数生成器以及外部数据字段引用生成器;
[0012]在根据所述调用链路和对应的配置参数依次调用所述至少一个子流水号生成器得到目标流水号之后,还包括:
[0013]将所述目标流水号返回给所述客户端。
[0014]作为优选,所述自动计数生成器的执行步骤包括:
[0015]根据预设规则生成远程字典服务的键命令,并根据所述用户配置的重置策略确定周期截止时间;
[0016]调用redis.incr方法,根据所述redis.incr方法和周期截止时间确定所述键对应的最新值;
[0017]获取所述用户配置的数值位数,并根据所述最新值对所述数值位数对应的最大值进行取余,得到第一子流水号。
[0018]作为优选,所述方法包括:
[0019]于所述第一子流水号的位数小于所述数值位数时,以零填充所述第一子流水号的高位空元素。
[0020]作为优选,所述外部数据字段引用生成器的执行步骤包括:
[0021]获取所述用户配置的字段编码和Map集合;
[0022]解析所述字段编码得到目标字段,并在所述Map集合中搜索所述目标字段对应的值;
[0023]将搜索得到的值转换为字符串得到第二子流水号。
[0024]作为优选,所述子流水号搭配策略包括组成所述目标流水号的至少一个子流水号的类型以及排列方式。
[0025]作为优选,所述根据所述搭配策略确定所述至少一个子流水号生成器的调用链路,包括:
[0026]根据所述至少一个子流水号的类型从若干子流水号生成器中筛选出对应的至少一个子流水号生成器,并根据所述排列方式确定所述至少一个子流水号生成器的调用顺序。
[0027]作为优选,所述方法还包括创建管道,所述管道用于所述至少一个子流水号生成器间的数据传输。
[0028]作为优选,所述目标流水号为字符串格式。
[0029]一种自定义流水号的生成装置,应用于服务器,包括:
[0030]接收模块,用于接收客户端发送的流水号生成请求;
[0031]获取模块,用于响应于所述流水号生成请求,获取用户自定义的子流水号搭配策略以及与所述搭配策略对应的至少一个子流水号生成器的配置参数;
[0032]生成模块,用于根据所述搭配策略确定所述至少一个子流水号生成器的调用链路,根据所述调用链路和对应的配置参数依次调用所述至少一个子流水号生成器得到目标流水号。
[0033]本专利技术具有如下有益效果:
[0034]本申请提供一种可兼容、可扩展、可复用的分布式系统流水号生成方法,在系统业务复杂度不断增加同类型场景下达到快速开发、交付流水号的目的,大大节省研发成本,并开发了自定义规则配置窗口给客户,使得无需集成开发就可以满足客户对流水号的差异化定制需求。
附图说明
[0035]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0036]图1是本申请实现的一种自定义流水号的生成方法流程图;
[0037]图2是本申请中流水号的生成逻辑图;
[0038]图3是本申请实现的一种自定义流水号的生成装置示意图;
[0039]图4是本申请实现一种自定义流水号的生成方法的电子设备示意图。
具体实施方式
[0040]下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0041]本申请的权利要求书和说明书的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序,应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本申请的实施例中对相同属性的对象在描述时所采用的区分方式,此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他单元。
[0042]实施例
[0043]如图1所示,本申请提供一种应用于服务器的自定义流水号生成方法,包括以下步骤:
[0044]S110、接收客户端发送的流水号生成请求;
[0045]S120、响应于所述流水号生成请求,获取用户自定义的子流水号搭配策略以及与所述搭配策略对应的至少一个子流水号生成器的配置参数;
[0046]S130、根据所述搭配策略确定所述至少一个子流水号生成器的调用链路,根据所述调用链路和对应的配置参数依次调用所述至少一个子流水号生成器得到目标流水号。
[0047]本实施例所提供的方法可应用于分布式系统中,即本方法适用于多个客户端同时发起流水号生成请求的多并发场景。
...

【技术保护点】

【技术特征摘要】
1.一种自定义流水号的生成方法,其特征在于,应用于服务器,包括以下步骤:接收客户端发送的流水号生成请求;响应于所述流水号生成请求,获取用户自定义的子流水号搭配策略以及与所述搭配策略对应的至少一个子流水号生成器的配置参数;根据所述搭配策略确定所述至少一个子流水号生成器的调用链路,根据所述调用链路和对应的配置参数依次调用所述至少一个子流水号生成器得到目标流水号。2.根据权利要求1所述的一种自定义流水号的生成方法,其特征在于,在接收客户端发送的流水号生成请求之前,还包括:构建若干子流水号生成器,所述子流水号生成器包括固定字符生成器、日期生成器、自动计数生成器以及外部数据字段引用生成器;在根据所述调用链路和对应的配置参数依次调用所述至少一个子流水号生成器得到目标流水号之后,还包括:将所述目标流水号返回给所述客户端。3.根据权利要求2所述的一种自定义流水号的生成方法,其特征在于,所述自动计数生成器的执行步骤包括:根据预设规则生成远程字典服务的键命令,并根据所述用户配置的重置策略确定周期截止时间;调用redis.incr方法,根据所述redis.incr方法和周期截止时间确定所述键对应的最新值;获取所述用户配置的数值位数,并根据所述最新值对所述数值位数对应的最大值进行取余,得到第一子流水号。4.根据权利要求3所述的一种自定义流水号的生成方法,其特征在于,所述方法包括:于所述第一子流水号的位数小于所述数值位数时,以零填充所述第一子流水号的高位空元素。5.根据权利要求2所述的一种自定义流水号的生...

【专利技术属性】
技术研发人员:赵文朋王森元孙勤魏美钟
申请(专利权)人:杭州每刻科技有限公司
类型:发明
国别省市:

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

1