最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

進(jìn)銷存管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

2022-12-18 23:44 作者:ChatGPT云炬學(xué)長  | 我要投稿

本科畢業(yè)

設(shè)計(jì)

(

論文

) 題 目:?

進(jìn)銷存

管理系統(tǒng)

的設(shè)計(jì)與實(shí)現(xiàn)

專題

題目: 本?科?畢?業(yè)?設(shè)?計(jì)(論文)任?務(wù)?書 題?目:進(jìn)銷存管理

系統(tǒng)

的設(shè)計(jì)與實(shí)現(xiàn) 專題題目(若無專題則不填): 原始依據(jù)(包括設(shè)計(jì)(論文)的工作基礎(chǔ)、研究條件、

應(yīng)用環(huán)境

、工作目的等): 工作基礎(chǔ)

在選題之前首先對(duì)現(xiàn)在企業(yè)的發(fā)展現(xiàn)狀做了一些調(diào)查,通過調(diào)查發(fā)現(xiàn)了

開發(fā)

這個(gè)系統(tǒng)的必要性,然后對(duì)開發(fā)這個(gè)系統(tǒng)所需要的一些工具、條件等進(jìn)行了調(diào)查,發(fā)現(xiàn)完全

可以

滿足我們開發(fā)一個(gè)這樣的系統(tǒng)。

研究條件

本項(xiàng)目的開發(fā)首先是考慮到是定位為小型公司,因此開發(fā)周期不能太長,開發(fā)資金不能太多,因此應(yīng)該需要一些能夠快速開發(fā)的技術(shù)并且能滿足這些小型企業(yè)的業(yè)務(wù)需求。

應(yīng)用環(huán)境

本項(xiàng)目需要在Windows7以上的

操作

系統(tǒng)上,并且有瀏覽器,就可以正常操作本系統(tǒng)了。 工作目的

企業(yè)的員工可以脫離

手工

記賬的痛苦,全部可以在電腦上操作,相對(duì)以前的手工可以節(jié)省大量的人力和物力,與此同時(shí)還能提高工作效率;還有就是以前手工的操作容易出錯(cuò),現(xiàn)在用電腦可以大大降低出錯(cuò)的概率,大大提高了工作效率。可以說對(duì)企業(yè)是好處多多。 主要內(nèi)容和要求:(包括設(shè)計(jì)(研究)內(nèi)容、主要指標(biāo)與

技術(shù)參數(shù)

,并根據(jù)課題性質(zhì)對(duì)學(xué)生提出具體要求): 研究?jī)?nèi)容

首先是對(duì)進(jìn)貨、銷售和庫存的正常增刪改查的操作,這是一個(gè)最基本的功能,在這個(gè)的基礎(chǔ)上,定制一些個(gè)性的功能;一個(gè)是要對(duì)以往的銷售訂單的統(tǒng)計(jì)分析,最好能用圖表的形式表現(xiàn)出來。這樣能看到一個(gè)銷售的趨勢(shì),這樣對(duì)公司決策者在制定公司戰(zhàn)略時(shí)能起到一個(gè)參考的作用。接下來就是

數(shù)據(jù)

的安全問題,企業(yè)在運(yùn)轉(zhuǎn)的過程中肯定會(huì)產(chǎn)生很多的重要的數(shù)據(jù),但是這些數(shù)據(jù)有時(shí)候可能會(huì)被破壞或者人為的原因?qū)е聰?shù)據(jù)的丟失,因此我們要對(duì)這寫數(shù)據(jù)進(jìn)行

備份

,以備不時(shí)之需。做到在數(shù)據(jù)丟失時(shí),我們還能還原系統(tǒng)。對(duì)于這個(gè)數(shù)據(jù)備份,既提供每天定時(shí)備份,也提供自己手動(dòng)備份。

主要技術(shù)指標(biāo)與技術(shù)參數(shù)

首先是整個(gè)系統(tǒng)的操作比較簡(jiǎn)單,要有良好的人機(jī)交互界面,讓企業(yè)的每一個(gè)員工都能輕松地操作整個(gè)系統(tǒng)。然后對(duì)于進(jìn)貨、銷售和庫存的操作界面簡(jiǎn)潔、易于操作,然后對(duì)于這些數(shù)據(jù)的操作都能夠正確快速的響應(yīng)。然后對(duì)于每一個(gè)設(shè)計(jì)的功能都是可以正常、快速的運(yùn)行。

具體要求

獨(dú)立完成本項(xiàng)目系統(tǒng)研制過程,系統(tǒng)能夠順利運(yùn)行,并獨(dú)立完成論文報(bào)告。

日程安排:

序號(hào)各階段工作內(nèi)容時(shí)間安排1畢業(yè)設(shè)計(jì)開題報(bào)告2017年2月28日前完成2需求分析第一、二周3概要設(shè)計(jì)第三、四周4詳細(xì)設(shè)計(jì)第五、六周5系統(tǒng)設(shè)計(jì)第七周6系統(tǒng)開發(fā)第八、九周7系統(tǒng)測(cè)試第十周8畢業(yè)設(shè)計(jì)論文整理第十一、十二周9提交畢業(yè)論文2017年5月21日前 主要參考文獻(xiàn)和書目:(不少于15篇論文,其中M指書籍,D指學(xué)位論文,J指期刊論文) [1] 陳廣宇.管理信息系統(tǒng)[M].北京:清華大學(xué)出版社,2010:95-100 [2] 張墨華,張永強(qiáng).Java程序設(shè)計(jì)[M].北京:清華大學(xué)出版社, 2010:123-124 [3] 黃沙.企業(yè)物流成本管理存在問題及對(duì)策[J].物流技術(shù)與應(yīng)用,2011,13(2):101-102. [4] 姚興華. 基于輕量級(jí)ORM的R2O架構(gòu)的設(shè)計(jì)和應(yīng)用[D]. 福州大學(xué) 2010 [5] 李海峰. MVC模式架構(gòu)的應(yīng)用研究[J]. 自動(dòng)化與儀器儀表. 2013(01) [6] 汪云飛.JavaEE開發(fā)的顛覆者: Spring Boot實(shí)戰(zhàn)[M], 2016-03 [7] 林祥纖.從零開始學(xué)Spring Boot[M], 2016-07-19 [8]基恩、席卡里爾.Pro JPA2中文版:精通Java持久化API[M], 清華大學(xué)出版社, 2011-10-1 [9] 張艷.基于工作過程的物流信息系統(tǒng)與管理課程的重構(gòu)[J].遼寧高職學(xué)報(bào),2010, 12(2):45-47. [10] 李小娜,董紹華.物流信息技術(shù)在現(xiàn)代物流中的應(yīng)用[J].中國科技信息,2008,(21):140-143. [11] 隋英琴.供應(yīng)鏈管理環(huán)境下的物流管理創(chuàng)新[J].科技創(chuàng)業(yè),2008,14(03):123-125. [12] 陳雄華 Spring 企業(yè)級(jí)應(yīng)用開發(fā)詳解[M] 北京:電子工業(yè)出版社 2009 [13] 王寅田. 基于Hadoop的交通物流大數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 上海交通大學(xué) 2014 [14] 陳鳳琴.基于B/S模式的中小飼料企業(yè)進(jìn)銷存系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].南昌大學(xué)2014 [15] 黃沙.企業(yè)物流成本管理存在問題及對(duì)策[J].物流技術(shù)與應(yīng)用,2011,13(2):101-102. 指導(dǎo)教師(簽字): 年?月?日 注:本表可自主延伸,各專業(yè)根據(jù)需要調(diào)整。 本?科?畢?業(yè)?設(shè)?計(jì)(論文)開?題?報(bào)?告 題?目:進(jìn)銷存管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 專題題目(若無專題則不填): 本課題來源及研究現(xiàn)狀: 課題來源:

21世紀(jì)是信息化的時(shí)代,各行各業(yè)都離不開信息,隨之產(chǎn)生的問題是如何更高效的獲取有用的信息。在企業(yè)經(jīng)營集團(tuán)化和國際化的形勢(shì)下,提出了供應(yīng)鏈的管理模式。

供應(yīng)鏈(Supply Chain)是企業(yè)在制造生產(chǎn)及產(chǎn)品流通過程中,為了能將產(chǎn)品或者服務(wù)順利的交付給用戶,由上游與下游企業(yè)共同創(chuàng)建的需求鏈狀網(wǎng)。具體而言,供應(yīng)鏈的重點(diǎn)是圍繞著客戶需求,通過對(duì)物流、資金流和信息流的控制,從采購原材料開始,到制成中間產(chǎn)品以及最終產(chǎn)品交付,最后由各個(gè)銷售網(wǎng)絡(luò)把產(chǎn)品送到消費(fèi)者手中。簡(jiǎn)而言之就是將供應(yīng)商、制造商、分銷商、零售商、最終用戶連成一個(gè)整體的功能網(wǎng)鏈結(jié)構(gòu)模式。

處于供應(yīng)鏈上的各個(gè)節(jié)點(diǎn)企業(yè)只有在同步協(xié)調(diào)運(yùn)行時(shí),才有可能使網(wǎng)鏈結(jié)構(gòu)上的所有企業(yè)都能受益并實(shí)現(xiàn)供應(yīng)鏈的最優(yōu)化,于是便產(chǎn)生了供應(yīng)鏈管理(Supply Chain Management)?;诠?yīng)鏈運(yùn)作規(guī)律產(chǎn)生的供應(yīng)鏈管理實(shí)質(zhì)上是一種管理模式和管理理念的更新,它強(qiáng)調(diào)供應(yīng)鏈上的企業(yè)之間通過合理分工與流程優(yōu)化,使供應(yīng)鏈從采購到銷售的全過程上的商流、物流、資金流和信息流均能高效率運(yùn)作,達(dá)到縮短供應(yīng)鏈響應(yīng)時(shí)間、降低供應(yīng)鏈總體交易成本、提高用戶滿意度、進(jìn)而實(shí)現(xiàn)整條供應(yīng)鏈價(jià)值最大化的目的。而進(jìn)銷存可以說是供應(yīng)鏈中重要的一環(huán)。

研究現(xiàn)狀:

供應(yīng)鏈發(fā)展大概的可以分為三個(gè)階段:

第一階段,60及70年代,研究的方向和重點(diǎn)是:分離的物流配送和物流成本管理。

第二階段,70及80年代,研究的方向和重點(diǎn)是:整合內(nèi)外部物流管理和企業(yè)間關(guān)系管理。

第三階段,90年代及以后,研究的方向和重點(diǎn)是:整體價(jià)值鏈效率和價(jià)值增值的提高。

供應(yīng)鏈管理的發(fā)展與制造業(yè)自動(dòng)化的發(fā)展、企業(yè)經(jīng)營管理的演進(jìn)以及企業(yè)信息系統(tǒng)的演化密不可分。在20世紀(jì)50-60年代,制造商強(qiáng)調(diào)大規(guī)模生產(chǎn)以降低單位生產(chǎn)成本,即大規(guī)模生產(chǎn)的運(yùn)營戰(zhàn)略。當(dāng)時(shí)的企業(yè)生產(chǎn)較少考慮市場(chǎng)因素,生產(chǎn)、制造缺乏柔性,新產(chǎn)品的開發(fā)緩慢,幾乎完全依靠企業(yè)內(nèi)部技術(shù)和能力。因此企業(yè)的運(yùn)營瓶頸是通過加大庫存量來解決,很少考慮企業(yè)間的合作和發(fā)展。當(dāng)時(shí)的采購僅僅被認(rèn)為是生產(chǎn)的支持活動(dòng),管理人員很少關(guān)心采購活動(dòng)(Farmer,1997)。

到了70年代,制造資源計(jì)劃被引入,管理人員意識(shí)到存貨數(shù)量給制造成本、新產(chǎn)品開發(fā)和生產(chǎn)提前期帶來重要影響。所以通過轉(zhuǎn)向新型的物料管理來提高企業(yè)績(jī)效。

80年代后,全球競(jìng)爭(zhēng)加劇,一些大型跨國企業(yè)面對(duì)市場(chǎng)競(jìng)爭(zhēng)只有通過提供低成本、高質(zhì)量、可靠的產(chǎn)品和更加柔性的設(shè)計(jì)來保持領(lǐng)先地位。制造企業(yè)開始導(dǎo)入JIT生產(chǎn)力理念,日本企業(yè)通過實(shí)施JIT來提高制造效率、縮短生產(chǎn)周期和降低庫存。由于JIT通過快節(jié)奏制造環(huán)境、低庫存來緩解生產(chǎn)和排成問題,制造商們意識(shí)到戰(zhàn)略合作伙伴關(guān)系的重要。所以當(dāng)制造商和供應(yīng)商開始發(fā)展戰(zhàn)略供應(yīng)關(guān)系時(shí),供應(yīng)鏈管理的概念隨即出現(xiàn)了。而采購、物流和運(yùn)輸過程的專業(yè)化,推動(dòng)物料管理概念的進(jìn)一步發(fā)展。制造資源計(jì)劃(MRP II)強(qiáng)調(diào)企業(yè)內(nèi)部各功能、資源的整合,而企業(yè)內(nèi)部資源計(jì)劃的整合需要外部供應(yīng)商和分銷商的合作。制造企業(yè)將企業(yè)內(nèi)部物流和外部物流系統(tǒng)整合,這導(dǎo)致了整合物流概念的產(chǎn)生。

在90年代,供應(yīng)鏈管理持續(xù)發(fā)展,供應(yīng)鏈擴(kuò)展為由供應(yīng)商、制造商、分銷和客戶組成的整體價(jià)值鏈。采購和供應(yīng)的效率要求更多地考慮成本與質(zhì)量間的協(xié)調(diào)。制造商通過從選定的少數(shù)幾家供應(yīng)商或者經(jīng)過認(rèn)證的供應(yīng)商那里采購原料,以消除非增值活動(dòng),如 原 材 料 質(zhì) 量 檢 查、入 庫 檢 查 等(Inman & Hubler,1992)。很多制造商和零售商通過緊密合作來提高跨企業(yè)的價(jià)值鏈的效率。例如,在進(jìn)行新產(chǎn)品開發(fā)時(shí),制造商將供應(yīng)商和客戶整合在一起,利 用合作伙伴的研發(fā)能力和科技,提高研發(fā)周期,增強(qiáng)核心競(jìng)爭(zhēng)力(Ragate,et.al,1997;Morgan & Monczka,1995)。而分銷商和零售商則將自己的分銷與運(yùn)輸提供商進(jìn)行無縫連接,以達(dá)到直接交貨,消除物品檢查等增值活動(dòng)。

