订单处理的方法、装置、存储介质和服务器与流程

文档序号:19221808发布日期:2019-11-26 02:12阅读:169来源:国知局
订单处理的方法、装置、存储介质和服务器与流程

本公开涉及计算机技术领域,特别涉及一种订单处理的方法、装置、存储介质和服务器。



背景技术:

随着计算机技术和网络技术的发展,人们的生活越来越便利,人们可以在终端上安装外卖应用程序,然后进行订单预订,外卖应用程序的后台服务器会为该订单分配配送员,由分配的配送员进行配送。

相关技术中,每当后台服务器接收到一个订单,在该订单对应的所有配送人员中选取最合适的配送员,由该配送员进行该订单的配送,如果该配送员拒绝配送该订单,则重新获取该订单对应的所有配送员,在该所有配送员中选取最合适的配送员。

由于每次配送员拒绝派送订单时,均需要重新获取所有配送员,重新进行计算,导致订单处理效率比较低。



技术实现要素:

为了解决订单处理效率比较低的问题,本公开实施例提供了一种订单处理的方法、装置、存储介质和服务器。所述技术方案如下:

第一方面,提供了一种订单处理的方法,所述方法包括:

周期性获取目标订单,其中,所述目标订单包括当前未安排配送员的订单和当前已安排配送员且未被配送员确认的订单;

确定所述目标订单中每个订单对应的候选配送员列表;

对于所述目标订单中的每个订单,在所述订单对应的候选配送员列表中,分配所述订单对应的配送员,存储更新后的候选配送员列表,其中,所述更新后的候选配送员列表为所述订单对应的候选配送员列表中删除所述订单对应的配送员后的列表;

在所述订单对应的配送员拒绝配送所述订单的情况下,在当前存储的所述订单对应的候选配送员列表中,重新分配所述订单对应的配送员。

可选的,所述方法还包括:

确定所述订单对应的配送员拒绝配送所述订单,采用下列方式之一:

在接收到所述订单对应的配送员的终端发送的拒绝消息情况下,确定所述订单对应的配送员拒绝配送所述订单;

在向所述订单对应的配送员的终端发送配送通知之后的第一时长内未接收到所述终端发送的拒绝消息或同意消息情况下,确定所述订单对应的配送员拒绝配送所述订单。

可选的,所述对于所述目标订单的每个订单,在所述订单对应的候选配送员列表中,分配所述订单对应的配送员,包括:

确定所述目标订单中各订单对应的候选配送员列表中各配送员的配送分值;

根据所述各订单对应的候选配送员列表中各配送员的配送分值,为所述各订单分配配送员。

可选的,所述根据所述各订单对应的候选配送员列表中各配送员的配送分值,为所述各订单分配配送员,包括:

在所述目标订单中各订单对应的候选配送员列表中,分别选取所述各订单对应的第一配送员,其中,对于任一订单,所述第一配送员为所述任一订单对应的候选配送员列表中配送分值最高的配送员;

如果所述各订单对应的第一配送员中有相同的配送员,则根据所述各订单对应的候选配送员列表中各配送员的配送分值,为所述各订单分配配送员;

如果所述各订单对应的第一配送员中均没有相同的配送员,则对于所述任一订单,将所述任一订单对应的第一配送员,确定为所述任一订单的配送员。

可选的,所述根据所述各订单对应的候选配送员列表中各配送员的配送分值,为所述各订单分配配送员,包括:

确定所述目标订单中所有订单对应的第一配送员中配送分值最高的目标配送员;

将所述目标配送员,确定为第一订单的配送员,其中,所述第一订单为所述目标配送员所属的候选配送员列表对应的订单;

重新执行确定所述目标订单中除所述第一订单之外的其它订单对应的候选配送员列表中各配送员的配送分值的处理。

可选的,所述确定所述目标订单中各订单对应的候选配送员列表中各配送员的配送分值,包括:

确定所述目标订单中各订单对应的候选配送员列表中各配送员的第一维度分值、第二维度分值和第三维度分值,根据所述各配送员的第一维度分值、第二维度分值和第三维度分值,确定所述各配送员的配送分值;

其中,所述第一维度分值为订单维度的分值,所述第二维度分值为配送员维度的分值,所述第三维度分值为路径规划维度的分值。

可选的,对于每个配送员,所述配送员的第一维度分值由所述配送员所属的候选配送员列表对应的订单的优先级和订单的接收时长确定,所述配送员的第二维度分值由所述配送员的等级和所述配送员当前未完成的订单的数目确定,所述配送员的第三维度分值由第一增量、第二增量和顺路系数确定,所述第一增量为若所述配送员承接所述配送员所属的候选配送员列表对应的订单之后配送距离的增量,所述第二增量为若所述配送员承接所述配送员所属的候选配送员列表对应的订单之后配送时间的增量。

