張敏 郭衛(wèi)江 唐奇 李明星 賀斯慧
【摘 要】目前,第三方物流平臺的建設(shè)規(guī)劃尤其是自動化系統(tǒng)軟件較缺乏,無法滿足企業(yè)在信息化時代的發(fā)展要求。文章在分析第三方物流管理系統(tǒng)的各個基礎(chǔ)功能模塊需求后,提出了一種基于MVC框架的第三方物流管理系統(tǒng),并介紹了系統(tǒng)的設(shè)計原理與實現(xiàn)方法。
【關(guān)鍵詞】第三方物流;物流管理;B/S;AJAX
【中圖分類號】TP311.52 【文獻標(biāo)識碼】A 【文章編號】1674-0688(2019)09-0093-03
0 引言
當(dāng)前,移動互聯(lián)網(wǎng)的快速發(fā)展和智能手機等移動終端的普及改變了人們傳統(tǒng)的購物方式。天貓、京東、蘇寧易購等電子商務(wù)平臺已經(jīng)成為人們購物的主要渠道,并且伴隨著O2O商業(yè)模式的不斷推廣,第三方物流平臺也展現(xiàn)出蓬勃發(fā)展的態(tài)勢。但是,由于現(xiàn)階段第三方物流平臺的建設(shè)規(guī)劃尤其是自動化系統(tǒng)軟件的缺乏,大部分平臺還停留在傳統(tǒng)“進銷存”管理模式,已經(jīng)無法滿足日益增長的客戶定制化需求,導(dǎo)致第三方物流平臺面臨巨大的挑戰(zhàn)。為此,筆者設(shè)計并實現(xiàn)了基于B/S的第三方物流管理系統(tǒng),該系統(tǒng)為第三方物流平臺搭建一個暢通渠道,減少物流管理中繁雜的業(yè)務(wù)流程、提高管理的時效性,依托互聯(lián)網(wǎng)提供企業(yè)自身服務(wù)能力與管理效率。
1 系統(tǒng)開發(fā)模式與技術(shù)
1.1 采用的開發(fā)模式及其特點
目前,主流的開發(fā)模式有C/S(Client/Server)與B/S(Browser/Server)兩種,前者由客戶端和服務(wù)端組成,后者嚴格意義上是前者的一個特殊實現(xiàn),以瀏覽器代替客戶端,從而實現(xiàn)“零客戶端”的模式。為了滿足不同設(shè)備(PC、智能手機、平板電腦)均能訪問,系統(tǒng)采用B/S模式。
1.2 MVC框架結(jié)構(gòu)
為了將數(shù)據(jù)與業(yè)務(wù)隔離,系統(tǒng)設(shè)計時嚴格參照MVC(Model-View-Controller)框架結(jié)構(gòu),將系統(tǒng)分為模型、控制、視圖3層。其中,由Struts2作為核心控制層,響應(yīng)用戶請求,并且根據(jù)用戶請求調(diào)用響應(yīng)的模型層,最終將結(jié)果反饋給Jsp扮演的視圖層進行解析展示。
1.2.1 AJAX
AJAX(Asynchronous JavaScript And XML)是一種異步刷新的輕量級js框架,解決傳統(tǒng)Web應(yīng)用無法局部刷新的缺點,通過瀏覽器內(nèi)置對象完成服務(wù)器數(shù)據(jù)的獲取和刷新。
1.2.2 數(shù)據(jù)連接池
隨著電商文化的推廣,電商平臺時常推出諸如“雙十一”“六·一八”等大型購物節(jié),此類購物節(jié)往往會吸引億萬群眾參與,訂單數(shù)據(jù)也會呈現(xiàn)井噴式增長。第三方物流平臺訂單數(shù)據(jù)也會隨之增加,會出現(xiàn)數(shù)據(jù)訪問高峰,為此需要系統(tǒng)具有較高的并發(fā)性。由于傳統(tǒng)的數(shù)據(jù)請求方式需要每次請求都進行身份驗證,導(dǎo)致耗費大量的時間成本與空間成本,無法保證系統(tǒng)的并發(fā)性。C3P0是一款實現(xiàn)了數(shù)據(jù)源和JNDI綁定的開源數(shù)據(jù)連接池,其原理是在數(shù)據(jù)初始化時,通過解析config.xml文件,獲取最大連接對象、空閑檢查等參數(shù),然后根據(jù)參數(shù)創(chuàng)建連接池。當(dāng)客戶端發(fā)送數(shù)據(jù)請求時,系統(tǒng)根據(jù)空閑算法在連接池中遍歷出空閑的連接對象,并將其反饋給客戶端,建立數(shù)據(jù)連接。當(dāng)客戶端斷開數(shù)據(jù)連接時,系統(tǒng)不是將連接對象銷毀,而是將其修改為空閑狀態(tài),等待新的請求,進而實現(xiàn)系統(tǒng)的高并發(fā)數(shù)據(jù)訪問。
2 系統(tǒng)設(shè)計
2.1 功能模塊設(shè)計
系統(tǒng)功能包含了物流管理的所有流程,從業(yè)務(wù)屬性分為用戶管理模塊、訂單管理模塊、倉儲模塊、運輸管理模塊、權(quán)限管理、數(shù)據(jù)分析、系統(tǒng)管理等功能。用戶管理模塊主要是完成用戶注冊、登錄、基本信息維護等功能;訂單管理模塊主要是包含訂單創(chuàng)建、訂單狀態(tài)管理、訂單關(guān)閉等功能;倉儲模塊主要包含倉儲容量查詢、入庫、出庫、倉儲預(yù)警等功能;運輸管理模塊主要包含運輸任務(wù)分配、車輛調(diào)度管理、狀態(tài)管理等功能;權(quán)限管理主要是對系統(tǒng)角色進行分配管理,不同角色擁有不同的職能權(quán)限;數(shù)據(jù)分析則主要是完成數(shù)據(jù)匯總分析,形成日報表、周報表、月報表等報表,后期還可加入數(shù)據(jù)挖掘,為決策預(yù)警提供數(shù)據(jù)決策支撐;系統(tǒng)管理則主要是完成系統(tǒng)基礎(chǔ)信息維護、功能模塊管理等。系統(tǒng)進行功能模塊設(shè)計如圖1所示。
2.2 核心流程設(shè)計
在整個物流管理系統(tǒng)中,整個系統(tǒng)從用戶提交訂單到用戶接受到貨物關(guān)閉訂單為一個流程。當(dāng)用戶通過客戶端提出需求,填寫相應(yīng)信息創(chuàng)建訂單,確定信息無誤后提交訂單,系統(tǒng)對訂單進行審核,審核通過后,將訂單信息傳遞給倉儲管理,為訂單分配臨時存儲計劃,同時通知運輸管理模塊開始工作,其從訂單管理模塊中導(dǎo)入訂單數(shù)據(jù),并且根據(jù)出發(fā)地與目的地為關(guān)鍵字,進行路線規(guī)劃,規(guī)劃好路線后將路線計劃上報,管理員進行審核,審核通過后,根據(jù)目的地、物品大小、物品類型、物品重量安排運輸車輛,生成車輛裝載信息,完成裝車后,調(diào)用車輛GPS管理模塊監(jiān)控追蹤車輛狀況,到達目的后,生成取貨報表,通知用戶取件,用戶完成取件后,將結(jié)果反饋回訂單管理模塊,結(jié)束訂單。
2.3 數(shù)據(jù)庫設(shè)計
經(jīng)過對第三方物流管理系統(tǒng)數(shù)據(jù)流分析之后,按照三范式規(guī)范設(shè)計了系統(tǒng)中的數(shù)據(jù)表,包括存儲用戶個人信息的user表(主要包括用戶ID、用戶名、地址、聯(lián)系電話等),存儲訂單實體的order表(訂單編號、創(chuàng)建時間、訂單內(nèi)容、狀態(tài)等),存儲記錄倉儲入庫、出庫、庫存等信息的depository表(編號、庫存量、庫容量、倉儲狀態(tài)等),存儲車輛信息與車輛行程的car表(編號、車輛ID、司機ID、行程ID、狀態(tài)等),三級權(quán)限管理authority表(編號、權(quán)限級別、啟用狀態(tài)、可執(zhí)行操作列表等),部門管理department表(編號、名稱、領(lǐng)導(dǎo)ID等),系統(tǒng)管理功能定制function_role表(編號、功能名稱、功能權(quán)限級別、功能模塊ID等)。由于每張數(shù)據(jù)表都有一個entity與之對應(yīng),所以表中的字段類型、取值范圍、外鍵等都由實體對象具體的屬性和關(guān)系確定。
3 系統(tǒng)主要模塊實現(xiàn)
3.1 用戶管理
用戶管理主要是完成用戶的注冊、登錄及基礎(chǔ)信息維護。用戶在注冊頁面進行注冊,注冊一共分為3個步驟填寫基本信息、賬號激活、完成注冊。第一步,完成用戶的基本信息的填寫與校驗,生成未激活賬號并根據(jù)注冊郵箱發(fā)送激活驗證碼。第二步,根據(jù)郵箱收到的郵箱驗證碼進行用戶激活驗證。如果前兩步都成功則注冊成功。已注冊用戶可以在登錄界面進行登錄驗證,成功登錄系統(tǒng)可以進行物流配送活動,以及對個人信息進行維護等操作。以用戶登錄為例說明實現(xiàn)過程。
用戶注冊分為三步:第一步填寫基本信息,在填寫信息的時候,每填一項都利用AJAX進行數(shù)據(jù)驗證。第二步主要是用戶根據(jù)短信驗證碼進行賬號激活。第三步用戶注冊成功,提供返回系統(tǒng)主頁、物流配送與個人信息維護等快捷入口。用戶注冊主要依靠AJAX、JS與Struts實現(xiàn),在用戶填寫基本信息時通過AJAX與JS實現(xiàn)基本信息的驗證,為了防止機器人的惡意攻擊,系統(tǒng)提供動態(tài)驗證碼。驗證碼的實現(xiàn)主要是regist_form.jsp通過AJAX向服務(wù)器端發(fā)送請求。服務(wù)器端首先調(diào)用ValidateCode類生成驗證碼圖片并將圖片轉(zhuǎn)換為IO流存放在session對象中,然后是ValidateCodeAction類將驗證碼以Json的方式返回給AJAX,然后JSP解析Json數(shù)據(jù),完成驗證碼顯示,驗證碼的驗證則是驗證碼顯示的逆過程。
3.2 訂單管理
訂單管理分為訂單創(chuàng)建、訂單查詢、訂單維護3個部分;以訂單創(chuàng)建為例,用戶通過填寫物流訂單相關(guān)信息并提交,首先通過JavaScript對用戶填寫的基礎(chǔ)信息進行校驗,校驗成功后將數(shù)據(jù)通過AJAX異步提交給服務(wù)器,服務(wù)器會對訂單進行基礎(chǔ)審核(諸如目的地是否可達、是否存在違禁物品),然后將審核結(jié)果以json的形式反饋給瀏覽器解析給用戶,用戶在核定基本信息后確認訂單,完成訂單創(chuàng)建。
3.3 運輸管理
運輸管理是根據(jù)訂單管理中的訂單進行物流配送管理的一個模塊,是整個系統(tǒng)中核心的管理模塊。主要由最新訂單、通知公告、車輛監(jiān)控、司機管理、訂單實時追蹤等模塊組成。以訂單實時追蹤為例,當(dāng)用戶通過瀏覽器向服務(wù)器發(fā)送Http請求后,系統(tǒng)調(diào)用filter對請求進行分析轉(zhuǎn)發(fā)給對應(yīng)的Action類,在Action類中再調(diào)用相應(yīng)的Service方法,Service方法調(diào)用實現(xiàn)了數(shù)據(jù)庫操作的DAO方法完成數(shù)據(jù)操作,并將結(jié)果封裝到j(luò)son中返回給瀏覽器解析展示。關(guān)鍵代碼如圖2所示。
3.4 路線規(guī)劃與審核
路線規(guī)劃與審核是運輸模塊中的核心功能,運輸工作人員首先點擊路線管理中的路線規(guī)劃按鈕,通過百度地圖JavaScript API中的new BMap.Map("allmap")方法獲得百度地圖實例,接著調(diào)用map.centerAndZoom(new BMap.Point(當(dāng)前經(jīng)度,當(dāng)前緯度),縮放比例)方法初始化地圖,并根據(jù)當(dāng)前經(jīng)緯度為中心,展示地圖,操作員然后通過鼠標(biāo)選擇目的地時調(diào)用setCurrentCity()方法完成目的地的選定,然后通過map.addControl(new BMap.MapTypeControl())方法編輯沿線??奎c,完成編輯后,點擊上傳按鈕,將數(shù)據(jù)上傳至服務(wù)器,系統(tǒng)首先調(diào)用NewRoadBaseAction中的saveRoads方法,完成數(shù)據(jù)寫入數(shù)據(jù)庫,接著調(diào)用sendCheck方法,將路線送審到科室主任等待審核??剖抑魅蔚卿浐簏c擊待審調(diào)用loadOneCheckDataList方法查看所有待審的路線列表,點擊查看調(diào)用loadNewsCheckData方法加載待審路線內(nèi)容,然后根據(jù)情況調(diào)用sendBack、executeOneCheck、SendToSecendCheck 3個方法分別完成退回、通過、報審3個操作。
3.5 數(shù)據(jù)分析
數(shù)據(jù)分析主要是通過對系統(tǒng)中數(shù)據(jù)進行分類統(tǒng)計,然后根據(jù)用戶選擇需求將數(shù)據(jù)通過圖表的方式展現(xiàn)出來,有助于企業(yè)管理者對企業(yè)進行管理,為決策提供數(shù)據(jù)支撐。系統(tǒng)的數(shù)據(jù)分析主要包含月視圖、周視圖、日視圖等。用戶單擊月視圖時,通過ajax向服務(wù)器發(fā)送getMonthData請求,服務(wù)器接收到請求后調(diào)用getMonthDataAction方法,從數(shù)據(jù)庫中拉取數(shù)據(jù),然后將數(shù)據(jù)封裝到j(luò)son中,并反饋給瀏覽器,瀏覽器接收到數(shù)據(jù)后,調(diào)用Init()方法創(chuàng)建Echarts圖表格式化插件實例echart,接著調(diào)用echart.init(document.getElementById('showMonthData'))方法初始化圖表,最后調(diào)用parseData()方法將json中的數(shù)據(jù)逐一加載到echart中,完成圖表的顯示。
3.6 權(quán)限管理
權(quán)限管理是物流管理系統(tǒng)中不同角色分級制度的底層保障機制,在User表中新建prosstion字段用于標(biāo)定用戶角色,prosstion作為User實體的關(guān)鍵信息持久化保存在Session中,在對業(yè)務(wù)操作時先要判斷prosstion的值,只有滿足條件時才能夠執(zhí)行。
4 結(jié)語
本文提出了一種基于B/S結(jié)構(gòu)的第三方物流管理系統(tǒng)。系統(tǒng)將傳統(tǒng)的物流管理流程自動化,主要由用戶管理、訂單管理、運輸管理、倉儲管理、數(shù)據(jù)分析等模塊組成。對于運輸管理中的路徑規(guī)劃加入多級審核機制,從程序流程上規(guī)范路線、規(guī)劃審核機制,增加路徑規(guī)劃的科學(xué)性,規(guī)避因路線規(guī)劃不合理造成的成本浪費。目前,數(shù)據(jù)分析功能僅僅體現(xiàn)在數(shù)據(jù)統(tǒng)計展示階段,未來隨著數(shù)據(jù)當(dāng)量的提升,可在數(shù)據(jù)分析中構(gòu)建數(shù)據(jù)挖掘功能,為企業(yè)發(fā)展決策提供有力的科學(xué)支撐。該系統(tǒng)的上線為第三方物流公司現(xiàn)代化管理提供了一個廣闊的平臺,對第三方物流公司信息化改革有一定的促進作用。
參 考 文 獻
[1]鄭定杰.基于電子商務(wù)的第三方物流配送管理系統(tǒng)設(shè)計實現(xiàn)[J].商場現(xiàn)代化,2015(24):75-77.
[2]張利強.基于B/S的高校二手圖書交易平臺設(shè)計與實現(xiàn)[J].內(nèi)江師范學(xué)院學(xué)報,2017,32(10):55-59.
[3]鄧健.基于B/S模式的物流管理系統(tǒng)設(shè)計與實現(xiàn)[J].物流技術(shù),2013,32(9):423-425.
[4]尹新富,武鳳翔,李晉,等.B/S模式下物流倉儲管理系統(tǒng)設(shè)計與實現(xiàn)[J].物流技術(shù),2014(17):451-452.