技术领域
[0001] 本发明涉及计算机技术领域,尤其涉及一种订单打印的方法和装置。
相关背景技术
[0002] 现有技术中,对涉及多个打印插件的订单集进行批量打印时,由于各个打印插件的执行策略或执行效率不同,往往在订单打印时容易出现乱序或漏单等情况,只能通过人工核对或重新打印进行处理。
[0003] 在实现本发明过程中,发明人发现相关技术中至少存在如下问题:
[0004] 无法按照订单的实际顺序进行订单打印,人工核对或重新打印的生产效率较低,错误率较高。
具体实施方式
[0046] 以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
[0047] 需要说明的是,本发明实施例所涉及的个人信息等的获取、存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。
[0048] 目前,在现有WMS(Warehouse Manage System,仓库管理系统)仓储作业中,仓库中普遍存在单仓多种平台来源的订单,订单可以在组波成功后进行打印,但由于订单来源不一致,订单对应的打印插件也不同。在面对多销售平台,混承运商,涉及到多个打印插件的订单时,经常因为各个打印插件执行策略以及执行效率的原因,在前置打单时出现乱序或漏单问题,由于仓库生产常以千为单位生产,在实际作业中对漏单或乱序处理费时费力且订单的准确性无法被保证,对仓内和用户都会造成负面影响,因此仓内主要以单打印插件对应的订单进行组波生产,这与仓内实际接收的订单顺序以及拣货顺序是冲突的,仓内生产效率受限。在面对打印设备缺纸、卡单、缺墨的时候,不能有效的通过系统对此时订单是否打印进行判断,只能通过人工核对或重新打印进行处理,非常影响生产效率,而且出现问题的概率也会被放大,经常由于人工核验的误差出现多发,错发,漏发的情况,不仅效率低下而且造成经济损失。
[0049] 有鉴于此,根据本发明实施例的一个方面,提供了一种订单打印的方法。
[0050] 图1是根据本发明实施例的订单打印的方法的主要流程的示意图。如图1所示,根据本发明实施例的订单打印的方法,包括:
[0051] 步骤S101,响应于接收到的多个平台的订单打印请求,确定所述多个平台的目标订单和目标订单的打印顺序;
[0052] 具体地,所述多个平台的订单打印请求是指系统或服务接收到用户提交的订单信息后,根据用户需求触发的来自多个平台的订单打印操作的请求。订单打印请求包括订单的具体信息以及打印的设置要求,以确保订单能够准确地打印出来并满足用户的需求,其中,订单打印请求可以包括用户下单的商品或服务信息,例如,商品名称、数量、价格、总额、用户的联系方式、收货地址等相关信息;还可以包括指定打印的设置和要求,例如,打印的格式(如PDF、文本)、纸张大小、打印颜色等;还可以包括指定打印的位置或者目标设备,例如,用户指定订单打印在某台特定的打印机上,或者是将打印结果保存到某个特定的文件夹中;还可以包括用户提供额外的说明或者备注,或者提供特定的要求或者注意事项;还可以包括确定订单何时应该触发打印操作,例如,用户提交订单时立即触发打印,或者在订单状态发生变化时(如订单确认、付款完成等)自动触发打印。
[0053] 目标订单是指在接收到多个平台的订单打印请求后,系统根据一定的规则或条件选择出需要进行打印且符合打印条件的多个平台的订单。目标订单和目标订单的打印顺序的确定包括但不限于以下情形:系统可以只选择处于特定状态(如待处理、已确认、已付款等)的订单进行打印;根据特定的业务规则或者需求,采用设定的策略来确定目标订单,例如按照地理位置、客户类型等进行分类和排序;系统可以根据订单的优先级(如紧急订单、高价值订单等)来确定打印顺序,优先打印高优先级的订单;还可以根据订单提交的时间顺序来确定打印顺序,优先打印最先提交的订单;用户通过系统界面或者其他途径指定特定的订单或者打印顺序,系统根据用户的设定确定目标订单和打印顺序。
[0054] 目标订单的确定确保了系统能够有序地处理来自多个平台的打印请求,并保证重要订单能够及时得到处理,通过确定合理的打印顺序,系统能够优先处理重要订单,提高订单处理的效率和准确性,同时也能够满足用户的需求和期望,确保订单能够及时得到处理和交付。
[0055] 步骤S102,根据所述打印顺序将所述目标订单进行排列,并创建针对排序后的目标订单的任务队列;
[0056] 根据上述步骤S101中确定的打印顺序将上述目标订单进行排列,确保目标订单按照一定的规则和顺序被逐一处理和打印,在进行排列时,系统需要根据打印顺序的不同因素对目标订单进行排序,以确保系统能够有效地处理订单并满足用户的需求。首先,系统可以根据订单的优先级对目标订单进行排序,高优先级的订单被放置在任务队列的前面,以确保这些订单优先得到处理和打印,满足紧急需求或重要客户的要求;其次,系统可以根据订单提交的时间顺序对目标订单进行排序,先提交的订单可能会被放置在任务队列的前面,按照先来先服务的原则逐一处理和打印,确保订单能够及时处理;如果订单涉及到不同的地理位置或配送区域,系统可以根据订单的收货地址或者配送区域进行排序,优先处理相近地区的订单,减少配送时间和成本,提高效率;系统也可以考虑用户的特殊要求或者设定,根据用户指定的排序规则对目标订单进行排列,可以满足用户个性化的需求,提升用户体验;最后,系统还可以根据实时的情况动态调整订单的排序,例如在高峰时段加快处理速度,确保订单能够及时打印和处理。
[0057] 任务队列是一种数据结构,用于按照一定顺序存储和管理需要处理的任务,以便系统可以按照特定规则逐个处理这些任务。在订单打印系统中,任务队列可以用来存储需要打印的订单,以便系统按照一定的打印顺序逐个处理这些订单的打印请求。具体创建任务队列的步骤如下:首先,确定任务队列采用的数据结构,常见的数据结构包括队列、栈、优先队列等,在订单打印系统中,一般选择FIFO队列(First In, First Out,先进先出)来存储订单,以便按照提交的顺序逐个处理;其次,确定每个任务的具体内容和属性,在订单打印系统中,任务对象可以是订单的信息,包括订单号、订单内容、打印设置等,每个任务对象需包含足够的信息,以便系统能够正确地处理订单打印请求;然后,基于所选择的数据结构,创建一个空的任务队列,在订单打印系统中,可以使用数组、链表等数据结构来实现队列,初始化为空;再将目标订单加入队列,根据上述的打印顺序逐个将目标订单添加到任务队列中,根据不同的排序规则,可以选择从队列的头部或尾部添加订单;再者,系统可以提供相应的操作接口,以便管理任务队列,包括添加任务、删除任务、查看队首任务等操作,确保系统能够按照正确的顺序从队列中获取任务进行处理;最后,系统根据需要从任务队列中取出任务进行处理,例如,将订单信息发送给打印设备(如打印机等)进行打印,处理完一个任务后,系统可能需要从队列中移除该任务,以便处理下一个任务。
[0058] 通过以上步骤,可以创建一个用于存储和管理待处理订单的任务队列,并确保系统能够按照正确的顺序处理订单打印请求,有效保证订单按照预设顺序进行打印,提高打印效率和准确性,确保重要订单得到优先处理,满足用户需求,同时简化管理,降低操作风险。。
[0059] 步骤S103,基于预先设置的任务调度器从所述任务队列中获取待打印任务,将所述待打印任务发送至待打印任务所对应的多个打印插件进行订单打印。
[0060] 任务调度器是一种用于管理和调度任务执行的组件或系统,在订单打印系统中,任务调度器负责从任务队列中获取待打印的订单,并按照一定的规则分配给可用的打印资源进行处理。
[0061] 其中,任务调度器可以通过以下步骤进行设置:首先,根据系统需求和性能特点确定任务调度器的调度策略,例如,先进先出(FIFO)、优先级调度、最短作业优先、时间片轮转等;其中,设置任务调度器的参数,例如,任务队列大小、调度间隔、优先级设置等,也可以根据系统负载和性能需求调整参数,以优化系统的运行效率和资源利用率;然后,编写任务调度器的逻辑代码,包括从任务队列中获取任务、根据调度策略选择合适的任务、分配任务给可用资源等,确保调度器能够按照预期的策略和规则进行任务分配和调度;再将任务调度器集成到订单打印系统中,并确保与其他组件的正常交互和协作,与任务队列、打印资源管理器等模块进行无缝连接,实现订单打印流程的自动化管理和控制。
[0062] 任务调度器根据预设的调度策略从任务队列中获取下一个待打印任务;根据待打印任务所对应的打印插件信息,任务调度器获取相应的打印插件实例,准备进行订单打印;根据待打印任务的内容,准备好需要发送给打印插件的订单数据,包括订单信息、打印设置等;任务调度器将准备好的订单数据发送给所获取的多个打印插件;等待每个打印插件的响应,此时可以启动异步机制,以允许系统同时进行其他操作,例如,获取下一个待打印任务或处理异常情况;当打印插件完成打印并返回响应时,任务调度器会根据响应结果进行相应的处理,如果打印成功,则记录打印日志并标记订单为已打印;如果打印失败,则记录错误信息,并根据情况进行重试或标记订单为未打印;任务调度器继续进行下一轮的任务调度,从任务队列中获取下一个待打印任务,并重复以上步骤,直至任务队列为空或系统停止。
[0063] 通过以上步骤,任务调度器能够有效地管理任务队列中的订单,按照设定的策略和规则进行调度,提高打印系统的整体效率和性能能够有效地管理和分发待打印任务,并与相应的打印插件进行交互,实现订单的顺序打印。
[0064] 本发明实施例通过响应于接收到的订单打印请求,确定目标订单和目标订单的打印顺序;根据所述打印顺序将所述目标订单进行排列,并创建任务队列;基于预先设置的任务调度器从所述任务队列中获取待打印任务,将所述待打印任务发送至待打印任务所对应的打印插件进行订单打印;能够在混平台批量顺序打印的情况下,按照订单的实际顺序进行订单打印,生产效率高,错误率低。
[0065] 可选地,步骤S101中,响应于接收到的多个平台的订单打印请求之后,所述方法还包括:
[0066] 确定用户开启预先配置的多平台打印控制开关;其中,所述多平台打印控制开关用于控制批量打印多平台订单。
[0067] 其中,所述多平台打印控制开关是一种系统功能或机制,用于在系统资源受限或异常情况下,临时关闭某些功能或服务,从而保证系统的稳定性和可用性,例如,降级开关。在订单打印系统中,多平台打印控制开关用于控制批量打印多平台订单,以避免系统因为大量订单打印而导致的性能下降或系统崩溃。
[0068] 具体地,在系统的用户设置或管理界面中,提供一个开关按钮或复选框,使得用户可以手动开启或关闭降级功能,用户可以根据自己的需求和实际情况进行设置;系统可以通过监控系统负载、资源利用率等指标,当系统压力过大或资源紧张时,自动启用降级功能以保护系统稳定性,自动化机制可以在不需要用户干预的情况下进行,提高了系统的智能化程度;系统还可以根据用户的反馈和需求来决定是否开启降级功能,例如,当用户大量反馈系统响应缓慢或打印任务失败时,系统管理员可以开启降级功能来应对问题;系统可以预设一些条件和策略,当满足预设条件时自动开启降级功能,例如,设定当系统负载超过一定阈值或出现持续异常情况时,自动开启降级功能。
[0069] 多平台打印控制开关是基于用户采用批量打印多平台运单时采取的兼容手段,可以通过对单个租户或租户中的单个仓库开启,可以有效保护用户行为,避免由于操作习惯改变导致的订单打印失败。可以通过对登录用户身份进行控制,根据接口进行分流判断用户是否使用混平台批量打印的策略。以WMS为例,可以在管理端设计多平台打印控制开关的配置,配置中可以指定开关的Key(密匙)以及开启时是以租户维度还是仓库维度进行开启,仓库与租户是多对一,租户与仓库是一对多,即开启租户纬度会开启全部仓库,单开启仓库只影响当前仓库,不影响租户下的剩余仓库,在用户进入WMS系统时,系统读取配置用户无感知,即可获取打印策略的分流配置,当用户需要关闭或打开此项,在管理端点击开关即可。
[0070] 示例地,首先用户进行单点登录;获取用户身份后,读取系统配置,判断用户是否在当前仓库中拥有权限,若是用户拥有权限,则判断用户是否开启顺序打印,开启则在打印时可以进行混平台混承运商打印,否则用户无法使用混平台顺序打印的功能,若是用户不具备权限,则提示用户不具备操作权限,无法操作WMS系统中的任何功能,需要寻找仓库管理人员添加权限。
[0071] 本发明实施例提供清晰简洁的用户界面,使用户能够轻松找到并操作开关,系统根据预设条件,自动启用降级功能,可以在系统压力过大或异常情况下保障服务稳定性,避免因大量订单打印而导致的系统性能下降或崩溃,从而提高用户体验和订单处理效率。
[0072] 可选地,图2是根据本发明一个可参考实施例的订单打印的方法的主要流程的示意图。如图2所示,所述多平台打印控制开关通过以下步骤进行配置:
[0073] 步骤S201,确定所述多平台打印控制开关的作用范围和触发条件;
[0074] 步骤S202,基于所述作用范围和触发条件确定配置参数;
[0075] 步骤S203,根据所述配置参数设置多平台打印控制开关。
[0076] 其中,所述作用范围指确定降级功能影响的范围,可以是整个系统、特定租户、或者特定仓库等;所述触发条件是指在何种情况下启用降级功能,比如系统负载高于某个阈值、异常情况出现等;根据上述作用范围和触发条件确定配置参数的具体内容,例如,指定系统负载的阈值、异常情况的类型和严重程度等;根据确定的配置参数,对多平台打印控制开关进行相应的设置,包括开启或关闭降级功能,调整降级功能的具体参数等。
[0077] 示例地,如果作用范围是整个系统,触发条件是系统负载高于80%,那么配置参数可以是设置系统负载阈值为80%,根据配置参数,系统会在系统负载超过80%时自动开启降级功能,具体的设置方式可以通过系统管理界面或者配置文件来进行。
[0078] 本发明实施例通过明确多平台打印控制开关的作用范围和触发条件,系统能够准确地确定何时需要启用降级功能;基于作用范围和触发条件确定配置参数,帮助系统管理员更好地调整和优化降级策略,提高系统对异常情况的适应能力;根据配置参数设置多平台打印控制开关可以确保降级功能的及时启用和准确执行,保障系统在面对异常情况时能够快速响应并保持稳定运行,从而提升用户体验和系统可靠性。
[0079] 可选地,图3是根据本发明另一个可参考实施例的订单打印的方法的主要流程的示意图。如图3所示,所述方法还包括:
[0080] 判断所述任务队列中是否存在待打印任务;
[0081] 若是,则基于预先设置的任务调度器从所述任务队列中获取待打印任务;
[0082] 若否,则截止订单打印。
[0083] 具体地,在进行订单打印之前,首先检查任务队列中是否有待打印任务,如果存在,则执行下一步,利用上述的任务调度器从任务队列中获取下一个待打印任务,并将其发送至相应的打印插件进行订单打印;如果打印队列中不存在待打印任务,则订单打印流程停止,系统不再继续执行订单打印操作。
[0084] 本发明实施例能够有效地管理和执行订单打印任务,确保在有任务需要处理时能够及时获取并打印,而在没有任务时能够停止打印流程,避免资源浪费。
[0085] 可选地,步骤S103将所述待打印任务发送至待打印任务所对应的多个打印插件进行订单打印之后,所述方法还包括:
[0086] 监听所述多个打印插件的执行结果,基于所述执行结果确定所述待打印任务的打印结果,将所述打印结果返回至所述任务调度器或者反馈给所述订单打印请求的请求方。
[0087] 具体地,在订单打印过程中,系统监听打印插件的执行结果,并根据执行结果确定所述待打印任务的打印结果,将所述打印结果返回给任务调度器,以便系统能够及时了解打印任务的执行情况,进行后续的处理。系统通过与打印插件建立的通信渠道,实时监听打印插件的执行情况,可以通过WebSocket(网络套接字)、HTTP(Hypertext Transfer Protocol,超文本传输协议)请求等方式实现,系统会持续接收来自打印插件的执行结果;当系统收到打印插件的执行结果时,会进行相应的处理,如果打印任务执行成功,则系统将相应的信息返回给任务调度器,标记该任务为已完成,如果打印任务执行失败,则系统也会将失败信息返回给任务调度器,以便后续的处理;根据执行结果,系统更新相应的任务状态,如果任务执行成功,则标记该任务为已完成,如果任务执行失败,则可以根据具体情况进行重试、放弃或其他处理。本发明实施例通过监听打印插件的执行结果并及时返回给任务调度器,对订单打印过程进行实时监控和管理,通过及时获取执行结果,系统能够迅速响应打印任务的状态变化,如成功、失败或异常,从而进行后续的处理,提高系统的可靠性和稳定性,确保订单打印流程顺利进行,减少因打印错误导致的延迟或中断,提升用户满意度和订单处理效率,同时,及时的执行结果反馈也有助于系统管理员及时发现和解决问题,保障系统的正常运行。
[0088] 具体地,除了简单的成功或失败反馈外,系统可以提供更详细的报告,包括打印的详细日志、每个订单的打印状态、失败原因等信息,以使得用户可以更全面地了解打印过程中的各个环节;系统不仅可以在打印完成后反馈结果,也可以实时将打印进度信息发送给用户,让用户可以实时监控订单的打印情况,及时发现并解决问题;通过系统界面反馈打印结果,或者,通过邮件、短信等多种渠道向用户发送打印结果,确保用户能够及时收到反馈信息;在反馈打印结果的同时,系统也可以提供一些自助解决方案,比如针对失败的订单提供重新打印或取消打印的选项,让用户可以自行处理问题,减轻系统负担。本发明实施例的反馈机制有助于提升用户体验,让用户能够及时了解订单打印的情况,并且在打印出现问题时能够及时处理,减少用户等待时间,增强系统的交互性和用户友好性。
[0089] 可选地,监听所述多个打印插件的执行结果,基于所述执行结果确定所述待打印任务的打印结果,包括:
[0090] 基于预先配置的每个打印插件对应的消息回调机制,监听每个打印插件返回的报文信息;
[0091] 响应于所述报文信息具有打印成功标识,将所述待打印任务的打印结果标记为打印完成且打印成功;
[0092] 响应于所述报文信息不具有打印成功标识,将所述待打印任务的打印结果标记为打印完成且打印失败。
[0093] 具体地,每个打印插件都预先配置有消息回调机制,消息回调机制用于处理和监听打印任务的执行结果。当打印任务被发送到不同的平台的打印插件时,系统会通过这些消息回调机制,实时监听各个打印插件返回的报文信息。这些报文信息中包含了打印任务的执行状态标识,如是否打印成功、是否存在错误或其他状态信息。当系统监听到某个打印插件返回的报文信息中包含打印成功的标识时,系统会将该打印任务的结果标记为“打印完成且打印成功”,这一标识可以由各个平台自定义,可以是一个特定的状态码、标志性文字,或其他能够明确表示打印成功的信息。系统解析这些信息后,立即更新任务的状态,将其记录为成功,并可以将这一结果存储在日志中或通知其他相关系统模块。如果报文信息中没有打印成功的标识,或者明确显示打印失败的状态,系统将该打印任务的结果标记为“打印完成且打印失败”,在这种情况下,虽然任务被标记为已完成,但结果是失败的,系统会相应地更新任务的状态,并可能触发其他错误处理机制,例如重试打印、通知管理员或记录到日志中,以便后续的故障排查和问题分析。通过这种方式,系统能够有效地监控和管理多个打印任务的执行状态,并确保每个任务的结果被准确地记录和处理,无论打印任务的结果是成功还是失败,系统都能够及时做出响应,保证打印流程的稳定性和可靠性。
[0094] 可选地,在所述打印结果为打印失败的情况下,所述方法还包括:
[0095] 基于预设的重试次数,使用重试机制对打印失败的待打印任务进行跳转补打。
[0096] 具体地,系统首先检查预设的重试次数,确定允许的最大重试次数;如果打印任务失败,系统会自动启动重试机制,根据预设的重试次数,系统将会尝试重新发送打印任务;在重试过程中,系统会将失败的待打印任务重新加入打印队列,并进行重新打印,系统跳过正在执行的打印任务,优先处理需要重试的任务;系统会根据预设的重试次数限制,确保不会无限制地进行重试;一旦达到预设的重试次数上限,系统会停止重试并标记该任务为打印失败;在重试过程中,系统可以向用户发送通知,告知其打印任务失败,并说明系统正在尝试重新打印;如果重试成功,则再次通知用户打印成功;如果重试次数用尽仍失败,则通知用户打印失败。
[0097] 本发明实施例通过上述重试机制,可以自动处理打印失败的情况,提高了订单打印的成功率,减少了用户的手动干预,同时也减少了对系统操作人员的工作压力。
[0098] 作为本发明优选的一个实施例,图4是根据本发明还一个可参考实施例的订单打印的方法的主要流程的示意图。
[0099] 如图4所示,设立降级开关之后,顺序执行打印任务;基于浏览器通过websockt(网络套接字)与各平台打印插件建立连接,发送打印任务来实现。由于websocket的send(发送)与onmessage(消息接收事件)触发为异步,增设队列机制来存储所有打印任务,并且建立任务调度器,并对每个websocket实例的回调增设成功失败的判断。具体步骤为:首先,将用户勾选的所有订单按照用户选择的顺序进行排列,并且将选择的订单以20个一组进行划分,为了不影响用户打印效率,后续将以20个订单为一个发送ajax请求获取打印数据,将此时划分的数组称为打印总任务。其次,首次进行打印时取第一组数据,利用async await(Asynchronous/Await,异步/等待)进行顺序Ajax请求(Asynchronous JavaScript and XML,异步)获取当前打印数据,后续在每一次成功获取数据后就将该组数据从打印总任务中删除,并记录在当前打印任务中,在进入打印任务队列之前,先进行判断打印总任务中是否还存在未获取数据的任务,由于Ajax请求是异步进行的,系统可以先发起数据请求,无需等待结果返回拿到上一次获取的打印数据进入打印任务队列中;然后,在各个平台的打印插件中,增设omessage的自定义回调方法,根据各平台定义的报文获取判断成功打印的标识,并修改当前打印任务是否完成的标识以及是否打印成功的标识,如果当前报文显示打印失败那么将更新打印任务是否完成的标识,但打印结果将被定义为失败;在打印任务队列中,系统循环打印数据并根据打印数据中的标识进行判断,根据标识进入不同的websocket任务中,在发送单个打印任务后,进行轮询判断打印插件是否返回已打印完成的标识,当判断当前打印任务已完成时,将判断打印任务是否成功,如果成功则记录在打印日志中并标记为打印成功,判断当前打印数据是否已经全部循环完毕;最后,当上述打印数据全部成功打印完毕时,同样利用队列循环机制,去轮询上一个异步获取打印数据的任务是否成功返回,当数据成功返回是则将其记录在当前打印数据中,并继续跳转至循环打印数据并根据打印数据中的标识进行判断。
[0100] 例如,现有队列分别为自营,抖音,拼多多等,将第一个任务根据标识匹配到云打印插件,并组装成打印所需要的数据,发送给打印插件,并等待打印插件的返回,并根据返回结果判断继续打印或作中断处理,假设现有任务已经成功,循环将继续进行,并根据标识进入抖音循环逻辑中,当循环至拼多多打印结束时,判断打印总任务中是否为空,如果为空则代表未获取数据的打印任务为空,接下来则判断是否存在已获取数据但未打印任务,存在则继续循环打印,不存在则标志着打印任务完全结束。此时将弹窗提示用户打印完成任务总量。并提供一键复制打印成功订单。
[0101] 对进入队列后的错误进行捕获处理,不论出现任何情况的中断,都将直观展示已打印成功的订单以及当前获取数据失败的订单,提供基于当前订单进行重试的机制,并提供快捷跳转进行补打以及错误信息复制等功能。当获取打印数据异常时,将自动重试一次,如果重试失败将直接中断打印,并进行提示。当获取打印数据后进入循环打印报错,此时错误情况有打印机连接中断、打印机异常、打印结果失败、程序异常等;打印机连接中断时,将尝试重连,重连成功则继续打印,失败则提示用户检查打印插件及真实打印机是否正常连接;打印机异常时,当请求数据发送成功后将等待返回结果3s,如果打印数据未能成功返回则视为打印机异常,将提示用户进行继续打印或跳过当前失败订单继续打印,继续打印成功后则正常打印,继续打印失败后则提示当前失败信息并给与用户再次选中的机会,跳过打印则根据循环数据进入下一单打印,记录当前数据并在所有订单打印结束或后续打印中断时提示;打印机异常时,处理同打印机异常;程序异常时,提示用户联系运维人员并在服务端记录打印日志。
[0102] 根据本发明实施例的第二方面,提供了一种订单打印的装置500,包括:
[0103] 打印请求模块501,响应于接收到的多个平台的订单打印请求,确定所述多个平台的目标订单和目标订单的打印顺序;
[0104] 任务队列模块502,根据所述打印顺序将所述目标订单进行排列,并创建针对排序后的目标订单的任务队列;
[0105] 订单打印模块503,基于预先设置的任务调度器从所述任务队列中获取待打印任务,将所述待打印任务发送至待打印任务所对应的多个打印插件进行订单打印。
[0106] 可选地,所述打印请求模块501,还用于:
[0107] 确定用户开启预先配置的多平台打印控制开关;其中,所述多平台打印控制开关用于控制批量打印多平台订单。
[0108] 可选地,所述打印请求模块501,还用于:
[0109] 确定所述多平台打印控制开关的作用范围和触发条件,基于所述作用范围和触发条件确定配置参数,根据所述配置参数设置多平台打印控制开关。
[0110] 可选地,所述订单打印的装置还包括任务判断模块,用于:
[0111] 判断所述任务队列中是否存在待打印任务;
[0112] 若是,则基于预先设置的任务调度器从所述任务队列中获取待打印任务;
[0113] 若否,则截止订单打印。
[0114] 可选地,所述订单打印的装置还包括任务监听模块,用于:
[0115] 监听所述打印插件的执行结果,基于所述执行结果确定所述待打印任务的打印结果,将所述打印结果返回至所述任务调度器或者反馈给所述订单打印请求的请求方。
[0116] 可选地,所述任务监听模块,还用于:
[0117] 基于预先配置的每个打印插件对应的消息回调机制,监听每个打印插件返回的报文信息;
[0118] 响应于所述报文信息具有打印成功标识,将所述待打印任务的打印结果标记为打印完成且打印成功;
[0119] 响应于所述报文信息不具有打印成功标识,将所述待打印任务的打印结果标记为打印完成且打印失败。
[0120] 可选地,所述任务监听模块,还用于:
[0121] 在所述打印结果为打印失败的情况下,基于预设的重试次数,使用重试机制对打印失败的待打印任务进行跳转补打。
[0122] 需要说明的是,在本发明所述订单打印的装置的具体实施内容,在上面所述订单打印的方法中已经详细说明了,故在此重复内容不再说明。
[0123] 根据本发明实施例的第三方面,提供一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例第一方面提供的方法。
[0124] 根据本发明实施例的第四方面,提供一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例第一方面提供的方法。
[0125] 根据本发明实施例的第五方面,提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现本发明实施例第一方面提供的方法。
[0126] 图6示出了可以应用本发明实施例的订单打印方法或订单打印装置的示例性系统架构600。
[0127] 如图6所示,系统架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
[0128] 用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
[0129] 终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
[0130] 服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的订单打印请求等数据进行分析等处理,并将处理结果(例如打印结果‑‑仅为示例)反馈给终端设备。
[0131] 需要说明的是,本发明实施例所提供的订单打印方法一般由服务器605运行,相应地,订单打印装置一般设置于服务器605中。
[0132] 应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
[0133] 下面参考图7,其示出了适于用来实现本发明实施例的终端设备的计算机系统700的结构示意图。图7示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0134] 如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而运行各种适当的动作和处理。在RAM 703中,还存储有系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
[0135] 以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络运行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
[0136] 特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于运行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701运行时,运行本发明的系统中限定的上述功能。
[0137] 需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令运行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令运行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
[0138] 附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可运行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地运行,它们有时也可以按相反的顺序运行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用运行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0139] 描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括打印请求模块、任务队列模块和订单打印模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,打印请求模块还可以被描述为“响应于接收到的多个平台的订单打印请求,确定所述多个平台的目标订单和目标订单的打印顺序的模块”。
[0140] 作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备运行时,使得该设备包括:响应于接收到的多个平台的订单打印请求,确定所述多个平台的目标订单和目标订单的打印顺序;根据所述打印顺序将所述目标订单进行排列,并创建针对排序后的目标订单的任务队列;基于预先设置的任务调度器从所述任务队列中获取待打印任务,将所述待打印任务发送至待打印任务所对应的多个打印插件进行订单打印。
[0141] 本发明实施例提供的计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本发明实施例中的订单打印的方法。
[0142] 根据本发明实施例的技术方案,具有如下优点或有益效果:通过响应于接收到的多个平台的订单打印请求,确定所述多个平台的目标订单和目标订单的打印顺序;根据所述打印顺序将所述目标订单进行排列,并创建针对排序后的目标订单的任务队列;基于预先设置的任务调度器从所述任务队列中获取待打印任务,将所述待打印任务发送至待打印任务所对应的多个打印插件进行订单打印;能够在混平台批量顺序打印的情况下,按照订单的实际顺序进行订单打印,生产效率高,错误率低。
[0143] 上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
[0144] 需要说明的是,本公开的技术方案中,所涉及的用户个人信息的获取、存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。