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