馬萌
(中國電子科技集團公司第五十四研究所,河北石家莊050081)
基于Java語言的進銷存管理系統(tǒng)
馬萌
(中國電子科技集團公司第五十四研究所,河北石家莊050081)
針對企業(yè)進銷存管理中賬目混論、庫存不準和信息反饋不及時等問題,采用Java開發(fā)設(shè)計集進貨、銷售he存儲多個環(huán)節(jié)于一體化的移動進銷存管理系統(tǒng),詳細介紹了該系統(tǒng)的功能、數(shù)據(jù)結(jié)構(gòu)、模塊和軟件設(shè)計技術(shù),給出了關(guān)鍵技術(shù)的具體方法,完美實現(xiàn)了“精準報價、清晰庫存”的核心價值,凸顯了該系統(tǒng)具有與傳統(tǒng)進銷存管理系統(tǒng)無法比擬的優(yōu)越性。
進銷存管理系統(tǒng)Java語言數(shù)據(jù)庫軟件設(shè)計
在中小型企業(yè)面臨的挑戰(zhàn)和競爭越來越激烈的今天,如何有效整合倉庫信息和高效率進行倉庫管理已經(jīng)成為中小企業(yè)們“以快制慢”贏得競爭的重要手段,顯然,引進合適的進銷存管理系統(tǒng)非常的重要,進銷存管理系統(tǒng)無疑有著非常光明的前景。據(jù)信息產(chǎn)業(yè)部中國電子信息產(chǎn)業(yè)研究院發(fā)布的《2009-2010年中國管理軟件研究市場研究年度總報告》顯示,2009年中國進銷存軟件市場的銷售總額為6.48億元,同比增長20.2%,預(yù)計2010年進銷存市場銷售額將達到7.75億元,同比增長20.5%。如何設(shè)計開發(fā)一個進銷存管理系統(tǒng)顯得格外重要。Java作為當(dāng)今Internet最流行的編程語言,它是一個“簡單、健全、面向?qū)ο?、平臺獨立、多線程、動態(tài)并且通用的編程環(huán)境”,因此用Java語言編程進銷存管理系統(tǒng)是一件自然而然,水到渠成的事。
進銷存管理系統(tǒng)不僅對企業(yè)中人員情況進行管理規(guī)范,而且對企業(yè)生產(chǎn)經(jīng)營中的物料流和資金流進行條碼全程跟蹤管理,從合同開始到進入物料采購、入庫、出庫和回收貨款等等一系列流程,進銷存管理系統(tǒng)將為各個環(huán)節(jié)提供準確的數(shù)據(jù),有效輔助企業(yè)進行人員管理、業(yè)務(wù)管理、銷售管理、存貨管理、營銷計劃的執(zhí)行和監(jiān)控,有效地解決了統(tǒng)計信息及收集信息的業(yè)務(wù)問題。該系統(tǒng)利用B/S模式和MVC三層結(jié)構(gòu)模式,采用MyEclipse作為開發(fā)工具,JSP網(wǎng)頁編程語言。SSH框架技術(shù)[1](即struts spring hibernate、),MySQL作為后臺數(shù)據(jù)庫支撐,使用windowsXP作為系統(tǒng)開發(fā)平臺,軟件開發(fā)運用軟件工程的思想,通過以上工具來實現(xiàn)系統(tǒng)的設(shè)計與編寫,然后在不同的操作平臺上進行軟件測試,進一步對軟件進行完善。
2.1系統(tǒng)功能設(shè)計
進銷存管理系統(tǒng)[2]主要業(yè)務(wù)集中企業(yè)的進貨和出貨,并打印相應(yīng)的票據(jù)以及人員管理、基本信息(商品、庫存、員工、用戶和客戶)的維護,實現(xiàn)對商品(進貨商品、出貨商品以及零售商品)的數(shù)據(jù)的錄入、查詢和更新等功能。
通過調(diào)查,要求系統(tǒng)需要有以下功能:①支持批發(fā)銷售零售銷售;②供貨商往來帳務(wù)管理;③客戶往來帳務(wù)管理;④支持銷售換貨;⑤提供業(yè)務(wù)員和員工管理;⑥職工出勤情況的管理;⑦工資發(fā)放管理。系統(tǒng)功能圖如圖1所示。
圖1 系統(tǒng)功能圖
2.2數(shù)據(jù)庫設(shè)計
這一設(shè)計階段是在需求分析的基礎(chǔ)上,設(shè)計出能夠滿足用戶需求的各種實體,以及他們之間的關(guān)系,為后面的邏輯結(jié)構(gòu)設(shè)計打下基礎(chǔ),可以用實體關(guān)系模型來描述。
實體—關(guān)系模型[3](ENTITY—RELATIONSHIP MODULE,E—R模型)是數(shù)據(jù)庫結(jié)構(gòu)設(shè)計常用的方法,E—R圖中的矩形表示實體,菱形表示實體間的聯(lián)系,聯(lián)系類型可用其1:1或者1:N,M:N等表示,圓角矩形表示實體的有關(guān)屬性,橢圓形表示實體的具體屬性。以下列出的是系統(tǒng)的關(guān)系模型圖,如圖2所示(其中pk為主鍵,fk為外鍵)。
圖2 關(guān)系模型圖
2.3軟件結(jié)構(gòu)
本系統(tǒng)中src包[4]下分為8個包。其中dao包:用于對數(shù)據(jù)庫的操作;service包用于用戶調(diào)用dao中的方法,使得以后調(diào)用時容易使用;pojo包存放的是實體類;struts包[5]放的是所有的業(yè)務(wù)操作,此處是核心代碼處;filter包放置的是我的過濾器,用于過濾所有的漢字進行編碼轉(zhuǎn)換防止亂碼;pdf包存放當(dāng)報表打印時需要的類;util包用于存放工具類的,如分頁的代碼全在這里;text包是我用于調(diào)試我程序使用的。applicationContext.xml為Spring的配置文件[6],用于數(shù)據(jù)庫的鏈接,已經(jīng)各種類的注入。軟件結(jié)構(gòu)圖如圖3所示。
圖3 軟件結(jié)構(gòu)圖
2.4主要模塊設(shè)計
2.4.1管理員登陸界面
從數(shù)據(jù)庫中獲得所有的管理員數(shù)據(jù),以及從頁面中獲得登錄人員輸入的用戶名密碼,把輸入的數(shù)據(jù)和數(shù)據(jù)庫中的數(shù)據(jù)一一進行比較,當(dāng)匹配成功時跳的首頁面,否則返回到登錄頁面。
登錄界面的主要實現(xiàn)代碼:
2.4.2系統(tǒng)主界面
主系統(tǒng)管理界面[7]:包括了所有系統(tǒng)的功能,并將所有功能分類寫在菜單上,主要分7類功能:系統(tǒng)參數(shù)(基本信息的維護)、進貨、出貨、零售、出勤情況、工資發(fā)放和庫存查看。左側(cè)的系統(tǒng)菜單,點擊“全部打開”按鈕,可以查看系統(tǒng)的所有功能模塊;要是點擊“全部關(guān)閉”按鈕,就可以關(guān)閉所有的功能模塊。
3.1報表打印
其他的客戶信息維護、商品信息維護及員工信息維護都與用戶信息維護相同。以下主要介紹一下出貨、進貨、零售和pdf報表打印等業(yè)務(wù)信息。
在記錄下進貨信息成功后還有一個子關(guān)鍵的技術(shù),就是打印進貨信息的報表,對于打印報表采用的是Jasper和Jrxml技術(shù)進行處理的,使用PDF的打印功能進行報表打印的。
首先,通過Ireport軟件進行靜態(tài)的表格設(shè)計,設(shè)計完后進行保存。會得到input.jrxml把此文件保存在同一目錄下。其次,在action中把頁面得到的那些值保存到一個list對象中,通過request傳導(dǎo)一個打印報表的頁面,即input_pdf.jsp[8]頁面,在這個頁面中得到list對象,然后傳給一個方法,此方法可以將這個list對象傳給input.jrxml,即可以動態(tài)生成pdf的頁面。最后,action的result應(yīng)該是跳轉(zhuǎn)到input_pdf.jsp頁面,這樣在你添加完進貨記錄,就可以立刻查看pdf頁面,然后順便也可以打印出來,以作為跟客戶的交易憑證。
3.2中文亂碼處理
對系統(tǒng)的進出貨物功能模塊進行了開發(fā)時,發(fā)現(xiàn)當(dāng)進出貨物之后進行查看數(shù)據(jù)庫發(fā)現(xiàn)備注信息為亂碼,不能正常顯示,經(jīng)過一步步提交測試發(fā)現(xiàn)在還沒有提交前就已經(jīng)出現(xiàn)亂碼了,當(dāng)所有數(shù)據(jù)提交到業(yè)務(wù)邏輯層時所有的中文漢字已經(jīng)變成了亂碼,經(jīng)過上網(wǎng)搜索得知解決這一問題的簡單又有效的方法是寫過濾器進行過濾來完成字符集的轉(zhuǎn)換。
以下就是我編寫的過濾器[9],把所有的編碼都改成UTF-8進行編碼。
//過濾器進行初始化,獲得配置文件web.xml中設(shè)置的編碼格式
//過濾器過濾所有請求,把字符轉(zhuǎn)換成制定的編碼格式
//當(dāng)過濾器過濾完后進行銷毀
設(shè)置此過濾器的編碼格式
參數(shù)經(jīng)過此類轉(zhuǎn)換后寫入、讀取數(shù)據(jù)庫中的數(shù)據(jù)就不再出現(xiàn)亂碼問題,同時在web.xml中加入如下代碼,主要是為了在程序提交時自動調(diào)用過濾器進行過濾,并且可以在此設(shè)置轉(zhuǎn)換的編碼格式,當(dāng)人們想該另外一種編碼格式時,只需改此配置文件即可,不用對過濾器進行修改。
經(jīng)過再次演示,亂碼的問題得到了解決。
近年來,隨著計算機管理的推廣,進銷存管理系統(tǒng)已經(jīng)深入到各大中小型企業(yè)中,采用客戶端本地業(yè)務(wù)管理與互聯(lián)網(wǎng)搜索及應(yīng)用相結(jié)合的方式,以貨品價格搜索和庫存管理為基礎(chǔ),統(tǒng)一管理個體工商戶的報價、庫存、往來及收支,解決日常經(jīng)營中一直存在的太多無法記住價格及庫存的問題,完美實現(xiàn)“精準報價、清晰庫存”的核心價值。隨著4G網(wǎng)絡(luò)的部署,進銷存已經(jīng)進入移動時代,移動進銷存管理系統(tǒng)將利用無線網(wǎng)絡(luò)實現(xiàn)進銷存的技術(shù),將原有的計算機式進銷存管理系統(tǒng)遷移至手機,移動進銷存管理系統(tǒng)具有傳統(tǒng)進銷存管理系統(tǒng)無法比擬的優(yōu)越性。
[1](美)布朗,(美)戴維斯,斯坦利克.Struts2實戰(zhàn)[M].馬召,譯.北京:人民郵電出版社,2010.
[2]李剛.輕量級J2EE企業(yè)用實戰(zhàn):Struts+Spring+Hibernate整合開發(fā)[M].北京:電子工業(yè)出版社,2007.
[3]嚴蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)及應(yīng)用[M].北京:清華大學(xué)出版社,2004.
[4]Marity H,Larry B.Servlet與JSP核心編程(第2版)[M].趙學(xué)良,譯.北京:清華大學(xué)出版社,2004.
[5]Karl M.Java Servlet開發(fā)人員指南[M].北京:清華大學(xué)出版社,2003.
[6]計磊,李理,周偉.《精通J2EE-Eclipse》系列相關(guān)書籍[M].北京:人民郵電出版社,2007.
[7]張桂元,賈艷鳳,姜波.征服Ajax Web2.0快速入門與項目實踐(Java)[M].北京:人民郵電出版社,2006.
[8]Donny.JSP與網(wǎng)站開發(fā)編程實戰(zhàn)[M].北京:科學(xué)出版社,2001.
[9]李興華,王月清.java web開發(fā)實戰(zhàn)經(jīng)典[M].北京:清華大學(xué)出版社,2011.
Invoicing Management System Based on Java
MA Meng
(The 54th Research Institute of CETC,Shijiazhuang Hebei 050081,China)
In the invoicing management of enterprise,the problems exist,such as confused accounts,inaccurate inventory,inopportune information feedback,etc.In view of these problems,a mobile invoicing management system integrating purchase,marketing and storage is designed by using Java.The system functions,data structure,module and software design are described in detail,and the key techniques are introduced.This system realizes the core value of“accurate quotation,clear inventory”.Compared with traditional invoicing management system,it has more advantages.
invoicing management system;Java;database;software design
TN312
A
1008-1739(2015)19-61-4
定稿日期:2015-09-12