可选的,所述在所述订单对应的配送员拒绝配送所述订单的情况下,在当前存储的所述订单对应的候选配送员列表中,重新分配所述订单对应的配送员,包括:

在确定所述订单对应的配送员拒绝配送所述订单情况下,确定当前时刻距离下一次周期性派单处理的时长;

如果所述时长大于第二时长,则在当前存储的所述订单对应的候选配送员列表中,重新选取所述订单对应的配送员。

可选的,所述方法还包括:

如果所述时长小于或等于所述第二时长,则获取所述下一次周期性派单处理获取到的所述订单的候选配送员列表,在所述下一次周期性派单处理获取到的所述订单的候选配送员列表中,重新选取所述订单对应的配送员。

可选的,所述确定所述目标订单中的每个订单对应的候选配送员列表,包括:

对于所述目标订单中的每个订单,确定所述订单中商户与配送员的距离;

将所述距离小于目标数值的配送员,组成所述订单对应的候选配送员列表。

第二方面,提供了一种订单处理的装置,所述装置包括:

获取模块,用于周期性获取目标订单,其中,所述目标订单包括当前未安排配送员的订单和当前已安排配送员且未被配送员确认的订单;

确定模块,用于确定所述目标订单中每个订单对应的候选配送员列表;

分配模块,用于对于所述目标订单中的每个订单,在所述订单对应的候选配送员列表中,分配所述订单对应的配送员;

存储模块,用于存储更新后的候选配送员列表,其中,所述更新后的候选配送员列表为所述订单对应的候选配送员列表中删除所述订单对应的配送员后的列表;

所述分配模块,还用于在所述订单对应的配送员拒绝配送所述订单的情况下,在当前存储的所述订单对应的候选配送员列表中,重新分配所述订单对应的配送员。

可选的,所述确定模块,还用于:

确定所述订单对应的配送员拒绝配送所述订单,采用下列方式之一:

在接收到所述订单对应的配送员的终端发送的拒绝消息情况下,确定所述订单对应的配送员拒绝配送所述订单;

在向所述订单对应的配送员的终端发送配送通知之后的第一时长内未接收到所述终端发送的拒绝消息或同意消息情况下,确定所述订单对应的配送员拒绝配送所述订单。

可选的,所述分配模块,用于:

确定所述目标订单中各订单对应的候选配送员列表中各配送员的配送分值;

根据所述各订单对应的候选配送员列表中各配送员的配送分值,为所述各订单分配配送员。

可选的,所述分配模块,用于:

在所述目标订单中各订单对应的候选配送员列表中,分别选取所述各订单对应的第一配送员,其中,对于任一订单,所述第一配送员为所述任一订单对应的候选配送员列表中配送分值最高的配送员;

如果所述各订单对应的第一配送员中有相同的配送员,则根据所述各订单对应的候选配送员列表中各配送员的配送分值,为所述各订单分配配送员;

如果所述各订单对应的第一配送员中均没有相同的配送员,则对于所述任一订单,将所述任一订单对应的第一配送员,确定为所述任一订单的配送员。

可选的,所述分配模块,用于:

确定所述目标订单中所有订单对应的第一配送员中配送分值最高的目标配送员;

将所述目标配送员,确定为第一订单的配送员,其中,所述第一订单为所述目标配送员所属的候选配送员列表对应的订单;

重新执行确定所述目标订单中除所述第一订单之外的其它订单对应的候选配送员列表中各配送员的配送分值的处理。

可选的,所述分配模块,用于:

确定所述目标订单中各订单对应的候选配送员列表中各配送员的第一维度分值、第二维度分值和第三维度分值,根据所述各配送员的第一维度分值、第二维度分值和第三维度分值,确定所述各配送员的配送分值;

其中,所述第一维度分值为订单维度的分值,所述第二维度分值为配送员维度的分值,所述第三维度分值为路径规划维度的分值。

可选的,对于每个配送员,所述配送员的第一维度分值由所述配送员所属的候选配送员列表对应的订单的优先级和订单的接收时长确定,所述配送员的第二维度分值由所述配送员的等级和所述配送员当前未完成的订单的数目确定,所述配送员的第三维度分值由第一增量、第二增量和顺路系数确定,所述第一增量为若所述配送员承接所述配送员所属的候选配送员列表对应的订单之后配送距离的增量,所述第二增量为若所述配送员承接所述配送员所属的候选配送员列表对应的订单之后配送时间的增量。

可选的,所述分配模块,还用于:

在确定所述订单对应的配送员拒绝配送所述订单情况下,确定当前时刻距离下一次周期性派单处理的时长;

如果所述时长大于第二时长,则在当前存储的所述订单对应的候选配送员列表中,重新选取所述订单对应的配送员。

可选的,所述分配模块,还用于:

如果所述时长小于或等于所述第二时长,则获取所述下一次周期性派单处理获取到的所述订单的候选配送员列表,在所述下一次周期性派单处理获取到的所述订单的候选配送员列表中,重新选取所述订单对应的配送员。

可选的,所述确定模块,用于:

对于所述目标订单中的每个订单,确定所述订单中商户与配送员的距离;

将所述距离小于目标数值的配送员,组成所述订单对应的候选配送员列表。

第三方面,提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述第一方面所述的订单处理的方法。

第四方面,提供了一种服务器,该服务器包括处理器和存储器,其中,所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现上述第一方面所述的订单处理的方法。

本公开实施例提供的技术方案带来的有益效果至少包括:

本公开实施例中,在进行派单处理时,可以周期性获取目标订单,其中,目标订单包括当前未安排配送员的订单和当前已安排配送员且未被配送员确认的订单,确定目标订单中每个订单对应的候选配送员列表,对于目标订单中的每个订单,在订单对应的候选配送员列表中,分配订单对应的配送员,存储更新后的候选配送员列表,其中,更新后的候选配送员列表为订单对应的候选配送员列表中删除订单对应的配送员后的列表,在订单对应的配送员拒绝配送订单的情况下,在当前存储的订单对应的候选配送员列表中,重新分配订单对应的配送员。这样,每次在进行派单处理时,会存储订单对应的候选配送员列表,在配送员拒绝配送订单时,可以直接获取存储的候选配送员列表,重新选择配送员,而不需要重新获取所有的配送员,所以可以尽快的进行处理,可以提升订单处理效率。

附图说明

为了更清楚地说明本公开实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本公开实施例提供的一种订单处理的方法的流程的示意图;

图2是本公开实施例提供的一种订单分配通知的显示示意图;

图3是本公开实施例提供的一种订单处理的系统的示意图;

图4是本公开实施例提供的一种订单处理的流程示意图;

图5是本公开实施例提供的一种订单处理的装置的结构示意图;

图6是本公开实施例提供的一种服务器的结构示意图。

具体实施方式

为使本公开的目的、技术方案和优点更加清楚,下面将结合附图对本公开实施方式作进一步地详细描述。

在进行实施前,首先介绍一下本公开实施例的应用场景,以及本公开实施例可能涉及的名词概念:

本公开实施例可以是应用订单处理的场景中,如网上购物之后的派单处理等。在用户在网络上下订单之后,为该订单选择配送员,并通知给配送员,配送员可以进行派送订单中的物体。

配送员,负责将订单的物品派送至下单方。

候选配送员列表,能供某个订单选择的配送员组成的集合。

本公开实施例提供了一种订单处理的方法,该方法的执行主体可以是服务器。服务器可以是购物应用程序的后台服务器,也可以是与该后台服务器相关联的服务器,专门用于订单处理,其中,服务器中可以包括处理器、存储器和收发器等,处理器可以用于进行订单处理的过程的处理,如可以用于选择配送员,存储器可以用于存储订单处理的过程中需要的数据以及产生的数据,如可以存储候选配送员列表,收发器可以用于接收以及发送数据,如可以接收订单、向配送员的终端发送配送通知等。

本公开实施例提供了一种订单处理的方法,如图1所示,该方法的执行流程可以如下:

步骤101,周期性获取目标订单。

其中,目标订单包括当前未安排配送员的订单和当前已安排配送员且未被配送员确认的订单,当前未安排配送员的订单指当前还未为订单选择配送员的订单,当前已安排配送员且未被配送员确认的订单指当前已经为订单分配好配送员,并且通知给配送员,但是配送员还未决定要不要配送的订单。周期可以预设,如1分钟等。

在实施中,用户可以在终端中安装购物应用程序,使用注册的账户和密码登录购物应用程序,然后下单购买物品,在成交后,购物应用程序所在的终端可以向购物应用程序的后台服务器(后续可以简称为服务器)发送订单的信息。这样,服务器可以接收到多个订单。

服务器可以周期性在所有订单中,确定当前未安排配送员的订单和当前已安排配送员且未被配送员确认的订单,这些订单即为目标订单。

需要说明是,在确定当前已安排配送员且未被配送员确认的订单时,一般是看服务器没有接收到配送员的终端发送的拒绝消息,也未接收到配送员的终端发送的同意消息,这类订单即为当前已安排配送员且未被配送员确认的订单。

另外,上述周期也可以进行自动调整,如不同的时间段对应不同的周期,如不同的类型的物体的订单的周期不相同。例如,对于食物订单,用餐时间周期短,非用餐时间周期长,对于其他物品,所有物品的订单均使用相同的周期。

步骤102,确定目标订单中每个订单对应的候选配送员列表。

