本發(fā)明涉及網(wǎng)絡(luò)訂單的打印技術(shù),特別是多路并發(fā)的網(wǎng)絡(luò)訂單打印技術(shù)。
背景技術(shù):
隨著互聯(lián)網(wǎng)的蓬勃發(fā)展,特別是移動互聯(lián)網(wǎng)的興起,越來越多的餐館、酒吧等消費(fèi)場所支持“互聯(lián)網(wǎng)+”服務(wù),消費(fèi)者可通過手機(jī)微信、支付寶、或?yàn)g覽器等方式掃描二維碼下單,也可直接通過相關(guān)手機(jī)app軟件提交訂單?,F(xiàn)有技術(shù)中,訂單打印方法存在以下各種問題:(1)采用向服務(wù)器輪詢的方式獲取訂單,這種方式的缺點(diǎn)是輪詢快則服務(wù)器壓力大、性能低,輪詢慢則獲取訂單延時(shí)、用戶體驗(yàn)差。(2)訂單一般保存在本地隊(duì)列中,只能按順序打印,每個(gè)時(shí)刻只能一臺打印機(jī)工作,其它打印機(jī)閑置,在高峰期商戶、用戶體驗(yàn)差。(3)訂單打印過程中,如有網(wǎng)絡(luò)異常發(fā)生(如網(wǎng)絡(luò)閃斷、網(wǎng)絡(luò)延遲等,這些在實(shí)際場景中常常出現(xiàn)),影響后續(xù)所有訂單,造成訂單延誤打印、甚至不打印(漏單),以致用戶等待良久、情緒憤怒,體驗(yàn)極差。(4)打印機(jī)異常時(shí),常有漏單發(fā)生,用戶體驗(yàn)極差。(5)商家想更換打印效果,需在人工在本地修改配置或升級軟件。(6)很多訂單獲取裝置有軟件界面,需要商家交互操作,在有些工作場景(如廚房)使用不便。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的一個(gè)目的在于,提供一種網(wǎng)絡(luò)訂單的本地打印方法,以提供快速、靈活、穩(wěn)定、高效的網(wǎng)絡(luò)訂單的本地打印服務(wù)。
本發(fā)明通過如下技術(shù)方案實(shí)現(xiàn):提供一種網(wǎng)絡(luò)訂單的本地打印方法,從云平臺獲取所述網(wǎng)絡(luò)訂單,根據(jù)所述網(wǎng)絡(luò)訂單的訂單信息適配打印模型,根據(jù)打印模型生成打印任務(wù)并映射到打印任務(wù)樹,遍歷打印任務(wù)樹并向所述多個(gè)打印機(jī)發(fā)送所述打印任務(wù)。
進(jìn)一步地,所述方法還包括接受用戶輸入以對打印模板進(jìn)行修改的步驟。
進(jìn)一步地,所述方法還包括獲取所述多個(gè)打印機(jī)的所述打印機(jī)信息的步驟。
進(jìn)一步地,所述方法還包括搜集來自所述打印機(jī)的打印錯誤信息并向云平臺上傳所述打印錯誤信息的步驟。
進(jìn)一步地,所述方法還包括根據(jù)所述打印錯誤信息恢復(fù)打印任務(wù)的步驟。
本發(fā)明的另一個(gè)目的在于,提供一種網(wǎng)絡(luò)訂單的本地打印系統(tǒng),包括打印服務(wù)器和與打印服務(wù)器通信的多個(gè)打印機(jī),所述服務(wù)器包括:網(wǎng)絡(luò)訂單獲取模塊,用于從云平臺獲取所述網(wǎng)絡(luò)訂單;打印模型適配模塊,用于根據(jù)所述網(wǎng)絡(luò)訂單的訂單信息適配打印模型;打印任務(wù)管理模塊,用于根據(jù)打印模型生成打印任務(wù)并映射到打印任務(wù)樹;打印機(jī)管理模塊,用于遍歷打印任務(wù)樹并向所述多個(gè)打印機(jī)發(fā)送所述打印任務(wù)。
進(jìn)一步地,所述系統(tǒng)還包括打印配置模塊,其用于接受用戶輸入并對打印模板進(jìn)行相應(yīng)的修改。
進(jìn)一步地,所述系統(tǒng)還包括打印機(jī)信息掃描模塊,用于獲取所述多個(gè)打印機(jī)的所述打印機(jī)信息。
進(jìn)一步地,所述系統(tǒng)還包括錯誤搜集模塊,用于搜集來自所述打印機(jī)的打印錯誤信息并上傳至云平臺。
進(jìn)一步地,所述系統(tǒng)還包括故障恢復(fù)模塊,用于根據(jù)打印錯誤信息恢復(fù)打印任務(wù)。
本發(fā)明的有益效果是:一方面,本發(fā)明根據(jù)所述網(wǎng)絡(luò)訂單的所述訂單信息決定對應(yīng)的打印模板和打印機(jī)信息,根據(jù)所述打印模板和打印機(jī)信息生成對應(yīng)的打印模型,并將打印模型映射到打印任務(wù)樹,可以將一個(gè)網(wǎng)絡(luò)訂單分割成多個(gè)打印任務(wù),利用多個(gè)打印機(jī)同時(shí)執(zhí)行打印任務(wù),從而使實(shí)現(xiàn)所述網(wǎng)絡(luò)訂單的多路并行打印,以提高打印效率,并可以按網(wǎng)絡(luò)訂單的類型分配不同的打印機(jī)進(jìn)行打印,使系統(tǒng)更加靈活智能。另一方面,本發(fā)明通過打印偽指令使得不同打印機(jī)硬件對用戶透明,提高了打印的靈活性。
附圖說明
圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施方式的網(wǎng)絡(luò)訂單的本地打印系統(tǒng)的架構(gòu)示意圖;
圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施方式的網(wǎng)絡(luò)訂單的本地打印方法的流程圖;
圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施方式的服務(wù)器的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。通常在此處附圖中描述和示出的本發(fā)明實(shí)施例的組件可以以各種不同的配置來布置和設(shè)計(jì)。因此,以下對在附圖中提供的本發(fā)明的實(shí)施例的詳細(xì)描述并非旨在限制要求保護(hù)的本發(fā)明的范圍,而是僅僅表示本發(fā)明的選定實(shí)施例?;诒景l(fā)明的實(shí)施例,本領(lǐng)域技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施方式的網(wǎng)絡(luò)訂單的本地打印系統(tǒng)的架構(gòu)示意圖。在本實(shí)施例中,系統(tǒng)可以包括打印服務(wù)器1、與打印服務(wù)器1通信的前臺打印機(jī)21、第一打印機(jī)22、第二打印機(jī)23和第三打印機(jī)24。打印服務(wù)器1通過互聯(lián)網(wǎng)3與云平臺4通信連接。第一打印機(jī)22、第二打印機(jī)23和第三打印機(jī)24可以通過局域網(wǎng)7與打印服務(wù)器1通信連接。前臺打印機(jī)21可以是usb打印機(jī)、串口打印機(jī)或并口打印機(jī)。多個(gè)用戶5可以通過用戶端61進(jìn)行下單,用戶端6通過互聯(lián)網(wǎng)3與云平臺4通信連接,云平臺4接收用戶5下單后形成網(wǎng)絡(luò)訂單。打印服務(wù)器1可以通過互聯(lián)網(wǎng)3從云平臺4獲取網(wǎng)絡(luò)訂單,并通過前臺打印機(jī)21、第一打印機(jī)22、第二打印機(jī)23和/或第三打印機(jī)24并行打印多個(gè)網(wǎng)絡(luò)訂單或同一個(gè)網(wǎng)絡(luò)訂單的不同部分。
在一種實(shí)施方式中,系統(tǒng)還可以包括與打印服務(wù)器1連接的本地?cái)?shù)據(jù)庫8,用于存儲網(wǎng)絡(luò)訂單。
在一種實(shí)施方式中,打印服務(wù)器1還可以通過數(shù)據(jù)連接與一個(gè)配置裝置9進(jìn)行通信,以便用戶通過配置裝置9輸入配置信息。配置裝置9可以是各種移動終端,例如手機(jī)、平板電腦等。數(shù)據(jù)連接可以是藍(lán)牙連接、usb連接等等。
圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施方式的網(wǎng)絡(luò)訂單的本地打印方法的流程圖。其可以用于打印服務(wù)器1?;谏鲜鰣D1所提供的系統(tǒng),方法可以包括如下步驟:
步驟s101,打印服務(wù)器1從云平臺4獲取網(wǎng)絡(luò)訂單。
在一個(gè)實(shí)施例中,當(dāng)用戶通過云平臺4下單以后,云平臺4向打印服務(wù)器1推送消息,打印服務(wù)器1收到消息后與云平臺4建立網(wǎng)絡(luò)連接,并從云平臺4接收網(wǎng)絡(luò)訂單。接收的網(wǎng)絡(luò)訂單可以存儲于本地?cái)?shù)據(jù)庫8中。
步驟s102,打印服務(wù)器1根據(jù)網(wǎng)絡(luò)訂單的訂單信息適配打印模型。
打印模型是一種數(shù)據(jù)結(jié)構(gòu),包含了打印機(jī)信息、將要打印的網(wǎng)絡(luò)訂單的訂單信息和打印模板。客戶給商戶下的網(wǎng)絡(luò)訂單的訂單信息可以包括臺號、流水號、訂單號、菜品、配菜、數(shù)量、價(jià)格、優(yōu)惠信息等數(shù)據(jù)。每個(gè)網(wǎng)絡(luò)訂單可以包括多個(gè)不同種類的菜品,例如宮保雞丁、鹵水豆腐、鹽焗雞等等。商戶可以包括多個(gè)檔口和前臺,例如檔口1、檔口2、檔口3等等,每個(gè)檔口各配備了一臺打印機(jī),分別為第一打印機(jī)22、第二打印機(jī)23和第三打印機(jī)24。前臺配備了一個(gè)前臺打印機(jī)21。每種菜品可以對應(yīng)一個(gè)檔口的一個(gè)打印機(jī),例如宮保雞丁在檔口1處理,則第一打印機(jī)22與宮保雞丁菜品對應(yīng)。一個(gè)網(wǎng)絡(luò)訂單可以包括多份同樣的菜品,菜品也可以由多個(gè)檔口分別并行處理,那么包含這個(gè)菜品的網(wǎng)絡(luò)訂單也可以對應(yīng)多個(gè)打印機(jī)以便對同一個(gè)網(wǎng)絡(luò)訂單分別并行打印。商戶往往還需要在前臺的前臺打印機(jī)21打印給客戶的小票,因此訂單信息中的一部分?jǐn)?shù)據(jù)還需要通過前臺打印機(jī)21進(jìn)行打印。打印服務(wù)器1可以根據(jù)訂單的訂單信息與打印機(jī)之間的對應(yīng)關(guān)系,決定用于打印網(wǎng)絡(luò)訂單的打印機(jī),并調(diào)用打印機(jī)相應(yīng)的打印模板從而獲得打印模型。
打印機(jī)的打印機(jī)信息可以包括打印機(jī)的各種參數(shù),例如當(dāng)打印機(jī)是串口打印機(jī)時(shí),打印機(jī)信息包括波特率、數(shù)據(jù)位、奇偶校驗(yàn)位、停止位等數(shù)據(jù),當(dāng)打印機(jī)是網(wǎng)絡(luò)打印機(jī)時(shí),打印機(jī)信息可以包括打印機(jī)的ip地址、端口號等數(shù)據(jù);當(dāng)打印機(jī)是usb打印機(jī)時(shí),打印機(jī)信息可以包括設(shè)備id號等等。
打印模板可以包括打印元素、打印元素的類型、位置和顏色等數(shù)據(jù)。打印元素可以包括字符串打印元素、線條打印元素、圖片打印元素等等。字符串打印元素可以分別為“菜品名稱”、“臺號”、“訂單號”等字符串,分別與訂單信息中的菜品、臺號、訂單號等數(shù)據(jù)相對應(yīng)。
在一些實(shí)施方式中,打印服務(wù)器還提供打印控制偽指令,根據(jù)訂單信息通過打印控制偽指令對相應(yīng)的打印模板進(jìn)行配置,從而屏蔽了各種打印指令的多樣性與復(fù)雜性,對外提供統(tǒng)一的打印控制偽指令,線上訂單結(jié)合這些指令界面可以自定義打印內(nèi)容,輸出豐富的打印效果,因此線上訂單可隨時(shí)根據(jù)商戶需求更換打印效果,而本地軟件無需任何變動。
步驟s103,打印服務(wù)器1根據(jù)打印模型生成打印任務(wù)并映射到打印任務(wù)樹。
可以根據(jù)訂單信息將打印模型分解為若干個(gè)打印任務(wù),由多個(gè)打印機(jī)并行處理這些打印任務(wù)。打印模型可以按照訂單信息中的菜品進(jìn)行分解。例如當(dāng)訂單信息中包含三個(gè)菜品,則可以根據(jù)菜品與打印機(jī)的對應(yīng)關(guān)系生成三個(gè)打印任務(wù),分別交由第一打印機(jī)22、第二打印機(jī)23和第三打印機(jī)24進(jìn)行打印。在給打印機(jī)分配打印任務(wù)時(shí),還可以統(tǒng)計(jì)打印機(jī)的待完成打印任務(wù)的數(shù)量,根據(jù)打印任務(wù)的多少對進(jìn)行均衡分配。
打印任務(wù)樹是一種樹結(jié)構(gòu)的鏈表數(shù)據(jù)結(jié)構(gòu)。打印任務(wù)樹的根結(jié)點(diǎn)下可以包括多個(gè)打印模型節(jié)點(diǎn),每個(gè)打印模型節(jié)點(diǎn)下有若干打印任務(wù)子節(jié)點(diǎn),打印任務(wù)子節(jié)點(diǎn)表示由同一個(gè)打印模型分解出來的打印任務(wù)。將打印任務(wù)映射到打印任務(wù)樹時(shí),可以在根結(jié)點(diǎn)下插入子樹,子樹包括新的打印模型節(jié)點(diǎn)和打印任務(wù)子節(jié)點(diǎn)。
步驟s104,打印服務(wù)器1遍歷打印任務(wù)樹并向所述多個(gè)打印機(jī)發(fā)送所述打印任務(wù)。
進(jìn)一步地,方法還包括接受用戶輸入以對打印設(shè)置進(jìn)行修改的步驟。用戶可以通過配置裝置9向打印服務(wù)器傳輸新的打印設(shè)置。打印設(shè)置可以包括打印模板。通過接收用戶輸入的打印模板來對舊的打印模板進(jìn)行替換。這樣可以使用戶不用改變系統(tǒng)的軟件架構(gòu)就可以對打印的效果進(jìn)行配置。
進(jìn)一步地,方法還包括打印服務(wù)器1獲取多個(gè)打印機(jī)的打印機(jī)信息的步驟。打印服務(wù)器1可以掃描其所連接的多個(gè)打印機(jī),以獲取這些打印機(jī)的打印機(jī)信息。
進(jìn)一步地,方法還包括打印服務(wù)器1搜集來自打印機(jī)的打印錯誤信息并向云平臺4上傳打印錯誤信息的步驟。這些打印錯誤信息可以存儲于云平臺4或者本地?cái)?shù)據(jù)庫8中,以便用戶查閱相關(guān)上下文場景信息,及時(shí)恢復(fù)故障。
進(jìn)一步地,方法還包括打印服務(wù)器1根據(jù)打印錯誤信息恢復(fù)打印任務(wù)的步驟。當(dāng)一個(gè)打印任務(wù)因?yàn)榇蛴″e誤而失敗時(shí),打印服務(wù)器1可以向發(fā)出打印錯誤信息的打印機(jī)重新發(fā)送打印命令,以便恢復(fù)打印失敗的打印任務(wù)。
圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施方式的服務(wù)器的結(jié)構(gòu)示意圖。如圖所示,打印服務(wù)器1包括:所述服務(wù)器包括:網(wǎng)絡(luò)訂單獲取模塊11,用于從云平臺4獲取所述網(wǎng)絡(luò)訂單;打印模型適配模塊12,用于根據(jù)所述網(wǎng)絡(luò)訂單的訂單信息適配打印模型;打印任務(wù)管理模塊13,用于根據(jù)打印模型生成打印任務(wù)并映射到打印任務(wù)樹;打印機(jī)管理模塊14,用于遍歷打印任務(wù)樹并向所述多個(gè)打印機(jī)發(fā)送所述打印任務(wù)。
在一些實(shí)施例中,系統(tǒng)還包括打印配置模塊15,其用于接受用戶輸入并對打印設(shè)置進(jìn)行相應(yīng)的修改。
在一些實(shí)施例中,系統(tǒng)還包括打印機(jī)信息掃描模塊16,用于獲取多個(gè)打印機(jī)的打印機(jī)信息。
在一些實(shí)施例中,系統(tǒng)還包括錯誤搜集模塊17,用于搜集來自打印機(jī)的打印錯誤信息并上傳至云平臺4。
在一些實(shí)施例中,系統(tǒng)還包括故障恢復(fù)模塊18,用于根據(jù)打印錯誤信息恢復(fù)打印任務(wù)。當(dāng)一個(gè)打印任務(wù)因?yàn)榇蛴″e誤而失敗時(shí),故障恢復(fù)模塊可以向發(fā)出打印錯誤信息的打印機(jī)重新發(fā)送打印命令,以便恢復(fù)打印失敗的打印任務(wù)。從而提高了系統(tǒng)的穩(wěn)定性和可靠度。
綜上所述,一方面,本發(fā)明根據(jù)網(wǎng)絡(luò)訂單的訂單信息決定對應(yīng)的打印模板和打印機(jī)信息,根據(jù)打印模板和打印機(jī)信息生成對應(yīng)的打印模型,并將打印模型映射到打印任務(wù)樹,可以將一個(gè)網(wǎng)絡(luò)訂單分割成多個(gè)打印任務(wù),利用多個(gè)打印機(jī)同時(shí)執(zhí)行打印任務(wù),從而使實(shí)現(xiàn)網(wǎng)絡(luò)訂單的多路并行打印,以提高打印效率,并可以按網(wǎng)絡(luò)訂單的類型分配不同的打印機(jī)進(jìn)行打印,使系統(tǒng)更加靈活智能。另一方面,本發(fā)明通過打印偽指令使得不同打印機(jī)硬件對用戶透明,提高了打印的靈活性。
應(yīng)當(dāng)理解,本發(fā)明的實(shí)施方式的各部分可以用硬件、軟件、固件或它們的組合來實(shí)現(xiàn)。在上述實(shí)施方式中,多個(gè)步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實(shí)現(xiàn)。例如,如果用硬件來實(shí)現(xiàn),和在另一實(shí)施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項(xiàng)或他們的組合來實(shí)現(xiàn):具有用于對數(shù)據(jù)信號實(shí)現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(pga),現(xiàn)場可編程門陣列(fpga)等。本技術(shù)領(lǐng)域的普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法攜帶的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,所述的程序可以存儲于一種計(jì)算機(jī)可讀存儲介質(zhì)中,該程序在執(zhí)行時(shí),包括方法實(shí)施例的步驟之一或其組合。
流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個(gè)或更多個(gè)用于實(shí)現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實(shí)施方式的范圍包括另外的實(shí)現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時(shí)的方式或按相反的順序,來執(zhí)行功能,這應(yīng)被本發(fā)明的實(shí)施例所屬技術(shù)領(lǐng)域的技術(shù)人員所理解。
盡管已經(jīng)示出和描述了本發(fā)明的實(shí)施例,本領(lǐng)域的普通技術(shù)人員可以理解:在不脫離本發(fā)明的原理和宗旨的情況下可以對這些實(shí)施例進(jìn)行多種變化、修改、替換和變型,本發(fā)明的范圍由權(quán)利要求及其等同物限定。