進(jìn)入21世紀(jì),企業(yè)所面對(duì)的市場(chǎng)需求多樣化、個(gè)性化、變化頻繁的特點(diǎn)日益突出,而企業(yè)之間的競(jìng)爭(zhēng)也日益激烈。通過專業(yè)化分工、服務(wù)外包的手段提高核心競(jìng)爭(zhēng)力、提升對(duì)市場(chǎng)的響應(yīng)速度、降低供應(yīng)鏈運(yùn)行成本成為企業(yè)競(jìng)爭(zhēng)的主要熱點(diǎn)。其中,通過利用高效的外部供應(yīng)鏈管理服務(wù)平臺(tái)、借助專業(yè)的供應(yīng)鏈管理公司所提供的服務(wù),改進(jìn)企業(yè)的內(nèi)部供應(yīng)鏈架構(gòu),提升供應(yīng)鏈的運(yùn)行效率,降低供應(yīng)鏈的運(yùn)行成本,是現(xiàn)代經(jīng)濟(jì)的發(fā)展的主要趨勢(shì)之一。經(jīng)過多年的發(fā)展,供應(yīng)鏈管理也已經(jīng)有了很好的理論實(shí)踐。也產(chǎn)生了很多的優(yōu)秀的供應(yīng)鏈管理系統(tǒng)。比較有代表的如Oracle公司開發(fā)的供應(yīng)鏈管理系統(tǒng),Oracle供應(yīng)鏈管理 (SCM) 解決方案是一款全面的管理軟件套件,具有開放靈活的架構(gòu)、一流的功能、完整的功能覆蓋范圍,以及集成和模塊化的部署選項(xiàng),能夠?qū)⑵髽I(yè)運(yùn)營從職能需要轉(zhuǎn)變?yōu)閮r(jià)值驅(qū)動(dòng)的競(jìng)爭(zhēng)優(yōu)勢(shì)。Oracle SCM解決方案可幫助企業(yè)以應(yīng)用精益、需求驅(qū)動(dòng)的原則,構(gòu)建靈活、適應(yīng)性強(qiáng)的供應(yīng)鏈,加快可盈利的創(chuàng)新,協(xié)調(diào)供應(yīng)鏈與業(yè)務(wù)目標(biāo)。

但是這些管理系統(tǒng)比較大型,理論比較深,而且需要的資金也是比較多的,比較適合中大型的企業(yè)。就如上文中提到的Oracle公司,合作的公司一般是一些比較大型的企業(yè)。而對(duì)于一些小型的企業(yè),資金并不是很充足,需要的功能并不是特別繁多,可能就是需要一個(gè)比較簡(jiǎn)便的進(jìn)銷存系統(tǒng),此時(shí)這些大型的系統(tǒng)就并不是特別合適。而現(xiàn)在我們正處于一個(gè)大眾創(chuàng)新萬眾創(chuàng)業(yè)的新時(shí)期,因而會(huì)有比較多的小型企業(yè),因此小型的進(jìn)銷存管理系統(tǒng)需求量是比較大的。而前面提到的系統(tǒng)此時(shí)并不適合,因此我們就可以開發(fā)出一個(gè)適合小型企業(yè)、操作簡(jiǎn)單、投入小的進(jìn)銷存管理系統(tǒng)。

課題研究目標(biāo)、內(nèi)容、方法和手段:

研究目標(biāo):

開發(fā)本系統(tǒng)的目的是為了幫助那些小型企業(yè)改變傳統(tǒng)的進(jìn)銷存的管理方式,以前靠人工手動(dòng)處理這些進(jìn)銷存數(shù)據(jù)時(shí),不但效率低下,而且容易出錯(cuò),給企業(yè)帶來不良后果。本系統(tǒng)是進(jìn)銷存管理系統(tǒng),包含企業(yè)通過供應(yīng)商采購商品,把商品放入到倉庫中,該企業(yè)在銷售該商品的時(shí)候,再把商品從倉庫中提取出來,賣給客戶的過程。因此包含三個(gè)訂單:①采購訂單②銷售訂單③調(diào)撥訂單(內(nèi)部倉庫之間調(diào)撥);除了包含訂單管理、銷售管理、庫存管理,不同角色的注冊(cè)、登錄等基本功能;還應(yīng)該會(huì)根據(jù)庫存數(shù)的多少,自動(dòng)產(chǎn)生一個(gè)需要進(jìn)貨的訂單報(bào)表;根據(jù)銷售的情況產(chǎn)生一個(gè)建議采購商品訂單。

研究?jī)?nèi)容:

I:是用戶的注冊(cè)、登錄功能(需要對(duì)密碼進(jìn)行處理):這里面包含一般用戶和管理員用戶的登錄和注冊(cè)功能,在登錄和注冊(cè)頁面里,需要對(duì)用戶的用戶名、密碼做一些限定:用戶名長度要在6-12,密碼長度要在8-12,用戶名不能包含空格、特殊字符這些限定。在系統(tǒng)后臺(tái)還需要對(duì)傳進(jìn)來的密碼做加密處理,提高安全性。

II:是快速、簡(jiǎn)單的對(duì)三種訂單進(jìn)行增、刪、改、查操作:①采購訂單:

添加需要采購的貨物的信息、修改需要采購貨物的信息、刪除采購貨物的信息、查看需要采購貨物的信息。②銷售訂單:對(duì)交易成功訂單的查看、對(duì)交易成功訂單刪除。③調(diào)撥訂單:將貨物從一個(gè)倉庫換到另一個(gè)倉庫時(shí),對(duì)數(shù)據(jù)進(jìn)行修改。

III:分析功能:對(duì)銷售訂單數(shù)據(jù)進(jìn)行統(tǒng)計(jì),然后分析:哪些商品銷售量大,哪些商品銷售量?。粚?duì)銷售量大的商品應(yīng)該在進(jìn)貨訂單里多一些,對(duì)銷售小的商品在進(jìn)貨訂單里少一些。對(duì)過去的銷售數(shù)據(jù)進(jìn)行分析,然后對(duì)接下來的銷售策略進(jìn)行一些預(yù)測(cè),讓公司在制定策略時(shí)可以有一些參考。

IV:庫存告警功能:商品在庫存里有一個(gè)下限值,對(duì)剩余庫存統(tǒng)計(jì)分析,低于下限值得商品就要提醒:需要訂貨了。產(chǎn)生需要進(jìn)貨的訂單報(bào)表(對(duì)低于庫存下限的商品,需要放到進(jìn)貨單里面)。

V:備份功能:對(duì)一些重要的數(shù)據(jù)需要進(jìn)行備份:如進(jìn)貨訂單數(shù)據(jù),倉庫數(shù)據(jù),銷售訂單數(shù)據(jù);還有一些人員數(shù)據(jù)等等需要進(jìn)行備份,以防意外情況發(fā)生。

研究方法:

本項(xiàng)目用的是spring tool suite + maven的集成開發(fā)環(huán)境,java作為開發(fā)語言,使用spring boot 內(nèi)置tomcat作為web服務(wù)器,數(shù)據(jù)庫使用的是mysql,加上使用spring boot + JPA框架。結(jié)合mysql數(shù)據(jù)庫存儲(chǔ)的優(yōu)點(diǎn),體積小,可移植性強(qiáng),使用方便等多方面的優(yōu)點(diǎn),獨(dú)立開發(fā)出了本系統(tǒng)。

前端頁面用到了Javasrcipt技術(shù)(使用JQuery、bootstarp框架),對(duì)頁面進(jìn)行了一些美化,是界面更簡(jiǎn)潔、美觀。在某些頁面中還用AJAX技術(shù)(異步交互功能),使做出來的頁面更合理、美觀。

增、刪、改、查功能:實(shí)際上是對(duì)數(shù)據(jù)庫的大量操作,考慮到實(shí)用性和使用性能問題,選擇了mysql數(shù)據(jù)庫作為存儲(chǔ)數(shù)據(jù)庫(mysql數(shù)據(jù)庫體積小、免費(fèi)、跨平臺(tái)性好)。因?yàn)橐罅康脑鰟h改查操作,因此用Java的JDBC連接數(shù)據(jù)庫就不是很合理,于是采用了JPA作為連接數(shù)據(jù)庫工具,可以讓我們快速、簡(jiǎn)單的和數(shù)據(jù)庫進(jìn)行交互。

分析功能運(yùn)用大數(shù)據(jù)里面的數(shù)據(jù)挖掘和數(shù)據(jù)抽取技術(shù),先采集到數(shù)據(jù),然后對(duì)數(shù)據(jù)排序處理過后,能看到數(shù)據(jù)銷量排行,就能得到數(shù)據(jù):哪些商品銷售量大,哪些商品的銷售量小。還應(yīng)該具備一個(gè)功能,就是對(duì)過去的銷售數(shù)據(jù)進(jìn)行分析,然后對(duì)接下來的銷售策略進(jìn)行一些預(yù)測(cè),讓公司在制定策略時(shí)可以有一些參考。

庫存告警功能:首先需要把商品庫存量計(jì)算出來,然后拿到剩余庫存量,對(duì)剩余庫存量小于警告值的,將該商品放到進(jìn)貨訂單的列表中,這樣就能讓倉庫的商品不會(huì)突然賣完就沒了的情況。

備份與恢復(fù)功能:對(duì)這些重要數(shù)據(jù),每天在一個(gè)特定時(shí)間會(huì)自動(dòng)進(jìn)行備份,備份到文件夾,還可以自己手動(dòng)點(diǎn)擊備份;然后在數(shù)據(jù)庫里數(shù)據(jù)被破壞或者丟失時(shí),我們就可以把備份的數(shù)據(jù)恢復(fù)到數(shù)據(jù)庫中去。

設(shè)計(jì)(論文)提綱及進(jìn)度安排:

設(shè)計(jì)(論文)提綱:

第一章 緒論 第二章 相關(guān)技術(shù)與方法 第三章 系統(tǒng)分析 第四章 系統(tǒng)設(shè)計(jì) 第五章 系統(tǒng)實(shí)現(xiàn) 第六章 系統(tǒng)測(cè)試 第七章 總結(jié) 進(jìn)度安排:

序號(hào)各階段工作內(nèi)容時(shí)間安排1畢業(yè)設(shè)計(jì)開題報(bào)告2017年2月28日前完成2需求分析第一、二周3概要設(shè)計(jì)第三、四周4詳細(xì)設(shè)計(jì)第五、六周5系統(tǒng)設(shè)計(jì)第七周6系統(tǒng)開發(fā)第八、九周7系統(tǒng)測(cè)試第十周8畢業(yè)設(shè)計(jì)論文整理第十一、十二周9提交畢業(yè)論文2017年5月21日前 主要參考文獻(xiàn)和書目:(不少于15篇論文,其中M指書籍,D指學(xué)位論文,J指期刊論文) [1] 辛運(yùn)幃等. java語言程序設(shè)計(jì)[M].北京:人民郵電出版社,2009 [2] (美)(Nicholas C.Zakas)扎卡斯. JavaScript高級(jí)程序設(shè)計(jì)[J].人民郵電出版社2006 [3] 姜承堯. MySQL技術(shù)內(nèi)幕:InnoDB存儲(chǔ)引擎[M].機(jī)械工業(yè)出版社 2011-1 [4] 張海藩;呂云翔.軟件工程[M]. 人民郵電出版社 2013-09-01 [5] Roger S.Pressman, 鄭人杰, 馬素霞等. 軟件工程:實(shí)踐者的研究方法(原書第7版)[M]. 北京: 機(jī)械工業(yè)出版社, 2011 [6] 李興華, 王月清. 名師講壇:Java Web開發(fā)實(shí)戰(zhàn)經(jīng)典基礎(chǔ)篇(JSP, Servlet, Struts, Ajax)[M].北京: 清華大學(xué)出版社, 2010 [7] 成先海.數(shù)據(jù)庫基礎(chǔ)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2008. [8] 張艷.基于工作過程的物流信息系統(tǒng)與管理課程的重構(gòu)[J].遼寧高職學(xué)報(bào),2010, 12(2):45-47. [9] 李小娜,董紹華.物流信息技術(shù)在現(xiàn)代物流中的應(yīng)用[J].中國科技信息,2008,(21):140-143. [10] 隋英琴.供應(yīng)鏈管理環(huán)境下的物流管理創(chuàng)新[J].科技創(chuàng)業(yè),2008,14(03):123-125. [11] 陳雄華 Spring 企業(yè)級(jí)應(yīng)用開發(fā)詳解[M] 北京:電子工業(yè)出版社 2009 [12] 王寅田. 基于Hadoop的交通物流大數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 上海交通大學(xué) 2014 [13] 李海峰. MVC模式架構(gòu)的應(yīng)用研究[J]. 自動(dòng)化與儀器儀表. 2013(01) [14] 陳鳳琴.基于B/S模式的中小飼料企業(yè)進(jìn)銷存系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].南昌大學(xué)2014 [15] 黃沙.企業(yè)物流成本管理存在問題及對(duì)策[J].物流技術(shù)與應(yīng)用,2011,13(2):101-102. 指導(dǎo)教師審核意見: 指導(dǎo)教師(簽字):?年?月?日 注:本表可自主延伸 摘 要 進(jìn)入21世紀(jì)以來,商業(yè)管理中需要處理的數(shù)據(jù)和信息越來越多。大量的數(shù)據(jù)和繁雜的數(shù)據(jù)使得古老的手工處理數(shù)據(jù)的方式漸漸顯得力不從心。甚至有些信息處理的方式在手工處理的模式下是根本無法是實(shí)現(xiàn)的,只能利用計(jì)算機(jī)的高運(yùn)行頻率來進(jìn)行迭代計(jì)算。而且最近國家正在提倡大眾創(chuàng)業(yè),中小型企業(yè)很多。中小企業(yè)在我國經(jīng)濟(jì)發(fā)展中具有重要地位,目前我國的中小企業(yè)數(shù)量多,地區(qū)分布廣泛,行業(yè)分布跨度大。隨著全球經(jīng)濟(jì)一體化的發(fā)展和電子商務(wù)的興起,中小企業(yè)之間的競(jìng)爭(zhēng)將越來越激烈。網(wǎng)絡(luò)及電子商務(wù)的迅猛發(fā)展突破了時(shí)間、空間的局限性,給中小企業(yè)帶來了更多的發(fā)展機(jī)會(huì),同時(shí)也增大了企業(yè)之間的競(jìng)爭(zhēng)強(qiáng)度。這就要求中小企業(yè)必須改變企業(yè)的經(jīng)營管理模式,提高企業(yè)的運(yùn)營效率。隨著技術(shù)發(fā)展,電腦操作及管理日趨簡(jiǎn)化,電腦知識(shí)日趨普及,同時(shí)市場(chǎng)經(jīng)濟(jì)快速多變,競(jìng)爭(zhēng)激烈,企業(yè)采用電腦管理進(jìn)貨、庫存、銷售等諸多環(huán)節(jié)也已成為必然趨勢(shì)。 關(guān)鍵詞:進(jìn)銷存管理系統(tǒng);B/S結(jié)構(gòu);mysql數(shù)據(jù)庫;JSP;spring;springMVC;spring boot;JPA ABSTRACT Since twenty-first Century, more and more data and information are needed in business management. A large number of data and complex data makes the ancient way of manual processing of data gradually appear inadequate. Even some of the information processing in the manual processing mode can not be achieved at all, only the use of the computer’s high operating frequency for iterative calculation. And recently, the country is promoting public entrepreneurship, many small and medium enterprises. Small and medium-sized enterprises play an important role in China’s economic development. At present, there are a large number of small and medium-sized enterprises in china. With the development of global economic integration and the rise of e-commerce, the competition between small and medium enterprises will become more and more fierce. The rapid development of network and electronic commerce has broken through the limitation of time and space, and has brought more opportunities for the development of small and medium-sized enterprises. This requires the small and medium-sized enterprises must change the mode of operation and management of enterprises, improve the operational efficiency of enterprises. With the development of computer technology, operation and management is simplified, the growing popularity of computer knowledge, and fast changing market economy, intense competition, enterprise computer management purch asing inventory sales and many other sectors and has become an inevitable trend. Keywords:?Purchase, sales and inventory management system; B / S structure; Mysql Database; JSP; Spring;SpringMVC;spring boot;JPA 目?錄 第一章 緒論1 1.1 研究背景和意義1 1.2 研究目標(biāo)1 1.3 論文結(jié)構(gòu)1 1.4 本章小結(jié)2 第二章 相關(guān)技術(shù)與方法3 2.1 架構(gòu)概述3 2.2 關(guān)鍵技術(shù)簡(jiǎn)介3 2.3 開發(fā)工具4 2.4 本章小結(jié)5 第三章 系統(tǒng)分析6 3.1 可行性分析6 3.2 需求分析6 3.3 本章小結(jié)15 第四章 系統(tǒng)設(shè)計(jì)16 4.1 系統(tǒng)類分析16 4.2 關(guān)鍵業(yè)務(wù)設(shè)計(jì)21 4.3 數(shù)據(jù)庫設(shè)計(jì)23 4.4 本章小結(jié)33 第五章 系統(tǒng)實(shí)現(xiàn)35 5.1 用戶登錄35 5.2 采購管理37 5.3 庫存管理39 5.4 銷售管理42 5.5 備份與恢復(fù)43 5.6 本章小結(jié)46 第六章 系統(tǒng)測(cè)試47 6.1 系統(tǒng)測(cè)試綜述47 6.2 測(cè)試用例48 6.3 測(cè)試分析51 6.4 本章小結(jié)52 第七章 總結(jié)53 參考文獻(xiàn)54 致 謝55 緒論

