一种基于协议供货的采购打包方法及装置与流程

文档序号:18973318发布日期:2019-10-29 03:04阅读:350来源:国知局
一种基于协议供货的采购打包方法及装置与流程

本说明书涉及采购技术领域,特别涉及一种基于协议供货的采购打包方法、装置、计算设备及计算机可读存储介质。



背景技术:

在协议供货的采购方式中,当采购单位使用批量单品牌采购或者批量多品牌采购的采购方式时,系统需要通过打包服务将购买同一种商品的采购单归集到一起,由供应商统一进行报价以获得更大的优惠率。现有的采购打包方法流程如图1所示,主要包括以下几点:在每一次执行新的打包任务前,都会预先查询是否存在打包失败的采购单数据,并将这些失败的采购单数据进行重新打包;在执行打包任务时会先查询所有的待打包的采购单,并将所有的采购单按照所使用的打包规则配置信息以及进行分组;在分组完成后才会进一步判断每个分组内的采购单是否已经到了开始打包的时间,如果已经开始就进行打包服务,如果没有到打包时间则需要等到下一轮打包。

现有的采购打包方法主要存在以下几个问题:先将采购单进行分组,然后再实时计算打包时间,造成了资源的浪费;打包的时间是按照周期性计算的,如果由于系统原因错过本轮的打包时间,就需要等到下一个打包周期;打包过程中打包任务失败的话,需要将整体打包相关的数据进行回滚,在不能保证分布式事务的情况下很容易出现数据前后不一致的情况。



技术实现要素:

有鉴于此,本说明书实施例提供了一种基于协议供货的采购打包方法、装置、计算设备及计算机可读存储介质,以解决现有技术中存在的技术缺陷。

根据本说明书实施例的第一方面,提供了一种基于协议供货的采购打包方法,包括:

根据每个所述采购单对应的打包时间以及当前时刻对应的系统时间,获取符合所述打包时间的至少一个打包标识为待打包的采购单;

将所述至少一个采购单的打包标识由待打包变更为打包中,并对至少一个采购单进行分组;

对每个分组中的采购单执行打包任务,判断所述打包任务是否成功;

在打包任务成功的情况下,保存打包数据并将所述至少一个采购单的打包标识由打包中变更为已完成;

在打包任务失败的情况下,对打包失败的所述采购单进行补偿操作,以对打包失败的所述采购单进行重新打包。

根据本说明书实施例的第二方面,提供了一种基于协议供货的采购打包装置,包括:

采购单获取模块,被配置为根据每个所述采购单对应的打包时间以及当前时刻对应的系统时间,获取符合所述打包时间的至少一个打包标识为待打包的采购单;

分组模块,被配置为将所述至少一个采购单的打包标识由待打包变更为打包中,并对至少一个采购单进行分组;

打包任务执行模块,被配置为对每个分组中的采购单执行打包任务,判断所述打包任务是否成功;在打包任务成功的情况下,执行标识变更模块;在打包任务失败的情况下,执行补偿模块

标识变更模块,被配置为保存打包数据并将所述至少一个采购单的打包标识由打包中变更为已完成;

补偿模块,被配置为对打包失败的所述采购单进行补偿操作,以对打包失败的所述采购单进行重新打包。

根据本说明书实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述基于协议供货的采购打包方法的步骤。

根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述基于协议供货的采购打包方法的步骤。

本说明书实施例中,通过对采购单增加了用于表示采购单打包状态的打包标识,可以对整个打包过程中的采购单的打包状态进行监控,保证已经在打包的采购单不会进行重复打包操作,使得系统也能根据打包标识对采购打包是否成功进行准确的判断,方便进行最后的打包失败补偿,同时,通过对打包失败的所述采购单采用异步补偿的操作机制,不需要将打包失败的采购单进行单独的存储并使其在下一次打包任务中重新进行打包直到打包成功,解决了分布式事务的问题,降低了与协议供货系统的耦合度,将打包流程从协议供货系统固定的流程里提取出来实现单独的服务化和功能化。

