专利名称:运单号生成方法、装置、服务器和存储介质
专利类型:发明专利
专利申请号:CN201910340978.5
专利申请(专利权)人:北京京东振世信息技术有限公司
权利人地址:北京市海淀区知春路76号6层
专利发明(设计)人:韩英
专利摘要:本发明实施例公开一种运单号生成方法、装置、服务器和存储介质。该方法包括:若依据获取的目标承运方的承运方信息,确定目标承运方的目标运单号生成策略为标准生成策略,则依据目标运单号生成策略中包括的序列号生成规则,生成目标序列号;其中,标准生成策略包含至少两个承运方适用的统一的运单号生成流程,至少两个承运方包括所述目标承运方;依据预先设置的目标承运方的运单号基础配置信息、目标序列号,以及目标运单号生成策略中包括的目标运单号生成规则,生成与目标承运方相符的目标运单号。本发明实施例提高运单号生成策略对于不同承运方的兼容性和可扩展性,实现承运方的快速接入,降低代码冗余度,减少运单号生成时间成本。
主权利要求:
1.一种运单号生成方法,其特征在于,包括:
若依据获取的目标承运方的承运方信息,确定所述目标承运方的目标运单号生成策略为标准生成策略,则依据所述目标运单号生成策略中包括的序列号生成规则,生成目标序列号;其中,所述标准生成策略包含至少两个承运方适用的统一的运单号生成流程,所述至少两个承运方包括所述目标承运方;依据预先设置的所述目标承运方的运单号基础配置信息、所述目标序列号,以及所述目标运单号生成策略中包括的目标运单号生成规则,生成与所述目标承运方相符的目标运单号;
所述依据所述目标运单号生成策略中包括的序列号生成规则,生成目标序列号,包括:依据服务器中包括的运单号生成列表,确定当前用于生成所述目标序列号的目标运单号生成列表;
依据所述目标承运方的唯一标识,从所述目标运单号生成列表中,确定所述目标承运方关联的当前基础序列值;
将所述目标承运方关联的所述当前基础序列值,乘以所述服务器中包括的运单号生成列表的数量,并将乘积结果加上目标运单号生成列表的唯一标识值,得到所述目标序列号;
其中,所述目标序列号在所述目标承运方下具有全局唯一性;
依据获取的目标承运方的承运方信息,为所述目标承运方匹配目标运单号生成策略,包括:响应于接收到的作用在当前显示页面的用户操作,确定目标承运方的承运方信息;
依据所述目标承运方的承运方信息,确定所述目标承运方的运单号生成需求;
依据所述运单号生成需求,从集成有标准生成策略以及至少一个个性化生成策略的预设运单号配置数据中,获取与所述目标承运方适配的目标运单号生成策略;
所述依据所述运单号生成需求,从集成有标准生成策略以及至少一个个性化生成策略的预设运单号配置数据中,获取与所述目标承运方适配的目标运单号生成策略,包括:若所述运单号生成需求为所述目标承运方的预先定义的指定需求,则从所述目标承运方的承运方信息中,提取唯一标识所述目标承运方的承运方编码;
依据所述承运方编码,从预设运单号配置数据中,获取与所述承运方编码相匹配的个性化生成策略作为目标运单号生成策略。
2.根据权利要求1所述的方法,其特征在于,所述依据所述运单号生成需求,从集成有标准生成策略以及至少一个个性化生成策略的预设运单号配置数据中,获取与所述目标承运方适配的目标运单号生成策略,还包括:若所述运单号生成需求为预先定义的标准生成需求,则从预设运单号配置数据中,获取标准运单号生成策略作为目标运单号生成策略。
3.根据权利要求1所述的方法,其特征在于,所述依据所述目标承运方的运单号基础配置信息、所述目标序列号,以及所述目标运单号生成策略中包括的目标运单号生成规则,生成与目标承运方相符的目标运单号,包括:依据所述目标承运方的运单号基础配置信息,以及所述目标运单号生成规则,确定所述目标运单号生成规则中指定参数项的参数值;
依据所述目标序列号以及所述目标运单号生成规则,确定与所述目标运单号生成规则中指定的序列号位数相符的序列号数值;
依据所述目标运单号生成规则,将所述目标运单号生成规则中指定参数项的参数值,以及所述序列号数值进行拼接,生成与目标承运方相符的目标运单号。
4.根据权利要求1所述的方法,其特征在于,所述服务器的数量为一个或多个;其中,所述服务器中包括至少一个运单号生成数据库,所述运单号生成数据库包括至少一个运单号生成列表。
5.一种运运单号生成装置,其特征在于,包括:
序列号生成模块,用于若依据获取的目标承运方的承运方信息,确定所述目标承运方的目标运单号生成策略为标准生成策略,则依据所述目标运单号生成策略中包括的序列号生成规则,生成目标序列号;其中,所述标准生成策略包含至少两个承运方适用的统一的运单号生成流程,所述至少两个承运方包括所述目标承运方;运单号生成模块,用于依据预先设置的所述目标承运方的运单号基础配置信息、所述目标序列号,以及所述目标运单号生成策略中包括的目标运单号生成规则,生成与所述目标承运方相符的目标运单号;
所述序列号生成模块具体用于:
依据服务器中包括的运单号生成列表,确定当前用于生成所述目标序列号的目标运单号生成列表;
依据所述目标承运方的唯一标识,从所述目标运单号生成列表中,确定所述目标承运方关联的当前基础序列值;
将所述目标承运方关联的所述当前基础序列值,乘以所述服务器中包括的运单号生成列表的数量,并将乘积结果加上目标运单号生成列表的唯一标识值,得到所述目标序列号;
其中,所述目标序列号在所述目标承运方下具有全局唯一性;
所述序列号生成模块具体用于:
响应于接收到的作用在当前显示页面的用户操作,确定目标承运方的承运方信息;
依据所述目标承运方的承运方信息,确定所述目标承运方的运单号生成需求;
依据所述运单号生成需求,从集成有标准生成策略以及至少一个个性化生成策略的预设运单号配置数据中,获取与所述目标承运方适配的目标运单号生成策略;
所述序列号生成模块具体还用于:
若所述运单号生成需求为所述目标承运方的预先定义的指定需求,则从所述目标承运方的承运方信息中,提取唯一标识所述目标承运方的承运方编码;
依据所述承运方编码,从预设运单号配置数据中,获取与所述承运方编码相匹配的个性化生成策略作为目标运单号生成策略。
6.一种服务器,其特征在于,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1‑4中任一项所述的运单号生成方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1‑4中任一项所述的运单号生成方法。 说明书 : 运单号生成方法、装置、服务器和存储介质技术领域[0001] 本发明实施例涉及计算机技术领域,尤其涉及一种运单号生成方法、装置、服务器和存储介质。背景技术[0002] 随着计算机技术与物流技术的快速发展,物流承运平台应运而生,实现对上游发货方的接单,以及对下游承运方的推单。[0003] 通常现有的物流承运平台能够承接不同承运方,且各个承运方对应的运单号生成模块均是基于单一承运方开发而成,由于承运方的不同进而对应的运单号生成规则也不同。相应的,针对不同的承运方需要采用不同的运单号生成模块,以生成与承运方对应的运单号。从而当用户对于不同需求进行发货下单时,物流承运平台中的各个运单号生成模块依据各自的运单号生成规则,生成与该承运方相符的运单号。[0004] 在实现本发明过程中,发明人发现现有技术中至少存在如下问题:现有物流承运平台中,承运方对应的各个运单号生成模块相互独立,代码冗余性较大,系统兼容性以及可扩展性较低,承运方无法快速接入并提供服务,增加运单号生成时间成本。发明内容[0005] 本发明实施例提供了一种运单号生成方法、装置、服务器和存储介质,能够提高运单号生成策略的兼容性和可扩展性,实现承运方的快速接入,降低代码的冗余度,减少运单号生成时间成本。[0006] 第一方面,本发明实施例提供了一种运单号生成方法,包括:[0007] 若依据获取的目标承运方的承运方信息,确定所述目标承运方的目标运单号生成策略为标准生成策略,则依据所述目标运单号生成策略中包括的序列号生成规则,生成目标序列号;其中,所述标准生成策略包含至少两个承运方适用的统一的运单号生成流程,所述至少两个承运方包括所述目标承运方;[0008] 依据预先设置的所述目标承运方的运单号基础配置信息、所述目标序列号,以及所述目标运单号生成策略中包括的目标运单号生成规则,生成与所述目标承运方相符的目标运单号。[0009] 第二方面,本发明实施例提供了一种运运单号生成装置,包括:[0010] 序列号生成模块,用于若依据获取的目标承运方的承运方信息,确定所述目标承运方的目标运单号生成策略为标准生成策略,则依据所述目标运单号生成策略中包括的序列号生成规则,生成目标序列号;其中,所述标准生成策略包含至少两个承运方适用的统一的运单号生成流程,所述至少两个承运方包括所述目标承运方;[0011] 运单号生成模块,用于依据预先设置的所述目标承运方的运单号基础配置信息、所述目标序列号,以及所述目标运单号生成策略中包括的目标运单号生成规则,生成与所述目标承运方相符的目标运单号。[0012] 第三方面,本发明实施例提供了一种服务器,包括:[0013] 一个或多个处理器;[0014] 存储器,用于存储一个或多个程序;[0015] 当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所述的运单号生成方法。[0016] 第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述的运单号生成方法。[0017] 本发明实施例具有如下有益效果,在集成了包含至少两个承运方适用的统一运单号生成流程的标准生成策略的基础上,依据获取的目标承运方的承运方信息,若确定目标承运方的目标运单号生成策略为标准生成策略,则依据目标运单号生成策略中包括的序列号生成规则,生成目标承运方下全局唯一的目标序列号;并依据目标承运方的运单号基础配置信息、目标序列号,以及目标运单号生成策略中包括的目标运单号生成规则,生成与目标承运方相符的目标运单号。因此本发明实施例通过预先对不同承运方适用的统一的运单号生成流程进行适配,得到具有兼容性标准生成策略,采用兼容的运单号生成策略以及扩展的运单号基础配置信息生成对应运单号的技术手段,克服了现有物流承运平台中各承运方的运单号生成模块之间相互独立,导致代码冗余度较高的技术问题,提高了运单号生成策略对于不同承运方的兼容性和可扩展性,实现了承运方的快速接入,进而达到了降低代码冗余度,减少运单号生成时间成本的技术效果。附图说明[0018] 图1为本发明实施例一提供的一种运单号生成方法的流程图;[0019] 图2为本发明实施例二提供的一种运单号生成方法的流程图;[0020] 图3为本发明实施例二提供的服务器架构的示例图;[0021] 图4为本发明实施例三提供的一种运单号生成装置的结构示意图;[0022] 图5为本发明实施例四提供的一种服务器的结构示意图。具体实施方式[0023] 下面结合附图和实施例对本发明实施例作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明实施例,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明实施例相关的部分而非全部结构。[0024] 实施例一[0025] 图1为本发明实施例一提供的一种运单号生成方法的流程图,本实施例可适用于依据各承运方的运单号生成策略生成运单号的情况,该方法可由一种运单号生成装置来执行,该装置可以采用软件和/或硬件的方式实现,优选是配置于服务器。该方法具体包括如下步骤:[0026] 步骤110、若依据获取的目标承运方的承运方信息,确定目标承运方的目标运单号生成策略为标准生成策略,则依据目标运单号生成策略中包括的序列号生成规则,生成目标序列号;其中,标准生成策略包含至少两个承运方适用的统一的运单号生成流程,至少两个承运方包括目标承运方。[0027] 在本发明具体实施例中,承运方是指能够承接货物运输及配送的第三方物流运输方。目标承运方是指上游发货方或仓库在发货下单时,所指定的第三方物流运输方,目标承运方可以是一个或多个,多个目标承运方可以相同也可以不相同。可以基于手机或电脑等终端设备中物流承运平台的可视化界面,获取,用户作用在可视化界面上的操作,服务器通过响应用户在可视化界面上的选择或输入等操作进行接单,以此来确定目标承运方,同时获取目标承运方的承运方信息。示例性的,用户在可视化界面上选择承运方A进行承运,填写发件人、发件地址和收件人等详细信息,服务器响应用户操作,将承运方A确定为目标承运方,并获取承运方A的承运方信息。承运方信息可以包括承运方ID、承运方编码、承运方名称、承运方类型、承运范围以及各类权限信息等。[0028] 本实施例中,运单号是指能够唯一标识所下单发货物品包裹的代码,通常由数字和/或字母组成,便于发货方、承运方以及收件人等的实时跟踪物流信息。运单号通常由号段前缀、序列号以及号段后缀组成,不同承运方下的号段前缀及后缀均不相同。且各承运方根据运单号生成需求,还可以在运单号中添加额外所需的编码,例如校验位等。[0029] 由于各承运方对于运单号的生成需求可能不同,进而各承运方的运单号生成规则以及参数配置可能存在差异,因此需要在承运方首次接入物流承运平台时,或承运方提供新一批可用运单号号段后首次接入物流承运平台时,为其配置与其各自的运单号生成流程相符的运单号生成策略。[0030] 具体的,运单号生成策略是指为发货方和承运方提供运单号生成的服务,运单号生成策略中可以包括所适用的承运方编码、序列号的生成规则、运单号的生成规则或校验位生成规则等。其中,序列号用于保证在一个承运方下运单号的全局唯一性,可以基于本实施例中服务器的具体架构,确定序列号生成规则,并在后续的实施例中进行具体解释说明。本实施例在承接承运方时,会接收该承运方所提供的本批次可用运单号号段,从而预先对可用运单号号段进行解析,确定属于该承运方的该批次号段的号段前缀、号段后缀以及序列号位数等信息,并将具体参数数值作为该承运方的运单号基础配置信息,将运单号的生成流程整合为运单号生成规则。校验位生成规则等个性化的生成规则,可以依据承运方所提供的具体算法来确定。[0031] 本实施例中,为了在承运方首次接入时,快速为承运方配置或维护对应的运单号生成策略,实现承运方的快速接入,为承运方提供高效的全链条服务。因此在运单号生成策略配置过程中,依据承运方各自的运单号生成需求,划分为预先定义的标准生成需求和指定需求。其中,标准生成需求是指不同承运方具有的相同的运单号生成需求,指定需求是指个别承运方所需的标准生成需求之外或与标准生成需求不同的个性化生成需求。因此,依据承运方各自的运单号生成需求,将符合标准生成需求即没有指定需求的不同承运方,配置为统一的标准生成策略,并独立配置其扩展的各自的运单号基础配置信息。相应的,标准生成策略包含至少两个承运方适用的统一的运单号生成流程,运单号基础配置信息用于将关联的承运方的具体参数填入至运单号生成流程中,从而标准生成策略能够兼容不同承运方的运单号生成策略,避免对各个承运方的运单号生成策略的独立开发,提高了运单号生成策略的可兼容性。[0032] 因此当存在新的承运方接入时,本实施例可以通过承运方需求的判断,若确定为预定义的标准生成需求,则可以直接将标准生成策略作为该新的承运方的运单号生成策略,仅扩展其运单号基础配置信息即可。从而节省了后台运单号生成策略的开发流程,实现承运方的快速接入,降低代码冗余度。[0033] 示例性的,定义抽象运单号生成服务类AbstractCodeGenService,其中可以定义抽象运单号生成方法genWaybillCode,作为各类运单号生成服务入口,并规定其入参等;还可以定义序列号生成规则对应的方法rowBasedSequenceGen等。在顶层服务类AbstractCodeGenService的基础上,各个承运方的运单号生成策略关联的服务处理类均继承于该顶层服务类,并进行具体运单号生成规则的设定。从而在承运方首次接入并向承运方配置运单号生成策略时,针对没有个性化运单号生成需求即符合标准生成需求的承运方,可以避免大量重复性的开发,直接将统一的标准生成策略配置为该承运方的运单号生成策略,例如采用继承于顶层服务类的标准生成策略SimpleCodeGenService服务类,作为承运方的运单号生成策略,并扩展该承运方自有的运单号基础配置信息。而针对具有个性化运单号生成需求的承运方A,即该承运方的运单号生成流程与现有统一的标准生成策略SimpleCodeGenService服务类不适配,则新增该承运方A的运单号生成策略关联的服务类,例如继承于顶层服务类新增承运方A的服务类ACodeGenService。进而物流承运平台的服务器中,集成有至少两个承运方可调用的标准生成策略SimpleCodeGenService服务类,以及承运方A单独可调用的ACodeGenService服务类。以此类推,当后续存在新的承运方接入时,若判断该新的承运方符合标准生成需求,则直接确定标准生成策略服务类SimpleCodeGenService作为该新的承运方的运单号生成策略,否则新增满足个性化需求的服务类。[0034] 本实施例中,在物流承运平台的使用过程中,目标运单号生成策略是指经服务器的识别和匹配,获取的与目标承运方所规定的运单号生成流程相匹配的运单号生成策略。具体的,响应于接收到的作用在当前显示页面的用户操作,确定目标承运方的承运方信息;依据目标承运方的承运方信息,确定目标承运方的运单号生成需求;依据运单号生成需求,从集成有标准生成策略以及至少一个个性化生成策略的预设运单号配置数据中,获取与目标承运方适配的目标运单号生成策略。依据获取的目标承运方的承运方信息进行目标运单号生成策略的匹配,若确定目标承运方的目标运单号生成策略为标准生成策略,可以直接调用标准生成策略中包括的序列号生成规则,生成目标序列号。其中,标准生成策略包含至少两个承运方适用的统一的运单号生成流程,且该至少两个承运方包括目标承运方。[0035] 步骤120、依据预先设置的目标承运方的运单号基础配置信息、目标序列号,以及目标运单号生成策略中包括的目标运单号生成规则,生成与目标承运方相符的目标运单号。[0036] 在本发明具体实施例中,运单号生成规则是指在承运方接入时,为承运方预先配置的生成运单号的方式,其中可以规定了构成运单号的数据项。目标承运方的运单号基础配置信息是预先从目标承运方所提供的可用运单号号段中解析出来的,可以包括目标承运方的该批次号段的号段前缀、号段后缀以及序列号位数等信息,也可以包括能够唯一标识承运方的承运方编码,还可以包括密钥等信息,用于对生成的运单号进行签名加密。[0037] 本实施例中,作为具有兼容性的运单号生成策略,标准生成策略中的目标运单号生成规则规定了统一的运单号生成流程,例如运单号的组成部分及拼接方式。作为可扩展的配置信息,运单号基础配置信息在目标运单号生成规则的基础上,对目标运单号生成规则规定的各参数项填入具体数值。以此针对符合标准生成需求的承运方,通过运单号生成策略的兼容和扩展,在运单号的生成过程中,分别生成与各个承运方相符的目标运单号。[0038] 示例性的,假设针对没有个性化需求的承运方,其生成运单号的标准生成需求包括号段前缀部分、序列号部分以及号段后缀部分,相应的,标准生成策略中的目标运单号生成规则可以为{“prefix”:pre_value,“randomLength”:len_value,“suffix”:suf_value},其中,“prefix”表示号段前缀项,pre_value表示号段前缀数值,“randomLength”表示序列号位数项,len_value表示序列号位数数值,“suffix”表示号段后缀项,suf_value表示号段后缀数值。假设对于没有个性化需求的承运方B,其运单号生成配置信息中预先设定pre_value数值为44,len_value数值为6,suf_value数值为99。因此,在对没有个性化需求的承运方B生成运单号时,在生成的目标序列号的基础上进行数据位数的补全,得到6位的序列号,从而按照目标运单号生成规则的规定,将号段前缀44、6位的序列号以及号段后缀99进行拼接,得到与承运方B相符的目标运单号。[0039] 本实施例的技术方案具有如下有益效果,在集成了包含至少两个承运方适用的统一运单号生成流程的标准生成策略的基础上,依据获取的目标承运方的承运方信息,若确定目标承运方的目标运单号生成策略为标准生成策略,则依据目标运单号生成策略中包括的序列号生成规则,生成目标承运方下全局唯一的目标序列号;并依据目标承运方的运单号基础配置信息、目标序列号,以及目标运单号生成策略中包括的目标运单号生成规则,生成与目标承运方相符的目标运单号。因此本发明实施例通过预先对不同承运方适用的统一的运单号生成流程进行适配,得到具有兼容性标准生成策略,采用兼容的运单号生成策略以及扩展的运单号基础配置信息生成对应运单号的技术手段,克服了现有物流承运平台中各承运方的运单号生成模块之间相互独立,导致代码冗余度较高的技术问题,提高了运单号生成策略对于不同承运方的兼容性和可扩展性,实现了承运方的快速接入,进而达到了降低代码冗余度,减少运单号生成时间成本的技术效果。[0040] 实施例二[0041] 本实施例在上述实施例一的基础上,提供了运单号生成方法的一个优选实施方式。能够依据各承运方的运单号生成需求,为目标承运方匹配目标运单号生成策略。图2为本发明实施例二提供的一种运单号生成方法的流程图,如图2所示,该方法包括以下具体步骤:[0042] 步骤210、响应于接收到的作用在当前显示页面的用户操作,确定目标承运方的承运方信息。[0043] 在本发明具体实施例中,当前显示页面是指物流承运平台为用户提供的交互式界面,为发货方等用户提供下单服务。用户可以根据当前显示页面中的提示进行操作,在当前显示界面中选择或输入意向的承运方,并输入发件人、发件地址和收件人等详细信息。服务器响应用户操作,将用户操作所关联的承运方确定为目标承运方,并依据预先存储的承运方信息,确定目标承运方的承运方信息。承运方信息可以包括承运方ID、承运方编码、承运方名称、承运方类型、承运范围以及各类权限信息等。[0044] 示例性的,承运方信息中,承运方ID可以为0001,承运方编码可以为ZZZ,承运方ID和承运方编码均可作为承运方的唯一标识。承运方名称可以为某某速递,相应承运方类型为快速公司,承运范围可以为全国或局部区域,权限信息可以包括是否开通电子面单等。[0045] 步骤220、依据目标承运方的承运方信息,确定目标承运方的运单号生成需求。[0046] 在本发明具体实施例中,可以预先将承运方各自的运单号生成需求,划分为预先定义的标准生成需求和指定需求。其中,标准生成需求是指不同承运方具有的相同的运单号生成需求,指定需求是指个别承运方所需的标准生成需求之外或于标准生成需求不同的个性化生成需求。本实施例可以在开发阶段,基于对待接入承运方所提供的本批次可用运单号号段的解析,确定承运方的运单号生成需求,将符合标准生成需求的承运方添加标识信息。从而在确定目标承运方时,通过对目标承运方所添加标识信息的识别,确定目标承运方的运单号生成需求。反之,还可以对具有指定需求的承运方添加另一标识信息等。本实施例不对运单号生成需求的确定方式进行限定,任何能够实现运单号生成需求确定的方式都可以应用于本实施例中。[0047] 步骤230、依据运单号生成需求,从集成有标准生成策略以及至少一个个性化生成策略的预设运单号配置数据中,获取与目标承运方适配的目标运单号生成策略。[0048] 在本发明具体实施例中,预设运单号配置数据中包括了物流承运平台所接入的所有承运方关联的所有运单号生成策略,以及各个承运方各自的运单号基础配置信息。运单号生成策略可以为适用于多个符合标准生成需求的承运方的标准生成策略,还可以为仅适用于一个具有个性化需求的承运方的个性化生成策略。从而依据目标承运方的运单号生成需求,获取与目标承运方适配的目标运单号生成策略。[0049] 可选的,若运单号生成需求为预先定义的标准生成需求,则从预设运单号配置数据中,获取标准运单号生成策略作为目标运单号生成策略。[0050] 本实施例中,若目标承运方的运单号生成需求为预先定义的标准生成需求,则从预设运单号配置数据中,直接将具有兼容性的统一的标准生成策略作为目标承运方的目标运单号生成策略。[0051] 可选的,若运单号生成需求为目标承运方的预先定义的指定需求,则从目标承运方的承运方信息中,提取唯一标识目标承运方的承运方编码;依据承运方编码,从预设运单号配置数据中,获取与承运方编码相匹配的个性化生成策略作为目标运单号生成策略。[0052] 本实施例中,由于运单号生成策略中可以包括所适用的承运方编码、序列号的生成规则、运单号的生成规则或校验位生成规则等,因此可以依据承运方编码,对于具有个性化需求的目标承运方,再次进行细粒度的个性化生成策略的匹配。[0053] 步骤240、依据服务器中包括的运单号生成列表,确定当前用于生成目标序列号的目标运单号生成列表。[0054] 在本发明具体实施例中,服务器用于生成与目标承运方相符的目标运单号,服务器可以为一个或多个。具体的,服务器中包括至少一个运单号生成数据库,运单号生成数据库包括至少一个运单号生成列表。其中,运单号生成数据库用于管理其中包括的各个运单号生成列表,运单号生成列表用于生成目标承运方下全局唯一的序列号。可以根据所接入的承运方数量、各承运方所提供的可用运单号号段以及系统运行能力等方面进行服务器架构的配置。[0055] 本实施例中,运单号生成列表的名称可以任意设定,依据运单号生成数据库的顺序,由0起,依次递增对各个运单号生成列表的名称中添加唯一标识值,例如表后缀。从而在生成运单号时,可以将运单号生成任务均匀下发至各个运单号生成列表中,或者控制各个运单号生成列表轮流执行运单号生成任务,保证序列号生成的高可用性和高性能。本实施例中不对运单号生成列表接收任务的控制方式进行限定,任何能够提高运单号生成效率的分配方式均能够适用于本实施例中,从而依据具体的运单号生成列表接收任务的控制方式,确定当前用于生成目标序列号的目标运单号生成列表。[0056] 示例性的,图3为服务器架构的示例图。如图3所示,该物流承运平台共包括2个服务器,即服务器1和服务器2;每个服务器包括2个运单号生成数据库,即共4包括个运单号生成数据库,依据服务器顺序依次命名为alpha_sequence_0至alpha_sequence_3;每个运单号生成数据库包括2个运单号生成列表,共8个运单号生成列表,并依据运单号生成数据库顺序依次命名为row_based_code_0至row_based_code_7。假设依据轮流的方式控制各个运单号生成列表来生成序列号,且生成前一运单号的运单号生成列表为row_based_code_3,则确定其下一个运单号生成列表即row_based_code_4为目标运单号生成列表。[0057] 步骤250、依据目标承运方的唯一标识,从目标运单号生成列表中,确定目标承运方关联的当前基础序列值。[0058] 在本发明具体实施例中,运单号生成列表中包括两个字段,即owner_key字段和current_value字段,其中,owner_key字段表示生成序列所属的承运方,例如可以用承运方编码来表示;current_value字段表示当前基础序列值,用于依据算法计算生成目标序列号。owner_key字段和current_value字段具有关联关系。在各个运单号生成列表中,可以包括不同承运方及其当前基础序列值。当前基础序列值是指当前在目标运单号生成列表中,生成目标序列号所依据的基础数值,从而在当前基础序列值上进行算法的运算,来生成目标序列号,且保证该目标序列号在目标承运方下的全局唯一性。[0059] 相应的,在配置各承运方的运单号生成策略时,通过对承运方所提供的可用运单号号段的解析,需要为各个运单号生成列表中该承运方owner_key字段关联的current_value字段赋予初始值。[0060] 具体的,按照承运方所提供的可用运单号号段由小到大的顺序,确定第一个或最小的可用运单号号段。依据对承运方所提供的可用运单号号段的解析,去掉第一个可用运单号号段中解析出的号段前缀和号段后缀,若依据解析确定承运方具有个性化需求对应的编码,例如校验位,同样去掉个性化需求对应的编码,从而仅保留第一个可用运单号号段中的序列号部分。将该序列号部分除以运单号生成列表的数量,若相除的结果不为整数,则将相除的结果进行向上取整,保证生成的序列号在提供的可用运单号号段范围内,并将该整数作为各个运单号生成列表的初始基础序列值,且各个运单号生成列表中的初始基础序列值相同。[0061] 示例性的,在上述图3的示例中,假设承运方C该批次所提供的可用运单号号段为4400001799至4499997799,则通过对承运方所提供的可用运单号号段的解析,可以确定号段前缀为44,号段后缀为99,其余为6位序列号,并确定最小的序列号为000017。由于运单号生成列表的数量为8,因此将000017除以8,并向上取整,确定初始基础序列号为3。[0062] 步骤260、基于目标运单号生成策略中包括的序列号生成规则,依据当前基础序列值、目标运单号生成列表的唯一标识值,以及服务器中包括的运单号生成列表的数量,生成目标序列号。[0063] 在本发明具体实施例中,依据服务器架构,确定计算目标序列号的算法为:将目标承运方关联的当前基础序列值,乘以服务器中包括的运单号生成列表的数量,并将乘积结果加上目标运单号生成列表的唯一标识值,得到目标序列号。并在每次生成序列号后,对当前基础序列值进行加1,以备下一次序列号生成时,利用加1后的基础序列值进行序列号的生成。[0064] 示例性的,在上述示例中,假设确定当前用于生成目标序列号的目标运单号生成列表为row_based_code_4,其当前基础序列值为3,则将3×8得到24,并加上row_based_code_4的唯一标识值4,得到目标序列号为28。[0065] 本实施例中,还可以对目标序列号的生成过程和结果进行异常监测。其中,对于目标序列号结果的异常监测,可以通过缓存每次生成的历史序列号,判断当前生成的目标序列号是否存在于历史序列号中,以保证当前生成的目标序列号的唯一性。若监测结果异常,则将当前的目标运单号生成列表从可用列表中移除,添加至异常列表中,并在第一预设时间之后,重新将该列表恢复至可用列表中。对于目标序列号生成过程的异常监测,可以判断目标序列号生成超时,且在最近第二预设时间内连续超时预设次数,则确定生成过程异常,并将当前的目标运单号生成列表从可用列表中移除,添加至异常列表中,并在第三预设时间之后,重新将该列表恢复至可用列表中。[0066] 步骤270、依据目标承运方的运单号基础配置信息,以及目标运单号生成规则,确定目标运单号生成规则中指定参数项的参数值。[0067] 在本发明具体实施例中,可以通过承运方编码匹配的方式,从预设运单号配置信息中获取目标承运方的运单号基础配置信息。运单号基础配置信息可以预先设定了目标承运方的该批次号段的号段前缀、号段后缀以及序列号位数等信息,也可以包括能够唯一标识承运方的承运方编码,还可以包括密钥等信息。从而依据目标运单号生成规则中确定运单号生成所需参数项,并从目标承运方的运单号基础配置信息中确定各参数项的参数值。[0068] 示例性的,假设运单号生成规则为{“prefix”:pre_value,“randomLength”:len_value,“suffix”:suf_value},其中,“prefix”表示号段前缀项,pre_value表示号段前缀数值,“randomLength”表示序列号位数项,len_value表示序列号位数数值,“suffix”表示号段后缀项,suf_value表示号段后缀数值。假设目标承运方的运单号基础配置信息中,预先设定pre_value数值为44,len_value数值为6,suf_value数值为99。进而确定目标运单号生成规则中各参数项的参数值,即目标承运方的运单号生成规则为生成前缀为44,后缀为99,前后缀之间包括6位的序列号的运单号。[0069] 步骤280、依据目标序列号以及目标运单号生成规则,确定与目标运单号生成规则中指定的序列号位数相符的序列号数值。[0070] 在本发明具体实施例中,通过目标运单号生成规则中各参数项的参数值的确定,可以确定目标运单号生成规则中指定的序列号位数。从而对于不满足序列号位数要求的目标序列进行补位处理,即在目标序列号之前左移补0,以得到与目标运单号生成规则中指定的序列号位数相符的序列号数值。[0071] 示例性的,在上述示例中,目标序列号为28,目标运单号生成规则中指定的序列号位数为6位,进而通过补位处理确定序列号数值为000028。[0072] 步骤290、依据目标运单号生成规则,将目标运单号生成规则中指定参数项的参数值,以及序列号数值进行拼接,生成与目标承运方相符的目标运单号。[0073] 在本发明具体实施例中,目标运单号生成规则中各参数项的顺序即为各参数值的拼接顺序,从而按照目标运单号生成规则中各参数项的顺序,将目标运单号生成规则中指定参数项的参数值以及序列号数值进行拼接,得到与目标承运方相符的目标运单号。[0074] 示例性的,在上述示例中,号段前缀为44,序列号数值为000028,号段后缀为99。进而按照目标运单号生成规则中各参数项的顺序,得到拼接后的目标运单号为4400002899,即在目标承运方所提供的可用运单号号段范围内。[0075] 本实施例中,最终将生成的目标运单号反馈至上游发货方等用户,以备用户进行物流信息查询等;并将生成的目标运单号发送给下游的承运方,以备承运方快速记录并追踪运输情况。其中,对于具有个性化需求的承运方,例如要求运单号中包括校验位,则在生成运单号时,基于承运方所提供的校验位生成算法生成校验位,并拼接合成至目标运单号中。在承运方接收到目标运单号时,依据目标运单号对校验位进行验证,从而确定该目标运单号是否属于该承运方。[0076] 本实施例的技术方案具有如下有益效果,在集成了包含至少两个承运方适用的统一运单号生成流程的标准生成策略的基础上,依据目标承运方的运单号生成需求,进行粗粒度的运单号生成策略的适配,对于具有个性化需求的目标承运方,再根据承运方编码进行细粒度的运单号生成策略的适配。从而通过具有兼容性的标准生成策略,减少了策略的适配流程。从而依据适配的运单号生成策略以及服务器架构,生成目标序列号,并依据目标承运方的运单号基础配置信息以及运单号生成策略中的运单号生成规则,生成目标运单号。因此本发明实施例通过预先对不同承运方适用的统一的运单号生成流程进行适配,得到具有兼容性标准生成策略,采用兼容的运单号生成策略以及扩展的运单号基础配置信息生成对应运单号的技术手段,克服了现有物流承运平台中各承运方的运单号生成模块之间相互独立,导致代码冗余度较高的技术问题,提高了运单号生成策略对于不同承运方的兼容性和可扩展性,实现了承运方的快速接入,进而达到了降低代码冗余度,减少运单号生成时间成本的技术效果。[0077] 实施例三[0078] 图4为本发明实施例三提供的一种运单号生成装置的结构示意图,本实施例可适用于依据各承运方的运单号生成策略生成运单号的情况,该装置可实现本发明任意实施例所述的运单号生成方法。该装置具体包括:[0079] 序列号生成模块410,用于若依据获取的目标承运方的承运方信息,确定所述目标承运方的目标运单号生成策略为标准生成策略,则依据所述目标运单号生成策略中包括的序列号生成规则,生成目标序列号;其中,所述标准生成策略包含至少两个承运方适用的统一的运单号生成流程,所述至少两个承运方包括所述目标承运方;[0080] 运单号生成模块420,用于依据预先设置的所述目标承运方的运单号基础配置信息、所述目标序列号,以及所述目标运单号生成策略中包括的目标运单号生成规则,生成与所述目标承运方相符的目标运单号。[0081] 可选的,所述序列号生成模块410具体用于:[0082] 响应于接收到的作用在当前显示页面的用户操作,确定目标承运方的承运方信息;[0083] 依据所述目标承运方的承运方信息,确定所述目标承运方的运单号生成需求;[0084] 依据所述运单号生成需求,从集成有标准生成策略以及至少一个个性化生成策略的预设运单号配置数据中,获取与所述目标承运方适配的目标运单号生成策略。[0085] 可选的,所述序列号生成模块410具体用于:[0086] 若所述运单号生成需求为预先定义的标准生成需求,则从预设运单号配置数据中,获取标准运单号生成策略作为目标运单号生成策略。[0087] 可选的,所述序列号生成模块410具体还用于:[0088] 若所述运单号生成需求为所述目标承运方的预先定义的指定需求,则从所述目标承运方的承运方信息中,提取唯一标识所述目标承运方的承运方编码;[0089] 依据所述承运方编码,从预设运单号配置数据中,获取与所述承运方编码相匹配的个性化生成策略作为目标运单号生成策略。[0090] 可选的,所述运单号生成模块420具体用于:[0091] 依据所述目标承运方的运单号基础配置信息,以及所述目标运单号生成规则,确定所述目标运单号生成规则中指定参数项的参数值;[0092] 依据所述目标序列号以及所述目标运单号生成规则,确定与所述目标运单号生成规则中指定的序列号位数相符的序列号数值;[0093] 依据所述目标运单号生成规则,将所述目标运单号生成规则中指定参数项的参数值,以及所述序列号数值进行拼接,生成与目标承运方相符的目标运单号。[0094] 可选的,所述序列号生成模块410具体用于:[0095] 依据服务器中包括的运单号生成列表,确定当前用于生成所述目标序列号的目标运单号生成列表;[0096] 依据所述目标承运方的唯一标识,从所述目标运单号生成列表中,确定所述目标承运方关联的当前基础序列值;[0097] 基于所述序列号生成规则,依据所述当前基础序列值、所述目标运单号生成列表的唯一标识值,以及所述服务器中包括的运单号生成列表的数量,生成目标序列号。[0098] 可选的,所述服务器的数量为一个或多个;其中,所述服务器中包括至少一个运单号生成数据库,所述运单号生成数据库包括至少一个运单号生成列表。[0099] 本实施例的技术方案,通过各个功能模块之间的相互配合,实现了运单号生成策略的兼容配置、运单号基础配置信息的扩展、承运方运单号生成需求的确定、目标运单号生成策略的匹配、目标序列号的生成以及目标运单号的生成等功能。因此本发明实施例通过预先对不同承运方适用的统一的运单号生成流程进行适配,得到具有兼容性标准生成策略,采用兼容的运单号生成策略以及扩展的运单号基础配置信息生成对应运单号的技术手段,克服了现有物流承运平台中各承运方的运单号生成模块之间相互独立,导致代码冗余度较高的技术问题,提高了运单号生成策略对于不同承运方的兼容性和可扩展性,实现了承运方的快速接入,进而达到了降低代码冗余度,减少运单号生成时间成本的技术效果。[0100] 实施例四[0101] 图5为本发明实施例四提供的一种服务器的结构示意图。如图5所示,该服务器具体包括:一个或多个处理器510,图5中以一个处理器510为例;存储器520,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器510执行,使得一个或多个处理器510实现本发明任意实施例所述的运单号生成方法。处理器510与存储器520可以通过总线或其他方式连接,图5中以通过总线连接为例。[0102] 存储器520,作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的运单号生成方法对应的程序指令(例如,承运方关联的运单号生成策略的配置与运单号基础配置信息的扩展以及序列号的生成和运单号的生成)。处理器510通过运行存储在存储器520中的软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述的运单号生成方法。[0103] 存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器520可进一步包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。[0104] 实施例五[0105] 本发明实施例五还提供一种计算机可读存储介质,其上存储有计算机程序(或称为计算机可执行指令),该程序被处理器执行时用于执行一种运单号生成方法,该方法包括:[0106] 若依据获取的目标承运方的承运方信息,确定所述目标承运方的目标运单号生成策略为标准生成策略,则依据所述目标运单号生成策略中包括的序列号生成规则,生成目标序列号;其中,所述标准生成策略包含至少两个承运方适用的统一的运单号生成流程,所述至少两个承运方包括所述目标承运方;[0107] 依据预先设置的所述目标承运方的运单号基础配置信息、所述目标序列号,以及所述目标运单号生成策略中包括的目标运单号生成规则,生成与所述目标承运方相符的目标运单号。[0108] 当然,本发明实施例所提供的一种计算机可读存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的运单号生成方法中的相关操作。[0109] 通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明实施例可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read‑OnlyMemory,ROM)、随机存取存储器(RandomAccessMemory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。[0110] 值得注意的是,上述装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。[0111] 注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明实施例进行了较为详细的说明,但是本发明实施例不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
专利地区:北京
专利申请日期:2019-04-25
专利公开日期:2024-06-18
专利公告号:CN111861292B