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