本?科?畢?業(yè)?設(shè)?計(jì)(論文)任?務(wù)?書(shū)
題?目:進(jìn)銷存管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
專題題目(若無(wú)專題則不填):
原始依據(jù)(包括設(shè)計(jì)(論文)的工作基礎(chǔ)、研究條件、應(yīng)用環(huán)境、工作目的等):
-
工作基礎(chǔ)
在選題之前首先對(duì)現(xiàn)在企業(yè)的發(fā)展現(xiàn)狀做了一些調(diào)查,通過(guò)調(diào)查發(fā)現(xiàn)了開(kāi)發(fā)這個(gè)系統(tǒng)的必要性,然后對(duì)開(kāi)發(fā)這個(gè)系統(tǒng)所需要的一些工具、條件等進(jìn)行了調(diào)查,發(fā)現(xiàn)完全可以滿足我們開(kāi)發(fā)一個(gè)這樣的系統(tǒng)。 -
研究條件
本項(xiàng)目的開(kāi)發(fā)首先是考慮到是定位為小型公司,因此開(kāi)發(fā)周期不能太長(zhǎng),開(kāi)發(fā)資金不能太多,因此應(yīng)該需要一些能夠快速開(kāi)發(fā)的技術(shù)并且能滿足這些小型企業(yè)的業(yè)務(wù)需求。 - 應(yīng)用環(huán)境
本項(xiàng)目需要在Windows7以上的操作系統(tǒng)上,并且有瀏覽器,就可以正常操作本系統(tǒng)了。
- 工作目的
企業(yè)的員工可以脫離手工記賬的痛苦,全部可以在電腦上操作,相對(duì)以前的手工可以節(jié)省大量的人力和物力,與此同時(shí)還能提高工作效率;還有就是以前手工的操作容易出錯(cuò),現(xiàn)在用電腦可以大大降低出錯(cuò)的概率,大大提高了工作效率??梢哉f(shuō)對(duì)企業(yè)是好處多多。
主要內(nèi)容和要求:(包括設(shè)計(jì)(研究)內(nèi)容、主要指標(biāo)與技術(shù)參數(shù),并根據(jù)課題性質(zhì)對(duì)學(xué)生提出具體要求):
-
研究?jī)?nèi)容
首先是對(duì)進(jìn)貨、銷售和庫(kù)存的正常增刪改查的操作,這是一個(gè)最基本的功能,在這個(gè)的基礎(chǔ)上,定制一些個(gè)性的功能;一個(gè)是要對(duì)以往的銷售訂單的統(tǒng)計(jì)分析,最好能用圖表的形式表現(xiàn)出來(lái)。這樣能看到一個(gè)銷售的趨勢(shì),這樣對(duì)公司決策者在制定公司戰(zhàn)略時(shí)能起到一個(gè)參考的作用。接下來(lái)就是數(shù)據(jù)的安全問(wèn)題,企業(yè)在運(yùn)轉(zhuǎn)的過(guò)程中肯定會(huì)產(chǎn)生很多的重要的數(shù)據(jù),但是這些數(shù)據(jù)有時(shí)候可能會(huì)被破壞或者人為的原因?qū)е聰?shù)據(jù)的丟失,因此我們要對(duì)這寫(xiě)數(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)貨、銷售和庫(kù)存的操作界面簡(jiǎn)潔、易于操作,然后對(duì)于這些數(shù)據(jù)的操作都能夠正確快速的響應(yīng)。然后對(duì)于每一個(gè)設(shè)計(jì)的功能都是可以正常、快速的運(yùn)行。 -
具體要求
獨(dú)立完成本項(xiàng)目系統(tǒng)研制過(guò)程,系統(tǒng)能夠順利運(yùn)行,并獨(dú)立完成論文報(bào)告。
日程安排:
序號(hào) | 各階段工作內(nèi)容 | 時(shí)間安排 |
---|---|---|
1 | 畢業(yè)設(shè)計(jì)開(kāi)題報(bào)告 | 2017年2月28日前完成 |
2 | 需求分析 | 第一、二周 |
3 | 概要設(shè)計(jì) | 第三、四周 |
4 | 詳細(xì)設(shè)計(jì) | 第五、六周 |
5 | 系統(tǒng)設(shè)計(jì) | 第七周 |
6 | 系統(tǒng)開(kāi)發(fā) | 第八、九周 |
7 | 系統(tǒng)測(cè)試 | 第十周 |
8 | 畢業(yè)設(shè)計(jì)論文整理 | 第十一、十二周 |
9 | 提交畢業(yè)論文 | 2017年5月21日前 |
主要參考文獻(xiàn)和書(shū)目:(不少于15篇論文,其中M指書(shū)籍,D指學(xué)位論文,J指期刊論文)
[1] 陳廣宇.管理信息系統(tǒng)[M].北京:清華大學(xué)出版社,2010:95-100
[2] 張墨華,張永強(qiáng).Java程序設(shè)計(jì)[M].北京:清華大學(xué)出版社, 2010:123-124
[3] 黃沙.企業(yè)物流成本管理存在問(wèn)題及對(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開(kāi)發(fā)的顛覆者: Spring Boot實(shí)戰(zhàn)[M], 2016-03
[7] 林祥纖.從零開(kāi)始學(xué)Spring Boot[M], 2016-07-19
[8]基恩、席卡里爾.Pro JPA2中文版:精通Java持久化API[M], 清華大學(xué)出版社, 2011-10-1
[9] 張艷.基于工作過(guò)程的物流信息系統(tǒng)與管理課程的重構(gòu)[J].遼寧高職學(xué)報(bào),2010, 12(2):45-47.
[10] 李小娜,董紹華.物流信息技術(shù)在現(xiàn)代物流中的應(yīng)用[J].中國(guó)科技信息,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)用開(kāi)發(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è)物流成本管理存在問(wèn)題及對(duì)策[J].物流技術(shù)與應(yīng)用,2011,13(2):101-102.
指導(dǎo)教師(簽字):
年?月?日
注:本表可自主延伸,各專業(yè)根據(jù)需要調(diào)整。
本?科?畢?業(yè)?設(shè)?計(jì)(論文)開(kāi)?題?報(bào)?告
題?目:進(jìn)銷存管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
專題題目(若無(wú)專題則不填):
本課題來(lái)源及研究現(xiàn)狀:
-
課題來(lái)源:
21世紀(jì)是信息化的時(shí)代,各行各業(yè)都離不開(kāi)信息,隨之產(chǎn)生的問(wèn)題是如何更高效的獲取有用的信息。在企業(yè)經(jīng)營(yíng)集團(tuán)化和國(guó)際化的形勢(shì)下,提出了供應(yīng)鏈的管理模式。
供應(yīng)鏈(Supply Chain)是企業(yè)在制造生產(chǎn)及產(chǎn)品流通過(guò)程中,為了能將產(chǎn)品或者服務(wù)順利的交付給用戶,由上游與下游企業(yè)共同創(chuàng)建的需求鏈狀網(wǎng)。具體而言,供應(yīng)鏈的重點(diǎn)是圍繞著客戶需求,通過(guò)對(duì)物流、資金流和信息流的控制,從采購(gòu)原材料開(kāi)始,到制成中間產(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è)之間通過(guò)合理分工與流程優(yōu)化,使供應(yīng)鏈從采購(gòu)到銷售的全過(guò)程上的商流、物流、資金流和信息流均能高效率運(yùn)作,達(dá)到縮短供應(yīng)鏈響應(yīng)時(shí)間、降低供應(yīng)鏈總體交易成本、提高用戶滿意度、進(jìn)而實(shí)現(xiàn)整條供應(yīng)鏈價(jià)值最大化的目的。而進(jìn)銷存可以說(shuō)是供應(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)營(yíng)管理的演進(jìn)以及企業(yè)信息系統(tǒng)的演化密不可分。在20世紀(jì)50-60年代,制造商強(qiáng)調(diào)大規(guī)模生產(chǎn)以降低單位生產(chǎn)成本,即大規(guī)模生產(chǎn)的運(yùn)營(yíng)戰(zhàn)略。當(dāng)時(shí)的企業(yè)生產(chǎn)較少考慮市場(chǎng)因素,生產(chǎn)、制造缺乏柔性,新產(chǎn)品的開(kāi)發(fā)緩慢,幾乎完全依靠企業(yè)內(nèi)部技術(shù)和能力。因此企業(yè)的運(yùn)營(yíng)瓶頸是通過(guò)加大庫(kù)存量來(lái)解決,很少考慮企業(yè)間的合作和發(fā)展。當(dāng)時(shí)的采購(gòu)僅僅被認(rèn)為是生產(chǎn)的支持活動(dòng),管理人員很少關(guān)心采購(gòu)活動(dòng)(Farmer,1997)。
到了70年代,制造資源計(jì)劃被引入,管理人員意識(shí)到存貨數(shù)量給制造成本、新產(chǎn)品開(kāi)發(fā)和生產(chǎn)提前期帶來(lái)重要影響。所以通過(guò)轉(zhuǎn)向新型的物料管理來(lái)提高企業(yè)績(jī)效。
80年代后,全球競(jìng)爭(zhēng)加劇,一些大型跨國(guó)企業(yè)面對(duì)市場(chǎng)競(jìng)爭(zhēng)只有通過(guò)提供低成本、高質(zhì)量、可靠的產(chǎn)品和更加柔性的設(shè)計(jì)來(lái)保持領(lǐng)先地位。制造企業(yè)開(kāi)始導(dǎo)入JIT生產(chǎn)力理念,日本企業(yè)通過(guò)實(shí)施JIT來(lái)提高制造效率、縮短生產(chǎn)周期和降低庫(kù)存。由于JIT通過(guò)快節(jié)奏制造環(huán)境、低庫(kù)存來(lái)緩解生產(chǎn)和排成問(wèn)題,制造商們意識(shí)到戰(zhàn)略合作伙伴關(guān)系的重要。所以當(dāng)制造商和供應(yīng)商開(kāi)始發(fā)展戰(zhàn)略供應(yīng)關(guān)系時(shí),供應(yīng)鏈管理的概念隨即出現(xiàn)了。而采購(gòu)、物流和運(yùn)輸過(guò)程的專業(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à)值鏈。采購(gòu)和供應(yīng)的效率要求更多地考慮成本與質(zhì)量間的協(xié)調(diào)。制造商通過(guò)從選定的少數(shù)幾家供應(yīng)商或者經(jīng)過(guò)認(rèn)證的供應(yīng)商那里采購(gòu)原料,以消除非增值活動(dòng),如 原 材 料 質(zhì) 量 檢 查、入 庫(kù) 檢 查 等(Inman & Hubler,1992)。很多制造商和零售商通過(guò)緊密合作來(lái)提高跨企業(yè)的價(jià)值鏈的效率。例如,在進(jìn)行新產(chǎn)品開(kāi)發(fā)時(shí),制造商將供應(yīng)商和客戶整合在一起,利 用合作伙伴的研發(fā)能力和科技,提高研發(fā)周期,增強(qiáng)核心競(jìng)爭(zhēng)力(Ragate,et.al,1997;Morgan & Monczka,1995)。而分銷商和零售商則將自己的分銷與運(yùn)輸提供商進(jìn)行無(wú)縫連接,以達(dá)到直接交貨,消除物品檢查等增值活動(dòng)。
進(jìn)入21世紀(jì),企業(yè)所面對(duì)的市場(chǎng)需求多樣化、個(gè)性化、變化頻繁的特點(diǎn)日益突出,而企業(yè)之間的競(jìng)爭(zhēng)也日益激烈。通過(guò)專業(yè)化分工、服務(wù)外包的手段提高核心競(jìng)爭(zhēng)力、提升對(duì)市場(chǎng)的響應(yīng)速度、降低供應(yīng)鏈運(yùn)行成本成為企業(yè)競(jìng)爭(zhēng)的主要熱點(diǎn)。其中,通過(guò)利用高效的外部供應(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)過(guò)多年的發(fā)展,供應(yīng)鏈管理也已經(jīng)有了很好的理論實(shí)踐。也產(chǎn)生了很多的優(yōu)秀的供應(yīng)鏈管理系統(tǒng)。比較有代表的如Oracle公司開(kāi)發(fā)的供應(yīng)鏈管理系統(tǒng),Oracle供應(yīng)鏈管理 (SCM) 解決方案是一款全面的管理軟件套件,具有開(kāi)放靈活的架構(gòu)、一流的功能、完整的功能覆蓋范圍,以及集成和模塊化的部署選項(xiàng),能夠?qū)⑵髽I(yè)運(yùn)營(yíng)從職能需要轉(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)新萬(wàn)眾創(chuàng)業(yè)的新時(shí)期,因而會(huì)有比較多的小型企業(yè),因此小型的進(jìn)銷存管理系統(tǒng)需求量是比較大的。而前面提到的系統(tǒng)此時(shí)并不適合,因此我們就可以開(kāi)發(fā)出一個(gè)適合小型企業(yè)、操作簡(jiǎn)單、投入小的進(jìn)銷存管理系統(tǒng)。
課題研究目標(biāo)、內(nèi)容、方法和手段: -
研究目標(biāo):
開(kāi)發(fā)本系統(tǒng)的目的是為了幫助那些小型企業(yè)改變傳統(tǒng)的進(jìn)銷存的管理方式,以前靠人工手動(dòng)處理這些進(jìn)銷存數(shù)據(jù)時(shí),不但效率低下,而且容易出錯(cuò),給企業(yè)帶來(lái)不良后果。本系統(tǒng)是進(jìn)銷存管理系統(tǒng),包含企業(yè)通過(guò)供應(yīng)商采購(gòu)商品,把商品放入到倉(cāng)庫(kù)中,該企業(yè)在銷售該商品的時(shí)候,再把商品從倉(cāng)庫(kù)中提取出來(lái),賣給客戶的過(guò)程。因此包含三個(gè)訂單:①采購(gòu)訂單②銷售訂單③調(diào)撥訂單(內(nèi)部倉(cāng)庫(kù)之間調(diào)撥);除了包含訂單管理、銷售管理、庫(kù)存管理,不同角色的注冊(cè)、登錄等基本功能;還應(yīng)該會(huì)根據(jù)庫(kù)存數(shù)的多少,自動(dòng)產(chǎn)生一個(gè)需要進(jìn)貨的訂單報(bào)表;根據(jù)銷售的情況產(chǎn)生一個(gè)建議采購(gòu)商品訂單。 -
研究?jī)?nèi)容:
I:是用戶的注冊(cè)、登錄功能(需要對(duì)密碼進(jìn)行處理):這里面包含一般用戶和管理員用戶的登錄和注冊(cè)功能,在登錄和注冊(cè)頁(yè)面里,需要對(duì)用戶的用戶名、密碼做一些限定:用戶名長(zhǎng)度要在6-12,密碼長(zhǎng)度要在8-12,用戶名不能包含空格、特殊字符這些限定。在系統(tǒng)后臺(tái)還需要對(duì)傳進(jìn)來(lái)的密碼做加密處理,提高安全性。
II:是快速、簡(jiǎn)單的對(duì)三種訂單進(jìn)行增、刪、改、查操作:①采購(gòu)訂單:
添加需要采購(gòu)的貨物的信息、修改需要采購(gòu)貨物的信息、刪除采購(gòu)貨物的信息、查看需要采購(gòu)貨物的信息。②銷售訂單:對(duì)交易成功訂單的查看、對(duì)交易成功訂單刪除。③調(diào)撥訂單:將貨物從一個(gè)倉(cāng)庫(kù)換到另一個(gè)倉(cāng)庫(kù)時(shí),對(duì)數(shù)據(jù)進(jìn)行修改。
III:分析功能:對(duì)銷售訂單數(shù)據(jù)進(jìn)行統(tǒng)計(jì),然后分析:哪些商品銷售量大,哪些商品銷售量?。粚?duì)銷售量大的商品應(yīng)該在進(jìn)貨訂單里多一些,對(duì)銷售小的商品在進(jìn)貨訂單里少一些。對(duì)過(guò)去的銷售數(shù)據(jù)進(jìn)行分析,然后對(duì)接下來(lái)的銷售策略進(jìn)行一些預(yù)測(cè),讓公司在制定策略時(shí)可以有一些參考。
IV:庫(kù)存告警功能:商品在庫(kù)存里有一個(gè)下限值,對(duì)剩余庫(kù)存統(tǒng)計(jì)分析,低于下限值得商品就要提醒:需要訂貨了。產(chǎn)生需要進(jìn)貨的訂單報(bào)表(對(duì)低于庫(kù)存下限的商品,需要放到進(jìn)貨單里面)。
V:備份功能:對(duì)一些重要的數(shù)據(jù)需要進(jìn)行備份:如進(jìn)貨訂單數(shù)據(jù),倉(cāng)庫(kù)數(shù)據(jù),銷售訂單數(shù)據(jù);還有一些人員數(shù)據(jù)等等需要進(jìn)行備份,以防意外情況發(fā)生。 -
研究方法:
本項(xiàng)目用的是spring tool suite + maven的集成開(kāi)發(fā)環(huán)境,java作為開(kāi)發(fā)語(yǔ)言,使用spring boot 內(nèi)置tomcat作為web服務(wù)器,數(shù)據(jù)庫(kù)使用的是mysql,加上使用spring boot + JPA框架。結(jié)合mysql數(shù)據(jù)庫(kù)存儲(chǔ)的優(yōu)點(diǎn),體積小,可移植性強(qiáng),使用方便等多方面的優(yōu)點(diǎn),獨(dú)立開(kāi)發(fā)出了本系統(tǒng)。
前端頁(yè)面用到了Javasrcipt技術(shù)(使用JQuery、bootstarp框架),對(duì)頁(yè)面進(jìn)行了一些美化,是界面更簡(jiǎn)潔、美觀。在某些頁(yè)面中還用AJAX技術(shù)(異步交互功能),使做出來(lái)的頁(yè)面更合理、美觀。
增、刪、改、查功能:實(shí)際上是對(duì)數(shù)據(jù)庫(kù)的大量操作,考慮到實(shí)用性和使用性能問(wèn)題,選擇了mysql數(shù)據(jù)庫(kù)作為存儲(chǔ)數(shù)據(jù)庫(kù)(mysql數(shù)據(jù)庫(kù)體積小、免費(fèi)、跨平臺(tái)性好)。因?yàn)橐罅康脑鰟h改查操作,因此用Java的JDBC連接數(shù)據(jù)庫(kù)就不是很合理,于是采用了JPA作為連接數(shù)據(jù)庫(kù)工具,可以讓我們快速、簡(jiǎn)單的和數(shù)據(jù)庫(kù)進(jìn)行交互。
分析功能運(yùn)用大數(shù)據(jù)里面的數(shù)據(jù)挖掘和數(shù)據(jù)抽取技術(shù),先采集到數(shù)據(jù),然后對(duì)數(shù)據(jù)排序處理過(guò)后,能看到數(shù)據(jù)銷量排行,就能得到數(shù)據(jù):哪些商品銷售量大,哪些商品的銷售量小。還應(yīng)該具備一個(gè)功能,就是對(duì)過(guò)去的銷售數(shù)據(jù)進(jìn)行分析,然后對(duì)接下來(lái)的銷售策略進(jìn)行一些預(yù)測(cè),讓公司在制定策略時(shí)可以有一些參考。
庫(kù)存告警功能:首先需要把商品庫(kù)存量計(jì)算出來(lái),然后拿到剩余庫(kù)存量,對(duì)剩余庫(kù)存量小于警告值的,將該商品放到進(jìn)貨訂單的列表中,這樣就能讓倉(cāng)庫(kù)的商品不會(huì)突然賣完就沒(méi)了的情況。
備份與恢復(fù)功能:對(duì)這些重要數(shù)據(jù),每天在一個(gè)特定時(shí)間會(huì)自動(dòng)進(jìn)行備份,備份到文件夾,還可以自己手動(dòng)點(diǎn)擊備份;然后在數(shù)據(jù)庫(kù)里數(shù)據(jù)被破壞或者丟失時(shí),我們就可以把備份的數(shù)據(jù)恢復(fù)到數(shù)據(jù)庫(kù)中去。
設(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ì)開(kāi)題報(bào)告 | 2017年2月28日前完成 |
2 | 需求分析 | 第一、二周 |
3 | 概要設(shè)計(jì) | 第三、四周 |
4 | 詳細(xì)設(shè)計(jì) | 第五、六周 |
5 | 系統(tǒng)設(shè)計(jì) | 第七周 |
6 | 系統(tǒng)開(kāi)發(fā) | 第八、九周 |
7 | 系統(tǒng)測(cè)試 | 第十周 |
8 | 畢業(yè)設(shè)計(jì)論文整理 | 第十一、十二周 |
9 | 提交畢業(yè)論文 | 2017年5月21日前 |
主要參考文獻(xiàn)和書(shū)目:(不少于15篇論文,其中M指書(shū)籍,D指學(xué)位論文,J指期刊論文)
[1] 辛運(yùn)幃等. java語(yǔ)言程序設(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í)踐者的研究方法(原書(shū)第7版)[M]. 北京: 機(jī)械工業(yè)出版社, 2011
[6] 李興華, 王月清. 名師講壇:Java Web開(kāi)發(fā)實(shí)戰(zhàn)經(jīng)典基礎(chǔ)篇(JSP, Servlet, Struts, Ajax)[M].北京: 清華大學(xué)出版社, 2010
[7] 成先海.數(shù)據(jù)庫(kù)基礎(chǔ)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2008.
[8] 張艷.基于工作過(guò)程的物流信息系統(tǒng)與管理課程的重構(gòu)[J].遼寧高職學(xué)報(bào),2010, 12(2):45-47.
[9] 李小娜,董紹華.物流信息技術(shù)在現(xiàn)代物流中的應(yīng)用[J].中國(guó)科技信息,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)用開(kāi)發(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è)物流成本管理存在問(wèn)題及對(duì)策[J].物流技術(shù)與應(yīng)用,2011,13(2):101-102.
指導(dǎo)教師審核意見(jiàn):
指導(dǎo)教師(簽字):?年?月?日
注:本表可自主延伸
摘 要
進(jìn)入21世紀(jì)以來(lái),商業(yè)管理中需要處理的數(shù)據(jù)和信息越來(lái)越多。大量的數(shù)據(jù)和繁雜的數(shù)據(jù)使得古老的手工處理數(shù)據(jù)的方式漸漸顯得力不從心。甚至有些信息處理的方式在手工處理的模式下是根本無(wú)法是實(shí)現(xiàn)的,只能利用計(jì)算機(jī)的高運(yùn)行頻率來(lái)進(jìn)行迭代計(jì)算。而且最近國(guó)家正在提倡大眾創(chuàng)業(yè),中小型企業(yè)很多。中小企業(yè)在我國(guó)經(jīng)濟(jì)發(fā)展中具有重要地位,目前我國(guó)的中小企業(yè)數(shù)量多,地區(qū)分布廣泛,行業(yè)分布跨度大。隨著全球經(jīng)濟(jì)一體化的發(fā)展和電子商務(wù)的興起,中小企業(yè)之間的競(jìng)爭(zhēng)將越來(lái)越激烈。網(wǎng)絡(luò)及電子商務(wù)的迅猛發(fā)展突破了時(shí)間、空間的局限性,給中小企業(yè)帶來(lái)了更多的發(fā)展機(jī)會(huì),同時(shí)也增大了企業(yè)之間的競(jìng)爭(zhēng)強(qiáng)度。這就要求中小企業(yè)必須改變企業(yè)的經(jīng)營(yíng)管理模式,提高企業(yè)的運(yùn)營(yíng)效率。隨著技術(shù)發(fā)展,電腦操作及管理日趨簡(jiǎn)化,電腦知識(shí)日趨普及,同時(shí)市場(chǎng)經(jīng)濟(jì)快速多變,競(jìng)爭(zhēng)激烈,企業(yè)采用電腦管理進(jìn)貨、庫(kù)存、銷售等諸多環(huán)節(jié)也已成為必然趨勢(shì)。
關(guān)鍵詞:進(jìn)銷存管理系統(tǒng);B/S結(jié)構(gòu);mysql數(shù)據(jù)庫(kù);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 開(kāi)發(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ù)庫(kù)設(shè)計(jì)23
4.4 本章小結(jié)33
第五章 系統(tǒng)實(shí)現(xiàn)35
5.1 用戶登錄35
5.2 采購(gòu)管理37
5.3 庫(kù)存管理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è)問(wèn)題:企業(yè)的決策者看到的進(jìn)銷存資料及相關(guān)報(bào)表都是比較繁雜,讓本應(yīng)該一目了然的結(jié)果因信息的分散使得產(chǎn)生的結(jié)果無(wú)法保持一致和完整,造成企業(yè)在進(jìn)銷存管理上問(wèn)題很多。由此發(fā)展而來(lái)的進(jìn)銷存管理系統(tǒng)就能夠很好的解決上面出現(xiàn)的問(wèn)題,能夠?qū)?shù)據(jù)快速轉(zhuǎn)化為有效信息,為企業(yè)管理者制定生存發(fā)展決策提供了依據(jù)。
在現(xiàn)今社會(huì)中,各個(gè)產(chǎn)品的質(zhì)量都相差不大,現(xiàn)在顧客對(duì)個(gè)性化服務(wù)的期望值越來(lái)越高,在產(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ù)流程來(lái)提高企業(yè)自身的競(jìng)爭(zhēng)能力。因此,加強(qiáng)進(jìn)銷存管理是企業(yè)能適應(yīng)現(xiàn)階段發(fā)展的必然,通過(guò)計(jì)算機(jī)來(lái)快速準(zhǔn)確地完成大量本來(lái)由人工手工完成的工作,這是真正達(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)開(kāi)發(fā)的市場(chǎng)將是非常龐大的。在這飛速發(fā)展的信息時(shí)代,這類的信息管理系統(tǒng)的開(kāi)發(fā)為中小型企業(yè)帶來(lái)了方便和有效的信息,促進(jìn)了經(jīng)濟(jì)的發(fā)展。
研究目標(biāo)
實(shí)現(xiàn)一個(gè)進(jìn)銷存管理系統(tǒng),實(shí)現(xiàn)對(duì)企業(yè)運(yùn)作過(guò)程中的進(jìn)貨、銷售、倉(cāng)儲(chǔ)的電子化操作,可以節(jié)省大量人力物力,可以說(shuō)對(duì)企業(yè)的運(yùn)作帶來(lái)不可限量的好處。實(shí)現(xiàn)一個(gè)簡(jiǎn)單實(shí)用,操作界面友好的進(jìn)銷存管理系統(tǒng)是首要解決的任務(wù)。然后一是要實(shí)現(xiàn)對(duì)庫(kù)存數(shù)據(jù)進(jìn)行分析,對(duì)接下來(lái)的進(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)開(kāi)發(fā)的緣由和意義,也就是開(kāi)發(fā)這個(gè)系統(tǒng)的背景。開(kāi)發(fā)這個(gè)系統(tǒng)有哪些優(yōu)點(diǎn),開(kāi)發(fā)的這個(gè)系統(tǒng)具備哪一些功能,或者說(shuō)能開(kāi)發(fā)出哪些功能,對(duì)這些功能進(jìn)行了一個(gè)概述。
第二章相關(guān)技術(shù)和方法:本章節(jié)首先是概述了系統(tǒng)的結(jié)構(gòu),用那些技術(shù)搭建的開(kāi)發(fā)環(huán)境;接下來(lái)是簡(jiǎn)單介紹了一下關(guān)鍵功能和是怎么實(shí)現(xiàn)這些關(guān)鍵功能;最后是介紹了用到的開(kāi)發(fā)工具。
第三章系統(tǒng)分析:本章節(jié)的重點(diǎn)系統(tǒng)分析,主要從可行性分析和需求分析兩方面入手??尚行苑治鰪募夹g(shù)可行性、經(jīng)濟(jì)可行性、操作可行性三個(gè)方面進(jìn)行綜合分析,最終得出系統(tǒng)開(kāi)發(fā)的可行;需求分析從兩個(gè)方面分析:系統(tǒng)總體需求和用例圖分析,從這兩個(gè)方面確定系統(tǒng)是可行的。
第四章系統(tǒng)設(shè)計(jì):本章節(jié)主要分為系統(tǒng)類設(shè)計(jì)、關(guān)鍵業(yè)務(wù)設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)三個(gè)模塊。系統(tǒng)類設(shè)計(jì)主要是用類圖來(lái)呈現(xiàn)系統(tǒng)中類的一些屬性和功能;關(guān)鍵業(yè)務(wù)設(shè)計(jì)主要是用順序圖來(lái)直觀的呈現(xiàn)這些功能的處理流程和處理步驟;數(shù)據(jù)庫(kù)設(shè)計(jì)首先是用了ER圖來(lái)直觀的把數(shù)據(jù)庫(kù)表的一些屬性表示出來(lái),其次對(duì)涉及到的每一張表都進(jìn)行了分析和介紹。
第五章系統(tǒng)實(shí)現(xiàn):本章節(jié)主要是對(duì)核心功能介紹,首先是功能描述,然后附上實(shí)現(xiàn)的界面,接下來(lái)詳細(xì)描述功能的實(shí)現(xiàn)過(guò)程并且附上實(shí)現(xiàn)這些功能的核心代碼。
第六章系統(tǒng)測(cè)試:本章是說(shuō)明測(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è)過(guò)程做一個(gè)總結(jié),說(shuō)明本論文的結(jié)構(gòu)組成,從緒論開(kāi)始到總結(jié)結(jié)束,對(duì)每一個(gè)大的章節(jié)內(nèi)容進(jìn)行簡(jiǎn)單的敘述。并且闡述了自己的收獲與不足,給出不足的解決方案。
本章小結(jié)
本章從研究的背景開(kāi)始,敘述了進(jìn)銷存管理系統(tǒng)開(kāi)發(fā)的整個(gè)流程,為什么要開(kāi)發(fā)這個(gè)系統(tǒng),開(kāi)發(fā)這個(gè)系統(tǒng)有啥優(yōu)勢(shì)。其次就是描述了本系統(tǒng)需要開(kāi)發(fā)出什么的功能,需要具備什么樣的功能,能否開(kāi)發(fā)出這些功能。最后對(duì)正文的每個(gè)章節(jié)進(jìn)行了一個(gè)簡(jiǎn)單的描述。
相關(guān)技術(shù)與方法
架構(gòu)概述
本系統(tǒng)設(shè)計(jì)采用的是MAVEN + SPRING BOOT+ JPA 的架構(gòu)來(lái)搭建的項(xiàng)目。Maven是一個(gè)不錯(cuò)的項(xiàng)目管理工具,它包含了一個(gè)項(xiàng)目對(duì)象模型,一組標(biāo)準(zhǔn)集合,一個(gè)項(xiàng)目生命周期,一個(gè)依賴管理系統(tǒng),和用來(lái)運(yùn)行定義在生命周期階段中插件目標(biāo)的邏輯。由于 Maven 的缺省構(gòu)建規(guī)則具有不錯(cuò)的可重用性,因此用Maven 可以快速的構(gòu)建項(xiàng)目。Spring Boot是由Pivotal團(tuán)隊(duì)提供的全新框架,設(shè)計(jì)這個(gè)框架目的就是用來(lái)簡(jiǎn)化Spring應(yīng)用的初始搭建以和開(kāi)發(fā)過(guò)程。這個(gè)框架使用了特定的方式做配置,因此開(kāi)發(fā)人員不需要和傳統(tǒng)的Spring應(yīng)用一樣寫(xiě)大量的配置文件。Springboot具有以下優(yōu)勢(shì):創(chuàng)建的Spring應(yīng)用程序是獨(dú)立的;本身嵌入了Tomcat,無(wú)需部署WAR文件;Maven配置作了簡(jiǎn)化;自動(dòng)配置Spring。因此用maven加上spring boot可以讓我們快速的搭建起項(xiàng)目來(lái),可以省去很多繁瑣的步驟。
JPA全稱為Java Persistence API,是通過(guò)注解或者XML來(lái)描述對(duì)象-關(guān)系表的映射關(guān)系,并且可以將在運(yùn)行的Entity類對(duì)象存儲(chǔ)到數(shù)據(jù)庫(kù)中去。使用JPA可以打破一般簡(jiǎn)單持久化框架的局限,在我們開(kāi)發(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注解即可;開(kāi)發(fā)人員很容易就可以掌握J(rèn)PA,因?yàn)镴PA沒(méi)有特殊的規(guī)則和太多的設(shè)計(jì)模式,框架和接口都很簡(jiǎn)單。JPA采用的原則是非侵入式原則,因此對(duì)其他框架的兼容性很好,易于和其他框架集成。JPA中定義了和Hibernate HQL相似的QL:JPQL,它是EJB QL的一種拓展,操作的對(duì)象是實(shí)體,而不是關(guān)系數(shù)據(jù)庫(kù)的一張表。而且能夠正常的支持SQL才能夠提供的高級(jí)查詢特性:批量修改和更新、JOIN、GROUPBY、HAVING等,并且支持子查詢功能。最重要的是JPA也支持面向?qū)ο蟮母呒?jí)特性,這樣的話開(kāi)發(fā)者在開(kāi)發(fā)企業(yè)級(jí)應(yīng)用時(shí)能夠最大化的使用面向?qū)ο蟮哪P蛠?lái)設(shè)計(jì),而不用自己來(lái)處理這些特性的持久化。
用這三個(gè)技術(shù)搭建項(xiàng)目框架,可以快速完成,省去許多簡(jiǎn)單繁雜的步驟,對(duì)于我們快速開(kāi)發(fā)是有非常大的優(yōu)勢(shì)的。
關(guān)鍵技術(shù)簡(jiǎn)介
作為一個(gè)進(jìn)銷存管理系統(tǒng),其最根本的功能還是在對(duì)采購(gòu)管理、銷售管理和庫(kù)存管理上面,其他的功能都是在這個(gè)的基礎(chǔ)上才能夠開(kāi)發(fā)出來(lái)?;A(chǔ)功能也就是對(duì)進(jìn)貨、銷售和庫(kù)存的增刪改查。其中對(duì)進(jìn)貨訂單的添加和銷售訂單的添加,每個(gè)訂單都含有一個(gè)或者多個(gè)商品,因此訂單生成時(shí)做了跟購(gòu)物車類似,我們可以把商品一個(gè)一個(gè)添加到這個(gè)購(gòu)物車上,等我們商品添加完成,此時(shí)可以提交訂單,這樣就產(chǎn)生 了一個(gè)進(jìn)貨訂單或者銷售訂單。跟數(shù)據(jù)庫(kù)打交道肯定少不了連接數(shù)據(jù)庫(kù)的技術(shù),在本系統(tǒng)用到的是JPA,JPA本身有許多默認(rèn)的增刪改查的方法,并且不用寫(xiě)配置文件,而且可以自己個(gè)性化定制sql語(yǔ)句,只需要寫(xiě)一個(gè)接口繼承JPARepository接口,然后在這個(gè)接口里寫(xiě)抽象方法,在方法上寫(xiě)注解就可以了,很方便。
首先是數(shù)據(jù)分析功能,因?yàn)槲覀儽旧頂?shù)據(jù)庫(kù)里存有大量的銷售數(shù)據(jù)庫(kù),所以我們就不用去收集數(shù)據(jù)了,直接對(duì)數(shù)據(jù)庫(kù)里的數(shù)據(jù)進(jìn)行分析即可。第一階段:探索性數(shù)據(jù)分析,因?yàn)閿?shù)據(jù)庫(kù)里的數(shù)據(jù)是雜亂無(wú)章的,因而看不出規(guī)律。因此我們需要通過(guò)作圖、表格、用各種形式的方程擬合、計(jì)算某些特征量等手段來(lái)找出某些可能的關(guān)聯(lián)或某些隱含在數(shù)據(jù)中的規(guī)律。第二階段:選定模型進(jìn)行分析,接下來(lái)我們通過(guò)前面的初步操作,在探索性分析的基礎(chǔ)上提出一種或幾種可能的模型,然后通過(guò)進(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ù)庫(kù)中去。備份數(shù)據(jù)時(shí)會(huì)占用較大的IO資源的,因此我們需要選擇一個(gè)對(duì)系統(tǒng)影響盡可能地小的時(shí)段來(lái)進(jìn)行數(shù)據(jù)的備份;對(duì)重要的數(shù)據(jù),要保證在極端情況下的數(shù)據(jù)都可以正?;謴?fù)。在選擇備份方案時(shí)要考慮到實(shí)施方案的可操作性和經(jīng)濟(jì)性,因此選擇了邏輯備份,此方法不需要數(shù)據(jù)庫(kù)運(yùn)行在歸檔模式下,不但備份簡(jiǎn)單,而且可以不需要依賴外部存儲(chǔ)設(shè)備。
開(kāi)發(fā)工具
系統(tǒng)前段頁(yè)面采用jsp + JavaScript + css的組合技術(shù)開(kāi)發(fā),其中JavaScript使用了jQuery和bootstrap框架,這兩個(gè)前段框架讓我們能更友好的使用JavaScript。省去了許多步驟,簡(jiǎn)化了我們的使用。數(shù)據(jù)庫(kù)使用的是MySQL數(shù)據(jù)庫(kù),MySQL 是現(xiàn)階段最流行的關(guān)系型數(shù)據(jù)庫(kù)之一,因?yàn)樗捏w積小、運(yùn)行速度快、免費(fèi),尤其是開(kāi)放源碼這一特點(diǎn),一般中小型網(wǎng)站的開(kāi)發(fā)都會(huì)選擇MySQL作為網(wǎng)站數(shù)據(jù)庫(kù)??紤]到系統(tǒng)設(shè)計(jì)的用戶群體以及MySQL數(shù)據(jù)庫(kù)的這些優(yōu)點(diǎn),于是選擇了MySQL數(shù)據(jù)庫(kù)作為開(kāi)發(fā)數(shù)據(jù)庫(kù)。開(kāi)發(fā)使用的IDE工具是:Spring tool suit,這個(gè)IDE工具是Spring官網(wǎng)推薦的開(kāi)發(fā)工具,在使用Spring體系的框架開(kāi)發(fā)應(yīng)用是,這個(gè)IDE工具具有很多優(yōu)勢(shì)。Web服務(wù)器是使用的Spring boot內(nèi)置的Tomcat服務(wù)器。根據(jù)以上選擇的框架、工具,選擇了JDK1.8作為開(kāi)發(fā)、編譯環(huán)境。
本章小結(jié)
本章主要簡(jiǎn)單敘述了系統(tǒng)使用了的框架、用了哪些開(kāi)發(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)是成熟的開(kāi)發(fā)技術(shù)了,完全可以滿足本項(xiàng)目的開(kāi)發(fā)需求。項(xiàng)目主要功能所涉及的一些技術(shù)都能是能夠?qū)崿F(xiàn)的,因此在技術(shù)上是可行的。
經(jīng)濟(jì)可行性
企業(yè)在運(yùn)轉(zhuǎn)過(guò)程中信息的系統(tǒng)化管理,運(yùn)用電腦對(duì)數(shù)據(jù)進(jìn)行自動(dòng)化的統(tǒng)計(jì),為企業(yè)在制定經(jīng)營(yíng)決策時(shí)提供了大量的、權(quán)威的科學(xué)數(shù)據(jù);強(qiáng)大的進(jìn)銷存數(shù)據(jù)統(tǒng)計(jì)功能,大大簡(jiǎn)化了員工的日常工作,工作效率提高了很多,大大降低了人工管理過(guò)程中數(shù)據(jù)易錯(cuò)所帶來(lái)的一系列的不良反應(yīng),提高了企業(yè)的經(jīng)濟(jì)效益??梢怨?jié)省大量的人力物力,并且現(xiàn)在不會(huì)存在之前人工操作產(chǎn)生的人工誤差的情??梢哉f(shuō)是大大提高了企業(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(shuō)對(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)限。
⑶支持多條件語(yǔ)句查詢,方便進(jìn)銷存數(shù)據(jù)的查詢。
⑷基礎(chǔ)信息管理與查詢(包括商品信息、客戶信息、供應(yīng)商信息)。
⑸一鍵點(diǎn)擊,能夠直接查看倉(cāng)庫(kù)所有商品的庫(kù)存信息。
⑹方便、健全的賬單統(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)開(kāi)發(fā)過(guò)程中應(yīng)該有詳細(xì)的文檔,這樣讓別人能夠更好的使用。 |
安全性 | 防止軟件受到意外或蓄意的存取、使用、修改、毀壞或泄密導(dǎo)致系統(tǒng)的數(shù)據(jù)丟失。 |
可擴(kuò)展性 | 能方便的進(jìn)行二次開(kāi)發(fā),滿足對(duì)功能的擴(kuò)展或提高并能提高相應(yīng)的安全機(jī)制。 |
兼容性 | 不易與其他軟件起沖突。 |
用例圖分析
圖3-1系統(tǒng)管理用例圖
系統(tǒng)管理用例有配置系統(tǒng)、管理部門(mén)、管理員工、管理權(quán)限,這里主要介紹一下管理權(quán)限,具體說(shuō)明見(jiàn)表3-1:
表3-1管理權(quán)限
用例編號(hào) | UC01 | |
---|---|---|
用例名稱 | 管理權(quán)限 | |
用例概述 | 系統(tǒng)管理員通過(guò)此用例管理系統(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),具體說(shuō)明見(jiàn)表3-2:
表3-2記錄應(yīng)收應(yīng)付款項(xiàng)
用例編號(hào) | UC02 | |
---|---|---|
用例名稱 | 記錄應(yīng)收應(yīng)付款項(xiàng) | |
用例概述 | 系統(tǒng)管理員通過(guò)此用例管理系統(tǒng)中的用戶的操作權(quán)限 | |
主參與者 | 財(cái)務(wù) | |
前置條件 | 無(wú) | |
基本事件流 | 步驟 | 活動(dòng) |
A1 | 選擇需要的操作,增加、修改、刪除應(yīng)收應(yīng)付款項(xiàng) | |
A2 | 輸入應(yīng)收應(yīng)付款項(xiàng)信息 | |
A3 | 保存輸入款項(xiàng)信息 |
圖3-3 采購(gòu)部分用例圖
采購(gòu)部分用例有兩個(gè)角色采購(gòu)員和采購(gòu)經(jīng)理。采購(gòu)員用例有采購(gòu)單、管理供應(yīng)商、管理商品信息;采購(gòu)經(jīng)理用例有審批采購(gòu)單、管理商品分類。具體說(shuō)明見(jiàn)表3-3至表3-4:
表3-3采購(gòu)單
用例編號(hào) | UC03 | |
---|---|---|
用例名稱 | 采購(gòu)單 | |
用例概述 | 采購(gòu)員通過(guò)此用例來(lái)生成采購(gòu)單 | |
主參與者 | 采購(gòu)員 | |
前置條件 | 無(wú) | |
基本事件流 | 步驟 | 活動(dòng) |
A1 | 選擇需要的操作,增加、修改、刪除采購(gòu)單 | |
A2 | 輸入需要采購(gòu)的商品信息 | |
A3 | 保存輸入的信息 | |
擴(kuò)展事件流 | 1a | 輸入的商品不存在,返回提示信息 |
1b | 輸入商品信息錯(cuò)誤,返回提示信息 |
表3-4審批采購(gòu)單
用例編號(hào) | UC04 | |
---|---|---|
用例名稱 | 審批采購(gòu)單 | |
用例概述 | 采購(gòu)經(jīng)理通過(guò)此用例來(lái)對(duì)采購(gòu)員生成的采購(gòu)單審批 | |
主參與者 | 采購(gòu)經(jīng)理 | |
前置條件 | 采購(gòu)經(jīng)理身份正確登錄 | |
基本事件流 | 步驟 | 活動(dòng) |
A1 | 選擇需要審批采購(gòu)單 | |
A2 | 審批采購(gòu)單 | |
擴(kuò)展事件流 | 1a | 采購(gòu)單不存在,返回提示信息 |
圖3-4庫(kù)存部分用例圖
庫(kù)存部分總共有質(zhì)檢員、庫(kù)存管理員、倉(cāng)庫(kù)經(jīng)理三個(gè)角色,涉及到的用例比較多,這里具體介紹一下出入庫(kù)單、確認(rèn)入庫(kù)單、開(kāi)出庫(kù)單、統(tǒng)計(jì)庫(kù)存信息、出調(diào)撥單,具體說(shuō)明見(jiàn)表3-5至表3-9:
表3-5出入庫(kù)單
用例編號(hào) | UC05 | |
---|---|---|
用例名稱 | 出入庫(kù)單 | |
用例概述 | 質(zhì)檢員通過(guò)此用例管理倉(cāng)庫(kù)出庫(kù)入庫(kù)單 | |
主參與者 | 質(zhì)檢員 | |
前置條件 | 無(wú) | |
基本事件流 | 步驟 | 活動(dòng) |
A1 | 選擇需要的操作,增加、修改、刪除出入庫(kù)單 | |
A2 | 輸入出庫(kù)或入庫(kù)單信息 | |
A3 | 保存出庫(kù)或入庫(kù)單信息 |
表3-6確認(rèn)入庫(kù)單
用例編號(hào) | UC06 | |
---|---|---|
用例名稱 | 確認(rèn)入庫(kù)單 | |
用例概述 | 庫(kù)存管理員通過(guò)此用例確認(rèn)質(zhì)檢員開(kāi)出的入庫(kù)單 | |
主參與者 | 庫(kù)存管理員 | |
前置條件 | 無(wú) | |
基本事件流 | 步驟 | 活動(dòng) |
A1 | 選擇入庫(kù)單 | |
A2 | 確認(rèn)入庫(kù)單信息 |
表3-7開(kāi)出庫(kù)單
用例編號(hào) | UC07 | |
---|---|---|
用例名稱 | 開(kāi)出庫(kù)單 | |
用例概述 | 庫(kù)存管理員通過(guò)此用例生成出庫(kù)單 | |
主參與者 | 庫(kù)存管理員 | |
前置條件 | 無(wú) | |
基本事件流 | 步驟 | 活動(dòng) |
A1 | 選擇需要出庫(kù)的物品信息 | |
A2 | 生成出庫(kù)單 |
表3-8統(tǒng)計(jì)庫(kù)存信息
用例編號(hào) | UC08 | |
---|---|---|
用例名稱 | 統(tǒng)計(jì)庫(kù)存信息 | |
用例概述 | 倉(cāng)庫(kù)經(jīng)理通過(guò)此用例統(tǒng)計(jì)庫(kù)存信息 | |
主參與者 | 倉(cāng)庫(kù)經(jīng)理 | |
前置條件 | 倉(cāng)庫(kù)經(jīng)理身份正確登錄 | |
基本事件流 | 步驟 | 活動(dòng) |
A1 | 統(tǒng)計(jì)庫(kù)存信息 |
表3-9出調(diào)撥單
用例編號(hào) | UC09 | |
---|---|---|
用例名稱 | 出調(diào)撥單 | |
用例概述 | 倉(cāng)庫(kù)經(jīng)理通過(guò)此用例生成調(diào)撥單 | |
主參與者 | 倉(cāng)庫(kù)經(jīng)理 | |
前置條件 | 倉(cāng)庫(kù)經(jīng)理身份正確登錄 | |
基本事件流 | 步驟 | 活動(dòng) |
A1 | 根據(jù)需求生成調(diào)撥單 |
圖3-5銷售部分用例圖
銷售部分用例圖包括銷售經(jīng)理和銷售員兩種角色,銷售經(jīng)理用例有統(tǒng)計(jì)銷售信息;銷售員用例有管理客戶、查詢商品庫(kù)存、下訂單、確認(rèn)訂單具體說(shuō)明見(jiàn)表3-10至表3-12:
表3-10統(tǒng)計(jì)銷售信息
用例編號(hào) | UC10 | |
---|---|---|
用例名稱 | 統(tǒng)計(jì)銷售信息 | |
用例概述 | 銷售經(jīng)理通過(guò)此用例統(tǒng)計(jì)銷售信息 | |
主參與者 | 銷售經(jīng)理 | |
前置條件 | 銷售經(jīng)理身份正確登錄 | |
基本事件流 | 步驟 | 活動(dòng) |
A1 | 統(tǒng)計(jì)銷售信息 |
表3-11查詢商品庫(kù)存
用例編號(hào) | UC11 | |
---|---|---|
用例名稱 | 查詢商品庫(kù)存 | |
用例概述 | 銷售員通過(guò)此用例查詢商品庫(kù)存 | |
主參與者 | 銷售員 | |
前置條件 | 無(wú) | |
基本事件流 | 步驟 | 活動(dòng) |
A1 | 輸入需要查詢的商品名稱 | |
A2 | 查詢出商品庫(kù)存信息 |
表3-12下訂單
用例編號(hào) | UC12 | |
---|---|---|
用例名稱 | 下訂單 | |
用例概述 | 銷售員通過(guò)此用例生成訂單 | |
主參與者 | 銷售員 | |
前置條件 | 無(wú) | |
基本事件流 | 步驟 | 活動(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é)通過(guò)用例圖對(duì)需求主要功能進(jìn)行了具體分析。
系統(tǒng)設(shè)計(jì)
系統(tǒng)類分析
經(jīng)分析,該系統(tǒng)核心業(yè)務(wù)類見(jiàn)下圖:
- 系統(tǒng)核心類
-
MANAGER類
MANAGER類用于記錄系統(tǒng)的用戶信息,并完成登陸和注銷的操作。
表4-1 MANAGER類功能表
類功能描述 | 處理和用戶相關(guān)的業(yè)務(wù)操作 | |||
---|---|---|---|---|
所在包名稱 | Com.xu.bean | |||
繼承對(duì)象 | 無(wú) | |||
實(shí)現(xiàn)對(duì)象 | ||||
類屬性 | ||||
保護(hù)屬性 | 類型 | 名稱 | 描述 | 備注 |
Private | Long | ID | 用戶ID | 系統(tǒng)中用戶的唯一標(biāo)示,由系統(tǒng)自動(dòng)生成 |
Private | String | Name | 姓名 | 長(zhǎng)度限制20位 |
Private | String | Password | 密碼 | 長(zhǎng)度限制20位 |
Private | String | Gender | 性別 | 只能為男或者女 |
Private | Long | Age | 年齡 | |
Private | String | Phonenumber | 手機(jī)號(hào)碼 | |
主要實(shí)現(xiàn)方法 | ||||
保護(hù)屬性 | 方法名 | 輸入?yún)?shù) | 輸出參數(shù) | 方法功能描述 |
Public | login | string id,string pwd | Manager” | 登陸系統(tǒng),用戶輸入ID和PASSWORD后進(jìn)行驗(yàn)證,驗(yàn)證通過(guò)返回用戶,驗(yàn)證返回NULL。 |
Public | Register | Manager manager | int | 員工注冊(cè),輸入用戶信息進(jìn)行注冊(cè),注冊(cè)成功返回注冊(cè)成功消息 |
GOODS類
GOODS類用于記錄商品的信息,并且實(shí)現(xiàn)對(duì)商品的增刪改查等功能。
表4-2 GOODS類功能表
類功能描述 | 處理和商品相關(guān)的業(yè)務(wù)操作 | |||
---|---|---|---|---|
所在包名稱 | Com.xu.bean | |||
繼承對(duì)象 | 無(wú) | |||
實(shí)現(xiàn)對(duì)象 | ||||
類屬性 | ||||
保護(hù)屬性 | 類型 | 名稱 | 描述 | 備注 |
Private | Long | ID | 商品ID | 系統(tǒng)中商品的唯一標(biāo)示,由系統(tǒng)自動(dòng)生成 |
Private | String | Name | 商品名稱 | |
Private | String | Unit | 單位 | |
Private | String | Space | 商品產(chǎn)地 | |
Private | Long | SupplierId | 供應(yīng)商編號(hào) | |
Private | String | ApproveId | 批準(zhǔn)文號(hào) | |
Private | String | BatchId | 生產(chǎn)批號(hào) | |
主要實(shí)現(xiàn)方法 | ||||
保護(hù)屬性 | 方法名 | 輸入?yún)?shù) | 輸出參數(shù) | 方法功能描述 |
Public | save | Goods goods | int | 商品添加,輸入商品信息進(jìn)行添加,添加成功返回1,失敗返回0 |
Public | deleteGoodsByName | String name | int | 商品刪除,輸入商品名字進(jìn)行刪除,刪除成功返回1,失敗返回0 |
Public | findAllGoods | List<Goods> | 查找出所有的商品 | |
Public | findGoodsCountByName | String name | int | 查找某種商品的總數(shù),輸入某種商品的總數(shù),返回該商品的庫(kù)存數(shù)量 |
SALEORDER類
SALEORDER類用于記錄銷售訂單的信息,并且實(shí)現(xiàn)對(duì)銷售訂單的增刪改查等功能。
表4-3 SALEORDER類功能表
類功能描述 | 處理和銷售訂單相關(guān)的業(yè)務(wù)操作 | |||
---|---|---|---|---|
所在包名稱 | Com.xu.bean | |||
繼承對(duì)象 | 無(wú) | |||
實(shí)現(xiàn)對(duì)象 | ||||
類屬性 | ||||
保護(hù)屬性 | 類型 | 名稱 | 描述 | 備注 |
Private | Long | ID | 銷售訂單ID | 系統(tǒng)中銷售訂單的唯一標(biāo)示,由系統(tǒng)自動(dòng)生成 |
Private | Long | CustomerId | 客戶ID | 引用自客戶ID,是唯一的 |
Private | String | pay | 結(jié)算方式 | |
Private | Date | saleDate | 銷售時(shí)間 | |
Private | Double | Total | 總金額 | |
主要實(shí)現(xiàn)方法 | ||||
保護(hù)屬性 | 方法名 | 輸入?yún)?shù) | 輸出參數(shù) | 方法功能描述 |
Public | save | SaleOrdersaleorder | int | 銷售訂單添加,輸入訂單信息進(jìn)行添加,添加成功返回1,失敗返回0 |
Public | delete | Long customerId | int | 銷售訂單刪除,輸入客戶ID進(jìn)行刪除,刪除成功返回1,失敗返回0 |
Public | findAllSaleOrder | List<SaleOrder> | 查找出所有的銷售訂單 | |
Public | update | SaleOrder order | int | 更新訂單信息,輸入要更改的信息更新,更新成功返回1,失敗返回0 |
PURCHASEORDER類
PURCHASEORDER類用于記錄采購(gòu)訂單的信息,并且實(shí)現(xiàn)對(duì)采購(gòu)訂單的增刪改查等功能。
表4-4 PURCHASEORDER類功能表
類功能描述 | 處理和采購(gòu)訂單相關(guān)的業(yè)務(wù)操作 | |||
---|---|---|---|---|
所在包名稱 | Com.xu.bean | |||
繼承對(duì)象 | 無(wú) | |||
實(shí)現(xiàn)對(duì)象 | ||||
類屬性 | ||||
保護(hù)屬性 | 類型 | 名稱 | 描述 | 備注 |
Private | Long | ID | 采購(gòu)ID | 系統(tǒng)中采購(gòu)訂單的唯一標(biāo)示,由系統(tǒng)自動(dòng)生成 |
Private | Long | supplierId | 供應(yīng)商ID | 引用自供應(yīng)商ID |
Private | String | pay | 結(jié)算方式 | |
Private | Date | inDate | 采購(gòu)時(shí)間 | |
Private | Double | total | 總金額 | |
主要實(shí)現(xiàn)方法 | ||||
保護(hù)屬性 | 方法名 | 輸入?yún)?shù) | 輸出參數(shù) | 方法功能描述 |
Public | save | purchaseOrderpurchaseorder | int | 采購(gòu)訂單添加,輸入訂單信息進(jìn)行添加,添加成功返回1,失敗返回0 |
Public | delete | Long supplierId | int | 采購(gòu)訂單刪除,輸入供應(yīng)商ID進(jìn)行刪除,刪除成功返回1,失敗返回0 |
Public | findAllPurchaseOrder | List<PurchaseOrder> | 查找出所有的采購(gòu)訂單 | |
Public | update | PurchaseOrder order | int | 更新訂單信息,輸入要更改的信息更新,更新成功返回1,失敗返回0 |
STOCK類
STOCK類用于記錄庫(kù)存的信息,并且實(shí)現(xiàn)對(duì)庫(kù)存的增刪改查等功能。
表4-5 STOCK類功能表
類功能描述 | 處理和庫(kù)存相關(guān)的業(yè)務(wù)操作 | |||
---|---|---|---|---|
所在包名稱 | Com.xu.bean | |||
繼承對(duì)象 | 無(wú) | |||
實(shí)現(xiàn)對(duì)象 | ||||
類屬性 | ||||
保護(hù)屬性 | 類型 | 名稱 | 描述 | 備注 |
Private | Long | ID | 采購(gòu)ID | 系統(tǒng)中采購(gòu)訂單的唯一標(biāo)示,由系統(tǒng)自動(dòng)生成 |
Private | Long | goodsId | 商品ID | 引用自商品ID |
Private | Long | count | 商品庫(kù)存數(shù)量 | |
Private | String | area | 存放地方 | |
主要實(shí)現(xiàn)方法 | ||||
保護(hù)屬性 | 方法名 | 輸入?yún)?shù) | 輸出參數(shù) | 方法功能描述 |
Public | save | Stock stock | int | 庫(kù)存添加,輸入庫(kù)存信息進(jìn)行添加,添加成功返回1,失敗返回0 |
Public | delete | Long goodsId | int | 庫(kù)存刪除,輸入商品ID進(jìn)行刪除,刪除成功返回1,失敗返回0 |
Public | findAllStock | List<Stock> | 查找出所有的商品庫(kù)存 | |
Public | update | Long goodsId , Long count ,String area | int | 更新商品庫(kù)存信息,輸入要更改的信息更新,更新成功返回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)短的說(shuō)明,時(shí)序圖用WORD繪制比較難,可以借用其他工具,但復(fù)制過(guò)來(lái)時(shí)應(yīng)盡量只有黑白顏色,下面以登錄為例說(shuō)明關(guān)鍵業(yè)務(wù)的說(shuō)明方法。
添加商品
添加商品順序圖
采購(gòu)業(yè)務(wù)員通過(guò)UI界面選擇添加商品菜單,此時(shí)后臺(tái)controller會(huì)判斷該操作用戶是否有權(quán)限;權(quán)限檢查通過(guò),操作員進(jìn)入到商品添加表單,輸入商品信息提交,后臺(tái)controller會(huì)調(diào)用service的add方法,service中的方法add在調(diào)用database中的板寸方法。成功后返回成功提示。
查詢商品
查詢商品順序圖
采購(gòu)業(yè)務(wù)員通過(guò)UI界面輸入查詢條件,此時(shí)后臺(tái)controller會(huì)檢查查詢條件;controller會(huì)調(diào)用service里面的find方法,find方法會(huì)調(diào)用database中具體的查詢方法;把查詢到的結(jié)果顯示到UI界面。
添加庫(kù)存
添加庫(kù)存順序圖
庫(kù)存業(yè)務(wù)員通過(guò)UI界面選擇商品菜單,輸入該商品的庫(kù)存信息,此時(shí)后臺(tái)controller檢查輸入商品庫(kù)存信息;controller會(huì)調(diào)用service中的add方法,add方法調(diào)用database中的具體添加方法處理,添加成功返回功能提示。
添加銷售訂單
添加銷售訂單順序圖
銷售業(yè)務(wù)員通過(guò)UI界面選擇添加訂單菜單,輸入訂單信息,此時(shí)后臺(tái)controller會(huì)檢查訂單信息;controller會(huì)調(diào)用service中的update方法,update方法會(huì)調(diào)用database中的具體更新方法,更新成功后會(huì)返回成功提示。
數(shù)據(jù)庫(kù)設(shè)計(jì)
概念設(shè)計(jì)
(一)總的E-R圖
系統(tǒng)ER圖
(二)分E-R圖
商品ER圖
顧客ER圖
供應(yīng)商ER圖
管理員ER圖
日志用于記錄用戶的日常行為,通過(guò)用戶編號(hào)與用戶實(shí)體之間存在一對(duì)多關(guān)系。
數(shù)據(jù)庫(kù)表
系統(tǒng)中使用到數(shù)據(jù)庫(kù)基本如表4-1所示。
-
- 系統(tǒng)數(shù)據(jù)庫(kù)表
編號(hào) | 表名 | 描述 |
---|---|---|
01 | customer | 顧客表 |
02 | dept | 部門(mén)表 |
03 | employee | 員工表 |
04 | goods | 商品表 |
05 | manager | 管理員表 |
06 | purchase_item | 采購(gòu)單明細(xì)表 |
07 | purchase_order | 采購(gòu)訂單表 |
08 | return_item | 采購(gòu)?fù)素浢骷?xì)表 |
09 | return_order | 采購(gòu)?fù)素洷?/td> |
10 | sale_item | 銷售訂單明細(xì)表 |
11 | sale_order | 銷售訂單表 |
12 | sale_return_item | 退貨銷售明細(xì)表 |
13 | sale_return_order | 銷售退貨表 |
14 | stock | 庫(kù)存表 |
15 | suppliers | 供應(yīng)商表 |
- 顧客表
顧客表用于記錄顧客信息,顧客表的具體字段如表4-2所示。
顧客表
字段名 | 字段描述 | 類型/長(zhǎng)度 | 約束 | 備注 |
---|---|---|---|---|
customer_id | 顧客編號(hào) | Long | PK | |
customer_name | 顧客名稱 | Varchar(20) | NOT NULL | |
address | 顧客地址 | Varchar(255) | ||
zip | 郵編 | Varchar(20) | ||
telPhone | 聯(lián)系電話 | Varchar(20) | ||
linkMan | 聯(lián)系人 | Varchar(20) | ||
linkTel | 聯(lián)系人號(hào)碼 | Varchar(20) | ||
bank | 開(kāi)戶銀行 | Varchar(20) | ||
bankAccoount | 銀行賬號(hào) | Long | ||
郵箱 | Varchar(20) |
字段顧客編號(hào)為本表的主鍵,用來(lái)標(biāo)識(shí)一個(gè)顧客,字段顧客名稱非空字段,字段顧客地址、郵編、聯(lián)系電話、聯(lián)系人、聯(lián)系人號(hào)碼、開(kāi)戶銀行、銀行賬號(hào)、郵箱是顧客的一些詳細(xì)信息。
- 部門(mén)表
部門(mén)表用于記錄部門(mén)的信息,部門(mén)表的具體字段如表4-3所示。
部門(mén)表
字段名 | 字段描述 | 類型/長(zhǎng)度 | 約束 | 備注 |
---|---|---|---|---|
dept_id | 部門(mén)編號(hào) | Long | PK | |
dept_name | 顧客名稱 | Varchar(20) | NOT NULL |
字段部門(mén)編號(hào)為本表的主鍵,用來(lái)標(biāo)識(shí)一個(gè)部門(mén),字段部門(mén)名稱為非空字段。
- 員工表
員工表用于記錄員工的信息并且用于員工登錄系統(tǒng),員工表的具體字段如表4-4所示。
員工表
字段名 | 字段描述 | 類型/長(zhǎng)度 | 約束 | 備注 |
---|---|---|---|---|
employee_id | 員工編號(hào) | Long | PK | |
employee_name | 員工姓名 | Varchar(20) | NOT NULL | |
employee_password | 密碼 | Varchar(20) | NOT NULL | MD5加密 |
employee_gender | 性別 | Varchar(5) | ||
employee_age | 年齡 | Long | ||
employee_phonenumber | 手機(jī)號(hào)碼 | Varchar(20) | ||
deptId | 部門(mén)ID | Long | FK |
字段員工編號(hào)為本表的主鍵,用來(lái)標(biāo)識(shí)一個(gè)員工,員工名字和員工密碼為非空字段,部門(mén)ID為外鍵,引用自部門(mén)表;字段性別、年齡和手機(jī)號(hào)碼為員工的一些基本信息。
- 商品表
商品表用于記錄商品的信息,商品表的具體字段如表4-5所示。
商品表
字段名 | 字段描述 | 類型/長(zhǎng)度 | 約束 | 備注 |
---|---|---|---|---|
goods_id | 商品編號(hào) | Long | PK | |
goods_name | 商品名稱 | Varchar(20) | NOT NULL | |
unit | 單位 | Varchar(20) | ||
space | 商品產(chǎn)地 | Varchar(255) | ||
supplierId | 供應(yīng)商編號(hào) | Varchar(20) | FK | |
approveId | 批準(zhǔn)文號(hào) | Varchar(20) | ||
batchId | 生產(chǎn)批號(hào) | Varchar(20) |
字段商品編號(hào)為本表的主鍵,用來(lái)標(biāo)識(shí)一個(gè)商品,字段商品名稱不為空,字段供應(yīng)商編號(hào)為外鍵,引用自供應(yīng)商表,字段單位、商品產(chǎn)地、批準(zhǔn)文號(hào)和生產(chǎn)批號(hào)為商品的一些屬性。
- 管理員表
管理員表用于記錄管理員的信息并且用于管理員登錄系統(tǒng),管理員表的具體字段如表4-6所示。
管理員表
字段名 | 字段描述 | 類型/長(zhǎng)度 | 約束 | 備注 |
---|---|---|---|---|
manager_id | 管理員編號(hào) | Long | PK | |
manager_name | 管理員姓名 | Varchar(20) | NOT NULL | |
manager_password | 密碼 | Varchar(20) | NOT NULL | MD5加密 |
manager_gender | 性別 | Varchar(5) | ||
manager_age | 年齡 | Long | ||
manager_phonenumber | 手機(jī)號(hào)碼 | Varchar(20) | ||
dept_name | 部門(mén)名稱 | Varchar(255) | FK |
字段管理員編號(hào)為管理員表的主鍵,用來(lái)標(biāo)識(shí)一個(gè)管理員,字段管理員名字和密碼是不能為空的,部門(mén)編號(hào)是一個(gè)外鍵,引用自部門(mén)表,字段性別、年齡和手機(jī)號(hào)碼是管理員的一些個(gè)人信息。
- 采購(gòu)單明細(xì)表
采購(gòu)單明細(xì)表用于記錄采購(gòu)單信息,采購(gòu)單明細(xì)表的具體字段如表4-7所示。
采購(gòu)單明細(xì)表
字段名 | 字段描述 | 類型/長(zhǎng)度 | 約束 | 備注 |
---|---|---|---|---|
purchase_item_id | 采購(gòu)單明細(xì)編號(hào) | Long | PK | |
goods_name | 商品名稱 | Varchar(20) | FK | |
purchase_order_id | 采購(gòu)單編號(hào) | Varchar(20) | FK | |
purchase_price | 單價(jià) | Double | ||
purchase_count | 數(shù)量 | Long |
字段采購(gòu)單明細(xì)編號(hào)為采購(gòu)單明細(xì)表的主鍵,用來(lái)標(biāo)識(shí)一個(gè)采購(gòu)訂單明細(xì),其中字段采購(gòu)單編號(hào)和商品名稱是外鍵,分別引用自采購(gòu)訂單表和商品表,字段單價(jià)和數(shù)量是采購(gòu)單明細(xì)表的屬性。
- 采購(gòu)訂單表
采購(gòu)訂單表用于記錄采購(gòu)單信息,采購(gòu)訂單細(xì)表的具體字段如表4-8所示。
采購(gòu)訂單表
字段名 | 字段描述 | 類型/長(zhǎng)度 | 約束 | 備注 |
---|---|---|---|---|
purchase_order_id | 采購(gòu)單編號(hào) | Long | PK | |
suppliersId | 采購(gòu)商編號(hào) | Varchar(20) | FK | |
purchase_order_pay | 支付方式 | Varchar(20) | ||
inDate | 采購(gòu)日期 | Date | ||
purchase_order__total | 總金額 | Double |
字段采購(gòu)單編號(hào)為采購(gòu)訂單表的主鍵,用來(lái)標(biāo)識(shí)一個(gè)采購(gòu)訂單,其中字段采購(gòu)商編號(hào)為外鍵,引用自采購(gòu)商表,字段支付方式、采購(gòu)日期和總金額為采購(gòu)訂單的信息。
- 采購(gòu)?fù)素浢骷?xì)表
采購(gòu)?fù)素浢骷?xì)表用于記錄采購(gòu)?fù)素泦涡畔?,采?gòu)?fù)素浢骷?xì)表的具體字段如表4-9所示。
采購(gòu)?fù)素浢骷?xì)表
字段名 | 字段描述 | 類型/長(zhǎng)度 | 約束 | 備注 |
---|---|---|---|---|
return_item_id | 采購(gòu)?fù)素泦蚊骷?xì)編號(hào) | Long | PK | |
returnOrderId | 采購(gòu)?fù)素泦尉幪?hào) | Long | FK | |
goodsName | 商品名稱 | Varchar(20) | FK | |
return_item_price | 單價(jià) | Double | ||
return_item_count | 數(shù)量 | Long |
字段采購(gòu)?fù)素泦蚊骷?xì)編號(hào)是采購(gòu)?fù)素浢骷?xì)表的主鍵,用來(lái)標(biāo)識(shí)一個(gè)采購(gòu)?fù)素浢骷?xì),其中采購(gòu)?fù)素泦尉幪?hào)和商品名稱是外鍵,分別引用自采購(gòu)?fù)素洷砗蜕唐繁怼W侄螁蝺r(jià)和數(shù)量為采購(gòu)明細(xì)表的屬性。
- 采購(gòu)采購(gòu)?fù)素洷?br> 采購(gòu)采購(gòu)?fù)素洷碛糜谟涗洸少?gòu)采購(gòu)?fù)素浶畔ⅲ少?gòu)采購(gòu)?fù)素洷淼木唧w字段如表4-10所示。
采購(gòu)采購(gòu)?fù)素洷?/strong>
字段名 | 字段描述 | 類型/長(zhǎng)度 | 約束 | 備注 |
---|---|---|---|---|
return_order_id | 采購(gòu)單編號(hào) | Long | PK | |
suppliersId | 采購(gòu)商編號(hào) | Varchar(20) | FK | |
return_order_pay | 支付方式 | Varchar(20) | ||
return_order_outDate | 退貨日期 | Date | ||
return_order_total | 總金額 | Double |
字段采購(gòu)?fù)素泦尉幪?hào)是采購(gòu)?fù)素洷淼闹麈I,用來(lái)標(biāo)識(shí)一個(gè)采購(gòu)?fù)素?,其中字段采?gòu)商編號(hào)為外鍵,引用自采購(gòu)商表,字段支付方式、退貨日期和總金額為采購(gòu)?fù)素洷淼膶傩浴?/p>
- 銷售訂單明細(xì)表
銷售訂單明細(xì)表用于記錄銷售訂單明細(xì)信息,銷售訂單明細(xì)表的具體字段如表4-11所示。
銷售訂單明細(xì)表
字段名 | 字段描述 | 類型/長(zhǎng)度 | 約束 | 備注 |
---|---|---|---|---|
sale_item_id | 銷售訂單明細(xì)編號(hào) | Long | PK | |
saleOrderId | 銷售訂單編號(hào) | Long | FK | |
sale_item_name | 商品名稱 | Varchar(20) | FK | |
sale_item_price | 單價(jià) | Double | ||
sale_item_count | 數(shù)量 | Long |
字段銷售訂單明細(xì)編號(hào)是銷售訂單明細(xì)表的主鍵,用來(lái)標(biāo)識(shí)一個(gè)銷售明細(xì),其中字段銷售訂單編號(hào)和商品名稱是外鍵,分別引用自銷售訂單表和商品表,字段單價(jià)和數(shù)量是銷售訂單明細(xì)的屬性。
- 銷售訂單表
銷售訂單表用于記錄銷售訂單信息,銷售訂單表的具體字段如表4-12所示。
銷售訂單表
字段名 | 字段描述 | 類型/長(zhǎng)度 | 約束 | 備注 |
---|---|---|---|---|
sale_order_id | 銷售單編號(hào) | Long | PK | |
customerId | 顧客編號(hào) | Varchar(20) | FK | |
sale_order_pay | 支付方式 | Varchar(20) | ||
sale_order_saleDate | 銷售日期 | Date | ||
sale_order_total | 總金額 | Double |
字段銷售單編號(hào)是銷售訂單表的主鍵,用來(lái)標(biāo)識(shí)一個(gè)銷售訂單,字段顧客編號(hào)是外鍵,引用自顧客表,字段支付方式、銷售日期和總金額是銷售訂單表的屬性。
- 銷售退貨明細(xì)表
銷售退貨明細(xì)表用于記錄銷售退貨明細(xì)信息,銷售退貨明細(xì)表的具體字段如表4-13所示。
銷售退貨明細(xì)表
字段名 | 字段描述 | 類型/長(zhǎng)度 | 約束 | 備注 |
---|---|---|---|---|
sale_return_item_id | 銷售退貨訂單明細(xì)編號(hào) | Long | PK | |
saleReturnOrderId | 銷售退貨訂單編號(hào) | Long | FK | |
goodsName | 商品名稱 | Varchar(20) | FK | |
sale_return_item_price | 單價(jià) | Double | ||
sale_return_item_count | 數(shù)量 | Long |
字段銷售退貨訂單明細(xì)編號(hào)是銷售退貨明細(xì)表的主鍵,用哪個(gè)來(lái)標(biāo)識(shí)一個(gè)銷售退貨明細(xì),字段銷售退貨訂單編號(hào)、商品名稱為外鍵,分別引用自銷售退貨表和商品表,字段單價(jià)和數(shù)量為銷售退貨明細(xì)表的屬性。
- 銷售退貨表
銷售退貨表用于記錄銷售退貨信息,銷售退貨表的具體字段如表4-14所示。
銷售退貨表
字段名 | 字段描述 | 類型/長(zhǎng)度 | 約束 | 備注 |
---|---|---|---|---|
sale_return_order_id | 銷售退貨單編號(hào) | Long | PK | |
customerId | 顧客ID | Varchar(20) | FK | |
sale_return_order_pay | 支付方式 | Varchar(20) | ||
sale_return_order_returnDate | 退貨日期 | Date | ||
sale_return_order_total | 總金額 | Double |
- 庫(kù)存表
庫(kù)存表用于記錄庫(kù)存信息,庫(kù)存表的具體字段如表4-15所示。
庫(kù)存表
字段名 | 字段描述 | 類型/長(zhǎng)度 | 約束 | 備注 |
---|---|---|---|---|
stock_id | 庫(kù)存編號(hào) | Long | PK | |
goodsId | 商品編號(hào) | Long | FK | |
stock_count | 商品庫(kù)存數(shù)量 | Varchar(20) | NOT NULL | |
stock_area | 存放地方 | Varchar(255) |
字段庫(kù)存編號(hào)是庫(kù)存表的主鍵,用來(lái)標(biāo)識(shí)一個(gè)庫(kù)存,字段商品編號(hào)是外鍵,引用自商品表,字段商品庫(kù)存數(shù)量不為空,字段存放地方為庫(kù)存表的屬性。
- 供應(yīng)商表
供應(yīng)商表用于記錄供應(yīng)商信息,供應(yīng)商表的具體字段如表4-16所示:
供應(yīng)商表
字段名 | 字段描述 | 類型/長(zhǎng)度 | 約束 | 備注 |
---|---|---|---|---|
suppliers_id | 供應(yīng)商編號(hào) | Long | PK | |
supplier_name | 供應(yīng)商名稱 | Varchar(20) | NOT NULL | |
address | 顧客地址 | Varchar(255) | ||
zip | 郵編 | Varchar(20) | ||
telPhone | 聯(lián)系電話 | Varchar(20) | ||
linkMan | 聯(lián)系人 | Varchar(20) | ||
linkTel | 聯(lián)系人號(hào)碼 | Varchar(20) | ||
bank | 開(kāi)戶銀行 | Varchar(20) | ||
bankAccoount | 銀行賬號(hào) | Long | ||
郵箱 | Varchar(20) |
字段供應(yīng)商編號(hào)是供應(yīng)商表的主鍵,用來(lái)標(biāo)識(shí)一個(gè)供應(yīng)商,字段供應(yīng)商名稱不為空,字段顧客地址、郵編、聯(lián)系電話、聯(lián)系人、聯(lián)系人號(hào)碼、開(kāi)戶銀行、銀行賬號(hào)和郵箱是供應(yīng)商表的屬性。
本章小結(jié)
本章主要分為三個(gè)小節(jié)來(lái)介紹系統(tǒng)設(shè)計(jì)。第一節(jié)是系統(tǒng)類分析,主要是通過(guò)類圖的方式來(lái)介紹系統(tǒng)設(shè)計(jì)到的類,介紹類里的屬性和設(shè)計(jì)到的方法。第二節(jié)是關(guān)鍵業(yè)務(wù)設(shè)計(jì),主要是通過(guò)順序圖的方式來(lái)介紹核心業(yè)務(wù)的設(shè)計(jì)和處理過(guò)程。第三節(jié)是數(shù)據(jù)庫(kù)設(shè)計(jì),首先是通過(guò)ER圖的方式介紹設(shè)計(jì)到的模塊和模塊的一些字段(分為總ER圖和分ER圖),其次是數(shù)據(jù)庫(kù)表,介紹了所設(shè)計(jì)到的表,詳細(xì)的介紹了表中的字段和字段對(duì)應(yīng)的關(guān)系。
系統(tǒng)實(shí)現(xiàn)
用戶登錄
- 功能描述
登錄是對(duì)用戶使用系統(tǒng)功能進(jìn)行身份驗(yàn)證的過(guò)程,登錄也是可以很好的控制用戶的權(quán)限問(wèn)題,登錄界面要求簡(jiǎn)明易懂。每一用戶都有自己的獨(dú)有的賬號(hào)和密碼,用戶在系統(tǒng)的每一個(gè)操作都有日志進(jìn)行記載,可以有效保證數(shù)據(jù)可追溯性,做到責(zé)任到人,界面如下圖。
用戶登錄
- 實(shí)現(xiàn)流程
在登陸按鈕添加監(jiān)聽(tīng)事件,在用戶輸入賬號(hào)密碼點(diǎn)擊登錄后,終端先判斷是否滿足JS中的驗(yàn)證方法,此方法是防止當(dāng)賬號(hào)密碼為空時(shí)登錄的提示,如果為空跳出一個(gè)對(duì)話框來(lái)提示用戶賬號(hào)和密碼需要填。如果不為空,后臺(tái)會(huì)把接受的用戶名密碼與數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)中用戶信息比較核對(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”);
}
}
用戶登錄
采購(gòu)管理
- 功能描述
采購(gòu)管理是對(duì)需要采購(gòu)的訂單的綜合管理,在這個(gè)模塊里包含采購(gòu)訂單、收貨入庫(kù)、采購(gòu)?fù)素浫齻€(gè)子模塊。其中采購(gòu)訂單是員工用來(lái)生成采購(gòu)單的,還有對(duì)采購(gòu)單的一些處理;收貨入庫(kù)是對(duì)已經(jīng)提交的采購(gòu)單進(jìn)行入庫(kù)操作;采購(gòu)?fù)素浭前盐覀円呀?jīng)提交的采購(gòu)單進(jìn)行退貨處理的操作。主要界面如下圖:
采購(gòu)管理
- 實(shí)現(xiàn)流程
點(diǎn)擊采購(gòu)訂單按鈕會(huì)跳轉(zhuǎn)到采購(gòu)訂單首頁(yè),在首頁(yè)可以看到所有已經(jīng)提交的采購(gòu)單信息;當(dāng)我們想添加新的采購(gòu)訂單的時(shí)候,首先點(diǎn)擊添加商品按鈕,會(huì)跳轉(zhuǎn)到商品添加頁(yè)面,我們把商品信息輸入進(jìn)去之后點(diǎn)擊提交,后臺(tái)方法會(huì)把商品信息暫時(shí)存起來(lái),當(dāng)我們把所有商品添加完成,我們可以再點(diǎn)擊添加訂單按鈕,此時(shí)會(huì)把我們添加的所有的商品都提交生成一個(gè)采購(gòu)訂單,并且把數(shù)據(jù)存進(jìn)對(duì)應(yīng)的數(shù)據(jù)庫(kù)表中保存起來(lái)。對(duì)已經(jīng)提交的訂單當(dāng)我們點(diǎn)擊退貨按鈕時(shí),后臺(tái)會(huì)接收到要退貨的訂單ID,并且根據(jù)ID到數(shù)據(jù)庫(kù)中訂單表把數(shù)據(jù)刪除,同時(shí)在退貨表中把數(shù)據(jù)插進(jìn)去。當(dāng)我們點(diǎn)擊入庫(kù)按鈕時(shí),后臺(tái)會(huì)接收到需要入庫(kù)的訂單的ID,并且把訂單表中的flag字段的值修改為已入庫(kù),同時(shí)在庫(kù)存表中會(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(“提交采購(gòu)訂單”);
String pay = request.getParameter(“pay”);
purchaseOrder = new PurchaseOrder();
purchaseOrder.setPay(pay);
purchaseOrder.setInDate(new Date());
purchaseOrder.setFlag(“未入庫(kù)”);
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(“提交采購(gòu)訂單成功”);
}
庫(kù)存管理
- 功能描述
庫(kù)存管理是對(duì)倉(cāng)庫(kù)里的商品的綜合管理,包括商品入庫(kù)、商品出庫(kù)、某種商品的庫(kù)存查詢、商品移庫(kù)和庫(kù)存盤(pán)點(diǎn)。商品入庫(kù)是對(duì)新的商品需要入庫(kù)的管理;商品出庫(kù)是根據(jù)銷售訂單到庫(kù)存里拿出對(duì)應(yīng)數(shù)量的商品并且?guī)齑孢M(jìn)行相應(yīng)的減少;庫(kù)存查詢是輸入想查詢的商品會(huì)返回該商品的庫(kù)存數(shù)量;商品移庫(kù)是輸入商品ID和需要移動(dòng)到的倉(cāng)庫(kù)號(hào)就可以更改商品的存放倉(cāng)庫(kù);最后一個(gè)是庫(kù)存盤(pán)點(diǎn),該功能是返回倉(cāng)庫(kù)里所有商品的庫(kù)存信息。主要界面如下圖:
圖5.31商品出庫(kù)
圖5.32庫(kù)存查詢
圖5.33商品移庫(kù)
- 實(shí)現(xiàn)流程
首先是商品入庫(kù),點(diǎn)擊商品入庫(kù)按鈕跳轉(zhuǎn)到對(duì)應(yīng)商品添加頁(yè)面,填入對(duì)應(yīng)商品信息,后臺(tái)首先會(huì)判斷該商品在商品表里是否已經(jīng)存在,如果存在,則更新該商品的庫(kù)存即可,如果不存在,則先在商品表里添加一條商品的信息,再到庫(kù)存表里添加一條庫(kù)存信息。商品出庫(kù),首先是輸入需要出庫(kù)的商品ID和該商品出庫(kù)的數(shù)量,后臺(tái)根據(jù)接收的商品ID和數(shù)量到數(shù)據(jù)庫(kù)庫(kù)存表去更新該商品的庫(kù)存數(shù)量。庫(kù)存查詢,輸入需要查詢庫(kù)存的商品ID,后臺(tái)會(huì)根據(jù)商品的ID去庫(kù)存表里查詢?cè)撋唐返膸?kù)存數(shù)量,并且返回到對(duì)應(yīng)的前臺(tái)頁(yè)面。商品移庫(kù),輸入商品ID和移動(dòng)到的倉(cāng)庫(kù)號(hào),后臺(tái)會(huì)根據(jù)商品ID號(hào)到數(shù)據(jù)庫(kù)庫(kù)存表中更新該商品的庫(kù)存地方。庫(kù)存盤(pán)點(diǎn),這個(gè)功能是會(huì)顯示所有商品的庫(kù)存信息。主要實(shí)現(xiàn)代碼如下:
商品入庫(kù):
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;
}
商品出庫(kù):
@RequestMapping(“/update”)
public String UpdateStock(HttpServletRequest request,Model model){
http://logger.info(“庫(kù)存信息更新開(kāi)始”);
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(“庫(kù)存信息更新完成”);
} catch (ServiceException e) {
e.printStackTrace();
}
return “outStock”;
}
商品移庫(kù):
@RequestMapping(“updateArea”)
public String upDateArea(HttpServletRequest request,Model model){
http://logger.info(“存放倉(cāng)庫(kù)信息更新開(kāi)始”);
Long goodsId = Long.parseLong(request.getParameter(“goodsId”));
String area = request.getParameter(“area”);
try {
stockService.updateStockAreaByGoodsId(area,goodsId);
List<Stock> list = stockService.findAllStock();
model.addAttribute(“outList”, list);
http://logger.info(“存放倉(cāng)庫(kù)信息更新完成”);
} catch (ServiceException e) {
e.printStackTrace();
}
return “updateArea”;
}
銷售管理
- 功能描述
銷售管理對(duì)銷售訂單的綜合管理,包含銷售訂單、發(fā)貨出庫(kù)和銷售退貨。銷售訂單,將銷售的信息形成銷售訂單并且存入到數(shù)據(jù)庫(kù)銷售訂單表中;發(fā)貨出庫(kù),將提交的銷售訂單的flag狀態(tài)改為已發(fā)貨,并且對(duì)應(yīng)的庫(kù)存表中的庫(kù)存數(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ǔ)起來(lái),當(dāng)商品添加完畢,點(diǎn)擊添加訂單按鈕,可以將剛才添加的所有訂單信息提交到后臺(tái),后臺(tái)在將這些訂單信息持久化到數(shù)據(jù)庫(kù)中去。發(fā)貨出庫(kù),對(duì)提交銷售的訂單可以進(jìn)行發(fā)貨操作,后臺(tái)會(huì)根據(jù)訂單ID對(duì)訂單表中的flag字段值修改為已發(fā)貨,并且會(huì)到庫(kù)存表中去,將該訂單對(duì)應(yīng)的商品的庫(kù)存數(shù)作相應(yīng)的改變。銷售退貨,對(duì)已經(jīng)提交的訂單可以進(jìn)行退貨操作,點(diǎn)擊退貨按鈕,后臺(tái)會(huì)根據(jù)訂單ID到數(shù)據(jù)庫(kù)銷售訂單表中把對(duì)應(yīng)訂單信息刪除,并且在銷售退貨表中加入相應(yīng)的退貨記錄,與此同時(shí)會(huì)根據(jù)flag字段,如果flag字段值是未發(fā)貨,則不用去庫(kù)存表跟新庫(kù)存數(shù)據(jù),如果flag字段的值為已發(fā)貨,則需要到庫(kù)存表中把訂單對(duì)應(yīng)的商品的庫(kù)存數(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ù)庫(kù)的數(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)輸出信息寫(xiě)入.sql文件,即生成了備份文件。注:如果不對(duì)控制臺(tái)信息進(jìn)行讀出,則會(huì)導(dǎo)致進(jìn)程堵塞無(wú)法運(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();
// 要用來(lái)做導(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)的用戶登錄、采購(gòu)管理、庫(kù)存管理、銷售管理、備份與恢復(fù)五個(gè)模塊。這五個(gè)模塊首先分別介紹了他們的功能,并且附上界面圖,然后再?gòu)膶?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)用戶沒(méi)有輸入用戶名或者沒(méi)用輸入密碼或者兩者都沒(méi)有輸入的時(shí)候,系統(tǒng)應(yīng)當(dāng)響應(yīng)用戶名、密碼項(xiàng)是必填項(xiàng)。
采購(gòu)管理模塊,當(dāng)天如對(duì)應(yīng)的商品信息時(shí),后臺(tái)新系統(tǒng)能夠接收到商品信息,并且在提交訂單的時(shí)候能夠順利把這些信息都持久化到數(shù)據(jù)庫(kù)中去,并且在出錯(cuò)的時(shí)候能正確返回對(duì)應(yīng)的錯(cuò)誤碼;對(duì)采購(gòu)訂單入庫(kù)時(shí),能正常的把flag標(biāo)志改為已入庫(kù),并且在庫(kù)存表中更新響應(yīng)的商品庫(kù)存信息;銷售退貨,后臺(tái)能根據(jù)訂單ID將采購(gòu)訂單表中的數(shù)據(jù)刪除,并且把數(shù)據(jù)插入到采購(gòu)?fù)素洷碇腥ァ?/p>
庫(kù)存管理模塊,商品入庫(kù)功能,當(dāng)用戶把商品信息輸入正確的時(shí)候,后臺(tái)能夠真確的收到數(shù)據(jù),并且正確的持久化到數(shù)據(jù)庫(kù)中去;商品出庫(kù),當(dāng)用戶輸入出庫(kù)的商品和數(shù)量時(shí),后臺(tái)能夠正確到數(shù)據(jù)庫(kù)庫(kù)存表把對(duì)應(yīng)的商品的數(shù)量相應(yīng)的減少;庫(kù)存查詢,當(dāng)輸入商品的ID時(shí),后臺(tái)能根據(jù)這個(gè)ID查出該商品的庫(kù)存信息,并且能正確的返回到用戶界面;商品移庫(kù),當(dāng)輸入商品ID和移庫(kù)的信息后,后臺(tái)能正確地更新數(shù)據(jù)庫(kù)中對(duì)應(yīng)商品的庫(kù)存信息。
銷售管理模塊,銷售模塊,當(dāng)前段把銷售訂單的信息都正確輸入的時(shí)候,后臺(tái)能正確的接收到訂單信息,并且把訂單信息正確持久化到數(shù)據(jù)庫(kù)中去,在產(chǎn)生錯(cuò)誤時(shí),能夠返回對(duì)應(yīng)的錯(cuò)誤碼;發(fā)貨出庫(kù),當(dāng)銷售訂單的信息提交之后,我們可以對(duì)這些的訂單做發(fā)貨操作,點(diǎn)擊發(fā)貨后,后臺(tái)要把相應(yīng)商品的庫(kù)存信息進(jìn)行更新,并且把訂單表中的flag字段的值改為已發(fā)貨;銷售退貨,點(diǎn)擊退貨按鈕,后臺(tái)能正常的把銷售訂單表中的對(duì)應(yīng)訂單信息刪除,并且在銷售退貨表中把退貨信息存進(jìn)去,并且要把商品的數(shù)量加回到庫(kù)存表中去。
備份與恢復(fù)模塊,首先是系統(tǒng)每天能夠在固定時(shí)間產(chǎn)生一個(gè)備份數(shù)據(jù)庫(kù)的文件,然后在我們手動(dòng)點(diǎn)擊備份按鈕的時(shí)候也能夠產(chǎn)生一個(gè)備份數(shù)據(jù)庫(kù)的文件;當(dāng)點(diǎn)擊恢復(fù)按鈕時(shí),會(huì)把我們選擇的數(shù)據(jù)庫(kù)文件恢復(fù)到數(shù)據(jù)庫(kù)中去。
測(cè)試用例
用戶登錄模塊
- 用戶登錄
功能測(cè)試 | |||||
---|---|---|---|---|---|
概述 | |||||
測(cè)試編號(hào) | XU001 | ||||
功能描述 | 用戶登錄 | ||||
功能URL | http://localhost:8989/login.html | ||||
用例目的 | 測(cè)試用戶是否能登錄成功 | ||||
前提條件 | 進(jìn)入用戶登錄界面 | ||||
測(cè)試操作 | |||||
編號(hào) | 輸入/動(dòng)作 | 期望的輸出響應(yīng) | 實(shí)際情況 | 是否正確 | 錯(cuò)誤編號(hào) |
1 | 輸入不存在的用戶名,不填寫(xiě)密碼 | 系統(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 | 不填寫(xiě)用戶名及密碼 | 系統(tǒng)提示用戶名和密碼項(xiàng)必須填 | 系統(tǒng)提示用戶名和密碼項(xiàng)必須填 | 正確 |
采購(gòu)管理模塊
采購(gòu)管理
功能測(cè)試 | |||||
---|---|---|---|---|---|
概述 | |||||
測(cè)試編號(hào) | XU002 | ||||
功能描述 | 采購(gòu)管理 | ||||
功能URL | http://localhost:8989/purchase | ||||
用例目的 | 測(cè)試采購(gòu)管理功能是否正常 | ||||
前提條件 | 進(jìn)入采購(gòu)管理界面 | ||||
測(cè)試操作 | |||||
編號(hào) | 輸入/動(dòng)作 | 期望的輸出響應(yīng) | 實(shí)際情況 | 是否正確 | 錯(cuò)誤編號(hào) |
1 | 輸入正確的采購(gòu)訂單信息 | 成功將訂單信息添加到采購(gòu)訂單表中 | 添加成功,在采購(gòu)訂單表中查到訂單數(shù)據(jù) | 正確 | |
2 | 成功提交的采購(gòu)訂單點(diǎn)擊入庫(kù)按鈕 | 在庫(kù)存表能夠查到入庫(kù)的商品的信息,并且入庫(kù)的數(shù)量是正確的 | 成功入庫(kù),在庫(kù)存表查到了該商品的入庫(kù)的數(shù)量信息 | 正確 | |
3 | 成功提交的采購(gòu)訂單點(diǎn)擊退貨按鈕 | 在采購(gòu)訂單表把該訂單數(shù)據(jù)刪除,并且在采購(gòu)?fù)素泦卫锬懿榈酵素浶畔?/td> | 退貨成功,在采購(gòu)訂單表已經(jīng)查不到該訂單信息,在退貨表里可以查到該訂單信息 | 正確 |
庫(kù)存管理模塊
庫(kù)存管理
功能測(cè)試 | |||||
---|---|---|---|---|---|
概述 | |||||
測(cè)試編號(hào) | XU003 | ||||
功能描述 | 庫(kù)存管理 | ||||
功能URL | http://localhost:8989/stock | ||||
用例目的 | 測(cè)試庫(kù)存管理是否正常 | ||||
前提條件 | 進(jìn)入庫(kù)存管理界面 | ||||
測(cè)試操作 | |||||
編號(hào) | 輸入/動(dòng)作 | 期望的輸出響應(yīng) | 實(shí)際情況 | 是否正確 | 錯(cuò)誤編號(hào) |
1 | 輸入商品信息,點(diǎn)擊入庫(kù) | 成功將商品信息添加到庫(kù)存表中 | 入庫(kù)成功,在庫(kù)存表中能夠查到該商品信息 | 正確 | |
2 | 輸入出庫(kù)商品ID和出庫(kù)的數(shù)量 | 出庫(kù)表中增加一條數(shù)據(jù),并且?guī)齑姹碇性撋唐返臄?shù)量減少了出庫(kù)數(shù)量 | 庫(kù)存表中該商品的數(shù)量正確的減少了 | 正確 | |
3 | 輸入查詢商品的ID | 將該商品的信息正確的顯示在頁(yè)面上 | 頁(yè)面上成功顯示出了該商品的庫(kù)存信息 | 正確 | |
4 | 輸入要移庫(kù)商品的ID和移庫(kù)的地點(diǎn) | 將庫(kù)存表中該商品的存儲(chǔ)位置修改為修改的地址 | 庫(kù)存表中成功修改來(lái)了該商品的庫(kù)存位置 | 正確 |
銷售管理模塊
銷售管理
功能測(cè)試 | |||||
---|---|---|---|---|---|
概述 | |||||
測(cè)試編號(hào) | XU004 | ||||
功能描述 | 銷售管理 | ||||
功能URL | http://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ā)貨,庫(kù)存表中該訂單的商品的數(shù)量最相應(yīng)的減少 | 銷售訂單表中flag字段修改正確,并且?guī)齑姹碇械纳唐穾?kù)存數(shù)修改正確 | 正確 | |
3 | 已經(jīng)提交成功的銷售訂單,點(diǎn)擊退貨按鈕 | 在銷售訂單表中把該訂單信息刪除,然后在退貨表中把該訂單信息加入,然后把退貨訂單的商品的數(shù)量信息重新歸還到庫(kù)存中去 | 銷售訂單表中該訂單成功刪除,并且在退貨表中增加了該訂單數(shù)據(jù),然后這些商品在庫(kù)存表中的數(shù)量修改正確。 | 正確 |
備份與數(shù)據(jù)恢復(fù)模塊
備份與數(shù)據(jù)恢復(fù)
功能測(cè)試 | |||||
---|---|---|---|---|---|
概述 | |||||
測(cè)試編號(hào) | XU005 | ||||
功能描述 | 備份與數(shù)據(jù)恢復(fù) | ||||
功能URL | http://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ù)庫(kù)文件 | 可以找到備份的數(shù)據(jù)庫(kù)文件 | 正確 | |
2 | 點(diǎn)擊數(shù)據(jù)恢復(fù)按鈕 | 在數(shù)據(jù)庫(kù)中可以看到已經(jīng)恢復(fù)的數(shù)據(jù)庫(kù)信息 | 在數(shù)據(jù)庫(kù)中可以看到這些數(shù)據(jù)庫(kù)信息 | 正確 |
測(cè)試分析
經(jīng)過(guò)這些測(cè)試,整個(gè)系統(tǒng)的大部分功能都已經(jīng)能夠正常的運(yùn)行,達(dá)到了我們預(yù)想的結(jié)果。對(duì)于采購(gòu)管理、庫(kù)存管理和銷售管理三個(gè)模塊先階段的功能都能達(dá)到預(yù)期效果,但是還可以加入一些其他的支持(對(duì)Excel表格的支持),能夠直接導(dǎo)入Excel表格的數(shù)據(jù),并且可以直接導(dǎo)出為Excel表格,這個(gè)功能暫時(shí)還沒(méi)達(dá)到預(yù)期效果,因此需要把這個(gè)功能加上;在一個(gè)就是對(duì)權(quán)限的控制方面做的不是特別完善,因此接下來(lái),在權(quán)限方面還應(yīng)該加強(qiáng)。對(duì)于備份和數(shù)據(jù)恢復(fù)功能,現(xiàn)在和預(yù)期的結(jié)果是一致的,比較符合。實(shí)力和時(shí)間的限制,在代碼的編寫(xiě)上面,存在許多的冗余代碼,因此這方面需要改進(jìn),把重復(fù)的代碼封裝成方法,減少冗余度。
本章小結(jié)
本章主要是對(duì)已完成的功能做系統(tǒng)測(cè)試,分模塊的進(jìn)行測(cè)試,測(cè)試這些功能是否能達(dá)到預(yù)期的結(jié)果;為什么沒(méi)有達(dá)到預(yù)期。對(duì)于每一個(gè)模塊都寫(xiě)了相應(yīng)的測(cè)試用例,通過(guò)這些測(cè)試用例的分析,整個(gè)系統(tǒng)的功能基本上達(dá)到了預(yù)期的效果,但是還有進(jìn)一步改進(jìn)的地方,讓整個(gè)系統(tǒng)更完善。
總結(jié)
歷經(jīng)四個(gè)月的時(shí)間,到現(xiàn)在為止,系統(tǒng)的開(kāi)發(fā)工作已經(jīng)全部完成。本系統(tǒng)采用的是Maven來(lái)搭建的項(xiàng)目,使用Spring boot、JPA來(lái)實(shí)現(xiàn)的。對(duì)采購(gòu)、銷售、庫(kù)存的管理,對(duì)數(shù)據(jù)的備份等功能基本上都已經(jīng)實(shí)現(xiàn)。
在設(shè)計(jì)本系統(tǒng)的初期,選擇Spring boot和JPA作為本系統(tǒng)的開(kāi)發(fā)技術(shù)是一個(gè)大膽的嘗試,因?yàn)樵诖酥案緵](méi)有接觸這兩個(gè)框架,對(duì)他們也不了解。在確立了系統(tǒng)開(kāi)發(fā)技術(shù)后,在開(kāi)發(fā)初期先對(duì)這兩個(gè)技術(shù)進(jìn)行了初步的熟悉,然后就是邊開(kāi)發(fā)邊學(xué)習(xí)。在系統(tǒng)開(kāi)發(fā)的初期階段可以說(shuō)是走了很多彎路,因?yàn)閷?duì)技術(shù)不熟悉的緣故。于是乎就是去多找資料、找書(shū)學(xué)習(xí),認(rèn)真學(xué)習(xí)編程思想,吸收它的編程技巧,最后運(yùn)用到自己的系統(tǒng)上,最終順利的把系統(tǒng)完成了。在完成整個(gè)畢業(yè)設(shè)計(jì)的過(guò)程,可以說(shuō)對(duì)我來(lái)說(shuō)學(xué)到了很多。之前只是接觸到書(shū)本上的知識(shí)比較多,但是沒(méi)怎么親自動(dòng)手實(shí)踐,有點(diǎn)眼高手低的感覺(jué)。但是經(jīng)過(guò)畢業(yè)設(shè)計(jì),可以說(shuō)對(duì)自己有了一個(gè)很好的磨煉。從題目的確立,系統(tǒng)的設(shè)計(jì),系統(tǒng)的實(shí)現(xiàn),到系統(tǒng)的完成,自己經(jīng)歷了一整個(gè)過(guò)程,讓自己的見(jiàn)識(shí)有了提高,同時(shí)學(xué)會(huì)了很多的處理問(wèn)題和解決問(wèn)題的方法,為我們即將走入到工作崗位上打好了基礎(chǔ)。
完成整個(gè)系統(tǒng)也是對(duì)我們大學(xué)四年所學(xué)的知識(shí)的一個(gè)綜合運(yùn)用,之前是理論學(xué)的多,實(shí)踐的太少。通過(guò)實(shí)踐,可以讓自己快速的成長(zhǎng)起來(lái),還學(xué)到了Spring boot和JPA的知識(shí)。對(duì)于系統(tǒng)的權(quán)限控制問(wèn)題,以后還有待于完善,還有對(duì)進(jìn)銷存對(duì)Excel的支持,這個(gè)在以后都是可以改進(jìn)的部分。
參考文獻(xiàn)
[1] 辛運(yùn)幃等. java語(yǔ)言程序設(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í)踐者的研究方法(原書(shū)第7版)[M]. 北京: 機(jī)械工業(yè)出版社, 2011
[6] 李興華, 王月清. 名師講壇:Java Web開(kāi)發(fā)實(shí)戰(zhàn)經(jīng)典基礎(chǔ)篇(JSP, Servlet, Struts, Ajax)[M].北京: 清華大學(xué)出版社, 2010
[7] 成先海.數(shù)據(jù)庫(kù)基礎(chǔ)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2008.
[8] 張艷.基于工作過(guò)程的物流信息系統(tǒng)與管理課程的重構(gòu)[J].遼寧高職學(xué)報(bào),2010, 12(2):45-47.
[9] 李小娜,董紹華.物流信息技術(shù)在現(xiàn)代物流中的應(yīng)用[J].中國(guó)科技信息,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)用開(kāi)發(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è)物流成本管理存在問(wèn)題及對(duì)策[J].物流技術(shù)與應(yīng)用,2011,13(2):101-102.
致 謝
在畢業(yè)設(shè)計(jì)撰寫(xiě)的這幾個(gè)月,從選題、設(shè)計(jì)系統(tǒng)、實(shí)現(xiàn)系統(tǒng),到最終系統(tǒng)和論文完成,中間有著自己的努力,更有老師和同學(xué)的關(guān)心和幫助。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-450610.html
感謝老師指導(dǎo)我選題,引領(lǐng)我設(shè)計(jì)系統(tǒng)的思路。老師認(rèn)真的態(tài)度讓我們最終能順利的完成論文的撰寫(xiě)。從論文的選題、開(kāi)題直到論文的完成,老師都耐心的進(jìn)行了指導(dǎo),使我能一步一步完成論文。最后,本論文能順利的完成,離不開(kāi)各位老師的認(rèn)真負(fù)責(zé),讓我能夠在畢設(shè)中運(yùn)用所學(xué)知識(shí)和掌握所學(xué)知識(shí)。正是有了你們的幫助和支持,我的畢設(shè)論文才能順利完成,在此向你們表示由衷的謝意。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-450610.html
到了這里,關(guān)于進(jìn)銷存管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!