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