研究背景和意義

目前,許多的中小企業(yè)普遍存在一個(gè)問題:企業(yè)的決策者看到的進(jìn)銷存資料及相關(guān)報(bào)表都是比較繁雜,讓本應(yīng)該一目了然的結(jié)果因信息的分散使得產(chǎn)生的結(jié)果無法保持一致和完整,造成企業(yè)在進(jìn)銷存管理上問題很多。由此發(fā)展而來的進(jìn)銷存管理系統(tǒng)就能夠很好的解決上面出現(xiàn)的問題,能夠?qū)?shù)據(jù)快速轉(zhuǎn)化為有效信息,為企業(yè)管理者制定生存發(fā)展決策提供了依據(jù)。 在現(xiàn)今社會(huì)中,各個(gè)產(chǎn)品的質(zhì)量都相差不大,現(xiàn)在顧客對(duì)個(gè)性化服務(wù)的期望值越來越高,在產(chǎn)品質(zhì)量一樣的情況下顧客更看重的是哪家的服務(wù)更好。企業(yè)的競(jìng)爭(zhēng)已漸漸從產(chǎn)品的競(jìng)爭(zhēng)這個(gè)戰(zhàn)場(chǎng)轉(zhuǎn)變到服務(wù)的競(jìng)爭(zhēng)這個(gè)戰(zhàn)場(chǎng),因此企業(yè)要發(fā)展的話就必須要進(jìn)一步優(yōu)化業(yè)務(wù)流程來提高企業(yè)自身的競(jìng)爭(zhēng)能力。因此,加強(qiáng)進(jìn)銷存管理是企業(yè)能適應(yīng)現(xiàn)階段發(fā)展的必然,通過計(jì)算機(jī)來快速準(zhǔn)確地完成大量本來由人工手工完成的工作,這是真正達(dá)到合理和充分利用現(xiàn)有資源,減輕了員工的工作壓力,提高了企業(yè)的生產(chǎn)效率。 信息已深入到現(xiàn)代社會(huì)的各個(gè)行業(yè),因此信息的管理需要有一個(gè)信息管理系統(tǒng),進(jìn)銷存管理系統(tǒng)就是這樣一個(gè)系統(tǒng)。進(jìn)銷存管理系統(tǒng)開發(fā)的市場(chǎng)將是非常龐大的。在這飛速發(fā)展的信息時(shí)代,這類的信息管理系統(tǒng)的開發(fā)為中小型企業(yè)帶來了方便和有效的信息,促進(jìn)了經(jīng)濟(jì)的發(fā)展。 研究目標(biāo)

實(shí)現(xiàn)一個(gè)進(jìn)銷存管理系統(tǒng),實(shí)現(xiàn)對(duì)企業(yè)運(yùn)作過程中的進(jìn)貨、銷售、倉儲(chǔ)的電子化操作,可以節(jié)省大量人力物力,可以說對(duì)企業(yè)的運(yùn)作帶來不可限量的好處。實(shí)現(xiàn)一個(gè)簡(jiǎn)單實(shí)用,操作界面友好的進(jìn)銷存管理系統(tǒng)是首要解決的任務(wù)。然后一是要實(shí)現(xiàn)對(duì)庫存數(shù)據(jù)進(jìn)行分析,對(duì)接下來的進(jìn)貨進(jìn)行一些指導(dǎo);二是實(shí)現(xiàn)對(duì)銷售數(shù)據(jù)的采集分析,對(duì)企業(yè)決策者對(duì)下一個(gè)季度或者年份的銷售計(jì)劃提供一個(gè)參考的功能。系統(tǒng)肯定要具備對(duì)進(jìn)銷存的一些基本的增刪改查操作。 論文結(jié)構(gòu)

第一章緒論:主要敘述了進(jìn)銷存管理系統(tǒng)開發(fā)的緣由和意義,也就是開發(fā)這個(gè)系統(tǒng)的背景。開發(fā)這個(gè)系統(tǒng)有哪些優(yōu)點(diǎn),開發(fā)的這個(gè)系統(tǒng)具備哪一些功能,或者說能開發(fā)出哪些功能,對(duì)這些功能進(jìn)行了一個(gè)概述。 第二章相關(guān)技術(shù)和方法:本章節(jié)首先是概述了系統(tǒng)的結(jié)構(gòu),用那些技術(shù)搭建的開發(fā)環(huán)境;接下來是簡(jiǎn)單介紹了一下關(guān)鍵功能和是怎么實(shí)現(xiàn)這些關(guān)鍵功能;最后是介紹了用到的開發(fā)工具。 第三章系統(tǒng)分析:本章節(jié)的重點(diǎn)系統(tǒng)分析,主要從可行性分析和需求分析兩方面入手??尚行苑治鰪募夹g(shù)可行性、經(jīng)濟(jì)可行性、操作可行性三個(gè)方面進(jìn)行綜合分析,最終得出系統(tǒng)開發(fā)的可行;需求分析從兩個(gè)方面分析:系統(tǒng)總體需求和用例圖分析,從這兩個(gè)方面確定系統(tǒng)是可行的。 第四章系統(tǒng)設(shè)計(jì):本章節(jié)主要分為系統(tǒng)類設(shè)計(jì)、關(guān)鍵業(yè)務(wù)設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)三個(gè)模塊。系統(tǒng)類設(shè)計(jì)主要是用類圖來呈現(xiàn)系統(tǒng)中類的一些屬性和功能;關(guān)鍵業(yè)務(wù)設(shè)計(jì)主要是用順序圖來直觀的呈現(xiàn)這些功能的處理流程和處理步驟;數(shù)據(jù)庫設(shè)計(jì)首先是用了ER圖來直觀的把數(shù)據(jù)庫表的一些屬性表示出來,其次對(duì)涉及到的每一張表都進(jìn)行了分析和介紹。 第五章系統(tǒng)實(shí)現(xiàn):本章節(jié)主要是對(duì)核心功能介紹,首先是功能描述,然后附上實(shí)現(xiàn)的界面,接下來詳細(xì)描述功能的實(shí)現(xiàn)過程并且附上實(shí)現(xiàn)這些功能的核心代碼。 第六章系統(tǒng)測(cè)試:本章是說明測(cè)試目標(biāo)和測(cè)試計(jì)劃,對(duì)測(cè)試目標(biāo)給出測(cè)試用例,并分析測(cè)試結(jié)果是否達(dá)到系統(tǒng)預(yù)期,如未達(dá)到提出改進(jìn)的措施。 第七章總結(jié):本章主要是對(duì)進(jìn)銷存系統(tǒng)的設(shè)計(jì)的整個(gè)過程做一個(gè)總結(jié),說明本論文的結(jié)構(gòu)組成,從緒論開始到總結(jié)結(jié)束,對(duì)每一個(gè)大的章節(jié)內(nèi)容進(jìn)行簡(jiǎn)單的敘述。并且闡述了自己的收獲與不足,給出不足的解決方案。 本章小結(jié)

本章從研究的背景開始,敘述了進(jìn)銷存管理系統(tǒng)開發(fā)的整個(gè)流程,為什么要開發(fā)這個(gè)系統(tǒng),開發(fā)這個(gè)系統(tǒng)有啥優(yōu)勢(shì)。其次就是描述了本系統(tǒng)需要開發(fā)出什么的功能,需要具備什么樣的功能,能否開發(fā)出這些功能。最后對(duì)正文的每個(gè)章節(jié)進(jìn)行了一個(gè)簡(jiǎn)單的描述。 相關(guān)技術(shù)與方法

架構(gòu)概述

本系統(tǒng)設(shè)計(jì)采用的是MAVEN + SPRING BOOT+ JPA 的架構(gòu)來搭建的項(xiàng)目。Maven是一個(gè)不錯(cuò)的項(xiàng)目管理工具,它包含了一個(gè)項(xiàng)目對(duì)象模型,一組標(biāo)準(zhǔn)集合,一個(gè)項(xiàng)目生命周期,一個(gè)依賴管理系統(tǒng),和用來運(yùn)行定義在生命周期階段中插件目標(biāo)的邏輯。由于 Maven 的缺省構(gòu)建規(guī)則具有不錯(cuò)的可重用性,因此用Maven 可以快速的構(gòu)建項(xiàng)目。Spring Boot是由Pivotal團(tuán)隊(duì)提供的全新框架,設(shè)計(jì)這個(gè)框架目的就是用來簡(jiǎn)化Spring應(yīng)用的初始搭建以和開發(fā)過程。這個(gè)框架使用了特定的方式做配置,因此開發(fā)人員不需要和傳統(tǒng)的Spring應(yīng)用一樣寫大量的配置文件。Springboot具有以下優(yōu)勢(shì):創(chuàng)建的Spring應(yīng)用程序是獨(dú)立的;本身嵌入了Tomcat,無需部署WAR文件;Maven配置作了簡(jiǎn)化;自動(dòng)配置Spring。因此用maven加上spring boot可以讓我們快速的搭建起項(xiàng)目來,可以省去很多繁瑣的步驟。 JPA全稱為Java Persistence API,是通過注解或者XML來描述對(duì)象-關(guān)系表的映射關(guān)系,并且可以將在運(yùn)行的Entity類對(duì)象存儲(chǔ)到數(shù)據(jù)庫中去。使用JPA可以打破一般簡(jiǎn)單持久化框架的局限,在我們開發(fā)企業(yè)級(jí)應(yīng)用中發(fā)揮更大作用,因?yàn)镴PA支持容器級(jí)事務(wù):大數(shù)據(jù)集、事務(wù)、并發(fā)等。使用JPA創(chuàng)建實(shí)體非常簡(jiǎn)單,就和我們平常創(chuàng)建一個(gè)JAVA類一樣,不存在任何的約束和限制,我們只需要在對(duì)應(yīng)的實(shí)體上標(biāo)注javax.persistence.Entity注解即可;開發(fā)人員很容易就可以掌握J(rèn)PA,因?yàn)镴PA沒有特殊的規(guī)則和太多的設(shè)計(jì)模式,框架和接口都很簡(jiǎn)單。JPA采用的原則是非侵入式原則,因此對(duì)其他框架的兼容性很好,易于和其他框架集成。JPA中定義了和Hibernate HQL相似的QL:JPQL,它是EJB QL的一種拓展,操作的對(duì)象是實(shí)體,而不是關(guān)系數(shù)據(jù)庫的一張表。而且能夠正常的支持SQL才能夠提供的高級(jí)查詢特性:批量修改和更新、JOIN、GROUPBY、HAVING等,并且支持子查詢功能。最重要的是JPA也支持面向?qū)ο蟮母呒?jí)特性,這樣的話開發(fā)者在開發(fā)企業(yè)級(jí)應(yīng)用時(shí)能夠最大化的使用面向?qū)ο蟮哪P蛠碓O(shè)計(jì),而不用自己來處理這些特性的持久化。 用這三個(gè)技術(shù)搭建項(xiàng)目框架,可以快速完成,省去許多簡(jiǎn)單繁雜的步驟,對(duì)于我們快速開發(fā)是有非常大的優(yōu)勢(shì)的。 關(guān)鍵技術(shù)簡(jiǎn)介