附图说明

图1是现有技术中的基于协议供货的采购打包方法的流程图;

图2是本申请实施例提供的计算设备的结构框图;

图3是本申请实施例提供的基于协议供货的采购打包方法的流程图;

图4是本申请实施例提供的基于协议供货的采购打包方法的另一流程图;

图5是本申请实施例提供的基于协议供货的采购打包方法的另一流程图;

图6是本申请实施例提供的基于协议供货的采购打包装置的结构示意图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。

在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

首先,对本发明一个或多个实施例涉及的名词术语进行解释。

协议供货:是指通过公开招标方式确定协议供货的供应商和协议产品,在协议有效期内,采购人直接或通过谈判或询价等方式与协议供应商签订供货合同的一种采购形式。

打包:协议供货采购方式将同一时间段内不同采购单位采购的同一种商品归集到一起,统一由供应商进行报价。

在本申请中,提供了一种基于协议供货的采购打包方法、装置、计算设备及计算机可读存储介质,在下面的实施例中逐一进行详细说明。

图2示出了根据本说明书一实施例的计算设备200的结构框图。该计算设备200的部件包括但不限于存储器220和处理器220。处理器220与存储器220通过总线230相连接,数据库250用于保存数据。

计算设备200还包括接入设备240,接入设备240使得计算设备200能够经由一个或多个网络260通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备240可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.22无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。

在本说明书的一个实施例中,计算设备200的上述部件以及图2中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图2所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备200可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备200还可以是移动式或静止式的服务器。

其中,处理器220可以执行图3所示方法中的步骤。图3是示出了根据本申请一实施例的基于协议供货的采购打包方法的示意性流程图,包括步骤302至步骤310。

步骤302:根据每个所述采购单对应的打包时间以及当前时刻对应的系统时间,获取符合所述打包时间的至少一个打包标识为待打包的采购单。

在本申请的实施例中,本申请的采购打包方案主要包括打包准备阶段和打包阶段,在打包阶段,系统首先根据每个所述采购单对应的打包时间以及当前时刻对应的系统时间,查询打包标识为待打包的并且已经到需要打包的打包时间的至少一个采购单。

步骤304:将所述至少一个采购单的打包标识由待打包变更为打包中,并对至少一个采购单进行分组。

在本申请的实施例中,系统在获取到符合所述打包时间的至少一个打包标识为待打包的采购单之后,将所述至少一个采购单的打包标识由待打包变更为打包中,并对所述至少一个采购单根据商品和打包时间进行分组。

步骤306:对每个分组中的采购单执行打包任务,判断所述打包任务是否成功。若是,则执行步骤308;若否,则执行步骤310。

步骤308:保存打包数据并将所述至少一个采购单的打包标识由打包中变更为已完成。

步骤310:对打包失败的所述采购单进行补偿操作,以对打包失败的所述采购单进行重新打包。

在本申请的实施例中,系统对每个分组中的采购单执行打包任务,如果打包成功,则系统会保存相关的打包数据并将所述至少一个采购单的打包标识由打包中变更为已完成;如果打包失败,则系统会对打包失败的所述采购单进行补偿操作,将打包失败的所述采购单进行回滚使其能在下一轮的打包任务中重新打包。

本申请通过对采购单增加了用于表示采购单打包状态的打包标识,可以对整个打包过程中的采购单的打包状态进行监控,保证已经在打包的采购单不会进行重复打包操作,使得系统也能根据打包标识对采购打包是否成功进行准确的判断,方便进行最后的打包失败补偿,同时,通过对打包失败的所述采购单采用异步补偿的操作机制,不需要将打包失败的采购单进行单独的存储并使其在下一次打包任务中重新进行打包直到打包成功,解决了分布式事务的问题,降低了与协议供货系统的耦合度,将打包流程从协议供货系统固定的流程里提取出来实现单独的服务化和功能化。

