文/張志浩 張麗
隨著人們生活水平的提高和電子商務的壯大,物流行業得到了快速發展。物流業是包含倉儲、運輸、配送、流通加工等一系列活動的行業,其中倉儲在降本增效上發揮著重要的作用。如何對倉儲進行科學管理,建立倉儲管理系統,成為物流快速流通和資金流快速運轉的關鍵因素。
模塊、視圖、控制器是MVC設計模式的三個重要模塊,不同模塊完成不同的功能。控制器的功能是獲取客戶端發送的請求參數信息,并調用模型查詢數據,獲取數據,將查詢到的數據交給視圖展示。模型的功能是進行業務邏輯操作,比如查詢數據庫,封裝數據等。視圖的功能比較單一,只是用來展示數據。早期的Java項目沒有MVC模式,在頁面中同時編寫大量的代碼邏輯以及超文本標簽,導致項目難以閱讀和維護。Javaee或Java web的項目開發借鑒MVC開發模式之后,使程序設計更加合理,大大降低程序間的耦合度,方便項目維護、分工和復用。
B/S架構是一種開發架構,開發架構有兩種,分別是基于客戶端/服務器的C/S架構和基于瀏覽器/服務器的B/S架構。Java對于服務器端的開發,一般使用B/S架構。B/S架構分為三層架構,第一層是表現層,主要是與瀏覽器進行數據交互,獲取請求的參數信息,調用業務層的方法,給瀏覽器返回與請求相對應的數據。第二層為業務層,處理業務需求,調用持久層邏輯。第三層是持久層,進行與數據庫有關的操作,根據傳遞過來的參數,對數據庫中的數據進行查詢,保存等操作。一次瀏覽器與服務器的交互流程:(1)瀏覽器給服務器端發送請求,請求先到達表現層,表現層請求參數,調用業務層。(2)業務層對需求進行處理,調用持久層的程序。(3)持久層與數據庫進行交互,并返回數據查詢結果。(4)最終表現層拿到返回的數據,把響應結果回寫給瀏覽器,用戶從瀏覽器直觀的看到響應的結果,一次交互結束。
基于B/S和MVC模式的物流倉儲管理系統,以Servlet為控制器,JavaBean為模型,JSP作為視圖,采用B/S三層分布式系統控制流程模式,將瀏覽器作為客戶端,客戶端請求服務器資源,Servlet獲取客戶端的請求信息,調用JavaBean,把獲取的數據封裝起來,調用業務層的方法,進行業務操作,例如查詢數據庫數據,把數據返回給Servlet,Servlet再把返回的數據回寫給JSP,最終對瀏覽器客戶端做出對應的響應。基于B/S和MVC模式的物流倉儲管理系統流程控制圖如圖1所示。
在開發中使用MVC開發模式雖然有很多優點,但是同時也增加了代碼的復雜性,對于一些相對簡單的web程序,如果嚴格地使用MVC設計模型,會導致一個JSP視圖有多個響應數據訪問,產生重復訪問問題,影響系統的執行效率。
因此,本系統在表現層并沒有嚴格的遵循MVC設計模式,在持久層與數據庫進行交互時,將持久層劃分為多個層,使用工廠模式完成層與層之間的交互,增強了系統對不同數據庫的兼容性,避免因為更改數據庫而對持久層中的底層代碼進行更改,從而降低了程序的耦合度,提高了程序的復用性,使程序更方便維護和擴展。
表現層:用戶在界面輸入和輸出數據時,表現層顯示頁面的方式是Web方式,表現層的頁面設計要符合用戶的操作習慣,幫助用戶了解當前項目界面以及系統中信息數據的進度。
業務層:為表現層包裝的請求數據的具體的調用方法,處理表現成的業務需求,用戶通過瀏覽器發送請求的參數數據是隨意變更的,數據經過表現層獲取發給業務層的業務需求也是變動的,邏輯層的調用方法設計應該能夠為表現層的請求提供充分的數據支持。
持久層:通過業務層的調用,根據業務層傳遞的參數信息,訪問數據庫的數據,對于存在的數據返回查詢數據的結果,對不存在的數據進行保存或者返回數據不存在的信息,持久層對數據庫的操作通過兩種方式進行,一是通過解析XML文件,一是通過EF技術,向業務層和表現層響應實體類以及對傳遞的數據進行操作。

