費漢明
(中國鐵道科學研究院 研究生部,北京100081)
鐵路12306互聯網訂餐平臺作為中國鐵路高鐵列車互聯網訂餐業務的支撐平臺,2017年7月17日上線以來,得到運營各方的一致認可,受到廣大旅客的普遍歡迎。該平臺在不斷優化流程、完善體驗的基礎上,陸續開通了新的服務[1]。上線初期,平臺僅支持站餐預訂服務,即旅客在乘坐高鐵列車出行時,途經開通業務的車站時,可提前預訂該車站商家供應的餐食。預訂成功后,列車在到達訂餐站時,由車站配送人員將餐食送上列車,再由列車餐服人員將餐食送至旅客手中。2018年1月,平臺開通特產預訂服務,旅客還可以預訂車站商家的零食小吃、旅行用品等。2018年5月,平臺開通高鐵列車商品預訂服務,旅客在乘坐高鐵列車出行時,可以提前預訂列車經營的餐食、商品。2018年11月,平臺開通高鐵列車商品實時銷售服務,即旅客在乘車途中,可以實時在線購買高鐵列車經營的餐食、商品[2]。
掃碼點餐在社會上的普及[3]為高鐵列車經營提供了新的思路,高鐵列車也可以通過開展掃碼點餐服務來提升旅客購物、用餐體驗和經營效益[4]。鐵路12306互聯網訂餐平臺列車商品實時銷售服務的開通,為高鐵列車掃碼點餐系統的技術實現提供了便利條件。本文分析并解決掃碼點餐運用于高鐵列車的技術難點,基于鐵路12306互聯網訂餐平臺,設計并實現了用于高鐵列車經營的掃碼點餐系統。
高鐵列車掃碼點餐系統基于鐵路12306互聯網訂餐平臺既有體系,其架構如圖1所示。

