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