图4示出了本说明书一实施例的基于协议供货的采购打包方法,该基于协议供货的采购打包方法以对基于协议供货的采购打包为例进行描述,包括步骤402至步骤416。

步骤402:在至少一个采购单审核完成的情况下,计算出每个所述采购单对应的打包时间。

在本申请的实施例中,在打包准备阶段,经过协议入围和供应商竞价等程序,采购方内部会对每个采购单进行审核,在至少一个采购单审核完成完成后,系统会立即计算出每个所述采购单对应的打包时间即每个所述采购单应当开始进行进入所述打包阶段的时间。

步骤404:为每个所述采购单设置待打包的打包标识。

在本申请的实施例中,系统在计算出每个所述采购单对应的打包时间之后,会为每个采购单添加待打包的打包标识,表示该采购单处于“待打包”的打包状态。

步骤406:查询每个打包标识为待打包的采购单的打包时间。

在本申请的实施例中,在打包阶段,系统首先会查询每个打包标识为待打包的采购单的打包时间,例如:系统查询到打包标识为待打包的采购单a的打包时间为“6月18日”,打包标识为待打包的采购单b的打包时间为“7月21日”以及打包标识为待打包的采购单c的打包时间为“8月25日”。

步骤408:获取所述打包时间等于或早于所述当前时刻对应的系统时间的所述打包标识为待打包的采购单。

在本申请的实施例中,系统在查询到每个打包标识为待打包的采购单的打包时间之后,根据当前时刻对应的系统时间与每个打包标识为待打包的采购单的打包时间径向比较,并获取所述打包时间等于或早于所述当前时刻对应的系统时间的采购单,例如,当前时刻对应的系统时间为“7月21日”,则所述采购单a和采购单b已经到了需要进行打包的时间,那么系统就会获取打包标识为待打包的采购单a和采购单b。

步骤410:将所述至少一个采购单的打包标识由待打包变更为打包中,并对至少一个采购单进行分组。

在本申请的实施例中,系统在获取到符合所述打包时间的至少一个打包标识为待打包的采购单之后,将所述至少一个采购单的打包标识由待打包变更为打包中,并对所述至少一个采购单根据商品和打包时间进行分组,例如,将所述采购单a和采购单b打包标识由待打包变更为打包中,并对所述采购单a和采购单b进行分组。

步骤412:对每个分组中的采购单执行打包任务,判断所述打包任务是否成功。若是,则执行步骤414;若否,则执行步骤416。

步骤414:保存打包数据并将所述至少一个采购单的打包标识由打包中变更为已完成。

步骤416:对打包失败的所述采购单进行补偿操作,以对打包失败的所述采购单进行重新打包。

在本申请的实施例中,系统对每个分组中的采购单执行打包任务,如果打包成功,则系统会保存相关的打包数据并将所述至少一个采购单的打包标识由打包中变更为已完成;如果打包失败,则系统会对打包失败的所述采购单进行补偿操作,将打包失败的所述采购单进行回滚使其能在下一轮的打包任务中重新打包。

本申请通过在采购单审核完成后就提前计算打包开始时间和结束时间,从而将原来的方案现有技术中的打包时间计算提前,可以避免打包时间的重复计算,而且在打包阶段不需要获取全部的待打包状态的采购单,只需要到打包时间的待打包状态的采购,减少了资源的浪费。通过提前计算打包时间,还可以保证采购单就算错过了第一次的打包时间,在下一次打包任务开始时,也能进行打包,避免了在现有技术中如果错过了第一次的打包时间,就需要等到下个周期的打包时间,即如果每月打包的采购单错过了本周期的打包时间,就只能等到下一个周期进行打包,而在本申请中就算错过了打包的时间,也能在下一次打包任务时及时进行打包。

