黎 逍,姜開永,李文達,林欽鴻,梁浩文
(廣州城市理工學院,廣東 廣州 510000)
零售批發商或小型庫存企業在日常工作中,需要對大宗貨物進行進銷存、訂單管理和貨物分揀等工作,由于接觸的商品類別,進出貨的上下游商家/ 企業較多,往往耗費大量的時間和精力對商品信息進行維護。但由于經營規模或經營成本的限制,很多商家依然采用賬本登記的方式記錄銷存信息等內容,這種方法不僅記錄方式效率低,而且容易出現錯誤。特別是進行商品盤點時還需要人工介入,不僅人工成本較高,而且工作重復,效率低下。隨著信息化在生活工作中的普及,這些商家若想提高效益,改善營銷環境,就需要引入信息化管理措施,以降低訂單和配送錯誤率,實現精準運營。為了契合這類商家的需求,因而研發設計了一款輕量級的商品配送系統。
本系統采用Qt 框架[1]、lua 腳本語言和C++ Boost庫[2]進行開發實現。其中,Qt 實現界面UI 設計;lua 腳本實現系統頂層功能實現,用于改善系統效率和靈活度;Boost 庫作為C++語言的標準庫,以便使用C++擴展的程序庫,用于加快系統開發速度。
本系統的整體結構如圖1 所示。根據商家對業務的需求,本系統劃分了客戶管理、商品管理、單據管理和業務員管理等模塊。其中,客戶管理和業務員管理屬于基礎數據的管理,能夠實現對人員信息的注冊、修改、刪除和顯示等操作;單據管理和商品管理屬于業務數據的管理,能夠實現對商品和訂單的增、刪、改、查操作。

圖1 系統整體結構圖
本系統采用PostgreSQL 數據庫[3],用于存儲數據信息。根據系統整體結構圖中劃分的邏輯功能進行數據庫的設計,本系統需要創建包括客戶信息表、業務員信息表、商品信息表和單據信息表在內的,共4 個數據表,部分表的信息如下:客戶信息表如表1,記錄了客戶名稱、客戶類型、店鋪名稱、客戶區域和客戶地址等內容。

表1 客戶信息表
商品信息表如表2,記錄了商品條碼、商品名稱、規格、單價、系列和倉庫等內容。

表2 商品信息表
單據信息表如表3,記錄了客戶地址、店鋪名稱、業務員、商品信息等內容。

表3 訂單信息表
系統主界面采用簡約的設計風格,如圖2 所示,界面從上到下分為三個部分,第一部分,包含軟件名稱和常用工具,用于燮制窗口關閉、最小化、發送郵件和查看信息等功能;第二部分,包含主功能燮件,用于實現系統的主要功能;第三部分,用于對所選功能進行解釋說明。

圖2 系統主界面
客戶管理集成了客戶瀏覽、添加和刪除操作,點擊客戶管理燮件,打開后的客戶管理對話框如圖3 所示。

圖3 客戶管理
客戶管理對話框的頂部,設置了信息檢索區和功能燮件區,當記錄的客戶數量較多時,可通過檢索區域進行客戶查詢;也可以在該對話框內添加新客戶或者修改現有客戶信息等。
以客戶信息修改為例,點擊客戶信息欄中的一個客戶,使之處于被選中的狀態,然后點擊【客戶信息修改】,即可進入客戶修改對話框,如圖4 所示。

圖4 客戶修改對話框
單據管理是對客戶采購訂單的管理,能夠進行基本的采購操作,如果商品在倉庫的數量不足,將會進行提示,如圖5 所示。

圖5 單據管理
單據管理模塊是本系統的核心模塊,用于實現商家對單據進行統計和管理的功能。主要包括:新增單據、預覽/打印單據和單據處理等功能。新增單據又分新增商品、刪除商品和修改商品等功能;單據處理包括:顯示單據詳細信息,通過店鋪名稱、客戶地址、查詢時間段篩選單據信息,刪除單據等功能。
單據處理模塊在實現時,采用線程池和RAII 機制。程序一開始運行后,便初始化八個線程并使它們處于阻塞狀態。當有一個IO 處理即數據的讀取或者寫入時,就會喚醒一個阻塞的線程處理IO 操作,以便線程在后期執行時不會影響主線程的執行。本系統使用線程池目的是方便管理線程的創建和銷毀,防止反復開辟線程,以降低資源開銷,提高系統運行效率。
商品管理模塊實現對商家的商品進行系統化管理功能,[4-5]錄入系統的商品能夠銷售給客戶,并記錄在訂單上,如圖6 所示。

圖6 商品管理
商品管理模塊的功能包括增加商品、刪除商品和修改商品信息等,可通過商品編碼、商品名稱和商品系列篩選商品的信息,為商家提供便利搜索的功能。其中,增加商品可以為商品增加商品序號、商品條款碼、商品名稱、商品規格單價等信息。商家也可在后臺進行商品數據的錄入。
為了便于數據篩選和查詢,減少索引沖突,商品管理模塊編程時,序號是通過自增索引進行自動生成的。
備份數據模塊,用于備份系統的數據,防止系統崩潰后導致數據丟失的問題產生,如圖7 所示。

圖7 數據備份
點擊備份數據按鍵后,即可將數據備份成獨立的文件,商家可通過查看文件來獲取備份的內容,也可以進行再次存儲和轉發。
在系統的客戶模塊、產品模塊和業務員模塊中,分別錄入對應的數據后,進入單據管理模塊并創建訂單,若能啟動打印機并進行打印操作,則表明系統運行正常,如圖8所示。

圖8 形成的配送單據
本文研究并設計的基于Qt 框架的商品配送系統,采用C/S 結構,能夠在Windows 系統上安裝使用。由于采用C++多線程和線程池技術,對系統的資源開銷小,運行效率高。系統的功能緊湊,從數據錄入到配送訂單生成直至最終打印,操作過程簡單,形成的訂單及其內容準確,打印輸出紙質訂單便于商家核對和保存。該系統的應用,對于提升商家的信息化管理和精準營銷,具有一定的推動作用。