圖1 物流倉儲管理系統流程控制
基于B/S和MVC開發模式的物流倉儲管理系統分為系統管理模塊、補貨管理、出入庫管理、移庫管理四個功能模塊,按照不同的邏輯處理系統中的數據,系統管理對系統靜態數據、庫存初始數據、用戶數據的進行設置與管理,補貨管理對貨物的補貨量、補貨策略、補貨單進行管理,出入庫管理完成出庫和入庫的業務管理以及相應庫存數據的查詢,移庫管理對貨物的移庫業務進行調度管理。
基于MVC設計模式的物流倉儲管理系統總體框架如圖2所示。
采用MySQL數據庫,通過對系統數據需求分析,建立數據庫統計系統中的數據,對系統中的有效數據信息建立數據表,主要用于查找,修改和存儲系統中出現的員工信息,庫存信息,補貨信息,出入庫信息等數據。倉儲管理系統運行之前需要將系統的基礎資料數據錄入到系統數據庫,并根據不同的系統需求設計不同的邏輯,將數據表按一對一、一對多、多對多的關系關聯起來,例如員工表和部門表。員工表與部門表的實體關系圖如圖3所示。
本系統按照Javaweb開發原理,采用MVC開發模式和B/S三層開發架構,使用IDEA作為集成開發環境,MySQL作為關系型數據庫,完成系統開發。
倉儲物流管理系統是不允許用戶通過注冊登錄的管理系統,只有擁有登錄權限的員工才可以登陸系統,登錄權限由最高權限系統管理員分配系統登陸相關的信息授權。
用戶登錄倉儲管理系統,系統回自動彈出登錄頁面,用戶輸入正確的登錄信息及驗證碼登錄系統,登錄成功進入系統首頁。普通員工登錄系統,無法修改個人信息,只能修改登錄相關的用戶信息,如登錄名和登錄密碼,只有系統管理員有權限修改員工信息,以及分配給不同部門的員工對數據庫操作的權限,普通用戶只能在權限內通過系統對系統中的數據進行操作。
使用倉儲物流管理系統,需要將系統需要的基礎數據如員工信息、部門信息、貨物信息、客戶信息、供應商信息等數據錄入系統中,數據錄入可以通過系統輸入后保存到數據庫,也可以直接將基礎數據導入數據庫,登錄的用戶根據權限對系統基礎數據進行業務操作。
出入庫管理主要是對進入倉庫的貨物進行統計,核查貨物出入庫的單據以及貨物的調度。其中入庫調度并不是真實對貨物進行出入庫操作,而是在貨物入庫前對貨物進行調度,入庫管理是對貨物進行真實的出入庫操作。

圖2 物流倉儲管理系統結構框架
為了保證基于B/S和MVC開發模式的物流倉儲管理系統能夠達到預期的功能實現,需要對系統進行測試,主要是測試系統能否對不同的業務操作做出對應的響應,包括對系統的輸入測試、操作測試、GUI測試、鏈接測試以及功能測試等等。輸入測試:測試系統能否正確識別輸入的語言,系統是否出現亂碼。操作測試:測試系統的各個界面的操作按鈕是否有效,是否能做出正確的響應。GIU測試:在系統的不同的頁面上能否執行用戶輸入的語句,是否能正確響應頁面的布局和響應數據的結果,達到用戶期望的結果。
定期對基于B/S和MVC開發模式的物流倉儲管理系統進行系統維護是為了保證系統能夠持續的正常使用,通過對系統運行時出現bug進行修復,保證系統的穩定性以及安全性,同時為了提升系統的性能,添加更全面的功能,還需要對系統進行更新,每一次修復,更新之后都需要對系統進行測試。物流倉儲管理系統的系統維護主要包括:對系統中的數據進行修改,清理系統中出現的無效數據,比如清理離職員工的信息、變動的部門信息等;對系統中運行效率低的程序進行更改,從而提升系統運行速度等等,為信息化倉儲管理的工程開發提供可行性方案。
基于B/S和MVC開發模式的物流倉儲管理系統所使用的項目框架和開發邏輯,滿足現代物流倉儲管理的流程,對物流行業起到了降本增效的作用。根據項目的控制流程和結構層次制定的開發邏輯,為倉儲管理信息化工程的開發提供可行性方案。