在本申请的一个实施例中,如图5所示,所述对打包失败的所述采购单进行补偿操作,以对打包失败的所述采购单进行重新打包包括步骤502至步骤514:

步骤502:获取打包失败的至少一个所述采购单。

在本申请的实施例中,在打包阶段,由于系统原因或网络原因,导致部分采购单打包失败进而使得所述打包任务失败,则系统会获取打包失败的至少一个打包标识为打包中的采购单,例如,打包标识为“打包中”的采购单a的包任务失败了,则系统会获取打包失败的采购单a。

步骤504:将所述打包失败的至少一个所述采购单的打包标识由打包中变更为待打包。

在本申请的实施例中,系统对所述打包失败的至少一个所述采购单进行补偿操作,将将所述打包失败的至少一个所述采购单的打包标识由“打包中”重新变更为“待打包”,例如,将采购单a的打包标识由“打包中”重新变更为“待打包”。

步骤506:将所述打包失败的至少一个打包标识为待打包的采购单进行回滚。

步骤508:再次查询每个打包标识为待打包的采购单的打包时间。

在本申请的实施例中,系统按照上述打包阶段的具体流程,再次查询每个打包标识为待打包的采购单的打包时间,即同时也会查询到所述打包失败的至少一个打包标识为待打包的采购单,例如采购单a。

步骤510:在所述打包失败的至少一个所述采购单的打包时间早于当前时刻对应的系统时间的情况下,再次获取所述打包失败的至少一个所述采购单。

在本申请的实施例中,在上一次的打包任务结束后,系统会继续按照当前时刻对应的系统时间查询到达打包时间的打包标识为待打包的采购单,此时,所述打包失败的至少一个所述采购单的打包时间仍然早于所述当前时刻对应的系统时间,则系统会再次获取所述打包失败的至少一个所述采购单,例如,当前时刻对应的系统时间由“7月21日”变为了“7月22日”,此时采购单a的打包时间为“6月18日”仍然属于需要进行打包的时间。

步骤512:再次将所述打包失败的至少一个所述采购单的打包标识由待打包变更为打包中,并对所述打包失败的至少一个所述采购单进行分组。

在本申请的实施例中,系统会将包括所述打包失败的至少一个所述采购单在内的打包标识为待打包的采购单的打包标识由“待打包”变更为“打包中”,对所述打包失败的至少一个所述采购单进行单独的分组,使得“新”的采购单和“原来失败”的采购单不会被分在同一个分组中。

步骤514:对每个分组中的所述打包失败的至少一个所述采购单重新执行打包任务。

在本申请的实施例中,系统对每个分组中的采购单执行打包任务,从而将包含有所述打包失败的至少一个所述采购单能够在本轮的打包任务中再次进行打包重试,实现了异步补偿。

本申请通过在采购单中添加打包标识,利用打包状态来标识整个一次打包过程中,有哪些采购单进行了打包,又有哪些采购单打包成功,哪些采购单打包失败,对于打包失败的采购单利用打包异步补偿的方式,来解决分布式事务的问题,来帮助打包流程进行单独的服务化。

在本申请的另一个实施例中,所述至少一个采购单进行分组包括:

根据预设的采购目录和打包时间对所述至少一个采购单进行分组。

在本申请的实施例中,每一种采购目录对应有一种相应的配置,系统会根据对应的配置对所述至少一个采购单进行分组。

本申请提供的采购打包方法,将打包功能服务化,能够提供高效的打包服务,减少打包产生问题的风险;本申请提供了打包容错处理方案,在打包出错的时候,能够及时进行重试和修正;本申请解决由于系统发布等原因,导致在某个时间断服务不可用,是打包的时间延后到下一个周期的问题,让打包服务更加透明化,便于日常的维护。

与上述方法实施例相对应,本说明书还提供了基于协议供货的采购打包装置实施例,图6示出了本说明书一个实施例的基于协议供货的采购打包装置的结构示意图。如图6所示,该装置包括:

采购单获取模块601,被配置为根据每个所述采购单对应的打包时间以及当前时刻对应的系统时间,获取符合所述打包时间的至少一个打包标识为待打包的采购单;

分组模块602,被配置为将所述至少一个采购单的打包标识由待打包变更为打包中,并对至少一个采购单进行分组;

打包任务执行模块603,被配置为对每个分组中的采购单执行打包任务,判断所述打包任务是否成功;在打包任务成功的情况下,执行标识变更模块;在打包任务失败的情况下,执行补偿模块。

标识变更模块604,被配置为保存打包数据并将所述至少一个采购单的打包标识由打包中变更为已完成;

补偿模块605,被配置为对打包失败的所述采购单进行补偿操作,以对打包失败的所述采购单进行重新打包。

可选的,所述装置还包括:

打包时间计算模块606,被配置为在至少一个采购单审核完成的情况下,计算出每个所述采购单对应的打包时间;

标记模块607,被配置为为每个所述采购单设置待打包的打包标识。

可选的,所述采购单获取模块601包括:

第一查询每单元,被配置为查询每个打包标识为待打包的采购单的打包时间;

第一获取单元,被配置为获取所述打包时间等于或早于所述当前时刻对应的系统时间的所述打包标识为待打包的采购单。

可选的,所述补偿模块605包括:

失败采购单获取单元,被配置为获取打包失败的至少一个所述采购单;

标识变更子单元,被配置为将所述打包失败的至少一个所述采购单的打包标识由打包中变更为待打包。

可选的,所述补偿模块605包括:

回滚单元,被配置为将所述打包失败的至少一个打包标识为待打包的采购单进行回滚;

第二查询每单元,被配置为再次查询每个打包标识为待打包的采购单的打包时间;

第二获取单元,被配置为在所述打包失败的至少一个所述采购单的打包时间早于当前时刻对应的系统时间的情况下,再次获取所述打包失败的至少一个所述采购单;

分组子单元,被配置为再次将所述打包失败的至少一个所述采购单的打包标识由待打包变更为打包中,并对所述打包失败的至少一个所述采购单进行分组;

对每个分组中的所述打包失败的至少一个所述采购单重新执行打包任务。

可选的,所述分组模块602包括:

采购目录单元,被配置为根据预设的采购目录和打包时间对所述至少一个采购单进行分组。

本申请通过对采购单增加了用于表示采购单打包状态的打包标识,可以对整个打包过程中的采购单的打包状态进行监控,保证已经在打包的采购单不会进行重复打包操作,使得系统也能根据打包标识对采购打包是否成功进行准确的判断,方便进行最后的打包失败补偿,同时,通过对打包失败的所述采购单采用异步补偿的操作机制,不需要将打包失败的采购单进行单独的存储并使其在下一次打包任务中重新进行打包直到打包成功,解决了分布式事务的问题,降低了与协议供货系统的耦合度,将打包流程从协议供货系统固定的流程里提取出来实现单独的服务化和功能化。

本申请一实施例还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现以下步骤:

根据每个所述采购单对应的打包时间以及当前时刻对应的系统时间,获取符合所述打包时间的至少一个打包标识为待打包的采购单;

将所述至少一个采购单的打包标识由待打包变更为打包中,并对至少一个采购单进行分组;

对每个分组中的采购单执行打包任务,判断所述打包任务是否成功;

在打包任务成功的情况下,保存打包数据并将所述至少一个采购单的打包标识由打包中变更为已完成;

在打包任务失败的情况下,对打包失败的所述采购单进行补偿操作,以对打包失败的所述采购单进行重新打包。

本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述基于协议供货的采购打包方法的步骤。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该计算机可读存储介质的技术方案与上述的基于协议供货的采购打包方法的技术方案属于同一构思,计算机可读存储介质的技术方案未详细描述的细节内容,均可以参见上述基于协议供货的采购打包方法的技术方案的描述。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。

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