武時(shí)龍
(宿州職業(yè)技術(shù)學(xué)院計(jì)算機(jī)信息系,安徽 宿州234101)
傳統(tǒng)的庫存管理系統(tǒng)和企業(yè)資源計(jì)劃系統(tǒng)ERP(Enterprise Resource Planning),只是對物料和商品進(jìn)行進(jìn)銷存管理,對于數(shù)量、位置、占用資金等方面的管理有很好的效果.但對于其他一些問題,例如,如何設(shè)置安全庫存、甚至實(shí)現(xiàn)零庫存,如何選擇物料供應(yīng)商,確定合理的采購數(shù)量,何時(shí)需要進(jìn)行采購,以及產(chǎn)品銷售情況的統(tǒng)計(jì)與分析、銷售預(yù)測等就顯得有些無能為力了.同時(shí),諸多因素使得企業(yè)的物料和商品庫存是經(jīng)常變動(dòng)的.庫存過多,則會(huì)占用大量的資金、生產(chǎn)和庫存面積,影響企業(yè)的現(xiàn)金流,由于產(chǎn)品的升級(jí)換代,產(chǎn)品積壓也會(huì)造成大量的浪費(fèi);庫存過少,則無法滿足企業(yè)的生產(chǎn)和經(jīng)營的需求.
如何適應(yīng)市場的變化,如何適應(yīng)經(jīng)濟(jì)環(huán)境的變化,如何提高庫存管理水平和為管理層提供更好的決策支持,研究人員需對企業(yè)庫存管理和分析進(jìn)行深入研究,重新定義庫存管理模型和產(chǎn)品的供應(yīng)關(guān)系,設(shè)計(jì)開發(fā)一套適合企業(yè)具體情況和發(fā)展需求的庫存管理和分析系統(tǒng).
本文結(jié)合山工代理商管理系統(tǒng)(Dealer Management System,DMS),構(gòu)建一個(gè)C/S和B/S 混合的多層架構(gòu),同時(shí)基于數(shù)據(jù)倉庫的庫存管理和分析系統(tǒng).通過對代理商庫存管理的規(guī)范化和信息化,并以此代理商庫存數(shù)據(jù)為數(shù)據(jù)來源,應(yīng)用OLAP 技術(shù),實(shí)現(xiàn)多粒度、多視角、可視化的庫存分析和決策支持系統(tǒng).
庫存管理和分析體系采用C/S和B/S 相結(jié)合的模式,使用ASP.NET 完整的三層架構(gòu),應(yīng)用程序采用C#開發(fā)語言.服務(wù)器為IBM x3850,服務(wù)器操作系統(tǒng)為Windows Server 2003,采用SQL Server 2005構(gòu)建事務(wù)數(shù)據(jù)庫和分析數(shù)據(jù)倉庫.開發(fā)客戶機(jī)為Dell OPTiplex 960 型號(hào),安裝Windows XP Professional 操作系統(tǒng),SQL Server 客戶端.
山東山工機(jī)械有限公司在全國擁有眾多的代理商及代理商的分公司,庫存管理水平參差不齊.為提高代理商的管理水平和服務(wù)響應(yīng)速度,加快信息流的反饋與交互,提高客戶滿意度,公司在2011年開始著手開發(fā)代理商管理系統(tǒng)DMS,本課題來源于DMS 第一階段工作,向代理商推行庫存管理系統(tǒng).
通過對多家代理商的調(diào)研和同他們進(jìn)行溝通,我們發(fā)現(xiàn)代理商庫存管理存在很多不足之處.很多代理商存在分公司、分銷點(diǎn),總公司采用從市場上購買的傳統(tǒng)庫存管理軟件進(jìn)行庫存的進(jìn)銷存管理,由于軟件過多的通用性,導(dǎo)致無法適合代理商的業(yè)務(wù)需求.總部與分公司、分銷點(diǎn)之間,依然采用傳統(tǒng)的電話、郵件和傳真的方式進(jìn)行訂貨、發(fā)貨、退貨等業(yè)務(wù),同時(shí)倉庫保管員和財(cái)務(wù)人員通過手工記賬的方式存檔,對于庫存信息的統(tǒng)計(jì)分析和提供決策支持無能為力.主要體現(xiàn)在以下幾方面.
1)物料種類多,存儲(chǔ)分散,同時(shí)物料存儲(chǔ)的庫位信息不全、不準(zhǔn)確,甚至沒有庫位信息,造成物料銷售和使用時(shí),無法準(zhǔn)確得知物料的庫存信息和存放位置,有時(shí)會(huì)發(fā)生賬面有,而無法找到的情況.
2)不能有效管理分公司和分銷點(diǎn)的庫存信息,由于地點(diǎn)的分散及信息反饋的滯后和不準(zhǔn)確,導(dǎo)致總部無法及時(shí)了解分公司的庫存情況.總部在向山工提交采購訂貨時(shí),經(jīng)常發(fā)生重復(fù)訂貨、少訂和漏訂的情況,影響銷售和客戶服務(wù)的響應(yīng)速度和客戶的滿意度[1].
3)庫存物料的成本、利潤核算滯后,對于經(jīng)營決策無法提供有效的數(shù)據(jù)支持.市場的變化和客戶需求的多樣化,迫使企業(yè)要及時(shí)根據(jù)情況進(jìn)行庫存調(diào)節(jié),傳統(tǒng)的成本核算和手工操作的弊端,無法進(jìn)行科學(xué)合理的成本分析、預(yù)測和控制.
4)應(yīng)收賬款占比重,影響代理商的資金周轉(zhuǎn)和使用頻度.由于自動(dòng)化程度低和各分公司之間的相互獨(dú)立,企業(yè)資源和信息共享程度差,導(dǎo)致企業(yè)的應(yīng)收賬款管理不細(xì)、收賬不及時(shí)和收賬不到位的情況時(shí)有發(fā)生,增加企業(yè)成本和經(jīng)營的風(fēng)險(xiǎn).
5)市場預(yù)測方法落后.由于大量采用手工記賬的方式,大量的紙質(zhì)報(bào)表在規(guī)格上、字符字義長存在差別,數(shù)據(jù)統(tǒng)計(jì)不詳細(xì),甚至不及時(shí)和不準(zhǔn)確,導(dǎo)致市場分析和預(yù)測的差錯(cuò)率高,無法準(zhǔn)確和及時(shí)地根據(jù)市場變化作出決策.
客戶對于分析決策的需求如下.
1)產(chǎn)品銷售趨勢分析,從物料分類的角度,分析在一個(gè)時(shí)間段(周、月、年)內(nèi),指定的地區(qū)某物料銷售情況和利潤的變動(dòng)趨勢.
2)產(chǎn)品采購分析,從物料的角度,分析一段時(shí)間采購數(shù)量、采購成本和采購頻率的問題
3)庫存情況分析,分析一段時(shí)間內(nèi),庫存的數(shù)量、資金占用情況和合理訂貨的庫存情況
4)客戶分析,從客戶角度,分析一段時(shí)間內(nèi),客戶的購買量、購買價(jià)格和利潤變化的情況.
針對以上總體的需求分析,系統(tǒng)設(shè)計(jì)的業(yè)務(wù)功能管理模塊分為采購業(yè)務(wù)、銷售業(yè)務(wù)、庫存管理、基礎(chǔ)數(shù)據(jù)、系統(tǒng)管理、查詢報(bào)表與分析.各業(yè)務(wù)模塊功能如下.
采購業(yè)務(wù):采購訂單、采購入庫(賒購)、采購入庫(現(xiàn)款)、采購?fù)素?、采購預(yù)付款、采購付款(應(yīng)付款)和預(yù)付轉(zhuǎn)應(yīng)付.
銷售業(yè)務(wù):客戶訂單、銷售出庫(賒銷)、銷售出庫(現(xiàn)款)、銷售退貨、銷售預(yù)付款、銷售收款(應(yīng)收款)和預(yù)收轉(zhuǎn)應(yīng)收.
庫存管理:內(nèi)部耗材領(lǐng)用、借出、借出歸還、盤盈盤虧、調(diào)撥申請、庫存調(diào)撥、庫存信息設(shè)置和單據(jù)確認(rèn)等.
基礎(chǔ)數(shù)據(jù):物料信息、部門檔案、員工檔案、服務(wù)項(xiàng)目定義、往來業(yè)務(wù)單位、收付賬號(hào)信息、物料分類和物料信息輔助設(shè)置等[2].
系統(tǒng)管理:系統(tǒng)用戶、用戶菜單權(quán)限、用戶可操作部門、數(shù)據(jù)庫備份、系統(tǒng)公告維護(hù)和系統(tǒng)日志.
賬務(wù)處理:財(cái)務(wù)交款單、收款確認(rèn)、采購發(fā)票記賬、銷售發(fā)票記賬、結(jié)賬和反結(jié)賬.
查詢與報(bào)表:用于查詢、統(tǒng)計(jì)和簡單分析企業(yè)的業(yè)務(wù)數(shù)據(jù),主要功能包括:庫存臺(tái)賬查詢、業(yè)務(wù)單據(jù)查詢、供貨商供貨匯總,各部門月度銷售匯總、庫存預(yù)警、銷售利潤和庫存周轉(zhuǎn)率等等一系列的報(bào)表,在此不一一列舉.
聯(lián)機(jī)分析和預(yù)測:通過聯(lián)機(jī)分析和預(yù)測工具,從應(yīng)用系統(tǒng)中提取和處理與之相關(guān)的數(shù)據(jù),比如某種業(yè)務(wù)的統(tǒng)計(jì)、分析和預(yù)測等信息,提供決策支持所需的數(shù)據(jù).
數(shù)據(jù)倉庫管理系統(tǒng)把企業(yè)原始數(shù)據(jù)和來自外部的數(shù)據(jù)經(jīng)過數(shù)據(jù)抽取、轉(zhuǎn)換、清洗、裝載到數(shù)據(jù)倉庫中,通過聯(lián)機(jī)分析工具和查詢報(bào)表,為客戶提供多視圖、多角度的數(shù)據(jù)分析結(jié)果.分為三個(gè)子系統(tǒng):業(yè)務(wù)處理子系統(tǒng)、輔助分析和決策子系統(tǒng)和數(shù)據(jù)管理子系統(tǒng)[3].整體結(jié)構(gòu)如圖1 所示.
1)業(yè)務(wù)處理子系統(tǒng),即為傳統(tǒng)的庫存管理應(yīng)用程序系統(tǒng),完成日常庫存進(jìn)庫、出庫、盤盈盤虧等操作.使用關(guān)系數(shù)據(jù)庫,為聯(lián)機(jī)分析和決策支持提供元數(shù)據(jù).
2)輔助分析和決策子系統(tǒng),前臺(tái)使用聯(lián)機(jī)分析、數(shù)據(jù)挖掘等工具,后臺(tái)使用數(shù)據(jù)倉庫,數(shù)據(jù)倉庫的數(shù)據(jù)來源于業(yè)務(wù)處理子系統(tǒng)的日常發(fā)生的業(yè)務(wù)數(shù)據(jù),通過預(yù)測分析功能,為決策提供支持.
3)數(shù)據(jù)管理子系統(tǒng),負(fù)責(zé)對整個(gè)系統(tǒng)數(shù)據(jù)的管理和從各數(shù)據(jù)源抽取、轉(zhuǎn)換、清洗和裝載數(shù)據(jù)到數(shù)據(jù)倉庫,并對數(shù)據(jù)倉庫的數(shù)據(jù)結(jié)構(gòu)和業(yè)務(wù)規(guī)則進(jìn)行管理[4].
圖1 系統(tǒng)功能模塊圖
3.1.1 數(shù)據(jù)庫E-R 模型
數(shù)據(jù)庫用于存儲(chǔ)實(shí)體表和業(yè)務(wù)數(shù)據(jù),數(shù)據(jù)庫設(shè)計(jì)要充分考慮數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),數(shù)據(jù)完整性和良好的性能[5].良好的存儲(chǔ)結(jié)構(gòu)不僅可以提供較好的數(shù)據(jù)完整性的支持,也可以有效的提高數(shù)據(jù)庫的性能和安全性[6].數(shù)據(jù)庫總體E-R 如圖2 所示.
圖2 數(shù)據(jù)庫總體E-R 圖
3.1.2 數(shù)據(jù)表設(shè)計(jì)
基于篇幅的限制,本文只介紹數(shù)據(jù)庫中主要的業(yè)務(wù)表.
單據(jù)主表(tinv_billMain)系統(tǒng)中各種單據(jù)表現(xiàn)形式不同、但使用用一個(gè)表,單據(jù)使用兩表結(jié)構(gòu),主表用來存儲(chǔ)物料出方、物料入方、單據(jù)號(hào)等信息,見表1.
3.2.1 系統(tǒng)主界面
系統(tǒng)菜單采用樹狀結(jié)構(gòu),沒有層次限制.系統(tǒng)運(yùn)行主界面如圖3 所示.
表1 單據(jù)主表
圖3 系統(tǒng)操作主界面
3.2.2 關(guān)鍵技術(shù)和代碼
本系統(tǒng)支持批量操作的關(guān)鍵技術(shù)是采用數(shù)據(jù)集(DataSet)和數(shù)據(jù)表(DataTable)的更改與傳遞[7].對于單表更新,如“系統(tǒng)用戶”的維護(hù),系統(tǒng)DataTable的行狀態(tài),將發(fā)生更改的行(增、刪、改)單獨(dú)保存到一個(gè)DataTable 中,然后將其傳給函數(shù)方法直接保存.其中用到的ShareData為自定義封裝DataTable和更新SQL 語句的類.代碼如下:
基于傳統(tǒng)的B/S和C/S 結(jié)構(gòu)的庫存管理系統(tǒng)的優(yōu)缺點(diǎn),以及傳統(tǒng)庫存管理系統(tǒng)的局限性,本文提出采用B/S模式與C/S模式相結(jié)合多層系統(tǒng)架構(gòu),研究、設(shè)計(jì)基于數(shù)據(jù)倉庫的分析和決策支持的庫存管理系統(tǒng).系統(tǒng)能滿足一般企業(yè)的庫存管理業(yè)務(wù)需求,同時(shí)對于庫存分析和決策功能的特殊化需求功能也能滿足.
由于時(shí)間有限,同時(shí)企業(yè)的需求也會(huì)存在不同的變化,本系統(tǒng)還不夠完善,如庫存管理系統(tǒng)的通用化和安全性;對于處理大數(shù)據(jù)量的數(shù)據(jù)倉庫,如何提高數(shù)據(jù)的ETL和挖掘算法,如何擴(kuò)大分析領(lǐng)域,如何給用戶更好的操作體驗(yàn)以及需要進(jìn)一步研究.
[1]楊建剛,曾海平,何珊.數(shù)據(jù)挖掘技術(shù)在庫存管理系統(tǒng)中的應(yīng)用[J].現(xiàn)代制造工程,2005,(5):63-66.
[2]陳京民.數(shù)據(jù)倉庫與數(shù)據(jù)挖掘技術(shù)[M].北京:電子工業(yè)出版社,2002,1-2.
[3]羅江華,朱永光..NET Web 高級(jí)開發(fā)[M].北京:電子工業(yè)出版社,2008
[4]侯建春,陳夢東.干部管理領(lǐng)域數(shù)據(jù)倉庫模型設(shè)計(jì)[J].微機(jī)發(fā)展,2005,15(11):40-42
[5]李全鋼.現(xiàn)代企業(yè)庫存管理系統(tǒng)的設(shè)計(jì)與研究[J].電腦編程技巧與維護(hù).2011,(4):28-29
[6]童紅兵.基于ASP.NET 技術(shù)的大學(xué)生就業(yè)交互平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦學(xué)習(xí),.2007,(2):6-7.
[7]李大志,張阿紅.數(shù)據(jù)倉庫與聯(lián)機(jī)分析處理技術(shù)綜述[J].科技信息,2010,(35):97-98.