趙瑞明,王 野,劉啟賢
(北京空間機(jī)電研究所,北京 100094)
現(xiàn)有軍工物資信息系統(tǒng)中庫存管理一般都采用鎖定物料的方式進(jìn)行庫存管理,近年隨著軍工項(xiàng)目的不斷增多,對項(xiàng)目周期要求越來越高,原有的實(shí)物關(guān)聯(lián)的庫存管理方式無法滿足項(xiàng)目周期短、平、快的高要求。
項(xiàng)目鎖定物料的庫存管理方式有以下弊病。
(1)項(xiàng)目A鎖定庫存物料后,若發(fā)生物料超期復(fù)驗(yàn),都需要對項(xiàng)目A的庫存物料先進(jìn)行釋放,待物料復(fù)驗(yàn)合格后,重新鎖定物料。單一項(xiàng)目的情況下這樣操作對項(xiàng)目的進(jìn)度影響不大。但一旦項(xiàng)目增多,且項(xiàng)目間的物料需求有重疊時(shí),就會極大影響工作效率。
(2)由于軍工項(xiàng)目的特殊性,項(xiàng)目所需物資需進(jìn)行備份,一般需求比例與實(shí)際采購比例為1:1.3,由于多項(xiàng)目中物料的重疊性,會導(dǎo)致同一物資被多次備份,無法實(shí)現(xiàn)多項(xiàng)目的庫存周轉(zhuǎn)和資源的平衡利用,造成浪費(fèi)和庫存積壓。
(3)當(dāng)項(xiàng)目間發(fā)生調(diào)用時(shí),需要項(xiàng)目間不斷重新釋放庫存,再重新進(jìn)行利庫。例如A項(xiàng)目與B項(xiàng)目都需求某物料X1,由于庫存的X1已被B項(xiàng)目鎖定,當(dāng)A項(xiàng)目周期要求提前時(shí),需要對X1進(jìn)行釋放,再把X1鎖定在A項(xiàng)目名下。同時(shí),對于A項(xiàng)目采購的物料X1,需要從A項(xiàng)目釋放,再重新關(guān)聯(lián)在B項(xiàng)目下。這只是兩個項(xiàng)目間的簡單調(diào)用就需要如此繁瑣的操作,若項(xiàng)目和重疊物料增大,隨著項(xiàng)目的變化,操作會極其復(fù)雜,極大影響工作效率。
(4)無法實(shí)現(xiàn)先入先出。先入先出即對同一物料,先入庫的物料相比后入庫的物料應(yīng)先行出庫發(fā)放。先入先出可以最大限度避免物料發(fā)生過期導(dǎo)致浪費(fèi)等情況。但現(xiàn)有庫存管理模式下,由于項(xiàng)目鎖定實(shí)物,因此很難進(jìn)行先入先出操作。往往出現(xiàn)項(xiàng)目配套時(shí),物料已經(jīng)過期等現(xiàn)象。
(5)無法解決多庫房下發(fā)料的實(shí)際困難。工廠現(xiàn)有X1、X2兩座庫房,距離較遠(yuǎn)。項(xiàng)目A實(shí)際裝配地距離X1庫房較近,但卻鎖定了X2庫房的物料,就需要遠(yuǎn)距離運(yùn)輸。對于X1庫房的物料卻無法及時(shí)調(diào)用。
為了解決以上問題,引入庫存虛擬化的概念。庫存虛擬化是指項(xiàng)目的需求與物料屬性的信息流關(guān)聯(lián),不鎖定庫存實(shí)物及采購中的在途物料。只有實(shí)際出庫時(shí),才按照先入先出的原則對實(shí)物庫存進(jìn)行發(fā)料[1-4]。
庫存虛擬化有以下優(yōu)勢:
(1)可以降低成本,根據(jù)項(xiàng)目需求情況,通過信息流對多項(xiàng)目進(jìn)行統(tǒng)一備份。
(2)簡化項(xiàng)目間調(diào)用的操作,項(xiàng)目間調(diào)用不再涉及庫存的釋放和鎖定,只需要通過物料的信息流建立借用關(guān)系即可。
(3)解決多庫房發(fā)料的困難。庫存虛擬化模式下,由于項(xiàng)目鎖定的只是物料的基本屬性,不鎖定實(shí)物,因此可以直接從任意庫房直接發(fā)放。
(4)由于項(xiàng)目不直接關(guān)聯(lián)實(shí)物,對于超期的物料可以直接復(fù)驗(yàn),實(shí)際出庫按照先入先出原則對實(shí)物庫進(jìn)行發(fā)放。
(5)實(shí)現(xiàn)了真正意義上的先入先出。對于緊急程度順序變化的多項(xiàng)目流程,都按照先入先出原則進(jìn)行項(xiàng)目的發(fā)放,最大限度避免了浪費(fèi)或者過期等情況的發(fā)生。
(6)可以更便捷地實(shí)現(xiàn)自動利庫,減少人工成本。由于項(xiàng)目關(guān)聯(lián)的是物料屬性的信息流,因此只需要通過信息化手段讓項(xiàng)目關(guān)聯(lián)信息流即可,而不需要對實(shí)物進(jìn)行關(guān)聯(lián)。
總之,庫存虛擬化模式下,庫存的操作空間和靈活性要遠(yuǎn)勝老模式。尤其涉及物料貨位的操作時(shí),不需要對項(xiàng)目關(guān)聯(lián)的信息流進(jìn)行變更,只需要更新實(shí)物庫信息,發(fā)料時(shí)遵循先入先出的原則。
主要通過以下算法在物資信息系統(tǒng)中實(shí)現(xiàn)庫存的虛擬化[5-8]。
由于用戶的物資系統(tǒng)采用的是JAVA語言,為了庫存虛擬化與之兼容,因此也采用JAVA進(jìn)行編程。其中涉及可利庫數(shù)量、自動配套和出庫的算法實(shí)現(xiàn)。
在利用庫存物資時(shí),需要動態(tài)計(jì)算有什么物資可以使用,數(shù)量還有多少,其中可利庫物資數(shù)量= ∑(實(shí)物庫存數(shù)量)-∑(項(xiàng)目在庫占用數(shù)量)。
在項(xiàng)目庫中記錄著該項(xiàng)目不需要物資(簡稱可調(diào)物資)的數(shù)據(jù),但是庫存可用數(shù)量不是簡單地等于各項(xiàng)目可調(diào)物資數(shù)量之和,這是因?yàn)橐环矫鎸?shí)物庫存會因盤點(diǎn)、退貨等原因造成項(xiàng)目庫與實(shí)物庫不一致的地方,另一方面是因?yàn)楹教祉?xiàng)目的特殊性,除物資本身屬性外,各項(xiàng)目對物資的檢驗(yàn)單位、質(zhì)量等級有額外特殊的要求——不同項(xiàng)目認(rèn)可的檢驗(yàn)單位、質(zhì)量等級存在差別。所以在計(jì)算庫存可用數(shù)量時(shí),還需按檢驗(yàn)單位、質(zhì)量等級進(jìn)行二次計(jì)算。算法如下:
遍歷各項(xiàng)目:
(1)查看項(xiàng)目庫中是否存在可調(diào)配物資:如果不存在,繼續(xù)步驟(1),如果查詢完所有項(xiàng)目庫都沒有,則返回空值;如果存在,轉(zhuǎn)步驟(2)。
(2)按照物資、檢驗(yàn)單位、質(zhì)量等級統(tǒng)計(jì)各項(xiàng)目占用物資數(shù)量,計(jì)算后,轉(zhuǎn)步驟(3)。
(3)按照物資、檢驗(yàn)單位、質(zhì)量等級統(tǒng)計(jì)庫存物資實(shí)物可用數(shù)量,計(jì)算后,轉(zhuǎn)步驟(4)。
(4)步驟(3)中∑(實(shí)物庫存數(shù)量)減去步驟(2)中的∑(項(xiàng)目在庫占用數(shù)量),得到可利庫物資及其可利庫數(shù)量。
函數(shù)1 getLoanableApplyitem檢查是否存在可利庫物資,核心代碼實(shí)現(xiàn)如圖1所示。
函數(shù)2 getLoanableCount計(jì)算項(xiàng)目庫與實(shí)物庫信息,核心代碼實(shí)現(xiàn)如圖2所示。
函數(shù)3 getLoanableNumber計(jì)算可用物資及可用數(shù)量,核心代碼實(shí)現(xiàn)如圖3所示。
圖1 函數(shù)1核心代碼
圖2 函數(shù)2核心代碼
圖3 函數(shù)3核心代碼
遵循先入先出原則,按入庫時(shí)間進(jìn)行優(yōu)先配套,按序出庫。
按配套申請表依次遍歷實(shí)際庫存表進(jìn)行配套出庫:
(1)按照物資、檢驗(yàn)單位、質(zhì)量等級查找?guī)齑媸欠裼锌捎梦镔Y。
(2)按照入庫時(shí)間對庫存物資進(jìn)行排序。
(3)判斷篩選出來的數(shù)據(jù)是否存在單條庫存可用數(shù)量大于出庫數(shù)量(因?yàn)楹教焯厥庑?,需要盡量使用同一批次的物資),如果存在,選擇該條數(shù)據(jù);如果不存在,轉(zhuǎn)步驟(4)。
(4)判斷篩選出來的數(shù)據(jù)之和是否滿足出庫數(shù)量,如果不滿足,轉(zhuǎn)步驟(5);如果滿足,則按照入庫時(shí)間逐條篩選出要出庫的數(shù)據(jù),轉(zhuǎn)步驟(6)。
(5)報(bào)警,提示用戶實(shí)際庫存可用數(shù)量有問題,申請的配套數(shù)量大于實(shí)際庫存可用數(shù)量。
(6)在該項(xiàng)目庫存中記錄已出庫數(shù)量,并調(diào)整項(xiàng)目庫存可用數(shù)量:項(xiàng)目庫可用數(shù)量=項(xiàng)目庫可用數(shù)量-出庫數(shù)量。
函數(shù)4 selectStorageItemByQuery根據(jù)配套表依次去實(shí)物庫存中查詢物資,并按照入庫時(shí)間排序,核心代碼實(shí)現(xiàn)如圖4所示。
函數(shù)5 costUseStorage進(jìn)行自動配套,核心代碼實(shí)現(xiàn)如圖5所示。
本文針對現(xiàn)有軍工物資信息系統(tǒng)中庫存管理方式提出了新的管理模式,引入了庫存虛擬化的概念。并基于JAVA語言,通過可利庫數(shù)量、自動配套和出庫的算法實(shí)現(xiàn),在軍工物資信息系統(tǒng)中實(shí)現(xiàn)了庫存虛擬化。從根本上解決了原有庫存管理方式導(dǎo)致的物流成本高、庫管流程復(fù)雜、物料超期嚴(yán)重等問題。
圖4 函數(shù)4核心代碼
圖5 函數(shù)5核心代碼