在实施中,服务器在获取到目标订单之后,可以获取预设的筛选条件,根据预设的筛选条件,获取配送员,然后在配送员中,为目标订单中的每个订单选取对应的候选配送员列表。

可选的,可以基于商户和配送员的距离,为每个订单选取候选配送员列表,处理可以如下:

对于目标订单中的每个订单,确定订单中商户与配送员的距离,将距离小于目标数值的配送员,组成订单对应的候选配送员列表。

其中,目标数值可以预设,并且存储至服务器中,如目标数值为3公里等,在实施中,配送员在开始工作时,会在终端上使用自己的账户和密码进行登录,并且在终端上更改自己的状态为在线状态,终端检测到状态更改指令时,可以向服务器发送上线通知,服务器接收到后,可以记录该账户为在线状态,可以安排订单。另外,每个配送员的终端可以周期性基于lbs(locationbasedservices,基于位置服务)获取自己的位置,上报给服务器,这样,服务器也可以及时的了解每个配送员的位置。

服务器在为每个订单选取配送员时,可以确定订单中的商户的经纬度坐标,然后获取处于在线状态的配送员的经纬度坐标,然后使用两个经纬度坐标,确定出商户与每个配送员之间的距离,另外也可以直接调用地图程序,从地图程序中读取每个配送员到商户的距离,本公开实施例不做限定。然后对于任一订单,可以选取该任一订单中的商户与配送员的距离小于目标数值的配送员,将选取出的配送员,组成候选配送员列表,将该候选配送员列表与该任一订单对应,即得到该任一订单对应的候选配送员列表,该配送员列表中包括的是配送员的账户的账户标识。

步骤103,对于目标订单中的每个订单,在订单对应的候选配送员列表中,分配该订单对应的配送员,存储更新后的候选配送员列表,其中,更新后的候选配送员列表为订单对应的候选配送员列表中删除订单对应的配送员后的列表。

在实施中,服务器在确定出目标订单中每个订单的候选配送员列表后,对于目标订单中的任一订单,可以在该任一订单对应的候选配送员列表中,为该任一订单分配配送员,然后向该配送员的账户所登录的终端发送订单分配通知。该终端接收到订单分配通知之后,可以显示该任一订单的信息,并对应显示拒绝选项和同意选项。例如,如图2所示,该订单a为食物订单,***饭店,可以在订单的信息的下方显示拒绝选项和同意选项。

如果配送员点击拒绝选项,该终端则会接收到拒绝选项的点击指令,向服务器发送拒绝消息,如果配送员点击同意选项,该终端则会接收到同意选项的点击指令,向服务器发送同意消息。这样,配送员就知道有订单分配给自己,可以进行处理。服务器在发送订单分配通知之后,可以在该订单对应的候选配送员列表中,删除该配送员的账户的账户标识,得到更新后的候选配送员列表,服务器可以存储更新后的候选配送员列表。

步骤104,在订单对应的配送员拒绝配送订单的情况下,在当前存储的订单对应的候选配送员列表中,重新分配订单对应的配送员。

在实施中,在服务器确定订单对应的配送员拒绝配送该订单的情况下,服务器可以在缓存中,获取当前存储的该订单对应的候选配送员列表,在该候选配送员列表中,重新选择配送员,作为该订单对应的配送员。然后向该配送员发送订单分配通知,后续处理见步骤103中的描述。

可选的,本公开实施例中,还提供了确定订单对应的配送员拒绝配送订单的处理,以下提供了两种处理方式:

方式一,在接收到订单对应的配送员的终端发送的拒绝消息情况下,确定订单对应的配送员拒绝配送订单。

在实施中,在步骤103的描述中,服务器在确定订单对应的配送员后,可以向该配送员的账户所登录的终端发送订单分配通知。该终端接收到订单分配通知之后,可以显示该任一订单的信息,并对应显示拒绝选项和同意选项,如果配送员点击拒绝选项,该终端则会接收到拒绝选项的点击指令,向服务器发送拒绝消息。服务器接收到拒绝消息情况下,可以确定该任一订单对应的配送员拒绝配送该订单。

另外,如果配送员点击同意选项,该终端则会接收到同意选项的点击指令,向服务器发送同意消息。服务器接收到同意消息情况下,可以确定该任一订单对应的配送员同意配送该订单。服务器可以在缓存中删除该订单对应的候选配送员列表,以节约缓存的存储空间。

方式二,在向订单对应的配送员的终端发送配送通知之后的第一时长内未接收到终端发送的拒绝消息或同意消息情况下,确定订单对应的配送员拒绝配送订单。

其中,第一时长可以预设,并且存储至服务器中,如2分钟等。