作為一個(gè)進(jìn)銷存管理系統(tǒng),其最根本的功能還是在對(duì)采購管理、銷售管理和庫存管理上面,其他的功能都是在這個(gè)的基礎(chǔ)上才能夠開發(fā)出來?;A(chǔ)功能也就是對(duì)進(jìn)貨、銷售和庫存的增刪改查。其中對(duì)進(jìn)貨訂單的添加和銷售訂單的添加,每個(gè)訂單都含有一個(gè)或者多個(gè)商品,因此訂單生成時(shí)做了跟購物車類似,我們可以把商品一個(gè)一個(gè)添加到這個(gè)購物車上,等我們商品添加完成,此時(shí)可以提交訂單,這樣就產(chǎn)生 了一個(gè)進(jìn)貨訂單或者銷售訂單。跟數(shù)據(jù)庫打交道肯定少不了連接數(shù)據(jù)庫的技術(shù),在本系統(tǒng)用到的是JPA,JPA本身有許多默認(rèn)的增刪改查的方法,并且不用寫配置文件,而且可以自己個(gè)性化定制sql語句,只需要寫一個(gè)接口繼承JPARepository接口,然后在這個(gè)接口里寫抽象方法,在方法上寫注解就可以了,很方便。 首先是數(shù)據(jù)分析功能,因?yàn)槲覀儽旧頂?shù)據(jù)庫里存有大量的銷售數(shù)據(jù)庫,所以我們就不用去收集數(shù)據(jù)了,直接對(duì)數(shù)據(jù)庫里的數(shù)據(jù)進(jìn)行分析即可。第一階段:探索性數(shù)據(jù)分析,因?yàn)閿?shù)據(jù)庫里的數(shù)據(jù)是雜亂無章的,因而看不出規(guī)律。因此我們需要通過作圖、表格、用各種形式的方程擬合、計(jì)算某些特征量等手段來找出某些可能的關(guān)聯(lián)或某些隱含在數(shù)據(jù)中的規(guī)律。第二階段:選定模型進(jìn)行分析,接下來我們通過前面的初步操作,在探索性分析的基礎(chǔ)上提出一種或幾種可能的模型,然后通過進(jìn)一步分析從里面挑選最符合當(dāng)前發(fā)展的幾個(gè)模型。第三階段:推斷分析,使用數(shù)理統(tǒng)計(jì)方法對(duì)第二階段所定的模型做出以下判斷:估計(jì)的可靠程度,精確程度作出推斷。選定最終的模型。 其次是數(shù)據(jù)備份功能,企業(yè)在運(yùn)轉(zhuǎn)中,系統(tǒng)難免會(huì)出現(xiàn)一些突發(fā)情況導(dǎo)致數(shù)據(jù)的丟失、損壞。因此當(dāng)出現(xiàn)這些情況時(shí),我們就需要把備份的數(shù)據(jù)恢復(fù)到數(shù)據(jù)庫中去。備份數(shù)據(jù)時(shí)會(huì)占用較大的IO資源的,因此我們需要選擇一個(gè)對(duì)系統(tǒng)影響盡可能地小的時(shí)段來進(jìn)行數(shù)據(jù)的備份;對(duì)重要的數(shù)據(jù),要保證在極端情況下的數(shù)據(jù)都可以正?;謴?fù)。在選擇備份方案時(shí)要考慮到實(shí)施方案的可操作性和經(jīng)濟(jì)性,因此選擇了邏輯備份,此方法不需要數(shù)據(jù)庫運(yùn)行在歸檔模式下,不但備份簡(jiǎn)單,而且可以不需要依賴外部存儲(chǔ)設(shè)備。 開發(fā)工具

系統(tǒng)前段頁面采用jsp + JavaScript + css的組合技術(shù)開發(fā),其中JavaScript使用了jQuery和bootstrap框架,這兩個(gè)前段框架讓我們能更友好的使用JavaScript。省去了許多步驟,簡(jiǎn)化了我們的使用。數(shù)據(jù)庫使用的是MySQL數(shù)據(jù)庫,MySQL 是現(xiàn)階段最流行的關(guān)系型數(shù)據(jù)庫之一,因?yàn)樗捏w積小、運(yùn)行速度快、免費(fèi),尤其是開放源碼這一特點(diǎn),一般中小型網(wǎng)站的開發(fā)都會(huì)選擇MySQL作為網(wǎng)站數(shù)據(jù)庫??紤]到系統(tǒng)設(shè)計(jì)的用戶群體以及MySQL數(shù)據(jù)庫的這些優(yōu)點(diǎn),于是選擇了MySQL數(shù)據(jù)庫作為開發(fā)數(shù)據(jù)庫。開發(fā)使用的IDE工具是:Spring tool suit,這個(gè)IDE工具是Spring官網(wǎng)推薦的開發(fā)工具,在使用Spring體系的框架開發(fā)應(yīng)用是,這個(gè)IDE工具具有很多優(yōu)勢(shì)。Web服務(wù)器是使用的Spring boot內(nèi)置的Tomcat服務(wù)器。根據(jù)以上選擇的框架、工具,選擇了JDK1.8作為開發(fā)、編譯環(huán)境。 本章小結(jié)

本章主要簡(jiǎn)單敘述了系統(tǒng)使用了的框架、用了哪些開發(fā)工具。重點(diǎn)介紹如何實(shí)現(xiàn)系統(tǒng)的核心功能,還有實(shí)現(xiàn)這些功能用到了哪些技術(shù),對(duì)這些方面進(jìn)行了闡述。 系統(tǒng)分析

可行性分析

技術(shù)可行性

基于本項(xiàng)目用到的spring boot、JPA、mysql、jQuery等技術(shù)都已經(jīng)是成熟的開發(fā)技術(shù)了,完全可以滿足本項(xiàng)目的開發(fā)需求。項(xiàng)目主要功能所涉及的一些技術(shù)都能是能夠?qū)崿F(xiàn)的,因此在技術(shù)上是可行的。 經(jīng)濟(jì)可行性

企業(yè)在運(yùn)轉(zhuǎn)過程中信息的系統(tǒng)化管理,運(yùn)用電腦對(duì)數(shù)據(jù)進(jìn)行自動(dòng)化的統(tǒng)計(jì),為企業(yè)在制定經(jīng)營決策時(shí)提供了大量的、權(quán)威的科學(xué)數(shù)據(jù);強(qiáng)大的進(jìn)銷存數(shù)據(jù)統(tǒng)計(jì)功能,大大簡(jiǎn)化了員工的日常工作,工作效率提高了很多,大大降低了人工管理過程中數(shù)據(jù)易錯(cuò)所帶來的一系列的不良反應(yīng),提高了企業(yè)的經(jīng)濟(jì)效益??梢怨?jié)省大量的人力物力,并且現(xiàn)在不會(huì)存在之前人工操作產(chǎn)生的人工誤差的情??梢哉f是大大提高了企業(yè)的經(jīng)濟(jì)效益。因此,本系統(tǒng)在經(jīng)濟(jì)上也是可行的。 操作可行性

本項(xiàng)目因?yàn)橛杏押玫慕换ソ缑?,所以每位企業(yè)員工都能夠輕松學(xué)會(huì)去操作本系統(tǒng),因?yàn)椴僮魅藛T只需要把數(shù)據(jù)輸入進(jìn)去,數(shù)據(jù)都是自動(dòng)去計(jì)算的,因此可以省去以前需要手動(dòng)計(jì)算的勞動(dòng),并且效率高好多。而且以前都是手動(dòng)計(jì)算不僅容易出錯(cuò),而且還費(fèi)時(shí)費(fèi)力;現(xiàn)在都是程序自動(dòng)計(jì)算,在減小了出錯(cuò)的概率的同時(shí)還節(jié)省了人力物力、提高了工作效率??梢哉f對(duì)企業(yè)的運(yùn)轉(zhuǎn)是大大節(jié)省了花費(fèi),并且提高了生產(chǎn)效率。綜合考慮本系統(tǒng)在操作上是可行的。 需求分析

系統(tǒng)總體需求

系統(tǒng)需要具備以下功能: ⑴一般企業(yè)人員的計(jì)算機(jī)知識(shí)掌握的不多,因此要求有良好的人機(jī)交互界面,這樣對(duì)操作這個(gè)系統(tǒng)的企業(yè)人員比較友好。 ⑵對(duì)于本系統(tǒng)使用對(duì)象的不同,需要給予不同的權(quán)限。 ⑶支持多條件語句查詢,方便進(jìn)銷存數(shù)據(jù)的查詢。 ⑷基礎(chǔ)信息管理與查詢(包括商品信息、客戶信息、供應(yīng)商信息)。 ⑸一鍵點(diǎn)擊,能夠直接查看倉庫所有商品的庫存信息。 ⑹方便、健全的賬單統(tǒng)計(jì)功能。 ⑺圖表分析年銷售狀況。 ⑻商品銷售排行統(tǒng)計(jì)。 ⑼當(dāng)停電、網(wǎng)絡(luò)病毒的原因損壞本系統(tǒng)數(shù)據(jù)時(shí),系統(tǒng)可以還原系統(tǒng)的數(shù)據(jù)。 ⑽各種數(shù)據(jù)的統(tǒng)計(jì)計(jì)算自動(dòng)完成,盡可能的減少人工干預(yù)。 ⑾系統(tǒng)退出。 質(zhì)量要求

主要質(zhì)量屬性詳細(xì)要求正確性按照需求正確執(zhí)行任務(wù),完成各個(gè)模塊的相應(yīng)要求。健壯性具有較高的容錯(cuò)能力和恢復(fù)能力。性能效率響應(yīng)用戶的請(qǐng)求的時(shí)間越短越好。易用性系統(tǒng)開發(fā)過程中應(yīng)該有詳細(xì)的文檔,這樣讓別人能夠更好的使用。安全性防止軟件受到意外或蓄意的存取、使用、修改、毀壞或泄密導(dǎo)致系統(tǒng)的數(shù)據(jù)丟失??蓴U(kuò)展性能方便的進(jìn)行二次開發(fā),滿足對(duì)功能的擴(kuò)展或提高并能提高相應(yīng)的安全機(jī)制。兼容性不易與其他軟件起沖突。 用例圖分析

圖3-1系統(tǒng)管理用例圖 系統(tǒng)管理用例有配置系統(tǒng)、管理部門、管理員工、管理權(quán)限,這里主要介紹一下管理權(quán)限,具體說明見表3-1: 表3-1管理權(quán)限

用例編號(hào)UC01用例名稱管理權(quán)限用例概述系統(tǒng)管理員通過此用例管理系統(tǒng)中的用戶的操作權(quán)限主參與者管理員前置條件管理員身份正確登錄基本事件流步驟活動(dòng)A1選擇需要的操作,增加、修改、刪除用戶權(quán)限A2輸入用戶權(quán)限信息A3保存輸入的信息擴(kuò)展事件流1a用戶名不存在,返回提示信息1b操作權(quán)限不存在,返回提示信息

圖3-2財(cái)務(wù)用例圖 財(cái)務(wù)用例有查詢應(yīng)收款項(xiàng)、記錄應(yīng)收應(yīng)付款項(xiàng)、管理發(fā)票,這里主要介紹一下記錄應(yīng)收應(yīng)付款項(xiàng),具體說明見表3-2: 表3-2記錄應(yīng)收應(yīng)付款項(xiàng)

用例編號(hào)UC02用例名稱記錄應(yīng)收應(yīng)付款項(xiàng)用例概述系統(tǒng)管理員通過此用例管理系統(tǒng)中的用戶的操作權(quán)限主參與者財(cái)務(wù)前置條件無基本事件流步驟活動(dòng)A1選擇需要的操作,增加、修改、刪除應(yīng)收應(yīng)付款項(xiàng)A2輸入應(yīng)收應(yīng)付款項(xiàng)信息A3保存輸入款項(xiàng)信息

圖3-3 采購部分用例圖 采購部分用例有兩個(gè)角色采購員和采購經(jīng)理。采購員用例有采購單、管理供應(yīng)商、管理商品信息;采購經(jīng)理用例有審批采購單、管理商品分類。具體說明見表3-3至表3-4: 表3-3采購單

用例編號(hào)UC03用例名稱采購單用例概述采購員通過此用例來生成采購單主參與者采購員前置條件無基本事件流步驟活動(dòng)A1選擇需要的操作,增加、修改、刪除采購單A2輸入需要采購的商品信息A3保存輸入的信息擴(kuò)展事件流1a輸入的商品不存在,返回提示信息1b輸入商品信息錯(cuò)誤,返回提示信息 表3-4審批采購單

用例編號(hào)UC04用例名稱審批采購單用例概述采購經(jīng)理通過此用例來對(duì)采購員生成的采購單審批主參與者采購經(jīng)理前置條件采購經(jīng)理身份正確登錄基本事件流步驟活動(dòng)A1選擇需要審批采購單A2審批采購單擴(kuò)展事件流1a采購單不存在,返回提示信息

圖3-4庫存部分用例圖 庫存部分總共有質(zhì)檢員、庫存管理員、倉庫經(jīng)理三個(gè)角色,涉及到的用例比較多,這里具體介紹一下出入庫單、確認(rèn)入庫單、開出庫單、統(tǒng)計(jì)庫存信息、出調(diào)撥單,具體說明見表3-5至表3-9: 表3-5出入庫單

用例編號(hào)UC05用例名稱出入庫單用例概述質(zhì)檢員通過此用例管理倉庫出庫入庫單主參與者質(zhì)檢員前置條件無基本事件流步驟活動(dòng)A1選擇需要的操作,增加、修改、刪除出入庫單A2輸入出庫或入庫單信息A3保存出庫或入庫單信息 表3-6確認(rèn)入庫單

用例編號(hào)UC06用例名稱確認(rèn)入庫單用例概述庫存管理員通過此用例確認(rèn)質(zhì)檢員開出的入庫單主參與者庫存管理員前置條件無基本事件流步驟活動(dòng)A1選擇入庫單A2確認(rèn)入庫單信息 表3-7開出庫單

用例編號(hào)UC07用例名稱開出庫單用例概述庫存管理員通過此用例生成出庫單主參與者庫存管理員前置條件無基本事件流步驟活動(dòng)A1選擇需要出庫的物品信息A2生成出庫單 表3-8統(tǒng)計(jì)庫存信息

用例編號(hào)UC08用例名稱統(tǒng)計(jì)庫存信息用例概述倉庫經(jīng)理通過此用例統(tǒng)計(jì)庫存信息主參與者倉庫經(jīng)理前置條件倉庫經(jīng)理身份正確登錄基本事件流步驟活動(dòng)A1統(tǒng)計(jì)庫存信息 表3-9出調(diào)撥單

用例編號(hào)UC09用例名稱出調(diào)撥單用例概述倉庫經(jīng)理通過此用例生成調(diào)撥單主參與者倉庫經(jīng)理前置條件倉庫經(jīng)理身份正確登錄基本事件流步驟活動(dòng)A1根據(jù)需求生成調(diào)撥單

圖3-5銷售部分用例圖 銷售部分用例圖包括銷售經(jīng)理和銷售員兩種角色,銷售經(jīng)理用例有統(tǒng)計(jì)銷售信息;銷售員用例有管理客戶、查詢商品庫存、下訂單、確認(rèn)訂單具體說明見表3-10至表3-12: 表3-10統(tǒng)計(jì)銷售信息

用例編號(hào)UC10用例名稱統(tǒng)計(jì)銷售信息用例概述銷售經(jīng)理通過此用例統(tǒng)計(jì)銷售信息主參與者銷售經(jīng)理前置條件銷售經(jīng)理身份正確登錄基本事件流步驟活動(dòng)A1統(tǒng)計(jì)銷售信息 表3-11查詢商品庫存

用例編號(hào)UC11用例名稱查詢商品庫存用例概述銷售員通過此用例查詢商品庫存主參與者銷售員前置條件無基本事件流步驟活動(dòng)A1輸入需要查詢的商品名稱A2查詢出商品庫存信息 表3-12下訂單

用例編號(hào)UC12用例名稱下訂單用例概述銷售員通過此用例生成訂單主參與者銷售員前置條件無基本事件流步驟活動(dòng)A1拿到客戶的訂單A2生成訂單信息 本章小結(jié)