圖1 掃碼點餐系統架構
1.1.1 展示層
展示層主要為運營人員、餐服人員、乘客提供訪問掃碼點餐系統的入口。運營人員通過PC 機瀏覽器訪問鐵路12306互聯網訂餐平臺既有子系統,進行商家、商品、銷售投放、運營相關基礎信息的維護和對帳結算工作;訪問掃碼點餐系統運營子系統,進行車底、二維碼相關信息的維護和店鋪運營管理工作;餐服人員通過掌上電腦(PDA)中的高鐵配餐應用程序(App)進行列車經營相關操作;乘客通過手機App掃描列車上的點餐碼,打開點餐H5頁面進行點餐相關操作。
1.1.2 應用層
應用層是掃碼點餐系統的管理后臺,負責具體實現掃碼點餐系統的各種業務邏輯,通過車底管理、二維碼管理、店鋪管理和平臺既有應用服務向運營人員、餐服人員、乘客提供掃碼點餐相關的各種應用服務。
1.1.3 數據層
數據層用于向應用層提供掃碼點餐系統產生的各類數據的存儲和查詢服務,包括用戶、組織、權限、車底、二維碼等基礎數據,以及店鋪、商品、訂單等業務數據和訂單查詢緩存數據。數據層延用了鐵路12306互聯網訂餐平臺原有的數據架構,使用數據庫讀寫分離技術。
1.1.4 接口層
接口層用于集成各服務子系統和第三方系統間數據的傳輸,保證數據的一致性、可靠性和安全性,向數據層和應用層提供接口服務,包括數據庫應用程序接口(API,ApplicationProgramingInterface)、第三方接口、文件解析導入接口和文件傳輸協議(FTP,FileTransferProtocol)等。接口層延用鐵路互聯網訂餐系統原有的架構設計,在此基礎上擴展了掃碼點餐系統需要的各種接口服務。
1.2.1 車型信息維護
鐵路投入運營的高鐵列車有多種型號,如CRH5A_586,CRH2A_610,CRH380A_556等。不同型號的高鐵列車,定員、車廂編組、車廂席位各不相同。車型信息維護功能主要是維護每種車型的車廂定員、車廂編組、車廂席位等信息,為二維碼生成提供準確的基礎數據。
1.2.2 車底信息維護
車底號是每組高鐵列車的唯一標識。車底信息維護功能主要用于維護每輛高鐵列車的車型、配屬等信息,用于二維碼生成和掃碼點餐的運營。
1.2.3 車底開行信息查詢
在高鐵運營中,不同日期,車底擔當的車次不同。車底開行信息查詢功能提供每組車每個開行日期的車次、始發終到時間、是否重聯等信息,為掃碼點餐運營提供車底車次關系、是否重聯開行等數據支撐。
1.2.4 二維碼管理
掃碼點餐系統需要開店和點餐兩種用途的二維碼。開店碼包含加密的高鐵列車的車底號信息,且唯一對應,用于餐服人員啟動當前列車的掃碼點餐服務。點餐碼與每個列車座位唯一對應,每個點餐碼包含加密的車底、車廂、排、座等信息,用于旅客進行掃碼點餐。通過使用唯一的點餐碼,方便配餐員配餐,且精準定位每個點餐旅客的餐品,減少配餐出錯率[5]。
二維碼管理主要包括二維碼生成和二維碼解析。二維碼生成主要是實現開店碼和點餐碼的生成、導出,為二維碼標簽的制作提供數據和二維碼圖片。二維碼解析主要是解析二維碼所包含的信息及掃碼所用的App,并對非法的App 進行訪問限制[6],為開店和點餐提供業務支撐。
1.2.5 開店與關店
控制列車掃碼點餐服務的狀態,開店后,開啟掃碼點餐服務,關店后,停止掃碼點餐服務。餐服人員使用高鐵配餐App 進行開店與關店操作。
1.2.6 掃碼下單
列車開店后,乘坐該列車的旅客通過系統支持的手機App 掃描點餐碼,進入掃碼點餐H5頁面,進行餐品查詢、下單、在線支付[7]、訂單查詢、訂單退訂、取消等操作。
1.2.7 配送管理
配送管理主要提供有效訂單的配送通知、配送訂單的查詢及處理等功能,供餐服人員方便、及時地處理旅客掃碼點餐產生的有效訂單。
1.2.8 車底開店信息查詢
用于從車底或車次的角度,查詢列車開展掃碼點餐經營活動的歷史記錄或實時狀態,是掃碼點餐運營和管理的重要支撐。
1.2.9 其他功能
掃碼點餐系統還具有用于維護人員機構、角色權限信息的運營管理功能,用于維護商品及其銷售投放的商品管理功能,以及對帳、結算等功能。這些功能是鐵路12306互聯網訂餐平臺的既有功能,在掃碼點餐系統中,根據新的業務需求對這些功能進行了擴展。
掃碼點餐在社會上已非常普及,但是高鐵列車的餐飲經營環境較地面上的餐飲店經營環境復雜得多,要將其運用于高鐵列車的餐飲經營,并且有良好的用戶體驗,有許多技術難點需要解決。
在鐵路旅客運輸中,高鐵列車以車次的形式呈現,車次的概念被普遍認知。但實際的高鐵運營中,車次僅是個邏輯概念,同一車次在不同日期大多由不同的車底來擔當。開展掃碼點餐,二維碼標簽貼在物理的車底上,而不是貼在邏輯的車次上,但在向旅客提供掃碼點餐服務時,確又是建立在邏輯的車次上,而不是物理的車底上。
解決方案:掃碼點餐系統在開店功能中增加了車次與車底綁定操作與核驗環節。在餐服人員發起開店請求時,高鐵配餐App把通過開店碼獲取到的車底信息和餐服人員輸入的車次信息同時傳給管理后臺,管理后臺通過查詢車底開行信息核對請求中的車底、車次信息是否一致[8],并據此對餐服人員的開店請求做出不同的響應。
在高鐵運營中,列車發生上、下行變化時,車頭、車尾變化,車廂號和座位號也隨之變化。以常見的8節車廂的短編列車為例,1號車廂變為8號車廂,8號車廂變為1號車廂。座位號變化以常見的二等座三連座為例,A 座變為C座,C座變為A座。但座位碼標簽是固定地貼在座位上的,如果再按原先的座位信息進行配送,會造成配送錯誤,浪費人力和時間,用戶體驗差。
解決方案:掃碼點餐系統增加了車廂號、座位號計算環節。在開店功能中增加了車廂正序、反序選擇操作。正序是指物理車廂號與邏輯車廂號一致,反序是指物理車廂號與邏輯車廂號相反。開店后,管理后臺根據車廂正反序信息對收到的點餐碼信息中的車廂號、座位號進行重新計算。
在高鐵運營中,為了增強運力,還存在兩組8節車廂的高鐵列車連接在一起組成一列列車開行的情況,即重聯開行[9]。重聯開行時,一個車次對應兩個不同的車底、兩個餐車、兩個餐服班組、兩個開店碼,而且其中一個車底的邏輯車廂號變成了9到16號。若按原有邏輯進行開店,將無法開展正常的經營。
解決方案:掃碼點餐系統開店功能增加了重聯車開行算法,將一個重聯車次按前后車分成兩個虛擬的車次,每個虛擬車次都可作為一家店鋪進行經營。在開店功能中增加了是否重聯開行的選擇操作,以及重聯開行時前車、后車的選擇,前車是指1到8號車廂對應的車底,后車是指9到16號車廂對應的車底。開店時,前后車餐服員分別進行開店操作,管理后臺收到請求后開啟相應的店鋪。開店后,管理后臺根據收到的點餐碼信息中的車底號判斷是前車還是后車的請求,再對請求作出相應的處理。
列車運行中,由于列車的封閉性和移動性,列車經營的各種餐品的庫存有限。提供掃碼點餐服務后,列車上餐品的線上、線下銷售同步進行,當某種餐品的庫存量較小時,就會發生線上、線下銷售同一批餐品的沖突問題,從而導致旅客下單后,餐服人員無貨可送。若要求餐服人員實時維護掃碼點餐系統中各餐品的庫存,既費時又費力。
解決方案:掃碼點餐系統開發了庫存接口,將線下銷售使用的餐飲企業資源計劃(ERP,Enterprise ResourcePlanning)系統與線上銷售的掃碼點餐系統之間的庫存對接[10]。掃碼點餐發生訂單時,首先通過餐飲ERP 系統查詢商品庫存并鎖定。訂單處理完畢后,再通過餐飲ERP 系統進行商品庫存的扣減或釋放。
基于高鐵列車掃碼點餐系統開展掃碼點餐服務的主要流程如圖2所示。