在实施中,在步骤103的描述中,服务器在确定订单对应的配送员后,可以向该配送员的账户所登录的终端发送订单分配通知。该终端接收到订单分配通知之后,可以显示该任一订单的信息,并对应显示拒绝选项和同意选项。同时服务器可以在发送订单分配通知时,进行计时,在第一时长结束时,还未接收到配送员发送的拒绝消息或者同意消息,可以确定该任一订单对应的配送员拒绝配送该任一订单。

另外,终端在接收到订单分配通知后,也有一个计时器,该计时器为倒计时的计时器,在倒计时结束时,如果配送员还未点击同意选项或者拒绝选项,终端会显示该订单已过期的提示消息。

这样,通过上述两种方式,即可确定出配送员拒绝配送该任一订单。

可选的,对于上述步骤103,可以确定每个配送员的配送分值,基于配送分值,选取订单对应的配送员,处理可以如下:

确定目标订单中各订单对应的候选配送员列表中各配送员的配送分值,根据各订单对应的候选配送员列表中各配送员的配送分值,为各订单分配配送员。

在实施中,服务器可以获取各订单的信息,以及配送员的相关信息,确定各订单对应的候选配送员列表中各配送员的配送分值。然后对于任一订单,可以基于对候选配送员列表中各配送员的配送分值的排序,为该任一订单,分配候选配送员。

可选的,配送分值可以反映配送员与订单的匹配程度,可以是通过配送员与订单所属的商户的距离确定,该距离越小,配送分值越高,该距离越大,配送分值越小,也可以是通过配送员当前未完成的订单数量确定,该订单数量越小,配送分值越高,该订单数量越大,配送分值越小。

可选的,为了更准确的确定出配送分值,可以按照多个维度,确定配送分值,相应的处理可以如下:

确定目标订单中各订单对应的候选配送员列表中各配送员的第一维度分值、第二维度分值和第三维度分值,根据各配送员的第一维度分值、第二维度分值和第三维度分值,确定各配送员的配送分值,其中,第一维度分值为订单维度的分值,第二维度分值为配送员维度的分值,第三维度分值为路径规划维度的分值。

在实施中,对于每个配送员,可以有三个维度的分值,得到配送分值,对于任一订单,可以获取该任一订单对应的候选配送员列表中任一配送员在订单维度的分值,即第一维度分值,对于该任一配送员,第一维度分值由配送员对应的订单的优先级和订单的接收时长确定,公式可以是:

第一维度分值=订单的接收时长*权值1+订单的优先级的分值*权值2。其中,权值1和权值2之和等于1,例如,权值1为0.4,权值2为0.6。订单接收时长是指从服务器接收到订单到当前时间点的时长,订单的优先级用于指示该订单优先配送的等级,例如,订单如果对应有准时送达的标识,则该订单的优先级为2级,对应分值为20分,订单如果未对应有准时达的标识,对应的优先级为1级,对应分值为10分。

对于任一配送员,确定该任一配送员在配送员维度的分值,即第二维度分值,第二维度分值由配送员的等级和配送员当前未完成的订单的数目确定,公式可以如下:

第二维度分值=配送员的等级的分值*权值3+配送员当前未完成的订单的数目的分值*权值4。其中,权值3和权值4之和等于1。例如,权值3为0.3,权值4为0.7。每个配送员均有等级,一般是基于累积配送订单的数目、以及配送评价综合确定,可以是配送订单的数目和配送评价的好评比例加权得到,配送员的每个等级对应有不同的分值,一般是等级越高,分值越高,配送员当前未完成的订单的数目的分值与配送员当前未完成的订单的数目成反比,例如,配送员的订单的数目为8,对应的分值为1分,配送员的订单的数目为2,对应的分值为16。

对于任一配送员,确定在路径规划维度的分值,即第三维度分值,第三维度分值由第一增量、第二增量和顺路系数确定,对于任一订单的候选配送员列表中的每个配送员,第一增量为若配送员承接该任一订单之后配送距离的增量(见后面第一距离与第二距离的差值),第二增量为若配送员承接该任一订单之后配送时间的增量(第一时长与第二时长的差值,第一时长为接任一订单后,派送所有订单的时长,第二时长为未接该任一订单时派送所有订单的时长)。公式可以如下:

第三维度分值=权值5*第一增量对应的分值+权值6*第二增量对应的分值+权7*顺路系数,其中,权值5、权值6和权值7之和等于1,权值5、权值6和权7可以分别为0.5、0.2和0.3。首先确定该任一配送员在承接该订单之后要派送自己的所有订单所行走的距离,得到第一距离,并确定该任一配送员在未接该订单时要派送自己的所有订单所行走的距离,得到第二距离,然后将第一距离减去第二距离,得到第三距离,确定第三距离与第二距离的比值,即顺路系数。在确定第一增量对应的分值时,服务器中可以存储有增量范围与分值的对应关系,服务器可以在该对应关系中,确定第一增量所属的增量范围对应的分值,将该分值,确定为第一增量对应的分值,并在该对应关系中,确定第二增量所属的增量范围对应的分值,将该分值,确定为第二增量对应的分值,这样,就可以确定出第一增量对应的分值和第二增量对应的分值,然后使用上述公式,即可确定出第三维度分值。