本章主要是進(jìn)行了系統(tǒng)的分析,首先第一節(jié)是可行性分析,從技術(shù)可行性、經(jīng)濟(jì)可行性、操作可行性三個(gè)角度對(duì)系統(tǒng)分析是否是可行的,最終得出本系統(tǒng)是可行的。第二節(jié)是需求分析分析了系統(tǒng)所具備的一些的功能,然后重點(diǎn)介紹了一些特色功能。接著第二節(jié)是需求分析,第一小節(jié)闡述了系統(tǒng)的總需求,應(yīng)該具備哪些功能;第二小節(jié)通過用例圖對(duì)需求主要功能進(jìn)行了具體分析。 系統(tǒng)設(shè)計(jì)

系統(tǒng)類分析

經(jīng)分析,該系統(tǒng)核心業(yè)務(wù)類見下圖:

系統(tǒng)核心類

MANAGER類

MANAGER類用于記錄系統(tǒng)的用戶信息,并完成登陸和注銷的操作。

表4-1 MANAGER類功能表

類功能描述處理和用戶相關(guān)的業(yè)務(wù)操作所在包名稱Com.xu.bean繼承對(duì)象無實(shí)現(xiàn)對(duì)象類屬性保護(hù)屬性類型名稱描述備注PrivateLongID用戶ID系統(tǒng)中用戶的唯一標(biāo)示,由系統(tǒng)自動(dòng)生成PrivateStringName姓名長度限制20位PrivateStringPassword密碼長度限制20位PrivateStringGender性別只能為男或者女PrivateLongAge年齡PrivateStringPhonenumber手機(jī)號(hào)碼主要實(shí)現(xiàn)方法保護(hù)屬性方法名輸入?yún)?shù)輸出參數(shù)方法功能描述Publicloginstring id,string pwdManager”登陸系統(tǒng),用戶輸入ID和PASSWORD后進(jìn)行驗(yàn)證,驗(yàn)證通過返回用戶,驗(yàn)證返回NULL。PublicRegisterManager managerint員工注冊(cè),輸入用戶信息進(jìn)行注冊(cè),注冊(cè)成功返回注冊(cè)成功消息 GOODS類 GOODS類用于記錄商品的信息,并且實(shí)現(xiàn)對(duì)商品的增刪改查等功能。 表4-2 GOODS類功能表 類功能描述處理和商品相關(guān)的業(yè)務(wù)操作所在包名稱Com.xu.bean繼承對(duì)象無實(shí)現(xiàn)對(duì)象類屬性保護(hù)屬性類型名稱描述備注PrivateLongID商品ID系統(tǒng)中商品的唯一標(biāo)示,由系統(tǒng)自動(dòng)生成PrivateStringName商品名稱PrivateStringUnit單位PrivateStringSpace商品產(chǎn)地PrivateLongSupplierId供應(yīng)商編號(hào)PrivateStringApproveId批準(zhǔn)文號(hào)PrivateStringBatchId生產(chǎn)批號(hào)主要實(shí)現(xiàn)方法保護(hù)屬性方法名輸入?yún)?shù)輸出參數(shù)方法功能描述PublicsaveGoods goodsint商品添加,輸入商品信息進(jìn)行添加,添加成功返回1,失敗返回0PublicdeleteGoodsByNameString nameint商品刪除,輸入商品名字進(jìn)行刪除,刪除成功返回1,失敗返回0PublicfindAllGoodsList查找出所有的商品PublicfindGoodsCountByNameString nameint查找某種商品的總數(shù),輸入某種商品的總數(shù),返回該商品的庫存數(shù)量 SALEORDER類 SALEORDER類用于記錄銷售訂單的信息,并且實(shí)現(xiàn)對(duì)銷售訂單的增刪改查等功能。 表4-3 SALEORDER類功能表 類功能描述處理和銷售訂單相關(guān)的業(yè)務(wù)操作所在包名稱Com.xu.bean繼承對(duì)象無實(shí)現(xiàn)對(duì)象類屬性保護(hù)屬性類型名稱描述備注PrivateLongID銷售訂單ID系統(tǒng)中銷售訂單的唯一標(biāo)示,由系統(tǒng)自動(dòng)生成PrivateLongCustomerId客戶ID引用自客戶ID,是唯一的PrivateStringpay結(jié)算方式PrivateDatesaleDate銷售時(shí)間PrivateDoubleTotal總金額主要實(shí)現(xiàn)方法保護(hù)屬性方法名輸入?yún)?shù)輸出參數(shù)方法功能描述PublicsaveSaleOrdersaleorderint銷售訂單添加,輸入訂單信息進(jìn)行添加,添加成功返回1,失敗返回0PublicdeleteLong customerIdint銷售訂單刪除,輸入客戶ID進(jìn)行刪除,刪除成功返回1,失敗返回0PublicfindAllSaleOrderList查找出所有的銷售訂單PublicupdateSaleOrder orderint更新訂單信息,輸入要更改的信息更新,更新成功返回1,失敗返回0 PURCHASEORDER類 PURCHASEORDER類用于記錄采購訂單的信息,并且實(shí)現(xiàn)對(duì)采購訂單的增刪改查等功能。 表4-4 PURCHASEORDER類功能表 類功能描述處理和采購訂單相關(guān)的業(yè)務(wù)操作所在包名稱Com.xu.bean繼承對(duì)象無實(shí)現(xiàn)對(duì)象類屬性保護(hù)屬性類型名稱描述備注PrivateLongID采購ID系統(tǒng)中采購訂單的唯一標(biāo)示,由系統(tǒng)自動(dòng)生成PrivateLongsupplierId供應(yīng)商ID引用自供應(yīng)商IDPrivateStringpay結(jié)算方式PrivateDateinDate采購時(shí)間PrivateDoubletotal總金額主要實(shí)現(xiàn)方法保護(hù)屬性方法名輸入?yún)?shù)輸出參數(shù)方法功能描述PublicsavepurchaseOrderpurchaseorderint采購訂單添加,輸入訂單信息進(jìn)行添加,添加成功返回1,失敗返回0PublicdeleteLong supplierIdint采購訂單刪除,輸入供應(yīng)商ID進(jìn)行刪除,刪除成功返回1,失敗返回0PublicfindAllPurchaseOrderList查找出所有的采購訂單PublicupdatePurchaseOrder orderint更新訂單信息,輸入要更改的信息更新,更新成功返回1,失敗返回0 STOCK類 STOCK類用于記錄庫存的信息,并且實(shí)現(xiàn)對(duì)庫存的增刪改查等功能。 表4-5 STOCK類功能表 類功能描述處理和庫存相關(guān)的業(yè)務(wù)操作所在包名稱Com.xu.bean繼承對(duì)象無實(shí)現(xiàn)對(duì)象類屬性保護(hù)屬性類型名稱描述備注PrivateLongID采購ID系統(tǒng)中采購訂單的唯一標(biāo)示,由系統(tǒng)自動(dòng)生成PrivateLonggoodsId商品ID引用自商品IDPrivateLongcount商品庫存數(shù)量PrivateStringarea存放地方主要實(shí)現(xiàn)方法保護(hù)屬性方法名輸入?yún)?shù)輸出參數(shù)方法功能描述PublicsaveStock stockint庫存添加,輸入庫存信息進(jìn)行添加,添加成功返回1,失敗返回0PublicdeleteLong goodsIdint庫存刪除,輸入商品ID進(jìn)行刪除,刪除成功返回1,失敗返回0PublicfindAllStockList查找出所有的商品庫存PublicupdateLong goodsId , Long count ,String areaint更新商品庫存信息,輸入要更改的信息更新,更新成功返回1,失敗返回0 關(guān)鍵業(yè)務(wù)設(shè)計(jì) 關(guān)鍵業(yè)務(wù)與用例圖之間存在一定的對(duì)應(yīng)關(guān)系,原則上用例圖中所提出的用例應(yīng)該在關(guān)鍵業(yè)務(wù)分析中體現(xiàn),每一個(gè)用例對(duì)應(yīng)一個(gè)時(shí)序圖,每個(gè)時(shí)序圖后面應(yīng)當(dāng)有一段簡(jiǎn)短的說明,時(shí)序圖用WORD繪制比較難,可以借用其他工具,但復(fù)制過來時(shí)應(yīng)盡量只有黑白顏色,下面以登錄為例說明關(guān)鍵業(yè)務(wù)的說明方法。 添加商品

添加商品順序圖 采購業(yè)務(wù)員通過UI界面選擇添加商品菜單,此時(shí)后臺(tái)controller會(huì)判斷該操作用戶是否有權(quán)限;權(quán)限檢查通過,操作員進(jìn)入到商品添加表單,輸入商品信息提交,后臺(tái)controller會(huì)調(diào)用service的add方法,service中的方法add在調(diào)用database中的板寸方法。成功后返回成功提示。 查詢商品

查詢商品順序圖 采購業(yè)務(wù)員通過UI界面輸入查詢條件,此時(shí)后臺(tái)controller會(huì)檢查查詢條件;controller會(huì)調(diào)用service里面的find方法,find方法會(huì)調(diào)用database中具體的查詢方法;把查詢到的結(jié)果顯示到UI界面。 添加庫存

添加庫存順序圖 庫存業(yè)務(wù)員通過UI界面選擇商品菜單,輸入該商品的庫存信息,此時(shí)后臺(tái)controller檢查輸入商品庫存信息;controller會(huì)調(diào)用service中的add方法,add方法調(diào)用database中的具體添加方法處理,添加成功返回功能提示。 添加銷售訂單

添加銷售訂單順序圖 銷售業(yè)務(wù)員通過UI界面選擇添加訂單菜單,輸入訂單信息,此時(shí)后臺(tái)controller會(huì)檢查訂單信息;controller會(huì)調(diào)用service中的update方法,update方法會(huì)調(diào)用database中的具體更新方法,更新成功后會(huì)返回成功提示。 數(shù)據(jù)庫設(shè)計(jì) 概念設(shè)計(jì) (一)總的E-R圖

系統(tǒng)ER圖 (二)分E-R圖

商品ER圖

顧客ER圖

供應(yīng)商ER圖

管理員ER圖 日志用于記錄用戶的日常行為,通過用戶編號(hào)與用戶實(shí)體之間存在一對(duì)多關(guān)系。 數(shù)據(jù)庫表 系統(tǒng)中使用到數(shù)據(jù)庫基本如表4-1所示。 系統(tǒng)數(shù)據(jù)庫表

編號(hào)表名描述01customer顧客表02dept部門表03employee員工表04goods商品表05manager管理員表06purchase_item采購單明細(xì)表07purchase_order采購訂單表08return_item采購?fù)素浢骷?xì)表09return_order采購?fù)素洷?0sale_item銷售訂單明細(xì)表11sale_order銷售訂單表12sale_return_item退貨銷售明細(xì)表13sale_return_order銷售退貨表14stock庫存表15suppliers供應(yīng)商表 顧客表

顧客表用于記錄顧客信息,顧客表的具體字段如表4-2所示。

顧客表

字段名字段描述類型/長度約束備注customer_id顧客編號(hào)LongPKcustomer_name顧客名稱Varchar(20)NOT NULLaddress顧客地址Varchar(255)zip郵編Varchar(20)telPhone聯(lián)系電話Varchar(20)linkMan聯(lián)系人Varchar(20)linkTel聯(lián)系人號(hào)碼Varchar(20)bank開戶銀行Varchar(20)bankAccoount銀行賬號(hào)Longemail郵箱Varchar(20) 字段顧客編號(hào)為本表的主鍵,用來標(biāo)識(shí)一個(gè)顧客,字段顧客名稱非空字段,字段顧客地址、郵編、聯(lián)系電話、聯(lián)系人、聯(lián)系人號(hào)碼、開戶銀行、銀行賬號(hào)、郵箱是顧客的一些詳細(xì)信息。 部門表

部門表用于記錄部門的信息,部門表的具體字段如表4-3所示。

部門表

字段名字段描述類型/長度約束備注dept_id部門編號(hào)LongPKdept_name顧客名稱Varchar(20)NOT NULL 字段部門編號(hào)為本表的主鍵,用來標(biāo)識(shí)一個(gè)部門,字段部門名稱為非空字段。 員工表

員工表用于記錄員工的信息并且用于員工登錄系統(tǒng),員工表的具體字段如表4-4所示。

員工表

字段名字段描述類型/長度約束備注employee_id員工編號(hào)LongPKemployee_name員工姓名Varchar(20)NOT NULLemployee_password密碼Varchar(20)NOT NULLMD5加密employee_gender性別Varchar(5)employee_age年齡Longemployee_phonenumber手機(jī)號(hào)碼Varchar(20)deptId部門IDLongFK 字段員工編號(hào)為本表的主鍵,用來標(biāo)識(shí)一個(gè)員工,員工名字和員工密碼為非空字段,部門ID為外鍵,引用自部門表;字段性別、年齡和手機(jī)號(hào)碼為員工的一些基本信息。 商品表

商品表用于記錄商品的信息,商品表的具體字段如表4-5所示。

商品表

字段名字段描述類型/長度約束備注goods_id商品編號(hào)LongPKgoods_name商品名稱Varchar(20)NOT NULLunit單位Varchar(20)space商品產(chǎn)地Varchar(255)supplierId供應(yīng)商編號(hào)Varchar(20)FKapproveId批準(zhǔn)文號(hào)Varchar(20)batchId生產(chǎn)批號(hào)Varchar(20) 字段商品編號(hào)為本表的主鍵,用來標(biāo)識(shí)一個(gè)商品,字段商品名稱不為空,字段供應(yīng)商編號(hào)為外鍵,引用自供應(yīng)商表,字段單位、商品產(chǎn)地、批準(zhǔn)文號(hào)和生產(chǎn)批號(hào)為商品的一些屬性。 管理員表

管理員表用于記錄管理員的信息并且用于管理員登錄系統(tǒng),管理員表的具體字段如表4-6所示。

管理員表

字段名字段描述類型/長度約束備注manager_id管理員編號(hào)LongPKmanager_name管理員姓名Varchar(20)NOT NULLmanager_password密碼Varchar(20)NOT NULLMD5加密manager_gender性別Varchar(5)manager_age年齡Longmanager_phonenumber手機(jī)號(hào)碼Varchar(20)dept_name部門名稱Varchar(255)FK 字段管理員編號(hào)為管理員表的主鍵,用來標(biāo)識(shí)一個(gè)管理員,字段管理員名字和密碼是不能為空的,部門編號(hào)是一個(gè)外鍵,引用自部門表,字段性別、年齡和手機(jī)號(hào)碼是管理員的一些個(gè)人信息。 采購單明細(xì)表

采購單明細(xì)表用于記錄采購單信息,采購單明細(xì)表的具體字段如表4-7所示。

采購單明細(xì)表

