閔 楠,葛慕瀅,潘傲瀾
(1.武漢科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,武漢 430065;2.武漢科技大學(xué)資源與環(huán)境工程學(xué)院,武漢 430065)
隨著危險(xiǎn)品運(yùn)輸需求的快速增長(zhǎng),危險(xiǎn)品運(yùn)輸企業(yè)數(shù)量逐年增多,企業(yè)規(guī)模逐步擴(kuò)大,中國(guó)物流與采購(gòu)聯(lián)合會(huì)危化品物流分會(huì)資料顯示:2019 年全國(guó)?;肺锪餍袠I(yè)市場(chǎng)規(guī)模已經(jīng)達(dá)到1.87 萬(wàn)億元,同比增長(zhǎng)13.4%;2020 年?;肺锪魇袌?chǎng)規(guī)模超過2 萬(wàn)億元;2021 年市場(chǎng)規(guī)模將達(dá)到2.24萬(wàn)億元。
然而目前市面上很少有軟件可以對(duì)?;愤\(yùn)輸風(fēng)險(xiǎn)進(jìn)行量化分析,導(dǎo)致我們只能憑借經(jīng)驗(yàn)判斷某次危化品運(yùn)輸?shù)娘L(fēng)險(xiǎn),這不利于?;愤\(yùn)輸?shù)脑u(píng)估和管控。
本平臺(tái)的開發(fā)旨在做到運(yùn)輸過程可視化,安全風(fēng)險(xiǎn)定量化,以實(shí)現(xiàn)安全、利益最大化。公司管理人員通過該網(wǎng)站不僅可以管理駕駛?cè)藛T信息、車輛信息、物流信息,還可將危險(xiǎn)品道路運(yùn)輸物流信息可視化以及對(duì)運(yùn)輸貨物進(jìn)行風(fēng)險(xiǎn)測(cè)試。
軟件功能結(jié)構(gòu)如圖1所示。該平臺(tái)主要包括五個(gè)部分:地圖可視化、風(fēng)險(xiǎn)測(cè)評(píng)、車輛管理、人員管理、運(yùn)輸管理。本項(xiàng)目基于SpringBoot 框架應(yīng)用開發(fā)技術(shù),前端采用Thymeleaf 模板引擎,項(xiàng)目采用MVC 設(shè)計(jì)模式,使用MySQL 數(shù)據(jù)庫(kù)對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),可以對(duì)數(shù)據(jù)庫(kù)進(jìn)行管理、檢查、優(yōu)化等操作。項(xiàng)目基于高德地圖API 開發(fā),滿足各種需求,支持多種路線規(guī)劃。
圖1 軟件功能流程圖
以下僅介紹核心功能。
(1)地圖可視化。管理員登錄網(wǎng)站后可以查看危險(xiǎn)品道路運(yùn)輸物流信息,查看貨車實(shí)時(shí)位置。
(2)風(fēng)險(xiǎn)測(cè)評(píng)。管理員登錄網(wǎng)站后可以對(duì)未來(lái)的危險(xiǎn)品道路運(yùn)輸進(jìn)行風(fēng)險(xiǎn)測(cè)評(píng)。
(3)車輛管理。管理員登錄網(wǎng)站后可以管理運(yùn)輸車輛,進(jìn)行增刪改查操作。
(4)人員管理。管理員登錄網(wǎng)站后可以管理駕駛?cè)藛T,進(jìn)行增刪改查操作。
(5)運(yùn)輸管理。管理員登錄網(wǎng)站后可以管理危險(xiǎn)品道路運(yùn)輸物流信息,進(jìn)行增刪改查操作。
1.3.1 數(shù)據(jù)庫(kù)建模
軟件數(shù)據(jù)庫(kù)有如下表:公司表、管理員表、駕駛?cè)藛T表、駕駛?cè)藛T問卷表、車輛表、車輛問卷表、車輛?;穼?duì)應(yīng)關(guān)系表等。
1.3.2 數(shù)據(jù)庫(kù)結(jié)構(gòu)說明
由于軟件涉及數(shù)據(jù)庫(kù)表較多,下面僅選幾個(gè)比較重要的進(jìn)行解釋說明。
(1)駕駛?cè)藛T表(driver)。包含駕駛?cè)藛T編號(hào)、姓名、性別、出生年份、身份證號(hào)、詳情和司機(jī)所在公司id賬號(hào),如表1所示。
表1 駕駛?cè)藛T表結(jié)構(gòu)
(2)車輛表(car)。包含車輛編號(hào)、車牌號(hào)、車的類型、車所在公司id、車輛軸數(shù)、車輛自重、車輛寬度和車輛高度、車輛大小,如表2所示。
表2 車輛表結(jié)構(gòu)
(3)物流表(transportation)。包含車物流單號(hào)、公司id、駕駛?cè)藛Tid、車輛id、貨物類型、貨物重量、出發(fā)點(diǎn)、出發(fā)經(jīng)緯度、目的地、目的地經(jīng)緯度、當(dāng)前位置、當(dāng)前位置經(jīng)緯度、途徑點(diǎn)、途徑點(diǎn)經(jīng)緯度、出發(fā)時(shí)間和預(yù)計(jì)抵達(dá)時(shí)間,如表3所示。
表3 物流表結(jié)構(gòu)
續(xù)表3
(4)?;穼?duì)應(yīng)表(goods)。包含?;穒d、危化品名稱和分值如表4所示。危險(xiǎn)品的具體種類參考了化學(xué)品統(tǒng)計(jì)文獻(xiàn),采用灰色關(guān)聯(lián)分析法與層次分析法確定了各個(gè)危化品的具體賦分,其中分值越低危險(xiǎn)程度越大。
表4 ?;贩种当斫Y(jié)構(gòu)
本項(xiàng)目使用Web 端的高德地圖API 技術(shù)。首先,需要注冊(cè)開發(fā)者賬號(hào),成為高德開發(fā)平臺(tái)開發(fā)者。其次,為軟件添加Key,“服務(wù)平臺(tái)”一項(xiàng)選擇“ Web 端(JSAPI)”就可以獲取到key 值和安全密鑰jscode。最后在html 頁(yè)面中加入下述代碼即可使用高德地圖API接口。
<script type="text/javascript">
window._AMapSecurityConfig={
serviceHost:′您的代理服務(wù)器域名或地址/_AMapService′,
// 例 如 : serviceHost: ′http://1.1.1.1: 80/_AMapService′,
}
</script>
<script type="text/javascript"src="https://webapi.amap.com/maps?v=2.0&key=您申請(qǐng)的key值"></script>
通過查閱危險(xiǎn)品道路運(yùn)輸安全評(píng)價(jià)方面文獻(xiàn)資料,統(tǒng)計(jì)出現(xiàn)頻率較高的指標(biāo),得到了4個(gè)一級(jí)指標(biāo)和14個(gè)分指標(biāo),如圖2所示。
圖2 風(fēng)險(xiǎn)評(píng)測(cè)模型指標(biāo)
平臺(tái)通過問卷形式對(duì)4 個(gè)一級(jí)指標(biāo)進(jìn)行打分。例如:駕駛?cè)藛T會(huì)填寫駕駛員資質(zhì)評(píng)測(cè)問卷Driver_Question,該問卷會(huì)對(duì)駕駛?cè)藛T經(jīng)歷、能力、行為和心理進(jìn)行打分,最后平臺(tái)會(huì)將作答情況和分?jǐn)?shù)保存在數(shù)據(jù)庫(kù)中。其中,Driver_Question 表以driver_id 作為外鍵。之后,管理員在風(fēng)險(xiǎn)測(cè)評(píng)中選擇駕駛員時(shí),平臺(tái)會(huì)在數(shù)據(jù)庫(kù)的Driver_Question 表中通過driver_id 查詢相應(yīng)記錄,獲取該駕駛員的得分,也就得到了從業(yè)人員資質(zhì)B1的分?jǐn)?shù)。
圖3 平臺(tái)首頁(yè)(登錄狀態(tài)下)
以下僅介紹平臺(tái)的地圖可視化和風(fēng)險(xiǎn)測(cè)評(píng)的實(shí)現(xiàn)。
地圖可視化頁(yè)面主要涉及到的功能有危化品運(yùn)輸物流的跟蹤查看,主要包括物流信息的列表預(yù)覽和查看詳情操作,主要涉及對(duì)象為Transportation、 TransportationController、 Map、MapController 以 及 方 法mapManage 和more。具體說明方法如下:
3.1.1 物流信息列表預(yù)覽功能
(1)方法名:mapManage;
(2)參數(shù)說明:int 類型的pageOffset,pageSize和HttpSession類型的session;
(3)函數(shù)調(diào)用說明:檢查參數(shù),獲取session的屬性u(píng)ser 并強(qiáng)轉(zhuǎn)為User 對(duì)象,若對(duì)象為空,則用戶沒有登錄,跳轉(zhuǎn)登錄頁(yè)面;若不為空,則獲取User 的company_id 并且在Transportation表中查找該company_id 對(duì)應(yīng)的所有記錄,存儲(chǔ)在 類 型 為L(zhǎng)ist<Transportation>的transportations中。pageOffset 默認(rèn)為1,表示當(dāng)前在第一頁(yè)。pageSize 默認(rèn)為15,表示一頁(yè)展示15 條記錄。創(chuàng)建PageInfo 類型的info 對(duì)象,輸入?yún)?shù)有兩個(gè),分別為transportations 和pageSize*pageOffset。
存儲(chǔ)對(duì)象,在session中存儲(chǔ)info。
跳轉(zhuǎn)頁(yè)面,跳轉(zhuǎn)地圖可視化頁(yè)面。
3.1.2 查看詳情功能
(1)方法名:more;
(2)參數(shù)說明:無(wú)需輸入?yún)?shù);
(3)函數(shù)調(diào)用說明:獲取對(duì)象,點(diǎn)擊事件發(fā)生后,前端通過onclick 方法結(jié)合Thymeleaf 通過${…}直接獲取變量值,并彈出對(duì)象詳細(xì)信息在前端對(duì)話框中進(jìn)行顯示。
展示地圖,對(duì)origin_location、destination_location、now_location、waypoints_location 用split方法以‘,’為分割點(diǎn)進(jìn)行分割處理,將它們分別存儲(chǔ)在數(shù)組ori,des,now_loc 和way。然后利用高德地圖API初始化map,創(chuàng)建起始地點(diǎn)、目的地點(diǎn)、當(dāng)前位置地點(diǎn)、途徑地點(diǎn),最后構(gòu)建路線導(dǎo)航顯示在地圖上。
地圖可視化頁(yè)面如圖4所示。管理員可在本頁(yè)面查看危險(xiǎn)品道路運(yùn)輸物流信息,查看貨車實(shí)時(shí)位置。管理員點(diǎn)擊詳情查看危險(xiǎn)品道路運(yùn)輸物流信息。隨后地圖切換到當(dāng)前危險(xiǎn)品道路運(yùn)輸物流信息的實(shí)時(shí)路徑信息,如圖5所示。
圖4 地圖可視化頁(yè)面
圖5 實(shí)時(shí)路徑信息
風(fēng)險(xiǎn)測(cè)評(píng)頁(yè)面主要涉及到的功能有危化品運(yùn)輸?shù)牧炕L(fēng)險(xiǎn)測(cè)評(píng),主要操作的涉及對(duì)象為Car、Driver、User、CarService、DriverService、RiskAssessmentController 以及方法riskAssessment、 riskAssessment_chemicals、 riskAssessment_ cars、riskAssessment_drivers 和riskAssessment_result。具體說明方法如下:
3.2.1 風(fēng)險(xiǎn)測(cè)評(píng)頁(yè)面
(1)方法名:riskAssessment;
(2)參數(shù)說明:HttpSession類型的session;
(3)函數(shù)調(diào)用說明:檢查參數(shù),獲取session的屬性u(píng)ser 并強(qiáng)轉(zhuǎn)為User 對(duì)象,若對(duì)象為空,則用戶沒有登錄,跳轉(zhuǎn)登錄頁(yè)面;若不為空,則進(jìn)行下一步。
跳轉(zhuǎn)頁(yè)面,跳轉(zhuǎn)填寫危化品信息頁(yè)面。
3.2.2 填寫危化品信息
(1)方法名:riskAssessment_chemicals;
(2)參數(shù)說明:HttpSession 類型的session,String類型的goods和double類型的weight;
(3)函數(shù)調(diào)用說明:檢查參數(shù),獲取session的屬性u(píng)ser 并強(qiáng)轉(zhuǎn)為User 對(duì)象,若對(duì)象為空,則用戶沒有登錄,跳轉(zhuǎn)登錄頁(yè)面;若不為空,則判斷輸入?yún)?shù)是否為空或者不合法。若參數(shù)為空或者不合法則輸入錯(cuò)誤信息,后臺(tái)向前端返回相應(yīng)的錯(cuò)誤編號(hào),如:‘0’代表危化品為空,此時(shí)前端就會(huì)提示“?;凡荒転榭铡?;若參數(shù)不為空且合法則輸入正確信息,在session中存儲(chǔ)goods和weight。
跳轉(zhuǎn)頁(yè)面,驗(yàn)證通過后并跳轉(zhuǎn)選擇?;愤\(yùn)輸車輛頁(yè)面。
3.2.3 選擇危化品運(yùn)輸車輛
(1)方法名:riskAssessment_cars;
(2)參數(shù)說明:HttpSession 類型的session,int類型的car_id;
(3)函數(shù)調(diào)用說明:檢查參數(shù),獲取session的屬性u(píng)ser 并強(qiáng)轉(zhuǎn)為User 對(duì)象,若對(duì)象為空,則用戶沒有登錄,跳轉(zhuǎn)登錄頁(yè)面;若不為空,則進(jìn)行下一步。
查詢對(duì)象,在Car 表內(nèi)查詢car_id 是否已經(jīng)存在,若不存在則輸入錯(cuò)誤信息,后臺(tái)向前端返回相應(yīng)的錯(cuò)誤編號(hào),前端顯示相應(yīng)錯(cuò)誤提示;若存在則輸入正確信息,在session 中存儲(chǔ)car_id。
跳轉(zhuǎn)頁(yè)面,驗(yàn)證通過并跳轉(zhuǎn)選擇駕駛?cè)藛T頁(yè)面。
3.2.4 選擇駕駛?cè)藛T
(1)方法名:riskAssessment_drivers;
(2)參數(shù)說明:HttpSession 類型的session,int類型的driver_id;
(3)函數(shù)調(diào)用說明:檢查參數(shù),獲取session的屬性u(píng)ser 并強(qiáng)轉(zhuǎn)為User 對(duì)象,若對(duì)象為空,則用戶沒有登錄,跳轉(zhuǎn)登錄頁(yè)面;若不為空,則進(jìn)行下一步。
查詢對(duì)象,在Driver 表內(nèi)查詢driver_id 是否已經(jīng)存在,若不存在則輸入錯(cuò)誤信息,后臺(tái)向前端返回相應(yīng)的錯(cuò)誤編號(hào),前端顯示相應(yīng)錯(cuò)誤提示;若存在則輸入正確信息,在session 中存儲(chǔ)driver_id。
跳轉(zhuǎn)頁(yè)面,驗(yàn)證通過后并跳轉(zhuǎn)填寫運(yùn)輸信息頁(yè)面。
3.2.5 填寫運(yùn)輸信息
(1)方法名:riskAssessment_route;
(2)參數(shù)說明:HttpSession 類型的session,Srting 類型的origin、origin_location、destination、destination_location、 waypoints、 waypoints_location、departure_time、arrive_time和weather;
(3)函數(shù)調(diào)用說明:檢查參數(shù),獲取session的屬性u(píng)ser 并強(qiáng)轉(zhuǎn)為User 對(duì)象,若對(duì)象為空,則用戶沒有登錄,跳轉(zhuǎn)登錄頁(yè)面;若不為空,則判斷輸入的參數(shù)是否為空或者不合法。若參數(shù)為空或者不合法則輸入錯(cuò)誤信息,后臺(tái)向前端返回相應(yīng)的錯(cuò)誤編號(hào),如:‘0’代表出發(fā)點(diǎn)origin 為空,此時(shí)前端就會(huì)提示“出發(fā)點(diǎn)不能為空”;若參數(shù)不為空且合法則輸入正確信息,在session 中 存 儲(chǔ)origin、origin_location、destination、 destination_location、 waypoints、 waypoints_location、 departure_time、 arrive_time 和weather。
跳轉(zhuǎn)頁(yè)面,驗(yàn)證通過后調(diào)用riskAssessment_result方法進(jìn)行風(fēng)險(xiǎn)測(cè)評(píng)。
3.2.6 風(fēng)險(xiǎn)測(cè)評(píng)
(1)方法名:riskAssessment_result;
(2)參數(shù)說明:HttpSession類型的session;
(3)函數(shù)調(diào)用說明:檢查參數(shù),獲取session的屬性u(píng)ser 并強(qiáng)轉(zhuǎn)為User 對(duì)象,若對(duì)象為空,則用戶沒有登錄,跳轉(zhuǎn)登錄頁(yè)面;若不為空,則對(duì)session中存儲(chǔ)的信息進(jìn)行評(píng)測(cè)打分。
風(fēng)險(xiǎn)打分,根據(jù)session 中存儲(chǔ)的信息,從數(shù)據(jù)庫(kù)中獲取對(duì)應(yīng)的四個(gè)一級(jí)指標(biāo)各自的分?jǐn)?shù),通過層次分析法對(duì)它們進(jìn)行加權(quán)運(yùn)算得出風(fēng)險(xiǎn)評(píng)測(cè)總得分,并保存分?jǐn)?shù)B1、B2、B3 和B4 到session中。
跳轉(zhuǎn)頁(yè)面,跳轉(zhuǎn)風(fēng)險(xiǎn)測(cè)評(píng)結(jié)果頁(yè)面。
風(fēng)險(xiǎn)測(cè)評(píng)結(jié)果頁(yè)面如圖6所示。管理員可在本頁(yè)面查看危險(xiǎn)品道路運(yùn)輸最終評(píng)測(cè)結(jié)果以及推薦運(yùn)輸路線。管理員可以將鼠標(biāo)停留在柱狀圖上查看對(duì)應(yīng)因素具體得分。
圖6 風(fēng)險(xiǎn)測(cè)評(píng)結(jié)果頁(yè)面
?;愤\(yùn)輸安全評(píng)估管控平臺(tái)可以綜合得出某次危化品運(yùn)輸?shù)陌踩L(fēng)險(xiǎn)程度,并量化為安全風(fēng)險(xiǎn)值。結(jié)果較準(zhǔn)確地反映了危險(xiǎn)品物流的實(shí)際狀況??蔀槲kU(xiǎn)品監(jiān)管部門以及危險(xiǎn)品道路運(yùn)輸企業(yè)提供理論技術(shù)支持,同時(shí)對(duì)鐵路、水路、航空危險(xiǎn)品運(yùn)輸安全研究工作也有一定的理論指導(dǎo)作用。