然后将第一维度分值、第二维度分值和第三维度分值相加,得到该任一配送员的配送分值。

可选的,使用配送分值,选取配送员的过程可以如下:

在目标订单中各订单对应的候选配送员列表中,分别选取各订单对应的第一配送员,其中,对于任一订单,第一配送员为任一订单对应的候选配送员列表中配送分值最高的配送员,如果各订单对应的第一配送员中有相同的配送员,则根据各订单对应的候选配送员列表中各配送员的配送分值,为各订单分配配送员,如果各订单对应的第一配送员中均没有相同的配送员,则对于任一订单,将任一订单对应的第一配送员,确定为任一订单的配送员。

在实施中,对于目标订单中的任一订单,服务器可以将该任一订单对应的候选配送员列表中的配送员,按照配送分值从高到低顺序进行排序,然后选取排在最前面的配送员,确定为该任一订单对应的第一配送员。使用相同的方式,确定出每个订单对应的第一配送员。

然后判断确定出的第一配送员中,是否存在相同的配送员,如果不存在相同的配送员,则可以对于任一订单,将该任一订单对应的第一配送员,确定为该任一订单的配送员。如果存在相同的配送员,则可以使用各订单对应的候选配送员列表中各配送员的配送分值,为各订单分配配送员。

可选的,按照配送分值,为订单分配配送员的过程可以如下:

确定目标订单中所有订单对应的第一配送员中配送分值最高的目标配送员,将目标配送员,确定为第一订单的配送员,其中,第一订单为目标配送员所属的候选配送员列表对应的订单,重新执行确定目标订单中除第一订单之外的其它订单对应的候选配送员列表中各配送员的配送分值的处理。

在实施中,在确定出所有订单对应的第一配送员后,可以确定所有第一配送员中分值最高的配送员,可以称为是目标配送员。然后确定该目标配送员所属的候选配送员列表对应的订单(此处目标配送员有可能存在于多个候选配送员列表中,此处选择的是计算到目标配送员的配送分值的订单),后续可以称为是第一订单。

然后重新在目标订单中确定除第一订单之外的其他订单,在这些订单对应的候选配送员列表中,重新确定各配送员的配送分值,再对各个候选配送员列表中的配送员,按照配送分值从高的顺序进行排序,确定出各个订单对应的第一配送员,重新确定当前的目标配送员,将当前的目标配送员确定为当前的目标配送员所属的候选配送员列表对应的订单的配送员,然后执行更新候选配送员列表的处理,存储更新后的候选配送员列表。这样,按照这种循环方式,即可为每个订单分配到配送员。

需要说明的是,此处重新确定配送分值,可以使选择出的配送员更合理,这是由于配送员在这段时间内的有些订单有可能已经送达,或者已经接到了其他订单,这样,计算出的配送分值和之前也有可能不一样,为各订单选取出的配送员更符合当前的实际情况,那么选择出的配送员也更合理。

可选的,本公开实施例中,在确定配送员拒绝配送订单时,也可以使用距离下一次周期性进行派单处理的时长,重新选取配送员,相应的处理可以如下:

在确定订单对应的配送员拒绝配送订单情况下,确定当前时刻距离下一次周期性派单处理的时长,如果时长大于第二时长,则在当前存储的订单对应的候选配送员列表中,重新选取订单对应的配送员。

其中,第二时长与派单处理的周期有关系,一般派单处理的周期越长,第二时长越长,例如,派单处理的周期为2分钟,第二时长为20秒,派单处理的周期为1分钟,第二时长为10秒,或者第二时长与派单处理的周期没有关系,可以是一个固定值,如10秒等。

在实施中,对于任一订单,服务器在确定该任一订单对应的配送员拒绝配送该任一订单情况下,可以确定当前时间点,并且获取下一次周期性派单处理的时间点,确定当前时间点距离下一次派单处理的时长。然后获取第二时长,判断当前时间点距离下一次派单处理的时长与第二时长的大小关系,如果该时长大于第二时长,则可以直接获取当前存储的该任一订单对应的候选配送员列表,在该候选配送员列表中,重新选取该任一订单对应的配送员。

这样,由于可以直接获取存储的候选配送员列表中的配送员,重新为配送员拒绝的订单分配配送员,而不需要重新收集配送员,所以可以提高订单处理效率。而且由于派单处理的周期比较短,配送员的位置变化不大,所以存储的候选配送员列表中的配送员,和重新收集的配送员差不多,所以也不会影响配送员的选取。