字段名字段描述類型/長度約束備注purchase_item_id采購單明細(xì)編號(hào)LongPKgoods_name商品名稱Varchar(20)FKpurchase_order_id采購單編號(hào)Varchar(20)FKpurchase_price單價(jià)Doublepurchase_count數(shù)量Long 字段采購單明細(xì)編號(hào)為采購單明細(xì)表的主鍵,用來標(biāo)識(shí)一個(gè)采購訂單明細(xì),其中字段采購單編號(hào)和商品名稱是外鍵,分別引用自采購訂單表和商品表,字段單價(jià)和數(shù)量是采購單明細(xì)表的屬性。 采購訂單表

采購訂單表用于記錄采購單信息,采購訂單細(xì)表的具體字段如表4-8所示。

采購訂單表

字段名字段描述類型/長度約束備注purchase_order_id采購單編號(hào)LongPKsuppliersId采購商編號(hào)Varchar(20)FKpurchase_order_pay支付方式Varchar(20)inDate采購日期Datepurchase_order__total總金額Double 字段采購單編號(hào)為采購訂單表的主鍵,用來標(biāo)識(shí)一個(gè)采購訂單,其中字段采購商編號(hào)為外鍵,引用自采購商表,字段支付方式、采購日期和總金額為采購訂單的信息。 采購?fù)素浢骷?xì)表

采購?fù)素浢骷?xì)表用于記錄采購?fù)素泦涡畔?,采購?fù)素浢骷?xì)表的具體字段如表4-9所示。

采購?fù)素浢骷?xì)表

字段名字段描述類型/長度約束備注return_item_id采購?fù)素泦蚊骷?xì)編號(hào)LongPKreturnOrderId采購?fù)素泦尉幪?hào)LongFKgoodsName商品名稱Varchar(20)FKreturn_item_price單價(jià)Doublereturn_item_count數(shù)量Long 字段采購?fù)素泦蚊骷?xì)編號(hào)是采購?fù)素浢骷?xì)表的主鍵,用來標(biāo)識(shí)一個(gè)采購?fù)素浢骷?xì),其中采購?fù)素泦尉幪?hào)和商品名稱是外鍵,分別引用自采購?fù)素洷砗蜕唐繁?。字段單價(jià)和數(shù)量為采購明細(xì)表的屬性。 采購采購?fù)素洷?/p>

采購采購?fù)素洷碛糜谟涗洸少彶少復(fù)素浶畔?,采購采購?fù)素洷淼木唧w字段如表4-10所示。

采購采購?fù)素洷?/p>

字段名字段描述類型/長度約束備注return_order_id采購單編號(hào)LongPKsuppliersId采購商編號(hào)Varchar(20)FKreturn_order_pay支付方式Varchar(20)return_order_outDate退貨日期Datereturn_order_total總金額Double 字段采購?fù)素泦尉幪?hào)是采購?fù)素洷淼闹麈I,用來標(biāo)識(shí)一個(gè)采購?fù)素洠渲凶侄尾少徤叹幪?hào)為外鍵,引用自采購商表,字段支付方式、退貨日期和總金額為采購?fù)素洷淼膶傩浴?銷售訂單明細(xì)表

銷售訂單明細(xì)表用于記錄銷售訂單明細(xì)信息,銷售訂單明細(xì)表的具體字段如表4-11所示。

銷售訂單明細(xì)表

字段名字段描述類型/長度約束備注sale_item_id銷售訂單明細(xì)編號(hào)LongPKsaleOrderId銷售訂單編號(hào)LongFKsale_item_name商品名稱Varchar(20)FKsale_item_price單價(jià)Doublesale_item_count數(shù)量Long 字段銷售訂單明細(xì)編號(hào)是銷售訂單明細(xì)表的主鍵,用來標(biāo)識(shí)一個(gè)銷售明細(xì),其中字段銷售訂單編號(hào)和商品名稱是外鍵,分別引用自銷售訂單表和商品表,字段單價(jià)和數(shù)量是銷售訂單明細(xì)的屬性。 銷售訂單表

銷售訂單表用于記錄銷售訂單信息,銷售訂單表的具體字段如表4-12所示。

銷售訂單表

字段名字段描述類型/長度約束備注sale_order_id銷售單編號(hào)LongPKcustomerId顧客編號(hào)Varchar(20)FKsale_order_pay支付方式Varchar(20)sale_order_saleDate銷售日期Datesale_order_total總金額Double 字段銷售單編號(hào)是銷售訂單表的主鍵,用來標(biāo)識(shí)一個(gè)銷售訂單,字段顧客編號(hào)是外鍵,引用自顧客表,字段支付方式、銷售日期和總金額是銷售訂單表的屬性。 銷售退貨明細(xì)表

銷售退貨明細(xì)表用于記錄銷售退貨明細(xì)信息,銷售退貨明細(xì)表的具體字段如表4-13所示。

銷售退貨明細(xì)表

字段名字段描述類型/長度約束備注sale_return_item_id銷售退貨訂單明細(xì)編號(hào)LongPKsaleReturnOrderId銷售退貨訂單編號(hào)LongFKgoodsName商品名稱Varchar(20)FKsale_return_item_price單價(jià)Doublesale_return_item_count數(shù)量Long 字段銷售退貨訂單明細(xì)編號(hào)是銷售退貨明細(xì)表的主鍵,用哪個(gè)來標(biāo)識(shí)一個(gè)銷售退貨明細(xì),字段銷售退貨訂單編號(hào)、商品名稱為外鍵,分別引用自銷售退貨表和商品表,字段單價(jià)和數(shù)量為銷售退貨明細(xì)表的屬性。 銷售退貨表

銷售退貨表用于記錄銷售退貨信息,銷售退貨表的具體字段如表4-14所示。

銷售退貨表

字段名字段描述類型/長度約束備注sale_return_order_id銷售退貨單編號(hào)LongPKcustomerId顧客IDVarchar(20)FKsale_return_order_pay支付方式Varchar(20)sale_return_order_returnDate退貨日期Datesale_return_order_total總金額Double 庫存表

庫存表用于記錄庫存信息,庫存表的具體字段如表4-15所示。

庫存表

字段名字段描述類型/長度約束備注stock_id庫存編號(hào)LongPKgoodsId商品編號(hào)LongFKstock_count商品庫存數(shù)量Varchar(20)NOT NULLstock_area存放地方Varchar(255) 字段庫存編號(hào)是庫存表的主鍵,用來標(biāo)識(shí)一個(gè)庫存,字段商品編號(hào)是外鍵,引用自商品表,字段商品庫存數(shù)量不為空,字段存放地方為庫存表的屬性。 供應(yīng)商表

供應(yīng)商表用于記錄供應(yīng)商信息,供應(yīng)商表的具體字段如表4-16所示: 供應(yīng)商表

字段名字段描述類型/長度約束備注suppliers_id供應(yīng)商編號(hào)LongPKsupplier_name供應(yīng)商名稱Varchar(20)NOT NULLaddress顧客地址Varchar(255)zip郵編Varchar(20)telPhone聯(lián)系電話Varchar(20)linkMan聯(lián)系人Varchar(20)linkTel聯(lián)系人號(hào)碼Varchar(20)bank開戶銀行Varchar(20)bankAccoount銀行賬號(hào)Longemail郵箱Varchar(20) 字段供應(yīng)商編號(hào)是供應(yīng)商表的主鍵,用來標(biāo)識(shí)一個(gè)供應(yīng)商,字段供應(yīng)商名稱不為空,字段顧客地址、郵編、聯(lián)系電話、聯(lián)系人、聯(lián)系人號(hào)碼、開戶銀行、銀行賬號(hào)和郵箱是供應(yīng)商表的屬性。 本章小結(jié)

本章主要分為三個(gè)小節(jié)來介紹系統(tǒng)設(shè)計(jì)。第一節(jié)是系統(tǒng)類分析,主要是通過類圖的方式來介紹系統(tǒng)設(shè)計(jì)到的類,介紹類里的屬性和設(shè)計(jì)到的方法。第二節(jié)是關(guān)鍵業(yè)務(wù)設(shè)計(jì),主要是通過順序圖的方式來介紹核心業(yè)務(wù)的設(shè)計(jì)和處理過程。第三節(jié)是數(shù)據(jù)庫設(shè)計(jì),首先是通過ER圖的方式介紹設(shè)計(jì)到的模塊和模塊的一些字段(分為總ER圖和分ER圖),其次是數(shù)據(jù)庫表,介紹了所設(shè)計(jì)到的表,詳細(xì)的介紹了表中的字段和字段對(duì)應(yīng)的關(guān)系。 系統(tǒng)實(shí)現(xiàn)

用戶登錄

功能描述

登錄是對(duì)用戶使用系統(tǒng)功能進(jìn)行身份驗(yàn)證的過程,登錄也是可以很好的控制用戶的權(quán)限問題,登錄界面要求簡(jiǎn)明易懂。每一用戶都有自己的獨(dú)有的賬號(hào)和密碼,用戶在系統(tǒng)的每一個(gè)操作都有日志進(jìn)行記載,可以有效保證數(shù)據(jù)可追溯性,做到責(zé)任到人,界面如下圖。

用戶登錄 實(shí)現(xiàn)流程

在登陸按鈕添加監(jiān)聽事件,在用戶輸入賬號(hào)密碼點(diǎn)擊登錄后,終端先判斷是否滿足JS中的驗(yàn)證方法,此方法是防止當(dāng)賬號(hào)密碼為空時(shí)登錄的提示,如果為空跳出一個(gè)對(duì)話框來提示用戶賬號(hào)和密碼需要填。如果不為空,后臺(tái)會(huì)把接受的用戶名密碼與數(shù)據(jù)庫數(shù)據(jù)庫中用戶信息比較核對(duì),如果是一致則順利登錄到用戶權(quán)限所對(duì)應(yīng)的界面中,否則出現(xiàn)賬號(hào)密碼錯(cuò)誤的提示,登錄失敗。登錄流程如圖5-12所示。實(shí)現(xiàn)代碼如下: if(“manager”.equals(user)){ Managers managers = null; try { managers = managerService.login(name, password); } catch (ServiceException e) { e.printStackTrace(); } if(managers!=null){

http://logger.info

(name+”登錄成功?。。 ?; ServletContext app = req.getSession().getServletContext(); app.setAttribute(“user”,managers); req.getRequestDispatcher(“/WEB-INF/jsp/index.jsp”).forward(req, resp); }else{

http://logger.info

(“登錄失敗,用戶名或者密碼錯(cuò)誤”); HttpSession session = req.getSession(); session.setAttribute(“msg”,”用戶名或者密碼錯(cuò)誤”); resp.sendRedirect(“l(fā)ogin.html”); } }else if(“employee”.equals(user)){ Employee employee = null; try { employee = managerService.employeelogin(name, password); } catch (ServiceException e) { e.printStackTrace(); } if(employee!=null){

http://logger.info

(name+”登錄成功!??!”); ServletContext app = req.getSession().getServletContext(); app.setAttribute(“user”,employee); req.getRequestDispatcher(“/WEB-INF/jsp/index.jsp”).forward(req, resp); }else{

http://logger.info

(“登錄失敗,用戶名或者密碼錯(cuò)誤”); HttpSession session = req.getSession(); session.setAttribute(“msg”,”用戶名或者密碼錯(cuò)誤”); resp.sendRedirect(“l(fā)ogin.html”); } } 用戶登錄

采購管理

功能描述

采購管理是對(duì)需要采購的訂單的綜合管理,在這個(gè)模塊里包含采購訂單、收貨入庫、采購?fù)素浫齻€(gè)子模塊。其中采購訂單是員工用來生成采購單的,還有對(duì)采購單的一些處理;收貨入庫是對(duì)已經(jīng)提交的采購單進(jìn)行入庫操作;采購?fù)素浭前盐覀円呀?jīng)提交的采購單進(jìn)行退貨處理的操作。主要界面如下圖:

采購管理 實(shí)現(xiàn)流程

點(diǎn)擊采購訂單按鈕會(huì)跳轉(zhuǎn)到采購訂單首頁,在首頁可以看到所有已經(jīng)提交的采購單信息;當(dāng)我們想添加新的采購訂單的時(shí)候,首先點(diǎn)擊添加商品按鈕,會(huì)跳轉(zhuǎn)到商品添加頁面,我們把商品信息輸入進(jìn)去之后點(diǎn)擊提交,后臺(tái)方法會(huì)把商品信息暫時(shí)存起來,當(dāng)我們把所有商品添加完成,我們可以再點(diǎn)擊添加訂單按鈕,此時(shí)會(huì)把我們添加的所有的商品都提交生成一個(gè)采購訂單,并且把數(shù)據(jù)存進(jìn)對(duì)應(yīng)的數(shù)據(jù)庫表中保存起來。對(duì)已經(jīng)提交的訂單當(dāng)我們點(diǎn)擊退貨按鈕時(shí),后臺(tái)會(huì)接收到要退貨的訂單ID,并且根據(jù)ID到數(shù)據(jù)庫中訂單表把數(shù)據(jù)刪除,同時(shí)在退貨表中把數(shù)據(jù)插進(jìn)去。當(dāng)我們點(diǎn)擊入庫按鈕時(shí),后臺(tái)會(huì)接收到需要入庫的訂單的ID,并且把訂單表中的flag字段的值修改為已入庫,同時(shí)在庫存表中會(huì)新加一條數(shù)據(jù)。主要實(shí)現(xiàn)代碼如下: Long suppliersId = Long.parseLong(request.getParameter(“suppliersId”)); String name = request.getParameter(“name”); Double price = Double.parseDouble(request.getParameter(“price”)); Long count =Long.parseLong(request.getParameter(“count”)); String unit = request.getParameter(“unit”); String space = request.getParameter(“space”); Long supplierId = Long.parseLong(request.getParameter(“supplierId”)); String approveId = request.getParameter(“approveId”); String batchId = request.getParameter(“batchId”); purchaseItem = new PurchaseItem(); purchaseItem.setCount(count); purchaseItem.setPrice(price); purchaseItem.setName(name); purchaseItem.setSupplierId(suppliersId); list.add(purchaseItem); model.addAttribute(“l(fā)ist”, list);

http://logger.info

(“成功添加商品”);

http://logger.info

(“提交采購訂單”); String pay = request.getParameter(“pay”); purchaseOrder = new PurchaseOrder(); purchaseOrder.setPay(pay); purchaseOrder.setInDate(new Date()); purchaseOrder.setFlag(“未入庫”); try { int i = managerService.addPurchaseOrder(purchaseOrder, list); if(i==1){ list.removeAll(list); /*orderList.removeAll(orderList);*/ orderList = managerService.findPurchaseOrderByPage(0); count = managerService.findPurchaseOrderCount(); currentPage = 1L; totalPage = managerService.getTotalPage(); model.addAttribute(“currentPage”, currentPage); model.addAttribute(“totalPage”, totalPage); model.addAttribute(“orderList”, orderList); model.addAttribute(“count”, count);

http://logger.info

(“提交采購訂單成功”); } 庫存管理

功能描述

庫存管理是對(duì)倉庫里的商品的綜合管理,包括商品入庫、商品出庫、某種商品的庫存查詢、商品移庫和庫存盤點(diǎn)。商品入庫是對(duì)新的商品需要入庫的管理;商品出庫是根據(jù)銷售訂單到庫存里拿出對(duì)應(yīng)數(shù)量的商品并且?guī)齑孢M(jìn)行相應(yīng)的減少;庫存查詢是輸入想查詢的商品會(huì)返回該商品的庫存數(shù)量;商品移庫是輸入商品ID和需要移動(dòng)到的倉庫號(hào)就可以更改商品的存放倉庫;最后一個(gè)是庫存盤點(diǎn),該功能是返回倉庫里所有商品的庫存信息。主要界面如下圖:

圖5.31商品出庫

圖5.32庫存查詢

圖5.33商品移庫 實(shí)現(xiàn)流程

首先是商品入庫,點(diǎn)擊商品入庫按鈕跳轉(zhuǎn)到對(duì)應(yīng)商品添加頁面,填入對(duì)應(yīng)商品信息,后臺(tái)首先會(huì)判斷該商品在商品表里是否已經(jīng)存在,如果存在,則更新該商品的庫存即可,如果不存在,則先在商品表里添加一條商品的信息,再到庫存表里添加一條庫存信息。商品出庫,首先是輸入需要出庫的商品ID和該商品出庫的數(shù)量,后臺(tái)根據(jù)接收的商品ID和數(shù)量到數(shù)據(jù)庫庫存表去更新該商品的庫存數(shù)量。庫存查詢,輸入需要查詢庫存的商品ID,后臺(tái)會(huì)根據(jù)商品的ID去庫存表里查詢?cè)撋唐返膸齑鏀?shù)量,并且返回到對(duì)應(yīng)的前臺(tái)頁面。商品移庫,輸入商品ID和移動(dòng)到的倉庫號(hào),后臺(tái)會(huì)根據(jù)商品ID號(hào)到數(shù)據(jù)庫庫存表中更新該商品的庫存地方。庫存盤點(diǎn),這個(gè)功能是會(huì)顯示所有商品的庫存信息。主要實(shí)現(xiàn)代碼如下: 商品入庫: public int stockAdd(Stock stock, Goods goods) throws ServiceException { Goods gods = goodsRepository.findGoodsByName(goods.getName()); if(gods==null){ gods = goodsRepository.save(goods); } stock.setGoodsId(gods.getId()); Stock stok = findStockByGoodsId(gods.getId()); if(stok==null){ stockRepository.save(stock); }else{ stockRepository.updateStockCountByGoodsId(stok.getCounts()+stock.getCounts(),stock.getGoodsId()); } return 1; } 商品出庫: @RequestMapping(“/update”) public String UpdateStock(HttpServletRequest request,Model model){

http://logger.info

(“庫存信息更新開始”); Long goodsId = Long.parseLong(request.getParameter(“goodsId”)); Long count = Long.parseLong(request.getParameter(“count”)); try { stockService.updateStock(goodsId,count); outList = stockService.findStockByPage(0); model.addAttribute(“outList”, outList);

http://logger.info

(“庫存信息更新完成”); } catch (ServiceException e) { e.printStackTrace(); } return “outStock”; } 商品移庫: @RequestMapping(“updateArea”) public String upDateArea(HttpServletRequest request,Model model){

http://logger.info

(“存放倉庫信息更新開始”); Long goodsId = Long.parseLong(request.getParameter(“goodsId”)); String area = request.getParameter(“area”); try { stockService.updateStockAreaByGoodsId(area,goodsId); List list = stockService.findAllStock(); model.addAttribute(“outList”, list);

http://logger.info

(“存放倉庫信息更新完成”); } catch (ServiceException e) { e.printStackTrace(); } return “updateArea”; } 銷售管理

功能描述

銷售管理對(duì)銷售訂單的綜合管理,包含銷售訂單、發(fā)貨出庫和銷售退貨。銷售訂單,將銷售的信息形成銷售訂單并且存入到數(shù)據(jù)庫銷售訂單表中;發(fā)貨出庫,將提交的銷售訂單的flag狀態(tài)改為已發(fā)貨,并且對(duì)應(yīng)的庫存表中的庫存數(shù)量也相應(yīng)的減少;銷售退貨,對(duì)已經(jīng)銷售的訂單進(jìn)行退貨處理。主要界面如下圖:

圖5.41 銷售管理 實(shí)現(xiàn)流程

首先是銷售訂單,第一步是點(diǎn)擊添加商品,然后輸入對(duì)應(yīng)的商品信息點(diǎn)擊提交,后臺(tái)接收到數(shù)據(jù),會(huì)暫時(shí)將商品信息存儲(chǔ)起來,當(dāng)商品添加完畢,點(diǎn)擊添加訂單按鈕,可以將剛才添加的所有訂單信息提交到后臺(tái),后臺(tái)在將這些訂單信息持久化到數(shù)據(jù)庫中去。發(fā)貨出庫,對(duì)提交銷售的訂單可以進(jìn)行發(fā)貨操作,后臺(tái)會(huì)根據(jù)訂單ID對(duì)訂單表中的flag字段值修改為已發(fā)貨,并且會(huì)到庫存表中去,將該訂單對(duì)應(yīng)的商品的庫存數(shù)作相應(yīng)的改變。銷售退貨,對(duì)已經(jīng)提交的訂單可以進(jìn)行退貨操作,點(diǎn)擊退貨按鈕,后臺(tái)會(huì)根據(jù)訂單ID到數(shù)據(jù)庫銷售訂單表中把對(duì)應(yīng)訂單信息刪除,并且在銷售退貨表中加入相應(yīng)的退貨記錄,與此同時(shí)會(huì)根據(jù)flag字段,如果flag字段值是未發(fā)貨,則不用去庫存表跟新庫存數(shù)據(jù),如果flag字段的值為已發(fā)貨,則需要到庫存表中把訂單對(duì)應(yīng)的商品的庫存數(shù)加回去。主要實(shí)現(xiàn)代碼如下: @RequestMapping(“/addSaleOrder”) public String saveSaleOrder(HttpServletRequest request,Model model){ String pay = request.getParameter(“pay”); SaleOrder saleOrder = new SaleOrder(); saleOrder.setFlag(“未發(fā)貨”); saleOrder.setPay(pay); saleOrder.setSaleDate(new Date()); try { int i = saleService.addSaleOrder(saleOrder,itemList); if(i==1){ itemList.clear(); saleorderList = saleService.findSaleOrderByPage(0); cunt = saleService.findSaleOrderCount(); crrentPage = 1L; ttalPage = saleService.getTotalPage(); model.addAttribute(“crrentPage”, crrentPage); model.addAttribute(“ttalPage”, ttalPage); model.addAttribute(“saleorderList”, saleorderList); model.addAttribute(“cunt”, cunt); } } catch (ServiceException e) { e.printStackTrace(); } return “sale”; } 備份與恢復(fù)

功能描述

備份與恢復(fù),顧名思義就是對(duì)系統(tǒng)的重要數(shù)據(jù)進(jìn)行備份,以備不時(shí)之需,備份是可以設(shè)定每天在一個(gè)固定的時(shí)間自動(dòng)進(jìn)行備份;當(dāng)系統(tǒng)數(shù)據(jù)損壞時(shí)我們可以自由選擇恢復(fù)哪一天的數(shù)據(jù)。主要界面如下圖:

圖5.51 數(shù)據(jù)備份與恢復(fù) 實(shí)現(xiàn)流程