圖2 高鐵列車掃碼點餐服務流程
開展掃碼點餐經營前,在掃碼點餐系統中維護好相關的基礎信息,如車底基礎信息、車底運行信息、商家信息、商品銷售投放信息等。
維護好基礎信息后,通過掃碼點餐系統生成開店碼和座位碼,并按系統規則粘貼到車底相應位置。
列車始發前,餐服人員通過PDA 登錄高鐵配餐App,掃描列車上的開店碼,獲取車底信息,輸入始發車次,選擇車廂方向(正、反序),選擇是否重聯開行,重聯開行時,選擇車廂號(大、小號),再將上述信息發送給管理后臺,請求開店。
管理后臺核驗開店請求中的車底與車次對應關系與系統中的車底運行信息是否一致:若一致,則將車底信息和車次信息綁定并打開店鋪,允許進行掃碼點餐銷售;若不一致,管理后臺通過高鐵配餐App 提醒餐服人員,車底與車次信息可能有誤,請重新核對,若餐服人員核對信息與實際情況一致,可請求強制開店。管理后臺對強制開店請求不再進行信息核驗,直接打開店鋪,這是因為在實際的高鐵運營中,存在啟用熱備車底、更換車次擔當的情況。
餐服人員開店后,乘客方可使用系統支持的掃碼App(鐵路12306、京東、微信、支付寶等)掃描座位上的點餐碼,掃碼App 讀取點餐碼信息,并向后臺發起掃碼點餐服務請求,管理后臺響應請求,解析點餐碼信息,將對應的車次店鋪信息、商品信息、座位信息以H5頁面的形式返回掃碼App,旅客即可進入店鋪,進行商品點選,之后在購物車中提交訂單。管理后臺收到訂單信息后,校驗商品庫存,庫存校驗成功后,鎖定庫存并通知旅客下單成功,提醒旅客在有效時間內進行線上付款。旅客線上付款成功后,下單成功,等待收餐。
旅客下單成功后,管理后臺通過高鐵配餐App通知餐服人員,餐服人員收到通知后查看訂單信息,據此進行備餐、配送至下單旅客。完成配送后,餐服人員通過高鐵配餐App將訂單修改為完成狀態。
在列車當前車次終到前,餐服人員通過高鐵配餐App向管理后臺發起關店請求,管理后臺收到請求后進行關店校驗及關店操作。關店后,平臺運營人員根據本次列車的掃碼點餐經營數據進行對帳、結算。
2019年6月以來,高鐵列車掃碼點餐系統先后在鄭州、武漢、南昌、蘭州等鐵路局集團有限公司擔當的部分高鐵列車上運用。在開通掃碼點餐業務的高鐵列車的餐吧上粘貼一張開店碼標簽,并在車廂每個座位扶手上粘貼一張點餐碼標簽。餐服人員開店后,旅客在乘車途中有購物需求時,只需用手機掃一掃扶手上的點餐碼,即可進行點餐、購物。餐服人員收到訂單通知后,在30 min 內將商品送到旅客手中。
高鐵列車掃碼點餐系統應用以來,受到了旅客和高鐵列車經營企業的一致歡迎。掃碼點餐避免了旅客購物時的等待和走動,為旅客節省了購餐時間,提高了用餐效率,提升了用餐體驗,同時,為經營商家優化了經營模式,節約了人力成本,增加了商品銷量,提升了服務形象。
本文基于鐵路12306互聯網訂餐平臺既有架構和功能,借鑒社會掃碼點餐的模式,結合高鐵列車運營和運行實際,分析高鐵列車開展掃碼點餐的難點,給出解決方案,設計并實現了用于高鐵列車經營的掃碼點餐系統,系統已在部分高鐵列車上得以應用。系統的應用,打通了高鐵列車線上經營與線下經營的“堵點”,解決了將“掃碼點餐”技術應用于高鐵列車餐飲經營的難點,方便了旅客在乘車途中進行列車購物,提高了列車經營效益及客運服務質量,進一步推進了高鐵網與互聯網的“雙網融合”。下一步,高鐵列車掃碼點餐系統將優化開店操作、增加配送路徑優化功能,以進一步提高餐服人員的工作效率,節約人力成本,增加經營效益。另外,在高鐵列車掃碼點餐系統得到一定的推廣后,還將充分利用掃碼點餐這一入口,向旅客提供休閑娛樂、酒店預訂、網絡約車等各種延伸服務,以進一步提升旅客乘車體驗。