需要说明的是,每次在更新候选配送员列表后,都会存储更新后的配送员列表,所以存储的是最新的候选配送员列表。每次更新指周期性派单处理时的更新、以及在为订单分配配送员后,在该订单对应的候选配送员列表中删除该配送员的更新。

可选的,在当前时间点距离下一次派单处理的时长比较短时,可以等待周期性派单处理时的候选配送员列表,相应的处理可以如下:

如果时长小于或等于第二时长,则获取下一次周期性派单处理获取到的订单的候选配送员列表,在下一次周期性派单处理获取到的订单的候选配送员列表中,重新选取订单对应的配送员。

在实施中,对于任一拒绝配送的订单,在当前时间点距离下一次派单处理的时长小于或等于第二时长时,可以进行等待,等待下一次周期性派单处理时,重新收集的该订单的候选配送员列表,然后在该候选配送员列表中,重新为该订单选取配送员(选取方式见前面的处理,此处可以赘述)。在选取配送员后,存储更新后的候选配送员列表(删除该配送员的候选配送员列表)。

这样,在当前时间点距离下一次派单处理的时长比较短时,即使等待下一周期性派单处理得到的候选配送员列表,等待时长也不会很长,而且选择的候选配送员列表与当前的情况更接近,所以选取的配送员也更加合理。

另外,对于本公开实施中,对于某个订单,在服务器接收到该订单的配送员的终端发送的同意消息后,服务器可以在缓存中,删除该订单对应的候选配送员列表,这样,可以节约缓存的存储空间。

另外,本公开实施例中,还提供了系统图,如图3所示,服务器为订单选取配送员,配送员通过配送员的终端,确定是否要承接订单。

另外,为了更好的理解本公开实施例,本公开实施例中,还提供了如图4所示的流程图:

步骤1,周期性派单处理;

步骤2,收集目标订单;

步骤3,确定每个订单对应的候选配送员列表;

步骤4,确定每个订单对应的配送员,并通知给配送员;

步骤5,更新缓存中存储的订单对应的候选配送员列表;

步骤6,判断配送员是否拒绝配送订单;

步骤7,在配送员未拒绝配送订单时,在缓存中删除订单对应的候选配送员列表;

步骤8,在配送员拒绝配送订单时,确定当前时间点距离下次周期性派单处理的时长是否大于第二时长;

步骤9,在时长大于第二时长时,从缓存中读取订单对应的候选配送员列表;

步骤10,在重新获取的候选配送员列表中,重新选取配送员,更新缓存中该订单对应的候选配送员列表(返回执行步骤5);

步骤11,在时长小于或等于第二时长时,等待下一次周期性派单处理,返回执行步骤1。

本公开实施例中,在进行派单处理时,可以周期性获取目标订单,其中,目标订单包括当前未安排配送员的订单和当前已安排配送员且未被配送员确认的订单,确定目标订单中每个订单对应的候选配送员列表,对于目标订单中的每个订单,在订单对应的候选配送员列表中,分配订单对应的配送员,存储更新后的候选配送员列表,其中,更新后的候选配送员列表为订单对应的候选配送员列表中删除订单对应的配送员后的列表,在订单对应的配送员拒绝配送订单的情况下,在当前存储的订单对应的候选配送员列表中,重新分配订单对应的配送员。这样,每次在进行派单处理时,会存储订单对应的候选配送员列表,在配送员拒绝配送订单时,可以直接获取存储的候选配送员列表,重新选择配送员,而不需要重新获取所有的配送员,所以可以尽快的进行处理,可以提升订单处理效率。

基于相同的技术构思,本公开实施例还提供了一种订单处理的装置,如图5所示,该装置包括:

获取模块510,用于周期性获取目标订单,其中,所述目标订单包括当前未安排配送员的订单和当前已安排配送员且未被配送员确认的订单;

确定模块520,用于确定所述目标订单中每个订单对应的候选配送员列表;

分配模块530,用于对于所述目标订单中的每个订单,在所述订单对应的候选配送员列表中,分配所述订单对应的配送员;

存储模块540,用于存储更新后的候选配送员列表,其中,所述更新后的候选配送员列表为所述订单对应的候选配送员列表中删除所述订单对应的配送员后的列表;

所述分配模块530,还用于在所述订单对应的配送员拒绝配送所述订单的情况下,在当前存储的所述订单对应的候选配送员列表中,重新分配所述订单对应的配送员。

可选的,所述确定模块520,还用于:

确定所述订单对应的配送员拒绝配送所述订单,采用下列方式之一:

在接收到所述订单对应的配送员的终端发送的拒绝消息情况下,确定所述订单对应的配送员拒绝配送所述订单;

在向所述订单对应的配送员的终端发送配送通知之后的第一时长内未接收到所述终端发送的拒绝消息或同意消息情况下,确定所述订单对应的配送员拒绝配送所述订单。