備份功能,首先當(dāng)系統(tǒng)啟動(dòng)的時(shí)候已經(jīng)設(shè)定了一個(gè)自動(dòng)備份的時(shí)間點(diǎn),每天到這個(gè)時(shí)間點(diǎn)都會(huì)自動(dòng)把數(shù)據(jù)庫的數(shù)據(jù)備份一次,但是我們也可以手動(dòng)備份,我們只需要點(diǎn)擊數(shù)據(jù)備份就可以了;數(shù)據(jù)恢復(fù),當(dāng)某個(gè)時(shí)候系統(tǒng)數(shù)據(jù)損壞或者丟失的時(shí)候,此時(shí)我們就可以用到數(shù)據(jù)恢復(fù)功能了,我們可以選擇恢復(fù)到一個(gè)時(shí)間點(diǎn)的數(shù)據(jù)文件。主要實(shí)現(xiàn)代碼如下: public static void backup() { try { Runtime rt = Runtime.getRuntime(); // 調(diào)用 調(diào)用mysql的安裝目錄的命令 Process child = rt.exec(backuppath); // 設(shè)置導(dǎo)出編碼為utf-8。這里必須是utf-8 // 把進(jìn)程執(zhí)行中的控制臺(tái)輸出信息寫入.sql文件,即生成了備份文件。注:如果不對(duì)控制臺(tái)信息進(jìn)行讀出,則會(huì)導(dǎo)致進(jìn)程堵塞無法運(yùn)行 InputStream in = child.getInputStream();// 控制臺(tái)的輸出信息作為輸入流 InputStreamReader xx = new InputStreamReader(in, “utf-8”); // 設(shè)置輸出流編碼為utf-8。這里必須是utf-8,否則從流中讀入的是亂碼 String inStr; StringBuffer sb = new StringBuffer(“”); String outStr; // 組合控制臺(tái)輸出信息字符串 BufferedReader br = new BufferedReader(xx); while ((inStr = br.readLine()) != null) { sb.append(inStr + “\r\n”); } outStr = sb.toString(); // 要用來做導(dǎo)入用的sql目標(biāo)文件: SimpleDateFormat sdf = new SimpleDateFormat(“yyyyMMddhhmm”); FileOutputStream fout = new FileOutputStream(“D:\\jxc\\backup\\”+sdf.format(new Date())+”.sql”); OutputStreamWriter writer = new OutputStreamWriter(fout, “utf-8”); writer.write(outStr); writer.flush(); in.close(); xx.close(); br.close(); writer.close(); fout.close(); } catch (Exception e) { e.printStackTrace(); } } /** * 備份數(shù)據(jù)恢復(fù) * @param databaseName */ public static void restore(String fileName) { try { Runtime runtime = Runtime.getRuntime(); Process process = runtime .exec(restorepath); OutputStream outputStream = process.getOutputStream(); BufferedReader br = new BufferedReader(new InputStreamReader( new FileInputStream(“D:\\jcx\\backup\\”+fileName), “utf-8”)); String str = null; StringBuffer sb = new StringBuffer(); while ((str = br.readLine()) != null) { sb.append(str + “\r\n”); } str = sb.toString(); // System.out.println(str); OutputStreamWriter writer = new OutputStreamWriter(outputStream, “utf-8”); writer.write(str); writer.flush(); outputStream.close(); br.close(); writer.close(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } 本章小結(jié)

本章主要是介紹了系統(tǒng)實(shí)現(xiàn),重點(diǎn)介紹了系統(tǒng)的用戶登錄、采購管理、庫存管理、銷售管理、備份與恢復(fù)五個(gè)模塊。這五個(gè)模塊首先分別介紹了他們的功能,并且附上界面圖,然后再從實(shí)現(xiàn)流程上對(duì)這些功能進(jìn)行詳細(xì)的描述,最后附上實(shí)現(xiàn)這些功能的主要代碼。 系統(tǒng)測(cè)試

系統(tǒng)測(cè)試綜述

系統(tǒng)完成后,對(duì)系統(tǒng)的測(cè)試是非常重要的一環(huán)。首先在系統(tǒng)的每個(gè)模塊完成后對(duì)這個(gè)模塊做的單元測(cè)試,另外一個(gè)是在系統(tǒng)整體完成了后對(duì)整個(gè)系統(tǒng)做的綜合測(cè)試。 用戶登錄模塊,當(dāng)用戶輸入正確的用戶名和密碼時(shí),能正常登錄;當(dāng)用戶輸入錯(cuò)誤的用戶名或者錯(cuò)誤的密碼或者不存在的用戶名的時(shí)候,系統(tǒng)應(yīng)當(dāng)輸出響應(yīng)用戶名或者密碼錯(cuò)誤;當(dāng)用戶沒有輸入用戶名或者沒用輸入密碼或者兩者都沒有輸入的時(shí)候,系統(tǒng)應(yīng)當(dāng)響應(yīng)用戶名、密碼項(xiàng)是必填項(xiàng)。 采購管理模塊,當(dāng)天如對(duì)應(yīng)的商品信息時(shí),后臺(tái)新系統(tǒng)能夠接收到商品信息,并且在提交訂單的時(shí)候能夠順利把這些信息都持久化到數(shù)據(jù)庫中去,并且在出錯(cuò)的時(shí)候能正確返回對(duì)應(yīng)的錯(cuò)誤碼;對(duì)采購訂單入庫時(shí),能正常的把flag標(biāo)志改為已入庫,并且在庫存表中更新響應(yīng)的商品庫存信息;銷售退貨,后臺(tái)能根據(jù)訂單ID將采購訂單表中的數(shù)據(jù)刪除,并且把數(shù)據(jù)插入到采購?fù)素洷碇腥ァ?庫存管理模塊,商品入庫功能,當(dāng)用戶把商品信息輸入正確的時(shí)候,后臺(tái)能夠真確的收到數(shù)據(jù),并且正確的持久化到數(shù)據(jù)庫中去;商品出庫,當(dāng)用戶輸入出庫的商品和數(shù)量時(shí),后臺(tái)能夠正確到數(shù)據(jù)庫庫存表把對(duì)應(yīng)的商品的數(shù)量相應(yīng)的減少;庫存查詢,當(dāng)輸入商品的ID時(shí),后臺(tái)能根據(jù)這個(gè)ID查出該商品的庫存信息,并且能正確的返回到用戶界面;商品移庫,當(dāng)輸入商品ID和移庫的信息后,后臺(tái)能正確地更新數(shù)據(jù)庫中對(duì)應(yīng)商品的庫存信息。 銷售管理模塊,銷售模塊,當(dāng)前段把銷售訂單的信息都正確輸入的時(shí)候,后臺(tái)能正確的接收到訂單信息,并且把訂單信息正確持久化到數(shù)據(jù)庫中去,在產(chǎn)生錯(cuò)誤時(shí),能夠返回對(duì)應(yīng)的錯(cuò)誤碼;發(fā)貨出庫,當(dāng)銷售訂單的信息提交之后,我們可以對(duì)這些的訂單做發(fā)貨操作,點(diǎn)擊發(fā)貨后,后臺(tái)要把相應(yīng)商品的庫存信息進(jìn)行更新,并且把訂單表中的flag字段的值改為已發(fā)貨;銷售退貨,點(diǎn)擊退貨按鈕,后臺(tái)能正常的把銷售訂單表中的對(duì)應(yīng)訂單信息刪除,并且在銷售退貨表中把退貨信息存進(jìn)去,并且要把商品的數(shù)量加回到庫存表中去。 備份與恢復(fù)模塊,首先是系統(tǒng)每天能夠在固定時(shí)間產(chǎn)生一個(gè)備份數(shù)據(jù)庫的文件,然后在我們手動(dòng)點(diǎn)擊備份按鈕的時(shí)候也能夠產(chǎn)生一個(gè)備份數(shù)據(jù)庫的文件;當(dāng)點(diǎn)擊恢復(fù)按鈕時(shí),會(huì)把我們選擇的數(shù)據(jù)庫文件恢復(fù)到數(shù)據(jù)庫中去。 測(cè)試用例

用戶登錄模塊

用戶登錄

功能測(cè)試概述測(cè)試編號(hào)XU001功能描述用戶登錄功能URLhttp://localhost:8989/login.html用例目的測(cè)試用戶是否能登錄成功前提條件進(jìn)入用戶登錄界面測(cè)試操作編號(hào)輸入/動(dòng)作期望的輸出響應(yīng)實(shí)際情況是否正確錯(cuò)誤編號(hào)1輸入不存在的用戶名,不填寫密碼系統(tǒng)提示密碼項(xiàng)必須填系統(tǒng)提示密碼項(xiàng)必須填正確2輸入正確的用戶名輸入錯(cuò)誤的密碼系統(tǒng)提示用戶名或密碼錯(cuò)誤系統(tǒng)提示登錄名或密碼錯(cuò)誤正確3輸入錯(cuò)誤的用戶名輸入正確的密碼系統(tǒng)提示用戶名或密碼錯(cuò)誤系統(tǒng)提示登錄名或密碼錯(cuò)誤正確4不填寫用戶名及密碼系統(tǒng)提示用戶名和密碼項(xiàng)必須填系統(tǒng)提示用戶名和密碼項(xiàng)必須填正確 采購管理模塊

采購管理

功能測(cè)試概述測(cè)試編號(hào)XU002功能描述采購管理功能URLhttp://localhost:8989/purchase用例目的測(cè)試采購管理功能是否正常前提條件進(jìn)入采購管理界面測(cè)試操作編號(hào)輸入/動(dòng)作期望的輸出響應(yīng)實(shí)際情況是否正確錯(cuò)誤編號(hào)1輸入正確的采購訂單信息成功將訂單信息添加到采購訂單表中添加成功,在采購訂單表中查到訂單數(shù)據(jù)正確2成功提交的采購訂單點(diǎn)擊入庫按鈕在庫存表能夠查到入庫的商品的信息,并且入庫的數(shù)量是正確的成功入庫,在庫存表查到了該商品的入庫的數(shù)量信息正確3成功提交的采購訂單點(diǎn)擊退貨按鈕在采購訂單表把該訂單數(shù)據(jù)刪除,并且在采購?fù)素泦卫锬懿榈酵素浶畔⑼素洺晒?,在采購訂單表已?jīng)查不到該訂單信息,在退貨表里可以查到該訂單信息正確 庫存管理模塊

庫存管理

功能測(cè)試概述測(cè)試編號(hào)XU003功能描述庫存管理功能URLhttp://localhost:8989/stock用例目的測(cè)試庫存管理是否正常前提條件進(jìn)入庫存管理界面測(cè)試操作編號(hào)輸入/動(dòng)作期望的輸出響應(yīng)實(shí)際情況是否正確錯(cuò)誤編號(hào)1輸入商品信息,點(diǎn)擊入庫成功將商品信息添加到庫存表中入庫成功,在庫存表中能夠查到該商品信息正確2輸入出庫商品ID和出庫的數(shù)量出庫表中增加一條數(shù)據(jù),并且?guī)齑姹碇性撋唐返臄?shù)量減少了出庫數(shù)量庫存表中該商品的數(shù)量正確的減少了正確3輸入查詢商品的ID將該商品的信息正確的顯示在頁面上頁面上成功顯示出了該商品的庫存信息正確4輸入要移庫商品的ID和移庫的地點(diǎn)將庫存表中該商品的存儲(chǔ)位置修改為修改的地址庫存表中成功修改來了該商品的庫存位置正確 銷售管理模塊

銷售管理

功能測(cè)試概述測(cè)試編號(hào)XU004功能描述銷售管理功能URLhttp://localhost:8989/sale用例目的測(cè)試銷售管理是否正常前提條件進(jìn)入銷售管理界面測(cè)試操作編號(hào)輸入/動(dòng)作期望的輸出響應(yīng)實(shí)際情況是否正確錯(cuò)誤編號(hào)1輸入銷售訂單信息,點(diǎn)擊提交在銷售訂單表中有對(duì)應(yīng)訂單的信息,在銷售訂單表中查詢到了該訂單的信息正確2已經(jīng)提交成功的銷售訂單,點(diǎn)擊發(fā)貨按鈕在銷售訂單表中把flag字段的值改為已發(fā)貨,庫存表中該訂單的商品的數(shù)量最相應(yīng)的減少銷售訂單表中flag字段修改正確,并且?guī)齑姹碇械纳唐穾齑鏀?shù)修改正確正確3已經(jīng)提交成功的銷售訂單,點(diǎn)擊退貨按鈕在銷售訂單表中把該訂單信息刪除,然后在退貨表中把該訂單信息加入,然后把退貨訂單的商品的數(shù)量信息重新歸還到庫存中去銷售訂單表中該訂單成功刪除,并且在退貨表中增加了該訂單數(shù)據(jù),然后這些商品在庫存表中的數(shù)量修改正確。正確 備份與數(shù)據(jù)恢復(fù)模塊

備份與數(shù)據(jù)恢復(fù)

功能測(cè)試概述測(cè)試編號(hào)XU005功能描述備份與數(shù)據(jù)恢復(fù)功能URLhttp://localhost:8989/ backups用例目的測(cè)試備份與數(shù)據(jù)恢復(fù)功能是否正常前提條件進(jìn)入備份與數(shù)據(jù)恢復(fù)界面測(cè)試操作編號(hào)輸入/動(dòng)作期望的輸出響應(yīng)實(shí)際情況是否正確錯(cuò)誤編號(hào)1點(diǎn)擊備份按鈕在電腦的文件夾中能找到備份的數(shù)據(jù)庫文件可以找到備份的數(shù)據(jù)庫文件正確2點(diǎn)擊數(shù)據(jù)恢復(fù)按鈕在數(shù)據(jù)庫中可以看到已經(jīng)恢復(fù)的數(shù)據(jù)庫信息在數(shù)據(jù)庫中可以看到這些數(shù)據(jù)庫信息正確 測(cè)試分析

經(jīng)過這些測(cè)試,整個(gè)系統(tǒng)的大部分功能都已經(jīng)能夠正常的運(yùn)行,達(dá)到了我們預(yù)想的結(jié)果。對(duì)于采購管理、庫存管理和銷售管理三個(gè)模塊先階段的功能都能達(dá)到預(yù)期效果,但是還可以加入一些其他的支持(對(duì)Excel表格的支持),能夠直接導(dǎo)入Excel表格的數(shù)據(jù),并且可以直接導(dǎo)出為Excel表格,這個(gè)功能暫時(shí)還沒達(dá)到預(yù)期效果,因此需要把這個(gè)功能加上;在一個(gè)就是對(duì)權(quán)限的控制方面做的不是特別完善,因此接下來,在權(quán)限方面還應(yīng)該加強(qiáng)。對(duì)于備份和數(shù)據(jù)恢復(fù)功能,現(xiàn)在和預(yù)期的結(jié)果是一致的,比較符合。實(shí)力和時(shí)間的限制,在代碼的編寫上面,存在許多的冗余代碼,因此這方面需要改進(jìn),把重復(fù)的代碼封裝成方法,減少冗余度。 本章小結(jié)

本章主要是對(duì)已完成的功能做系統(tǒng)測(cè)試,分模塊的進(jìn)行測(cè)試,測(cè)試這些功能是否能達(dá)到預(yù)期的結(jié)果;為什么沒有達(dá)到預(yù)期。對(duì)于每一個(gè)模塊都寫了相應(yīng)的測(cè)試用例,通過這些測(cè)試用例的分析,整個(gè)系統(tǒng)的功能基本上達(dá)到了預(yù)期的效果,但是還有進(jìn)一步改進(jìn)的地方,讓整個(gè)系統(tǒng)更完善。 總結(jié)

歷經(jīng)四個(gè)月的時(shí)間,到現(xiàn)在為止,系統(tǒng)的開發(fā)工作已經(jīng)全部完成。本系統(tǒng)采用的是Maven來搭建的項(xiàng)目,使用Spring boot、JPA來實(shí)現(xiàn)的。對(duì)采購、銷售、庫存的管理,對(duì)數(shù)據(jù)的備份等功能基本上都已經(jīng)實(shí)現(xiàn)。 在設(shè)計(jì)本系統(tǒng)的初期,選擇Spring boot和JPA作為本系統(tǒng)的開發(fā)技術(shù)是一個(gè)大膽的嘗試,因?yàn)樵诖酥案緵]有接觸這兩個(gè)框架,對(duì)他們也不了解。在確立了系統(tǒng)開發(fā)技術(shù)后,在開發(fā)初期先對(duì)這兩個(gè)技術(shù)進(jìn)行了初步的熟悉,然后就是邊開發(fā)邊學(xué)習(xí)。在系統(tǒng)開發(fā)的初期階段可以說是走了很多彎路,因?yàn)閷?duì)技術(shù)不熟悉的緣故。于是乎就是去多找資料、找書學(xué)習(xí),認(rèn)真學(xué)習(xí)編程思想,吸收它的編程技巧,最后運(yùn)用到自己的系統(tǒng)上,最終順利的把系統(tǒng)完成了。在完成整個(gè)畢業(yè)設(shè)計(jì)的過程,可以說對(duì)我來說學(xué)到了很多。之前只是接觸到書本上的知識(shí)比較多,但是沒怎么親自動(dòng)手實(shí)踐,有點(diǎn)眼高手低的感覺。但是經(jīng)過畢業(yè)設(shè)計(jì),可以說對(duì)自己有了一個(gè)很好的磨煉。從題目的確立,系統(tǒng)的設(shè)計(jì),系統(tǒng)的實(shí)現(xiàn),到系統(tǒng)的完成,自己經(jīng)歷了一整個(gè)過程,讓自己的見識(shí)有了提高,同時(shí)學(xué)會(huì)了很多的處理問題和解決問題的方法,為我們即將走入到工作崗位上打好了基礎(chǔ)。 完成整個(gè)系統(tǒng)也是對(duì)我們大學(xué)四年所學(xué)的知識(shí)的一個(gè)綜合運(yùn)用,之前是理論學(xué)的多,實(shí)踐的太少。通過實(shí)踐,可以讓自己快速的成長起來,還學(xué)到了Spring boot和JPA的知識(shí)。對(duì)于系統(tǒng)的權(quán)限控制問題,以后還有待于完善,還有對(duì)進(jìn)銷存對(duì)Excel的支持,這個(gè)在以后都是可以改進(jìn)的部分。 參考文獻(xiàn)

[1] 辛運(yùn)幃等. java語言程序設(shè)計(jì)[M].北京:人民郵電出版社,2009 [2] (美)(Nicholas C.Zakas)扎卡斯. JavaScript高級(jí)程序設(shè)計(jì)[J].人民郵電出版社2006 [3] 姜承堯. MySQL技術(shù)內(nèi)幕:InnoDB存儲(chǔ)引擎[M].機(jī)械工業(yè)出版社 2011-1 [4] 張海藩;呂云翔.軟件工程[M]. 人民郵電出版社 2013-09-01 [5] Roger S.Pressman, 鄭人杰, 馬素霞等. 軟件工程:實(shí)踐者的研究方法(原書第7版)[M]. 北京: 機(jī)械工業(yè)出版社, 2011 [6] 李興華, 王月清. 名師講壇:Java Web開發(fā)實(shí)戰(zhàn)經(jīng)典基礎(chǔ)篇(JSP, Servlet, Struts, Ajax)[M].北京: 清華大學(xué)出版社, 2010 [7] 成先海.數(shù)據(jù)庫基礎(chǔ)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2008. [8] 張艷.基于工作過程的物流信息系統(tǒng)與管理課程的重構(gòu)[J].遼寧高職學(xué)報(bào),2010, 12(2):45-47. [9] 李小娜,董紹華.物流信息技術(shù)在現(xiàn)代物流中的應(yīng)用[J].中國科技信息,2008,(21):140-143. [10] 隋英琴.供應(yīng)鏈管理環(huán)境下的物流管理創(chuàng)新[J].科技創(chuàng)業(yè),2008,14(03):123-125. [11] 陳雄華 Spring 企業(yè)級(jí)應(yīng)用開發(fā)詳解[M] 北京:電子工業(yè)出版社 2009 [12] 王寅田. 基于Hadoop的交通物流大數(shù)據(jù)處理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D]. 上海交通大學(xué) 2014 [13] 李海峰. MVC模式架構(gòu)的應(yīng)用研究[J]. 自動(dòng)化與儀器儀表. 2013(01) [14] 陳鳳琴.基于B/S模式的中小飼料企業(yè)進(jìn)銷存系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].南昌大學(xué)2014 [15] 黃沙.企業(yè)物流成本管理存在問題及對(duì)策[J].物流技術(shù)與應(yīng)用,2011,13(2):101-102. 致 謝

在畢業(yè)設(shè)計(jì)撰寫的這幾個(gè)月,從選題、設(shè)計(jì)系統(tǒng)、實(shí)現(xiàn)系統(tǒng),到最終系統(tǒng)和論文完成,中間有著自己的努力,更有老師和同學(xué)的關(guān)心和幫助。 感謝老師指導(dǎo)我選題,引領(lǐng)我設(shè)計(jì)系統(tǒng)的思路。老師認(rèn)真的態(tài)度讓我們最終能順利的完成論文的撰寫。從論文的選題、開題直到論文的完成,老師都耐心的進(jìn)行了指導(dǎo),使我能一步一步完成論文。最后,本論文能順利的完成,離不開各位老師的認(rèn)真負(fù)責(zé),讓我能夠在畢設(shè)中運(yùn)用所學(xué)知識(shí)和掌握所學(xué)知識(shí)。正是有了你們的幫助和支持,我的畢設(shè)論文才能順利完成,在此向你們表示由衷的謝意。

進(jìn)銷存管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
绵阳市| 临朐县| 重庆市| 六枝特区| 德昌县| 逊克县| 龙里县| 剑川县| 鞍山市| 大足县| 富顺县| 阳泉市| 巴青县| 石棉县| 宁明县| 大田县| 马边| 卓资县| 合水县| 遂平县| 房山区| 湄潭县| 建德市| 义马市| 宁海县| 锡林郭勒盟| 沙洋县| 隆昌县| 贵定县| 宜宾市| 太原市| 增城市| 三原县| 定南县| 长兴县| 石河子市| 游戏| 泗水县| 微博| 安康市| 商洛市|