前言:本站為你精心整理了裝備倉庫管理系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)范文,希望能為你的創(chuàng)作提供參考價(jià)值,我們的客服老師可以幫助你提供個性化的參考范文,歡迎咨詢。
摘要:為解決裝備倉庫管理出入庫、調(diào)撥、作業(yè)、庫存等流程繁瑣的問題,設(shè)計(jì)并實(shí)現(xiàn)了一套裝備倉庫管理系統(tǒng),以此來實(shí)現(xiàn)對全生命周期裝備的信息化管理,該系統(tǒng)提高了裝備管理的效率,節(jié)省了人力資源。系統(tǒng)采用B/S架構(gòu),使用Spring-Boot+MyBatis的高效開發(fā)框架,采用Redis緩存技術(shù)以及MySQL數(shù)據(jù)庫進(jìn)行開發(fā),通過使用改進(jìn)的A*算法來進(jìn)行路徑規(guī)劃,提高了AGV的作業(yè)效率。
關(guān)鍵詞:倉庫管理系統(tǒng);SpringBoot;reids;MyBatis;AGV
在公司或企業(yè)的生產(chǎn)管理過程中,物資監(jiān)管尤為重要,特別是對倉庫的管理和監(jiān)控,是一項(xiàng)極其復(fù)雜的工作[1],可能會涉及到物資種類多、物資出入庫頻繁、出入庫作業(yè)浪費(fèi)人力、調(diào)撥麻煩、貨位分配不均衡、倉庫助理員處理各種單據(jù)等問題和困難[2]。為解決上述出現(xiàn)的問題,越來越多的企業(yè)選擇使用倉庫管理系統(tǒng),來使得倉庫管理整個流程智能化、明確化,減少人工操作帶來的人力成本以及操作失誤[3]。結(jié)合以上需求本文設(shè)計(jì)了一套以實(shí)現(xiàn)倉庫管理智能化為目標(biāo)的倉庫管理系統(tǒng),以器材、裝備為基礎(chǔ)數(shù)據(jù),將物資出入庫,作業(yè)管理,庫存管理等流程細(xì)分化,以MySQL作為數(shù)據(jù)庫,建立一套倉庫信息化管理系統(tǒng)[4]。
本文設(shè)計(jì)的裝備倉庫管理系統(tǒng)采用了B/S架構(gòu),將整個系統(tǒng)分為三層架構(gòu),具體分為表示層、業(yè)務(wù)層、數(shù)據(jù)訪問層,提高了系統(tǒng)的穩(wěn)定性和可拓展性。表示層即用戶界面層,負(fù)責(zé)直接與用戶進(jìn)行交互,倉庫管理員可通過直接操作該層來實(shí)現(xiàn)對倉庫的管理、業(yè)務(wù)層主要作用是具體處理某些業(yè)務(wù),調(diào)用Service層的接口來對該系統(tǒng)的具體業(yè)務(wù)實(shí)現(xiàn)控制、數(shù)據(jù)訪問層主要是實(shí)現(xiàn)對數(shù)據(jù)庫的操控,實(shí)現(xiàn)數(shù)據(jù)的增刪改查功能。該系統(tǒng)主要由基礎(chǔ)數(shù)據(jù)模塊、出入庫管理模塊、庫存管理模塊、系統(tǒng)配置模塊、作業(yè)管理模塊五個大模塊所組成。
1.1系統(tǒng)架構(gòu)
為實(shí)現(xiàn)倉庫裝備智能化管理,為達(dá)到其實(shí)用、實(shí)時(shí)、精確的目的,本系統(tǒng)采用SpringBoot+MyBatis的架構(gòu)實(shí)現(xiàn)了PC端的后臺裝備管理系統(tǒng)[5],系統(tǒng)整體架構(gòu)如圖1所示。整個系統(tǒng)的PC端采用的是B/S架構(gòu),提高用戶與系統(tǒng)的交互體驗(yàn),通過瀏覽器就可以操作整個倉庫管理的流程,從某種程度上解決了現(xiàn)有單位倉庫管理效率底下、分工不明確等問題。采用這套系統(tǒng)可以極大地減少了單位一些不必要的人力和物力開支,保證物資在整個流程中的流轉(zhuǎn)情況的透明化,更利于單位對物資的監(jiān)管。另外根據(jù)登錄的角色不同,所具有的權(quán)限也不相同,登錄所看到的頁面與操作也不同,這樣更便于倉庫管理分工明確化。
1.2系統(tǒng)模塊組成
根據(jù)裝備倉庫管理的需求,將整個系統(tǒng)主要設(shè)計(jì)成五個模塊,分別為基礎(chǔ)數(shù)據(jù)模塊、出入庫管理模塊、庫存管理模塊、系統(tǒng)配置模塊、作業(yè)管理模塊。每個模塊擁有一些子模塊,這些模塊之間緊密相連,共同組成了整個倉庫管理系統(tǒng)。系統(tǒng)功能模塊圖如圖2所示:1)基礎(chǔ)數(shù)據(jù)模塊:該模塊主要是對裝備倉庫管理系統(tǒng)的器材目錄、裝備目錄、單位目錄、基數(shù)標(biāo)準(zhǔn)進(jìn)行管理、支持?jǐn)?shù)據(jù)源的導(dǎo)入、導(dǎo)出,信息的完善以及數(shù)據(jù)更新;2)出入庫管理模塊:該模塊主要是對裝備倉庫管理系統(tǒng)的出入庫以及調(diào)撥流程全面、系統(tǒng)的操作和展示;3)庫存管理模塊:該模塊主要是對裝備倉庫管理系統(tǒng)的庫存進(jìn)行管理,可以對各單位庫存、庫房、貨位庫存進(jìn)行管理、調(diào)配、統(tǒng)計(jì);4)作業(yè)管理模塊:該模塊主要是對供倉庫保管員使用的,保管員可以根據(jù)助理員下達(dá)的任務(wù),來進(jìn)行實(shí)際的作業(yè);5)系統(tǒng)配置模塊:該模塊主要是對裝備倉庫管理系統(tǒng)的角色、用戶、單位權(quán)限分配,對系統(tǒng)年度、標(biāo)識碼設(shè)定以及提供日志管理功能。
2關(guān)鍵技術(shù)
2.1基于Redis的數(shù)據(jù)緩存的設(shè)計(jì)
該裝備倉庫管理系統(tǒng)在登錄模塊以及角色管理模塊該系統(tǒng)采用了Redis做緩存。一方面主要用來做用戶信息的緩存,存放登錄用戶的信息與權(quán)限,避免每次訪問后端都要去訪問數(shù)據(jù)庫,由于Redis是基于內(nèi)存的,所以訪問速度較之于訪問數(shù)據(jù)存放在硬盤MySQL數(shù)據(jù)庫會快得多,提高了該系統(tǒng)的高并發(fā)能力,也提高了用戶的體驗(yàn);另一方面主要用來做部門樹狀圖的緩存,因?yàn)樵搯挝唤M織結(jié)構(gòu)比較復(fù)雜,每次放數(shù)據(jù)庫里面查找部門數(shù)據(jù)然后在去遍歷成樹狀結(jié)構(gòu)的話,可能速度比較慢,很影響用戶的體驗(yàn),所以當(dāng)要去獲得部門樹狀圖的話,可以先去緩存找,找不到的話再去數(shù)據(jù)庫去尋找部門數(shù)據(jù),然后再去遍歷成樹狀結(jié)構(gòu),再把這個樹狀結(jié)構(gòu)緩存到Redis數(shù)據(jù)庫中,當(dāng)下次需要去獲取部門樹狀圖的話就可以直接從緩存中獲取出來。由于倉庫管理整個系統(tǒng)中大量模塊涉及到訂單編號的生成,并且要保證這些訂單編號在高并發(fā)的情況下實(shí)現(xiàn)唯一,所以本系統(tǒng)涉及到訂單編號生成的模塊中采用了Redis去實(shí)現(xiàn)訂單編號的生成,在集群架構(gòu)的情況下,由于整個系統(tǒng)可以共用一個Redis服務(wù)器,而Reids是一種單線程的技術(shù)并且Redis自身也提供了分布式鎖,所以可以采用Redis去生成全局唯一的一個訂單編號,來解決在多線程情況下生成訂單編號不安全的問題。在性能方面,由于Redis是單線程所以沒有線程上下文切換帶來的損耗,Redis也采用I/O多路復(fù)用的技術(shù)來優(yōu)化IO的讀寫,最后Redis是基于內(nèi)存操作的,所以Redis處理請求會很快。而且Redis支持多種數(shù)據(jù)結(jié)構(gòu),可以滿足我們對數(shù)據(jù)的操作。
2.2采用AGV小車進(jìn)行作業(yè)管理
隨著現(xiàn)代倉庫越來越智能化,越來越多的企業(yè)利用AGV小車進(jìn)行智能化作業(yè)管理工作,不僅解決了人工對貨物作業(yè)的效率低、耗時(shí)長問題還降低了人力消耗大、人力成本高的弊端[6]。本系統(tǒng)采用的AGV小車為二維碼導(dǎo)航的AGV小車,由于裝備倉庫的私密性,所以倉庫的出入人員相對較少,這樣對二維碼的破壞較少,并且二維碼導(dǎo)航相較于電磁導(dǎo)航更精確,比激光導(dǎo)航以及慣性導(dǎo)航成本更低。針對出入庫作業(yè)不頻繁的情況下,該系統(tǒng)的AGV路徑規(guī)劃算法采用了改進(jìn)A*算法,而針對出入庫作業(yè)比較頻繁的倉庫采用了一種基于短期預(yù)測的路徑規(guī)劃算法。A*(A-Star)算法是一種靜態(tài)路網(wǎng)中求解最短路徑的最有效直接搜索方法,也是許多其他問題的常用啟發(fā)式算法。針對裝備出入庫作業(yè)不是很頻繁的倉庫,可采用單AGV小車,然后采用了一種改進(jìn)的A*算法,因?yàn)锳*算法是一種靜態(tài)路網(wǎng)中求解最短路徑最有效的直接搜索方法,但是很多時(shí)候找到的最短路徑并不一定效率最高,我們要考慮時(shí)間的損耗,所以我們可以采用在A*算法上面加一種“獎懲機(jī)制”,來解決這個問題[9],一方面對出現(xiàn)拐點(diǎn)的時(shí)候?qū)ζ湓u價(jià)函數(shù)予以“懲罰”,即增加其代價(jià)值,另一方面引入“AGV的方向感”概念,對符合條件的節(jié)點(diǎn)給予一定獎勵,即減少其代價(jià)值來不斷修正啟發(fā)函數(shù)。我們對A*算法進(jìn)行改進(jìn)也可以在單AGV的條件下很好地完成對裝備倉庫路徑的規(guī)劃。針對出入庫作業(yè)比較頻繁的倉庫,可采用多AGV的倉庫管理系統(tǒng),我們在單一作業(yè)的基礎(chǔ)上采用一種基于短期預(yù)測的路徑規(guī)劃算法。通過時(shí)間軸的手段來預(yù)測短期時(shí)間段內(nèi)道路的AGV通行量以及可能發(fā)生沖突碰撞的情況,從而降低沖突次數(shù),優(yōu)化作業(yè)任務(wù)完成所花費(fèi)的時(shí)間。具體操作就是利用改進(jìn)的A*算法對每個AGV小車進(jìn)行路徑規(guī)劃,然后將它們的路徑節(jié)點(diǎn)存放在數(shù)組中。通過判斷時(shí)間軸上同一位置的節(jié)點(diǎn)是否相同來決策是否為沖突節(jié)點(diǎn),同時(shí)由于每個路徑節(jié)點(diǎn)與各個路段一一對應(yīng)[10],因此可以對短期內(nèi)各道路的小車通行量進(jìn)行預(yù)測,然后在此基礎(chǔ)上面重新規(guī)劃路徑方案,最后各個小車根據(jù)此方案來進(jìn)行作業(yè)。
3結(jié)束語
本文主要依據(jù)實(shí)際的需求,介紹了裝備倉庫管理系統(tǒng)具體的設(shè)計(jì)與實(shí)現(xiàn)。以SpringBoot+MyBatis作為后臺框架、Redis作為緩存、MySQL作為數(shù)據(jù)庫,搭建了一套完整的倉庫管理系統(tǒng),完成了出入庫管理、庫存管理、權(quán)限管理、作業(yè)管理、基礎(chǔ)數(shù)據(jù)管理功能。采用AGV來優(yōu)化作業(yè)管理,實(shí)現(xiàn)人力的解放。
作者:陸松林 張捷 王震 單位:南京理工大學(xué)自動化學(xué)院 陸軍裝備部駐重慶地區(qū)軍事代表局駐重慶地區(qū)第一軍事代表室