可选的,所述分配模块530,用于:

确定所述目标订单中各订单对应的候选配送员列表中各配送员的配送分值;

根据所述各订单对应的候选配送员列表中各配送员的配送分值,为所述各订单分配配送员。

可选的,所述分配模块530,用于:

在所述目标订单中各订单对应的候选配送员列表中,分别选取所述各订单对应的第一配送员,其中,对于任一订单,所述第一配送员为所述任一订单对应的候选配送员列表中配送分值最高的配送员;

如果所述各订单对应的第一配送员中有相同的配送员,则根据所述各订单对应的候选配送员列表中各配送员的配送分值,为所述各订单分配配送员;

如果所述各订单对应的第一配送员中均没有相同的配送员,则对于所述任一订单,将所述任一订单对应的第一配送员,确定为所述任一订单的配送员。

可选的,所述分配模块530,用于:

确定所述目标订单中所有订单对应的第一配送员中配送分值最高的目标配送员;

将所述目标配送员,确定为第一订单的配送员,其中,所述第一订单为所述目标配送员所属的候选配送员列表对应的订单;

重新执行确定所述目标订单中除所述第一订单之外的其它订单对应的候选配送员列表中各配送员的配送分值的处理。

可选的,所述分配模块530,用于:

确定所述目标订单中各订单对应的候选配送员列表中各配送员的第一维度分值、第二维度分值和第三维度分值,根据所述各配送员的第一维度分值、第二维度分值和第三维度分值,确定所述各配送员的配送分值;

其中,所述第一维度分值为订单维度的分值,所述第二维度分值为配送员维度的分值,所述第三维度分值为路径规划维度的分值。

可选的,对于每个配送员,所述配送员的第一维度分值由所述配送员所属的候选配送员列表对应的订单的优先级和订单的接收时长确定,所述配送员的第二维度分值由所述配送员的等级和所述配送员当前未完成的订单的数目确定,所述配送员的第三维度分值由第一增量、第二增量和顺路系数确定,所述第一增量为若所述配送员承接所述配送员所属的候选配送员列表对应的订单之后配送距离的增量,所述第二增量为若所述配送员承接所述配送员所属的候选配送员列表对应的订单之后配送时间的增量。

可选的,所述分配模块530,还用于:

在确定所述订单对应的配送员拒绝配送所述订单情况下,确定当前时刻距离下一次周期性派单处理的时长;

如果所述时长大于第二时长,则在当前存储的所述订单对应的候选配送员列表中,重新选取所述订单对应的配送员。

可选的,所述分配模块530,还用于:

如果所述时长小于或等于所述第二时长,则获取所述下一次周期性派单处理获取到的所述订单的候选配送员列表,在所述下一次周期性派单处理获取到的所述订单的候选配送员列表中,重新选取所述订单对应的配送员。

可选的,所述确定模块520,用于:

对于所述目标订单中的每个订单,确定所述订单中商户与配送员的距离;

将所述距离小于目标数值的配送员,组成所述订单对应的候选配送员列表。

本公开实施例中,在进行派单处理时,可以周期性获取目标订单,其中,目标订单包括当前未安排配送员的订单和当前已安排配送员且未被配送员确认的订单,确定目标订单中每个订单对应的候选配送员列表,对于目标订单中的每个订单,在订单对应的候选配送员列表中,分配订单对应的配送员,存储更新后的候选配送员列表,其中,更新后的候选配送员列表为订单对应的候选配送员列表中删除订单对应的配送员后的列表,在订单对应的配送员拒绝配送订单的情况下,在当前存储的订单对应的候选配送员列表中,重新分配订单对应的配送员。这样,每次在进行派单处理时,会存储订单对应的候选配送员列表,在配送员拒绝配送订单时,可以直接获取存储的候选配送员列表,重新选择配送员,而不需要重新获取所有的配送员,所以可以尽快的进行处理,可以提升订单处理效率。

需要说明的是:上述实施例提供的进行订单处理的装置在进行订单处理时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的进行订单处理的装置与进行订单处理的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图6是本发明实施例提供的一种服务器的结构示意图,该服务器600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器601和一个或一个以上的存储器602,其中,所述存储器602中存储有至少一条指令,所述至少一条指令由所述处理器601加载并执行以实现上述订单处理的方法中的各个步骤。

本公开实施例中,还提供了一种计算机可读存储介质,该存储介质内存储有计算机程序,所述计算机程序被处理器执行时,实现上述进行订单处理的方法。

本公开实施例中,还提供了一种服务器,该服务器包括处理器和存储器,其中,所述存储器,用于存放计算机程序;所述处理器,用于执行所述存储器上所存放的程序,实现上述进行订单处理的方法。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本公开的较佳实施例,并不用以限制本公开,凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1