CN106611397A - 物流数据处理方法及装置 - Google Patents

物流数据处理方法及装置 Download PDF

Info

Publication number
CN106611397A
CN106611397A CN201510703763.7A CN201510703763A CN106611397A CN 106611397 A CN106611397 A CN 106611397A CN 201510703763 A CN201510703763 A CN 201510703763A CN 106611397 A CN106611397 A CN 106611397A
Authority
CN
China
Prior art keywords
order
issued transaction
delivery
request message
labelling
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.)
Pending
Application number
CN201510703763.7A
Other languages
English (en)
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.)
Cainiao Smart Logistics Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201510703763.7A priority Critical patent/CN106611397A/zh
Publication of CN106611397A publication Critical patent/CN106611397A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/08Logistics, e.g. warehousing, loading or distribution; Inventory or stock management

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Quality & Reliability (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Development Economics (AREA)
  • Strategic Management (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请提供了一种物流数据处理方法及装置,所述物流数据处理方法用于对用户发出的针对外部订单号的发货请求消息进行用于发货的事务处理,所述物流数据处理方法包括:接收携带外部订单号及用户标识的发货请求消息;判断在本地是否已建立有与所述外部订单号及用户标识对应的事务处理标记;若已建立有对应的事务处理标记,则丢弃接收的所述发货请求消息;若未建立有对应的事务处理标记,则在本地建立与所述外部订单号及用户标识对应的事务处理标记;仅对未丢弃的发货请求消息执行用于发货的事务处理。从而实现对同一用户发出的针对同一外部订单号的并发的发货请求消息仅进行一次用于发货的事务处理,从而可有效避免针对同一发货请求消息的重复发货问题。

Description

物流数据处理方法及装置
技术领域
本申请涉及物流数据处理技术领域,尤其涉及一种物流数据处理方法及装置。
背景技术
目前的物流数据处理方法中,在接收到发货请求消息后,针对该发货请求消息执行发货操作的流程如图1中所示,图1中的发货中心、订单中心、仓储中心分别为物流数据处理***所包含的子***,该子***间相互配合完成发货处理流程。具体发货请求消息的处理过程包括如下步骤:
S1、接收到来自用户的携带外部订单号的发货请求。
S2、查询是否存在与所述外部订单号对应的内部订单以及对应的内部订单的状态是否为已发货。
若存在与所述外部订单对应的内部订单,且状态为已发货,则执行步骤S3,向用户返回发货信息。
若存在与所述外部订单对应的内部订单,且状态为未发货,则执行步骤S5。
若不存在与所述外部订单对应的内部订单,则执行步骤S4,触发建立与所述外部订单号对应的内部订单,即触发订单中心建立与所述外部订单号对应的内部订单,之后执行步骤S5。步骤S3与S4同时只能执行一个步骤,因此步骤S3采用虚线表示。
S5、查询是否存在与所述内部订单对应的仓储订单。
若存在与所述内部订单对应的仓储订单,则执行步骤S6,向用户返回发货信息。
若不存在与所述内部订单对应的仓储订单,则执行步骤S7,触发生成与所述内部订单对应的仓储订单。步骤S6与S7同时只能执行一个步骤,因此步骤S6采用虚线表示。
S8、针对所述仓储订单执行发货操作。
S9、发货完成后通知订单中心将内部订单状态更新为已发货。
S10、向用户返回发货信息。
上述流程中至少存在如下问题:
在当前的处理发货请求过程中,当接收到同一用户针对同一外部订单再次发送同样的发货请求时,在当前的发货请求未完成情况下,将同步处理后续接收到的针对同一外部订单的发货请求。例如,当前发货操作流程未执行步骤S9的将内部订单状态更新为已发货;或者,步骤S9执行失败,导致未将内部订单状态更新为已发货等情况,则针对后续接收到的同一外部订单的发货请求,同样会执行步骤S5~S10。
因此,目前的物流数据处理***在处理发货操作流程时存在重复发货的问题。
发明内容
本申请解决的技术问题之一是提供一种物流数据处理方法及装置,实现了有效防止重复发货。
根据本申请一方面的一个实施例,提供了一种物流数据处理方法,用于对用户发出的针对外部订单号的发货请求消息进行用于发货的事务处理,所述物流数据处理方法包括:
接收携带外部订单号及用户标识的发货请求消息;
判断在本地是否已建立有与所述外部订单号及用户标识对应的事务处理标记;
若已建立有对应的事务处理标记,则丢弃接收的所述发货请求消息;
若未建立有对应的事务处理标记,则在本地建立与所述外部订单号及用户标识对应的事务处理标记;
仅对未丢弃的发货请求消息执行用于发货的事务处理,从而对同一用户发出的针对同一外部订单号的并发的发货请求消息仅进行一次用于发货的事务处理。
根据本申请另一方面的一个实施例,提供了一种物流数据处理装置,用于对用户发出的针对外部订单号的发货请求消息进行用于发货的事务处理,所述物流数据处理装置包括:
接收单元,用于接收携带外部订单号及用户标识的发货请求消息;
判断单元,用于判断在本地是否已建立有与所述外部订单号及用户标识对应的事务处理标记;
第一处理单元,用于在所述判断单元判断已建立有对应的事务处理标记情况下丢弃接收的所述发货请求消息;
建立单元,用于在所述判断单元判断未建立有对应的事务处理标记情况下在本地建立与所述外部订单号及用户标识对应的事务处理标记;
第二处理单元,用于仅对未丢弃的发货请求消息执行用于发货的事务处理,从而对同一用户发出的针对同一外部订单号的并发的发货请求消息仅进行一次用于发货的事务处理。
本申请实施例通过为发货请求消息建立对应的事务处理标记,在事务处理标记存在情况下,对于并发的同一发货请求消息不做发货处理,从而可有效避免针对同一发货请求消息的重复发货问题。
本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例、附图进行,但本申请并不仅限于这些实施例。而是,本申请的范围是广泛的,且意在仅通过后附的权利要求限定本申请的范围。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1是现有技术的物流数据处理方法的流程图。
图2是根据本申请一个实施例的物流数据处理方法的流程图。
图3是根据本申请一个实施例的物流数据处理方法中对发货请求消息执行发货操作的流程图。
图4是根据本申请一个实施例的物流数据处理装置的结构示意图。
本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例、附图进行,但本申请并不仅限于这些实施例。而是,本申请的范围是广泛的,且意在仅通过后附的权利要求限定本申请的范围。
具体实施方式
在更加详细地讨论示例性实施例之前,应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(CloudComputing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本申请,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本申请。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本申请,也应包含在本申请保护范围以内,并以引用方式包含于此。
后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本申请的示例性实施例的目的。但是本申请可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于…之间”相比于“直接处于…之间”,“与…邻近”相比于“与…直接邻近”等等)。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
下面结合附图对本申请的技术方案作进一步详细描述。
图2是根据本申请一个实施例的物流数据处理方法的流程图,本实施例的物流数据处理方法主要涉及物流数据处理中的发货数据处理过程,也就是本实施例的物流数据处理方法主要用于对用户发出的针对外部订单号的发货请求消息进行用于发货的事务处理。该方法的执行主体可以为物流数据处理***中发货中心子***的服务器,也就是该方法主要由发货中心子***完成。该方法主要包括如下步骤:
S21、接收携带外部订单号及用户标识的发货请求消息。
S22、判断在本地是否已建立有与所述外部订单号及用户标识对应的事务处理标记。
若已建立有对应的事务处理标记,则进入步骤S23;若未建立有对应的事务处理标记,则进入步骤S24。
S23、丢弃接收的所述发货请求消息。
S24、在本地建立与所述外部订单号及用户标识对应的事务处理标记;
S25、仅对未丢弃的发货请求消息执行用于发货的事务处理,从而对同一用户发出的针对同一外部订单号的并发的发货请求消息仅进行一次用于发货的事务处理。
下面对上述各步骤做进一步详细介绍。
由于本申请实施例中的物流数据处理***支持不同平台产生的订单,本申请实施例将来自不同平台的待发货的订单统称为外部订单。步骤S21中所述的外部订单号即为由不同平台产生的外部订单的订单号。
在发货请求消息中携带的用户标识为发送所述发货请求消息的用户的用户标识。该发送发货请求消息的用户为在该物流数据处理***中注册的用户。
假设当前接收到一个发货请求消息,在该发货请求消息中携带的外部订单号为:123456,用户标识为:userA。
步骤S22中所述的事务处理标记是为发货请求消息建立的,具体的,可以是为针对发货请求消息中携带的外部订单号及用户标识建立的。每一外部订单号及用户标识的组合对应唯一的事务处理标记。该事务处理标记的存在用于表示与该事务处理标记对应的发货请求消息(发货请求消息中携带的外部订单号及用户标识)正在被处理。
判断在本地是否已建立有与所述外部订单号及用户标识对应的事务处理标记的方法可以为:以外部订单号+用户标识为关键词在保存事务处理标记的存储设备中查找。该保存事务处理标记的存储设备可以为存储***或数据库等具备存储功能的设备,在该存储设备中保存所有外部订单号与用户标识的组合与事务处理标记的对应关系。例如,针对步骤S21中接收的携带的外部订单号为:123456,用户标识为:userA的发货请求消息,其查找过程中以123456+userA作为key在保存事务处理标记的设备中查找。
其中,若查找时发现所述保存事务处理标记的设备中保存有与所述外部订单号及用户标识对应的事务处理标记。例如,以123456+userA作为key,在保存事务处理标记的设备中查找时发现存在与该123456+userA组合对应的事务处理标记LOCK1,则可确定本地已建立有与所述外部订单号及用户标识对应的事务处理标记。也就是所接收的发货请求消息为并发的发货请求消息,在接收当前的发货请求消息前,该发货请求消息已被接收并处理。
另外,本申请实施例在判断是否已建立有与外部订单号及用户标识对应的事务处理标记的同时,还可进一步了解携带同一外部订单号及用户标识的发货请求消息的并发量。此种情况下,可通过获取事务处理标记的值来实现,也就是说,在所述存储设备中除保存事务处理标记与外部订单号及用户标识的对应关系外,还保存事务处理标记的值。具体方法可以为:为建立的所述事务处理标记赋值;通过更新所述事务处理标记的值来统计接收的携带同一外部订单号及用户标识的发货请求消息的数量。其中,在建立与外部订单号及用户标识对应的事务处理标记时,可设置该事务处理标记的初始值为1,后续每次接收到携带与该事务处理标记对应的外部订单号及用户标识的发货请求消息时,将事务处理标记的当前值加1。也就是每次以外部订单号及用户标识为关键词在该存储设备中查找对应的事务处理标记时,在查找到对应的事务处理标记情况下,将该事务处理标记的值加1,加1后得到的事务处理标记的值即为携带同一外部订单号及用户标识的发货请求消息的并发量值。例如,上述查找到的事务处理标记LOCK1的当前值为1,将该当前值加1后得到该LOCK1的值为2,则可知同样的发货请求消息已经发送了2次。
若已建立有与所述外部订单号及用户标识对应的事务处理标记,则说明该用户的与所述外部订单号对应的发货请求消息正在被处理,为避免出现重复发货现象,可执行步骤S23,丢弃当前接收的发货请求消息,也就是忽略当前接收的发货请求消息,不再针对该发货请求执行发货操作,因此在一个发货请求未处理完成情况下,接收到同一用户发送的同样的发货请求消息将不会对其进行处理,因此不会出现重复发货的现象。
步骤S24为在判断未建立有与所述发货请求消息中携带的外部订单号及用户标识对应的事务处理标记的情况下,为所述发货请求消息建立事务处理标记。具体为,在本地建立与所述外部订单号及用户标识对应的事务处理标记。也就是,本申请实施例在首次接收到一个携带外部订单号及用户标识的发货请求消息时,会针对该发货请求消息中的外部订单号及用户标识建立事务处理标记,以表示该发货请求消息正在处理。将建立的事务处理标记与外部订单号及用户标识的对应关系保存于所述存储设备中。
同时,本申请实施例还可设置所述事务处理标记的有效时长。所述的有效时长,即该事务处理标记被保留的最长时间。在达到有效时长时可以将该事务处理标记释放,即可删除该事务处理标记。设置该事务处理标记的有效时长的目的在于可以防止出现发货请求消息被锁定现象,也就是防止在发货请求消息无法成功发货情况下,后续无法针对同样的发货请求消息进行处理的情况。为实现该目的,本申请实施例从建立所述事务处理标记,并为该事务处理标记设置完有效时长情况下开始计时,判断当前时间距离建立所述事务处理标记的时间的时长是否达到所述有效时长,若达到所述有效时间则删除所述事务处理标记。该有效时长为经过多次实验确定的时长,该有效时长可保证一个发货请求消息从接收到发货成功具有足够的时间,也就是能够保证正常的对发货请求消息的发货处理过程完成。例如,经实验发现,一个发货请求消息从接收到发货完成平均需要时长为1s,本申请实施例为事务处理标记设置的有效时长可以为5s,或6s等等,足够完成一个正常的发货处理流程。
从上面的描述可以看出,本申请实施例对于首次接收的发货请求消息建立对应的事务处理标记,在事务处理标记存在情况下对于后续接收的同样的(携带的外部订单号及用户标识相同)发货请求消息不做任何处理,可有效保证重复发货现象。
步骤S25为仅对未丢弃的发货请求消息执行用于发货的事务处理。在每执行该发货操作的每一步操作前,都先判断对应的操作是否已经执行完成,以进一步避免重复操作的现象。
该步骤S25的详细执行流程参见图3中所示,图3中的发货中心、订单中心、仓储中心以及异步调度中心均为物流数据处理***中的子***,该方法主要由发货中心子***的服务器来完成,具体可包括如下步骤:
S251、判断是否存在与所述外部订单号对应的内部订单以及对应的内部订单的状态是否为已发货,从而依据不同的判断结果执行对应的后续的发货操作。
由于外部订单来自不同平台,其格式各不相同,为方便数据处理本申请实施例会针对外部订单生成对应的内部订单,一个外部订单号对应一个内部订单号。
判断是否存在与外部订单号对应的内部订单,即向订单中心查询是否存在与外部订单号对应的内部订单号。例如,若外部订单号为12345,则以12345为key向订单中心查询是否存在与该12345对应的内部订单号。
若存在与外部订单号对应的内部订单,且该内部订单状态为已发货,则返回发货信息,并结束操作,如图3中虚线所示的步骤。由于在步骤S23中已经通过事务处理标记对并发的发货请求消息进行了拦截,因此该场景出现的几率较低。此场景为针对前一发货请求消息对应的事务处理标记删除,但发货流程未执行完成,后续接收到同一发货请求消息情况下,在接收后续并发的发货请求消息时,前一发货请求消息已经处理完的场景。则步骤S21中接收的发货请求消息即为后续接收的并发的发货请求消息。
若存在与外部订单号对应的内部订单,且该内部订单状态为未发货,则如图3中所示进入步骤S252。
S252、判断该内部订单是否存在对应的仓储订单。
由于不同订单中的物品有可能对应不同的仓储中心,因此,本申请实施例需要进一步根据内部订单生成仓储订单。生成仓储订单的过程为:由发货中心确定生成仓储订单的方案,包括确定生成仓储订单的参数,并将该生成仓储订单的方案通知给仓储中心,后续接收仓储中心依据该生成仓储订单的方案生成的仓储订单。
若存在与该内部订单对应的仓储订单,则返回发货信息如图3中虚线所示的步骤。返回的发货信息包括仓储订单的订单号及每个仓储订单包含的物品信息。此步骤为针对内部订单状态更新失败的场景,也就是前一发货请求消息处理过程中,仓储订单已经生成并已发货,但对应的内部订单状态未更新为已发货状态的场景。
若不存在与该内部订单对应的仓储订单,则如图3中所示进入步骤S253。
S253、判断所述内部订单是否已经拆单。
由于一个外部订单中可能包含两个或多个物品,而该两个或多个物品有可能归属不同的仓储中心,因此,有必要将该外部订单对应的内部订单拆分成多个子内部订单,从而根据拆分后的子内部订单生成对应的仓储订单以方便发货。
判断所述内部订单是否已经拆单,即判断该内部订单是否存在对应的多个子内部订单,若存在一个内部订单号对应多个子内部订单号,则说明该内部订单已经拆单。所述内部订单未拆单时对应两种情况,一种为该内部订单无需拆单,另一种该内部订单需拆单,但未执行拆单操作。
若所述内部订单已经拆单,则执行步骤S254,回滚到未拆单状态,得到未拆单的内部订单,之后执行步骤S255。此步骤为针对拆单成功但调用仓储中心失败的情况,也就是拆单成功后没有成功发货的情况。所述回滚到未拆单状态即,删除与所述外部订单号对应的多个子内部订单,保留未拆单前的与所述外部订单对应内部订单。
若所述内部订单未拆单且无需拆单,则直接进入步骤S256。
若所述内部订单未拆单但该内部订单需拆单,则进入步骤S255。
另外,若判断结果为不存在与所述外部订单号对应的内部订单,则对应的后续的处理操作为:触发建立与所述外部订单号对应的内部订单,图3中未示出。所述触发建立与所述外部订单号对应的内部订单,即触发物流数据处理***的订单中心生成与所述外部订单号对应的内部订单,例如,将携带外部订单号的发货请求消息发送给订单中心,从而接收订单中心返回的针对所述外部订单号创建的内部订单的内部订单号(返回外部订单号与内部订单号的对应关系),之后若该内部订单需要拆单则进入步骤S255,若无需拆单,则针对建立的与所述外部订单号对应的内部订单执行发货操作,即进入步骤S256。
S255、根据设置的拆单方案将所述内部订单拆分成多个子内部订单,之后针对拆分后的多个子内部订单执行发货操作,即进入步骤S256。
所述内部订单有可能为之前未拆单的内部订单,也有可能为已拆单但回滚后保留的内部订单。针对该回滚后保留的内部订单需重新依据拆单方案进行拆单。
所述的拆单方案由发货中心服务器确定,例如,可以根据订单中包含的物品对应的仓储中心的个数来拆单,本申请实施例对具体的拆单方案不做限制。由于该拆单方案有可能为动态拆单方案,也就是即使针对同一发货请求消息,在每次接收并处理过程中确定的拆单方案有可能不同,因此需要将已拆单的内部订单回滚到未拆单状态,重新依据当前确定的拆单方案进行拆单,以保证发货中心与订单中心的订单状态一致。
该拆单过程具体包括:发货中心服务器将确定的拆单方案通知给订单中心,触发订单中心依据发货中心服务器确定的拆单方案对所述内部订单进行拆单。发货中心服务器接收订单中心的拆单结果,该拆单结果包括一个内部订单拆分后对应的多个子内部订单,也就是内部订单号与多个拆分后的子内部订单号的对应关系,以及每个子内部订单对应的物品。
S256、触发生成与所述内部订单对应的仓储订单。
可以理解的是,所生成的仓储订单的数量与子内部订单的数量一致。也就是在内部订单已拆单情况下,仓储订单是依据拆单后的子内部订单来生成,即,针对拆分后的多个子内部订单生成对应的多个仓储订单。生成与内部订单对应的仓储订单的过程同上面所述,此处不再赘述。
S257、依据所述仓储订单进行发货操作。
具体的,依据仓储订单进行发货操作即为调用相应仓储中心的发货接口对已经生成的仓储订单进行发货操作。其中,本申请实施例为保证物流数据处理***的各子***间信息的一致性,对于一个内部订单对应的多个仓储订单(将一个内部订单拆分成多个子内部订单的情况),在调用发货接口时需调用仓储中心的批量发货接口将所述内部订单对应的多个仓储订单统一发货。也就是针对重新拆分后的多个子内部订单生成对应的多个仓储订单,调用仓储中心的批量发货接口将所述多个子内部订单对应的多个仓储订单统一发货。
S258、触发更新内部订单状态为已发货状态。
具体的,触发更新内部订单状态为已发货状态,即,在调用仓储中心的发货接口发货成功后,通知订单中心发货成功的内部订单号,以便订单中心将对应的发货成功的内部订单号对应的内部订单状态更新为已发货状态。其中对于调用批量发货接口将内部订单对应的多个仓储订单统一发货的场景,需该多个仓储订单全部发货成功情况下才执行该更新操作,以保证同一内部订单对应的多个子内部订单状态统一。
其中,若更新所述内部订单状态失败,则触发生成异步调用任务,重复执行更新所述内部订单状态为已发货状态,直到更新成功,如图3中虚线所示。也就是,本申请实施例对发货请求消息的整个处理过程进行监控,在***间互相调用(包括:触发订单中心生成与外部订单对应的内部订单、触发订单中心进行拆单、触发仓储中心生成仓储订单以及触发订单中心更新内部订单状态等)失败情况下,可通知异步调度中心,触发异步调度中心生成异步调度任务,从而回调执行失败的接口,重新执行该步骤直到执行成功为止。例如,在监控到内部订单更新为已发货状态失败情况下,生成异步调度任务,调用更新内部订单状态的接口重新执行更新内部订单状态为已发货的操作,直到更新成功为止。通过该异步回调过程可进一步保证物流数据处理***的各子***间信息的一致性。
S259、删除与所述外部订单号及用户标识对应的事务处理标记。
由上面的描述可知,在当前时间距离建立事务处理标记本的时间的时长达到事务处理标记的有效时长时,不论与该事务处理标记对应的发货请求消息是否处理完成,均删除该事务处理标记。本申请实施例还包括如下两种情况可触发删除该事务处理标记:
其一、与事务处理标记对应的发货请求消息处理完成,也就是携带与该事务处理标记对应的外部订单号及用户标识的发货请求消息处理完成,即发货成功,对应的内部订单状态更新为已发货。
其二、监控对所述发货请求消息执行发货的事务处理的状态,响应于确定对所述发货请求消息执行发货的事务处理中断,则删除与中断的发货请求消息中携带的外部订单号及用户标识对应的所述事务处理标记。也就是,携带与该事务处理标记对应的外部订单号及用户标识的发货请求消息因故障等各种原因处理中断,无法继续对该发货请求消息进行发货处理的情况。
S260、返回发货信息。
本申请实施例各所返回的发货信息的步骤所返回的发货请求消息均包括仓储订单号以及每个仓储订单号对应的物品信息。
本申请实施例通过为发货请求消息建立对应的事务处理标记,在事务处理标记存在情况下,对于并发的同一发货请求消息进行丢弃,即不做发货处理,从而可有效避免针对同一发货请求消息的重复发货问题。
另外,本申请实施例实现了依据设置的拆单方案进行自动拆单,避免了现有技术中人为拆单效率低及拆单维度不统一导致的***间单据信息不一致的现象。针对拆单后对应的多个仓储订单实行统一发货,可进一步保证***间信息的一致性。
同时,对***间相互调用操作进行监控,在操作失败情况下通过异步回调保证操作的成功率,从而进一步保证***间信息的一致性。
本申请实施例还提供一种与上述物流数据处理方法对应的物流数据处理装置,该装置可设置于物流数据处理***的发货中心子***的服务器中,或与该服务器相连,用于对用户发出的针对外部订单号的发货请求消息进行用于发货的事务处理,该装置结构示意图如图4中所示,该装置主要包括如下单元:
接收单元41,用于接收携带外部订单号及用户标识的发货请求消息;
判断单元42,用于判断在本地是否已建立有与所述外部订单号及用户标识对应的事务处理标记;
第一处理单元43,用于在所述判断单元判断已建立有对应的事务处理标记情况下丢弃接收的所述发货请求消息;
建立单元44,用于在所述判断单元判断未建立有对应的事务处理标记情况下在本地建立与所述外部订单号及用户标识对应的事务处理标记;
第二处理单元45,用于仅对未丢弃的发货请求消息执行用于发货的事务处理,从而对同一用户发出的针对同一外部订单号的并发的发货请求消息仅进行一次用于发货的事务处理。
其中,所述建立单元44被配置为:
设置所述事务处理标记的有效时长。
从建立所述事务处理标记开始计时;
判断当前时间距离建立所述事务处理标记的时间的时长是否达到所述有效时长;
若达到所述有效时长则删除所述事务处理标记。
可选地,所述建立单元44被配置为:
在第二处理单元45对未丢弃的发货请求消息执行用于发货的事务处理完成后,删除与所述未丢弃的发货请求消息中携带的外部订单号及用户标识对应的所述事务处理标记。
可选地,所述建立单元44被配置为:
监控对所述发货请求消息执行发货的事务处理的状态;
响应于确定对所述发货请求消息执行发货的事务处理中断,则删除与中断的发货请求消息中携带的外部订单号及用户标识对应的所述事务处理标记。
另外,所述建立单元44还可被配置为:
为建立的所述事务处理标记赋值;
通过更新所述事务处理标记的值来统计接收的携带同一外部订单号及用户标识的发货请求消息的数量。
其中,所述第二处理单元45被配置为:
响应于确定存在与所述外部订单号对应的内部订单,以及不存在与所述内部订单对应的仓储订单,且所述内部订单已经拆分成多个子内部订单;则
删除所述内部订单拆分后的所述多个子内部订单,保留所述内部订单;
依据设置的拆单方案将保留的所述内部订单重新拆分成多个子内部订单;
针对重新拆分后的多个子内部订单执行用于发货的事务处理。
针对重新拆分后的多个子内部订单执行用于发货的事务处理包括:
针对重新拆分后的多个子内部订单生成对应的多个仓储订单;
调用仓储中心的批量发货接口将所述多个子内部订单对应的多个仓储订单统一发货。
针对重新拆分后的多个子内部订单执行用于发货的事务处理还包括:
所述多个子内部订单对应的多个仓储订单统一发货成功后,触发更新与所述外部订单号对应的内部订单状态为已发货状态。
可选地,所述装置还可包括:
监控单元46,用于监控更新与所述外部订单号对应的内部订单状态为已发货状态是否成功;
异步调用单元47,用于在所述监控单元监控所述更新与所述外部订单号对应的内部订单状态为已发货状态失败情况下,触发生成异步调用任务,以重复执行所述与所述外部订单号对应的内部订单状态为已发货状态的步骤,直到更新成功。
综上所述,本申请实施例至少具有如下优势:
通过为发货请求消息建立对应的事务处理标记,在事务处理标记存在情况下,对于并发的同一发货请求消息进行丢弃,即不做发货处理,从而可有效避免针对同一发货请求消息的重复发货问题。
另外,本申请实施例实现了依据设置的拆单方案进行自动拆单,避免了现有技术中人为拆单效率低及拆单维度不统一导致的***间单据信息不一致的现象。针对拆单后对应的多个仓储订单实行统一发货,可进一步保证***间信息的一致性。
同时,对***间相互调用操作进行监控,在操作失败情况下通过异步回调保证操作的成功率,从而进一步保证***间信息的一致性。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。***权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (20)

1.一种物流数据处理方法,用于对用户发出的针对外部订单号的发货请求消息进行用于发货的事务处理,其特征在于,所述物流数据处理方法包括:
接收携带外部订单号及用户标识的发货请求消息;
判断在本地是否已建立有与所述外部订单号及用户标识对应的事务处理标记;
若已建立有对应的事务处理标记,则丢弃接收的所述发货请求消息;
若未建立有对应的事务处理标记,则在本地建立与所述外部订单号及用户标识对应的事务处理标记;
仅对未丢弃的发货请求消息执行用于发货的事务处理,从而对同一用户发出的针对同一外部订单号的并发的发货请求消息仅进行一次用于发货的事务处理。
2.如权利要求1所述的方法,其特征在于,建立与所述外部订单号及用户标识对应的事务处理标记包括:
设置所述事务处理标记的有效时长。
3.如权利要求2所述的方法,其特征在于,建立与所述外部订单号及用户标识对应的事务处理标记还包括:
从建立所述事务处理标记开始计时;
判断当前时间距离建立所述事务处理标记的时间的时长是否达到所述有效时长;
若达到所述有效时长则删除所述事务处理标记。
4.如权利要求1所述的方法,其特征在于,对未丢弃的发货请求消息执行用于发货的事务处理完成后,所述方法还包括:
删除与所述未丢弃的发货请求消息中携带的外部订单号及用户标识对应的所述事务处理标记。
5.如权利要求1所述的方法,其特征在于,对未丢弃的发货请求消息执行用于发货的事务处理包括:
监控对所述发货请求消息执行发货的事务处理的状态;
响应于确定对所述发货请求消息执行发货的事务处理中断,则删除与中断的发货请求消息中携带的外部订单号及用户标识对应的所述事务处理标记。
6.如权利要求1所述的方法,其特征在于,建立与所述外部订单号及用户标识对应的事务处理标记包括:
为建立的所述事务处理标记赋值;
通过更新所述事务处理标记的值来统计接收的携带同一外部订单号及用户标识的发货请求消息的数量。
7.如权利要求1所述的方法,其特征在于,对未丢弃的发货请求消息执行用于发货的事务处理包括:
响应于确定存在与所述外部订单号对应的内部订单,以及不存在与所述内部订单对应的仓储订单,且所述内部订单已经拆分成多个子内部订单;则
删除所述内部订单拆分后的所述多个子内部订单,保留所述内部订单;
依据设置的拆单方案将保留的所述内部订单重新拆分成多个子内部订单;
针对重新拆分后的多个子内部订单执行用于发货的事务处理。
8.如权利要求7所述的方法,其特征在于,针对重新拆分后的多个子内部订单执行用于发货的事务处理包括:
针对重新拆分后的多个子内部订单生成对应的多个仓储订单;
调用仓储中心的批量发货接口将所述多个子内部订单对应的多个仓储订单统一发货。
9.如权利要求8所述的方法,其特征在于,针对重新拆分后的多个子内部订单执行用于发货的事务处理还包括:
所述多个子内部订单对应的多个仓储订单统一发货成功后,触发更新与所述外部订单号对应的内部订单状态为已发货状态。
10.如权利要求9所述的方法,其特征在于,所述方法还包括:
监控更新与所述外部订单号对应的内部订单状态为已发货状态是否成功;
若更新失败,则触发生成异步调用任务,以重复执行所述与所述外部订单号对应的内部订单状态为已发货状态的步骤,直到更新成功。
11.一种物流数据处理装置,用于对用户发出的针对外部订单号的发货请求消息进行用于发货的事务处理,其特征在于,所述物流数据处理装置包括:
接收单元,用于接收携带外部订单号及用户标识的发货请求消息;
判断单元,用于判断在本地是否已建立有与所述外部订单号及用户标识对应的事务处理标记;
第一处理单元,用于在所述判断单元判断已建立有对应的事务处理标记情况下丢弃接收的所述发货请求消息;
建立单元,用于在所述判断单元判断未建立有对应的事务处理标记情况下在本地建立与所述外部订单号及用户标识对应的事务处理标记;
第二处理单元,用于仅对未丢弃的发货请求消息执行用于发货的事务处理,从而对同一用户发出的针对同一外部订单号的并发的发货请求消息仅进行一次用于发货的事务处理。
12.如权利要求10所述的装置,其特征在于,所述建立单元被配置为:
设置所述事务处理标记的有效时长。
13.如权利要求12所述的装置,其特征在于,所述建立单元被配置为:
从建立所述事务处理标记开始计时;
判断当前时间距离建立所述事务处理标记的时间的时长是否达到所述有效时长;
若达到所述有效时长则删除所述事务处理标记。
14.如权利要求10所述的装置,其特征在于,所述建立单元被配置为:
在第二处理单元对未丢弃的发货请求消息执行用于发货的事务处理完成后,删除与所述未丢弃的发货请求消息中携带的外部订单号及用户标识对应的所述事务处理标记。
15.如权利要求10所述的装置,其特征在于,所述建立单元被配置为:
监控对所述发货请求消息执行发货的事务处理的状态;
响应于确定对所述发货请求消息执行发货的事务处理中断,则删除与中断的发货请求消息中携带的外部订单号及用户标识对应的所述事务处理标记。
16.如权利要求10所述的装置,其特征在于,所述建立单元被配置为:
为建立的所述事务处理标记赋值;
通过更新所述事务处理标记的值来统计接收的携带同一外部订单号及用户标识的发货请求消息的数量。
17.如权利要求10所述的装置,其特征在于,所述第二处理单元被配置为:
响应于确定存在与所述外部订单号对应的内部订单,以及不存在与所述内部订单对应的仓储订单,且所述内部订单已经拆分成多个子内部订单;则
删除所述内部订单拆分后的所述多个子内部订单,保留所述内部订单;
依据设置的拆单方案将保留的所述内部订单重新拆分成多个子内部订单;
针对重新拆分后的多个子内部订单执行用于发货的事务处理。
18.如权利要求17所述的装置,其特征在于,针对重新拆分后的多个子内部订单执行用于发货的事务处理包括:
针对重新拆分后的多个子内部订单生成对应的多个仓储订单;
调用仓储中心的批量发货接口将所述多个子内部订单对应的多个仓储订单统一发货。
19.如权利要求18所述的装置,其特征在于,针对重新拆分后的多个子内部订单执行用于发货的事务处理还包括:
所述多个子内部订单对应的多个仓储订单统一发货成功后,触发更新与所述外部订单号对应的内部订单状态为已发货状态。
20.如权利要求19所述的装置,其特征在于,所述装置还包括:
监控单元,用于监控更新与所述外部订单号对应的内部订单状态为已发货状态是否成功;
异步调用单元,用于在所述监控单元监控所述更新与所述外部订单号对应的内部订单状态为已发货状态失败情况下,触发生成异步调用任务,以重复执行所述与所述外部订单号对应的内部订单状态为已发货状态的步骤,直到更新成功。
CN201510703763.7A 2015-10-26 2015-10-26 物流数据处理方法及装置 Pending CN106611397A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510703763.7A CN106611397A (zh) 2015-10-26 2015-10-26 物流数据处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510703763.7A CN106611397A (zh) 2015-10-26 2015-10-26 物流数据处理方法及装置

Publications (1)

Publication Number Publication Date
CN106611397A true CN106611397A (zh) 2017-05-03

Family

ID=58613945

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510703763.7A Pending CN106611397A (zh) 2015-10-26 2015-10-26 物流数据处理方法及装置

Country Status (1)

Country Link
CN (1) CN106611397A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019015670A1 (zh) * 2017-07-21 2019-01-24 中兴通讯股份有限公司 跟踪、监控软件行为的方法、装置及设备
CN109993889A (zh) * 2017-12-29 2019-07-09 山东新北洋信息技术股份有限公司 一种商品售卖方法及自动售货控制装置
CN110348656A (zh) * 2018-04-08 2019-10-18 天津京东深拓机器人科技有限公司 调度方法、装置、***及计算机可读存储介质
CN110472906A (zh) * 2019-07-08 2019-11-19 深圳市中农易讯信息技术有限公司 物流事务协调***和方法
CN110533503A (zh) * 2019-08-12 2019-12-03 厦门网宿有限公司 一种数据处理方法及装置
CN111932186A (zh) * 2020-09-17 2020-11-13 深圳市海柔创新科技有限公司 订单处理方法、装置、设备、***及存储介质
CN113642885A (zh) * 2021-08-12 2021-11-12 中投国信(北京)科技发展有限公司 基于人工智能的业务环境指标信息处理方法及***

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1530859A (zh) * 2003-03-14 2004-09-22 联想(北京)有限公司 一种保护erp接口数据的方法
CN102880947A (zh) * 2011-07-11 2013-01-16 阿里巴巴集团控股有限公司 一种电子商务平台与物流交易平台的信息交互方法及装置
CN103310334A (zh) * 2012-03-16 2013-09-18 阿里巴巴集团控股有限公司 一种业务处理的方法及装置
CN104504548A (zh) * 2014-12-16 2015-04-08 北京京东尚科信息技术有限公司 订单拆分方法和装置
CN104901927A (zh) * 2014-03-06 2015-09-09 阿里巴巴集团控股有限公司 业务处理方法和装置
CN104899711A (zh) * 2014-03-05 2015-09-09 阿里巴巴集团控股有限公司 业务处理方法和装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1530859A (zh) * 2003-03-14 2004-09-22 联想(北京)有限公司 一种保护erp接口数据的方法
CN102880947A (zh) * 2011-07-11 2013-01-16 阿里巴巴集团控股有限公司 一种电子商务平台与物流交易平台的信息交互方法及装置
CN103310334A (zh) * 2012-03-16 2013-09-18 阿里巴巴集团控股有限公司 一种业务处理的方法及装置
CN104899711A (zh) * 2014-03-05 2015-09-09 阿里巴巴集团控股有限公司 业务处理方法和装置
CN104901927A (zh) * 2014-03-06 2015-09-09 阿里巴巴集团控股有限公司 业务处理方法和装置
CN104504548A (zh) * 2014-12-16 2015-04-08 北京京东尚科信息技术有限公司 订单拆分方法和装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
辛林旗: "国际支付宝上午收单服务***核心模块的设计与实现", 《中国优秀硕士学位论文全文数据库(电子期刊)》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019015670A1 (zh) * 2017-07-21 2019-01-24 中兴通讯股份有限公司 跟踪、监控软件行为的方法、装置及设备
CN109993889A (zh) * 2017-12-29 2019-07-09 山东新北洋信息技术股份有限公司 一种商品售卖方法及自动售货控制装置
CN110348656A (zh) * 2018-04-08 2019-10-18 天津京东深拓机器人科技有限公司 调度方法、装置、***及计算机可读存储介质
CN110472906A (zh) * 2019-07-08 2019-11-19 深圳市中农易讯信息技术有限公司 物流事务协调***和方法
CN110533503A (zh) * 2019-08-12 2019-12-03 厦门网宿有限公司 一种数据处理方法及装置
CN111932186A (zh) * 2020-09-17 2020-11-13 深圳市海柔创新科技有限公司 订单处理方法、装置、设备、***及存储介质
TWI741957B (zh) * 2020-09-17 2021-10-01 大陸商深圳市海柔創新科技有限公司 訂單處理方法及裝置、控制設備、倉儲系統及存儲介質
US11276036B1 (en) 2020-09-17 2022-03-15 Hai Robotics Co., Ltd. Order processing method, apparatus, device, system, and storage medium
CN113642885A (zh) * 2021-08-12 2021-11-12 中投国信(北京)科技发展有限公司 基于人工智能的业务环境指标信息处理方法及***

Similar Documents

Publication Publication Date Title
CN106611397A (zh) 物流数据处理方法及装置
KR101677946B1 (ko) 파티션 확장 방법 및 장치
US20120023154A1 (en) Rapid client-side component processing based on component relationships
CN106874133A (zh) 流式计算***中计算节点的故障处理
CN106878388B (zh) 对分布式存储***中慢节点的检测
CN106888245A (zh) 一种数据处理方法、装置及***
CN104536869A (zh) 移动终端及其资源管理方法
CN110287196B (zh) 区块存储方法、平行链交易获取方法、设备和存储介质
CN104572845A (zh) 文件分发方法、装置、设备及***
CN110213207A (zh) 一种基于日志分析的网络安全防御方法及设备
CN107783842A (zh) 一种分布式锁实现方法、设备及存储装置
CN106503001A (zh) 分布式集群环境中的数据更新方法及装置
CN106899474A (zh) 一种报文转发的方法和装置
CN106469391A (zh) 扣减库存数据的方法和装置
CN111861754A (zh) 交易打包方法、设备和存储介质
CN107451501B (zh) 动态图形编码的实现方法和装置
CN103425729A (zh) 管理计算机***中的内存
CN113128821A (zh) 确定任务的方法和装置
CN104866242B (zh) 一种数据删除***、方法及数据删除中心
CN107463450B (zh) 容器的数据处理方法和装置
CN109271367A (zh) 分布式文件***多节点快照回滚方法及***
CN106920057B (zh) 物料管理方法及***
CN106484714B (zh) 一种行为记录的存储方法和设备
CN111176715A (zh) 一种信息调用方法及服务器
US10209909B1 (en) Storage element cloning in presence of data storage pre-mapper

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
TA01 Transfer of patent application right

Effective date of registration: 20180410

Address after: Four story 847 mailbox of the capital mansion of Cayman Islands, Cayman Islands, Cayman

Applicant after: CAINIAO SMART LOGISTICS HOLDING Ltd.

Address before: Cayman Islands Grand Cayman capital building a four storey No. 847 mailbox

Applicant before: ALIBABA GROUP HOLDING Ltd.

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20170503

RJ01 Rejection of invention patent application after publication