版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 畢 業(yè) 論 文</p><p> 摘 要:倉(cāng)庫(kù)管理系統(tǒng)是一個(gè)企業(yè)不可或缺的部分,高效的倉(cāng)庫(kù)管理系統(tǒng)可以為企業(yè)的發(fā)展和經(jīng)營(yíng)提供堅(jiān)強(qiáng)的后盾。隨著科技的不斷發(fā)展,用計(jì)算機(jī)對(duì)倉(cāng)庫(kù)進(jìn)行管理,具有人工管理所無(wú)法比擬的優(yōu)點(diǎn),例如:檢索迅速、查找方便、保密性好、成本低、壽命長(zhǎng)等。這些優(yōu)點(diǎn)能極大地提高倉(cāng)庫(kù)管理的效率, 使企業(yè)的倉(cāng)庫(kù)管理井井有條,為企業(yè)的健康發(fā)展創(chuàng)造良好的條件。本文在分析現(xiàn)有管理系統(tǒng)開(kāi)發(fā)
2、技術(shù)的基礎(chǔ)上,實(shí)現(xiàn)了以Eclipse為開(kāi)發(fā)平臺(tái)的基于JSP的,以MySql作為后臺(tái)數(shù)據(jù)庫(kù)的倉(cāng)庫(kù)管理系統(tǒng)。該系統(tǒng)主要具備基本信息管理、庫(kù)存管理、信息查詢(xún)、用戶(hù)管理等功能模塊。</p><p> 關(guān)鍵詞:倉(cāng)庫(kù)管理,JSP,MySql數(shù)據(jù)庫(kù)</p><p> Abstract: Warehouse management system is an indispensable part of t
3、he enterprise. A warehouse management system with high efficiency can provide a strong backing for the development and management of enterprises. With the development of technology,to manage the warehouse with computer h
4、as the incomparable advantages of manual management.For example, quick search, find convenient, good security, low cost, long service life etc. These advantages can greatly improve the efficiency of warehouse mana</p&
5、gt;<p> Keywords: Warehouse management, JSP, MySql database</p><p><b> 目 錄</b></p><p><b> 1 緒論4</b></p><p> 1.1 開(kāi)發(fā)背景4</p><p> 1.
6、2 開(kāi)發(fā)意義4</p><p> 1.3 本文組織結(jié)構(gòu)4</p><p> 2 系統(tǒng)解決方案5</p><p> 2.1 JSP語(yǔ)言概述5</p><p> 2.2 SSH框架5</p><p> 2.3 MySql數(shù)據(jù)庫(kù)5</p><p> 2.4 系統(tǒng)平臺(tái)環(huán)境5&
7、lt;/p><p><b> 3 需求分析6</b></p><p> 3.1 面向的用戶(hù)人群6</p><p> 3.2 功能需求分析6</p><p> 3.3 業(yè)務(wù)流程圖7</p><p> 4 數(shù)據(jù)庫(kù)設(shè)計(jì)9</p><p> 4.1 E-R模型
8、9</p><p> 4.2 數(shù)據(jù)模型12</p><p> 5 詳細(xì)設(shè)計(jì)15</p><p> 5.1 數(shù)據(jù)庫(kù)連接類(lèi)15</p><p> 5.2 系統(tǒng)主要模塊16</p><p><b> 結(jié) 論34</b></p><p> 參 考 文 獻(xiàn)
9、35</p><p><b> 致 謝36</b></p><p><b> 緒論</b></p><p><b> 開(kāi)發(fā)背景</b></p><p> 一直以來(lái)企業(yè)使用傳統(tǒng)人工的方式來(lái)管理文件庫(kù)存,這種管理方式存在許多缺點(diǎn),如: 保密性差、效率低等,而且時(shí)間一長(zhǎng)
10、,將產(chǎn)生大量的數(shù)據(jù)和文件, 這對(duì)于企業(yè)查找、更新和維護(hù)都帶來(lái)了很多的困難。由于缺乏科學(xué)的管理和管理工具,企業(yè)在業(yè)務(wù)上和管理上的安排都存在著許多不便。因而針對(duì)這些問(wèn)題而開(kāi)發(fā)的系統(tǒng)具有很好的前景。</p><p><b> 開(kāi)發(fā)意義</b></p><p> 隨著時(shí)代的不斷發(fā)展,社會(huì)正在不斷向信息化時(shí)代邁進(jìn)。由于能夠有效地收集和處理各種信息,提高辦事效率,電子自動(dòng)化辦
11、公越來(lái)越被重視。而隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,又為電子自動(dòng)化辦公的發(fā)展提供了良好的前景。如今,很多企業(yè)已經(jīng)擁有了計(jì)算機(jī)設(shè)備,具備物質(zhì)條件,但很多工作仍由管理者手工操作完成,這就造成不必要的浪費(fèi)。計(jì)算機(jī)流行的原因主要有以下幾個(gè)方面:</p><p> 1.計(jì)算機(jī)可以代替手工操作進(jìn)行許多繁雜的工作;</p><p> 2.計(jì)算機(jī)可以節(jié)省大量資源;</p><p>
12、3.計(jì)算機(jī)可以極大地提高人們的工作效率;</p><p> 4.計(jì)算機(jī)可以使敏感文檔更加安全;</p><p> 5.電子自動(dòng)化辦公是先進(jìn)生產(chǎn)力發(fā)展的重要標(biāo)志。</p><p> 綜上所述,用計(jì)算機(jī)開(kāi)發(fā)的軟件系統(tǒng),替代人工操作進(jìn)行管理,可以節(jié)約大量的人力、物力,是企業(yè)發(fā)展的必然趨勢(shì)[1]!</p><p><b> 本文組織
13、結(jié)構(gòu)</b></p><p> 本系統(tǒng)將以課本和一些課外書(shū)籍為參考,從系統(tǒng)開(kāi)發(fā)背景→需求分析→概要設(shè)計(jì)→詳細(xì)設(shè)計(jì)→具體開(kāi)發(fā)一步步對(duì)系統(tǒng)進(jìn)行分析和設(shè)計(jì)。各個(gè)章節(jié)安排如下:</p><p> 第一章為緒論,簡(jiǎn)述項(xiàng)目的開(kāi)發(fā)背景和開(kāi)發(fā)意義;</p><p> 第二章詳細(xì)介紹了項(xiàng)目開(kāi)發(fā)的應(yīng)用技術(shù),比如JSP,框架和數(shù)據(jù)庫(kù)等;</p><p
14、> 第三章是需求分析,介紹了系統(tǒng)的設(shè)計(jì)目標(biāo)和系統(tǒng)的主要功能模塊。</p><p> 第四章是數(shù)據(jù)庫(kù)設(shè)計(jì),在E-R模型的基礎(chǔ)上,再設(shè)計(jì)出相應(yīng)的邏輯模型。</p><p> 第五章根據(jù)系統(tǒng)功能模塊詳細(xì)介紹了各模塊的設(shè)計(jì)過(guò)程并給出部分實(shí)現(xiàn)代碼。</p><p><b> 系統(tǒng)解決方案</b></p><p>&l
15、t;b> JSP語(yǔ)言概述</b></p><p> JSP(Java Server Pages)是由Sun Microsystems公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。它的主要目的是將表示邏輯從Servlet中分離出來(lái)。它是在傳統(tǒng)的網(wǎng)頁(yè)HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標(biāo)記(tag),從而形成JSP文件(*.jsp)。
16、所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶(hù)端的僅是得到的結(jié)果,這樣大大降低了對(duì)客戶(hù)瀏覽器的要求,即使客戶(hù)瀏覽器端不支持Java,也可以訪問(wèn)JSP網(wǎng)頁(yè)。用JSP開(kāi)發(fā)的Web應(yīng)用是跨平臺(tái)的,既能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行[2]。</p><p><b> SSH框架</b></p><p> SSH 在J2EE項(xiàng)目中表示了3種框架,即 Sprin
17、g + Struts +Hibernate。本系統(tǒng)采用MVC開(kāi)發(fā)模式來(lái)編寫(xiě)代碼,MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫(xiě)[3]。Struts對(duì)Model,View和Controller都提供了對(duì)應(yīng)的組件。Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架,它由Rod Johnson創(chuàng)建。它是為了解決企業(yè)應(yīng)用開(kāi)發(fā)的復(fù)雜性而創(chuàng)
18、建的[4]。Spring使用基本的JavaBean來(lái)完成以前只可能由EJB完成的事情。 Hibernate是一個(gè)開(kāi)放源代碼的對(duì)象關(guān)系映射框架,它對(duì)JDBC進(jìn)行了非常輕量級(jí)的對(duì)象封裝,可以應(yīng)用在任何使用JDBC的場(chǎng)合,可以在Servlet/JSP的Web應(yīng)用中使用,也可以在應(yīng)用EJB的J2EE架構(gòu)中取代CMP,完成數(shù)據(jù)持久化的重任[5]。</p><p><b> MySql數(shù)據(jù)庫(kù)</b>&
19、lt;/p><p> MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),由瑞典MySQL AB公司開(kāi)發(fā),目前屬于Oracle公司。MySQL是一種關(guān)聯(lián)數(shù)據(jù)庫(kù)管理系統(tǒng),關(guān)聯(lián)數(shù)據(jù)庫(kù)將數(shù)據(jù)保存在不同的表中,而不是將所有數(shù)據(jù)放在一個(gè)大倉(cāng)庫(kù)內(nèi),這樣就增加了速度并提高了靈活性。MySQL的SQL語(yǔ)言是用于訪問(wèn)數(shù)據(jù)庫(kù)的最常用標(biāo)準(zhǔn)化語(yǔ)言。由于其體積小、速度快、總體擁有成本低,尤其是開(kāi)放源碼這一特點(diǎn),一般中小型網(wǎng)站的開(kāi)發(fā)都選擇MySQL作為網(wǎng)站
20、數(shù)據(jù)庫(kù)[6]。</p><p><b> 系統(tǒng)平臺(tái)環(huán)境</b></p><p><b> ?。?)硬件環(huán)境:</b></p><p><b> 服務(wù)器:</b></p><p> CPU: 2G或以上;</p><p> 內(nèi)存:1G RAM或以
21、上;</p><p> 硬盤(pán):80G或以上;</p><p><b> 客戶(hù)端:</b></p><p> CPU: 1G或以上;</p><p> 內(nèi)存:64MB以上內(nèi)存或更高;</p><p> 硬盤(pán):20G或以上。</p><p> ?。?)軟件開(kāi)發(fā)環(huán)境:&
22、lt;/p><p> 操作系統(tǒng):WindowsXP;</p><p> 所用工具:Eclipse,Navicat for MySQL;</p><p> 數(shù)據(jù)庫(kù):MySQL。</p><p><b> 需求分析</b></p><p><b> 面向的用戶(hù)人群</b>&
23、lt;/p><p> 管理員:作為系統(tǒng)的管理員和維護(hù)者,對(duì)系統(tǒng)基本信息、倉(cāng)庫(kù)管理等模塊進(jìn)行數(shù)據(jù)的管理,并對(duì)系統(tǒng)的更新作出及時(shí)的響應(yīng),使得系統(tǒng)能更好地運(yùn)行。</p><p> 普通用戶(hù):作為系統(tǒng)的使用者,注冊(cè)登陸系統(tǒng)后,可以查詢(xún)系統(tǒng)基本信息、倉(cāng)庫(kù)信息、修改個(gè)人信息等。</p><p><b> 功能需求分析</b></p><
24、;p> 圖3-1 系統(tǒng)功能模塊圖</p><p> 本系統(tǒng)是一款倉(cāng)庫(kù)管理系統(tǒng),旨在對(duì)倉(cāng)庫(kù)的自動(dòng)化管理以適應(yīng)信息化社會(huì)的生產(chǎn)方式。根據(jù)倉(cāng)庫(kù)管理系統(tǒng)的需求,劃分了倉(cāng)庫(kù)的功能模塊,主要分為用戶(hù)管理模塊、入庫(kù)出庫(kù)模塊、倉(cāng)庫(kù)查詢(xún)模塊、盤(pán)點(diǎn)統(tǒng)計(jì)模塊[7]。具體功能如圖3-1所示。</p><p><b> 業(yè)務(wù)流程圖</b></p><p>
25、 該系統(tǒng)的用戶(hù)分為普通用戶(hù)和管理員。管理員擁有所有權(quán)限,而普通用戶(hù)只能進(jìn)行查詢(xún)的操作。</p><p><b> 管理員模塊</b></p><p> 圖3-2 管理員使用流程圖</p><p> 管理員使用流程如圖3-2所示。</p><p><b> 登錄</b></p>
26、<p> 登陸界面包括賬號(hào)和密碼兩個(gè)文本框和身份選擇單選框,用戶(hù)登陸成功就會(huì)轉(zhuǎn)到系統(tǒng)主頁(yè)面,否則將會(huì)提示賬號(hào)密碼錯(cuò)誤。</p><p><b> 查詢(xún)信息</b></p><p> 用戶(hù)登陸查詢(xún)信息界面可以對(duì)倉(cāng)庫(kù)信息(倉(cāng)庫(kù)、貨物、供應(yīng)商、部門(mén)、入庫(kù)單、出庫(kù)單)進(jìn)行查詢(xún)。</p><p><b> 設(shè)置信息(管理員)&
27、lt;/b></p><p> 管理員用戶(hù)登陸設(shè)置信息界面可以對(duì)倉(cāng)庫(kù)信息(倉(cāng)庫(kù)、貨物、供應(yīng)商、部門(mén)、入庫(kù)單、出庫(kù)單)進(jìn)行設(shè)置。</p><p><b> 添加記錄(管理員)</b></p><p> 管理員用戶(hù)登陸添加界面可以添加入庫(kù)和出庫(kù)信息。</p><p><b> 修改密碼</b&g
28、t;</p><p> 用戶(hù)可以修改自己的密碼,需要先驗(yàn)證舊密碼,驗(yàn)證成功后通過(guò)輸入兩次新密碼對(duì)密碼進(jìn)行修改。</p><p><b> 用戶(hù)管理(管理員)</b></p><p> 管理員用戶(hù)可以對(duì)已添加的用戶(hù)權(quán)限進(jìn)行修改,也可以刪除已存在的用戶(hù)。</p><p><b> 普通用戶(hù)模塊</b&
29、gt;</p><p> 圖3-3 普通用戶(hù)使用流程圖</p><p> 普通用戶(hù)使用流程如圖3-3所示。</p><p> 普通用戶(hù)只能進(jìn)行查詢(xún)操作和修改個(gè)人信息。</p><p><b> 數(shù)據(jù)庫(kù)設(shè)計(jì)</b></p><p> 數(shù)據(jù)庫(kù)是一種存儲(chǔ)數(shù)據(jù)并對(duì)數(shù)據(jù)進(jìn)行操作的工具。數(shù)據(jù)庫(kù)的作用
30、在于組織和表達(dá)信息,即數(shù)據(jù)庫(kù)就是相關(guān)信息的集合。本章從E-R模型的分析設(shè)計(jì)為切入點(diǎn),重點(diǎn)介紹了數(shù)據(jù)庫(kù)的設(shè)計(jì)。根據(jù)倉(cāng)庫(kù)管理系統(tǒng)的功能,將其E-R圖轉(zhuǎn)化為數(shù)據(jù)庫(kù)表,為系統(tǒng)的實(shí)現(xiàn)奠定了基礎(chǔ)。</p><p><b> E-R模型</b></p><p> E-R模型即實(shí)體-聯(lián)系模型,它是由實(shí)體集、屬性和聯(lián)系集構(gòu)成。實(shí)體集用矩形框表示,矩形框內(nèi)寫(xiě)上實(shí)體名。實(shí)體的屬性用橢圓
31、框表示,框內(nèi)寫(xiě)上屬性名,并用無(wú)向邊與其對(duì)應(yīng)的實(shí)體集相連。實(shí)體間的聯(lián)系用菱形框表示,菱形框中寫(xiě)上以適當(dāng)?shù)暮x命名的名字,用無(wú)向連線將參加聯(lián)系的實(shí)體矩形框分別與菱形框相連,并在連線上標(biāo)明聯(lián)系的類(lèi)型,即1—1、1—N或M—N。</p><p> 本系統(tǒng)的E-R模型主要包括部門(mén)實(shí)體、貨物實(shí)體、用戶(hù)實(shí)體、供應(yīng)商實(shí)體、倉(cāng)庫(kù)實(shí)體、入庫(kù)單實(shí)體和出庫(kù)單實(shí)體共七個(gè)實(shí)體集和一個(gè)各實(shí)體聯(lián)系集。E-R模型如下文所述。</p>
32、<p> 部門(mén)實(shí)體用來(lái)存儲(chǔ)部門(mén)信息,E-R圖如圖4-1所示:</p><p> 圖4-1 部門(mén)實(shí)體E-R圖</p><p> 貨物實(shí)體用來(lái)存儲(chǔ)貨物信息,E-R圖如圖4-2所示:</p><p> 圖4-2 貨物實(shí)體E-R圖</p><p> 用戶(hù)實(shí)體用來(lái)存儲(chǔ)用戶(hù)信息,E-R圖如圖4-3所示:</p>&l
33、t;p> 圖4-3用戶(hù)實(shí)體E-R圖</p><p> 供應(yīng)商實(shí)體用來(lái)存儲(chǔ)供應(yīng)商信息,E-R圖如圖4-4所示:</p><p> 圖4-4供應(yīng)商實(shí)體E-R圖</p><p> 倉(cāng)庫(kù)實(shí)體用來(lái)存儲(chǔ)倉(cāng)庫(kù)信息,E-R圖如圖4-5所示:</p><p> 圖4-5倉(cāng)庫(kù)實(shí)體E-R圖</p><p> 入庫(kù)單實(shí)體用來(lái)
34、存儲(chǔ)入庫(kù)單信息,E-R圖如圖4-6所示:</p><p> 圖4-6入庫(kù)單實(shí)體E-R圖</p><p> 出庫(kù)單實(shí)體用來(lái)存儲(chǔ)出庫(kù)單信息,E-R圖如圖4-7所示:</p><p> 圖4-7出庫(kù)單實(shí)體E-R圖</p><p> 8.各實(shí)體聯(lián)系E-R圖如圖4-8所示。用戶(hù)通過(guò)添加入庫(kù)單和出庫(kù)單記錄入庫(kù)信息和出庫(kù)信息,供應(yīng)商提供貨物,部門(mén)使
35、用貨物,一條記錄對(duì)應(yīng)一個(gè)供應(yīng)商或者部門(mén),</p><p> 圖4-8 各實(shí)體聯(lián)系E-R圖</p><p><b> 數(shù)據(jù)模型</b></p><p> 根據(jù)4.1中分析得出的E-R圖,本系統(tǒng)采用MySql數(shù)據(jù)庫(kù)管理系統(tǒng),在MySql數(shù)據(jù)庫(kù)管理系統(tǒng)中新建名稱(chēng)為mystorage的數(shù)據(jù)庫(kù),本系統(tǒng)所使用的所有數(shù)據(jù)信息均將存儲(chǔ)于該數(shù)據(jù)庫(kù)中。以下列
36、舉數(shù)據(jù)表。</p><p> 部門(mén)表(department)</p><p><b> 表4-1 部門(mén)表</b></p><p> 貨物表(goods)</p><p><b> 表4-2 貨物表</b></p><p> 入庫(kù)表(instore)</p>
37、;<p><b> 表4-3 入庫(kù)表</b></p><p> 出庫(kù)表(outstore)</p><p><b> 表4-4 出庫(kù)表</b></p><p> 倉(cāng)庫(kù)表(store)</p><p><b> 表4-5 倉(cāng)庫(kù)表</b></p>
38、<p> 供應(yīng)商表(supplier)</p><p><b> 表4-6 供應(yīng)商表</b></p><p><b> 用戶(hù)表(user)</b></p><p><b> 表4-7 用戶(hù)表</b></p><p> 庫(kù)存表(stock)</p&g
39、t;<p><b> 表4-8 庫(kù)存表</b></p><p> 以上就是mystorage數(shù)據(jù)庫(kù)的數(shù)據(jù)表。</p><p><b> 詳細(xì)設(shè)計(jì)</b></p><p><b> 數(shù)據(jù)庫(kù)連接類(lèi)</b></p><p> 在對(duì)數(shù)據(jù)庫(kù)連接的過(guò)程中,為了使代碼
40、更精簡(jiǎn),將對(duì)數(shù)據(jù)庫(kù)的連接方法封裝在DriverMana公共類(lèi)中,其中包括數(shù)據(jù)庫(kù)連接方法getConn、ResultSet的關(guān)閉方法closers、PreparedStatement的關(guān)閉方法closepstmt、Connection的關(guān)閉方法closecon。以下即為代碼:</p><p> public class DriverMana {</p><p> public stati
41、c Connection getConn(){</p><p> Connection con=null;</p><p><b> try {</b></p><p> Class.forName("com.mysql.jdbc.Driver");</p><p> con=DriverMa
42、nager.getConnection("jdbc:mysql://localhost:3306/mystorage", "root", "root");</p><p> } catch (ClassNotFoundException e) {</p><p> e.printStackTrace();</p>
43、<p> } catch (SQLException e) {</p><p> e.printStackTrace();</p><p><b> }</b></p><p> return con;</p><p><b> }</b></p><p&g
44、t; public static void closers(ResultSet rs){</p><p> if(rs!=null){</p><p><b> try {</b></p><p> rs.close();</p><p> } catch (SQLException e) {</p>
45、;<p> e.printStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> public static void closepstmt(Prep
46、aredStatement pstmt){</p><p> if(pstmt!=null){</p><p><b> try {</b></p><p> pstmt.close();</p><p> } catch (SQLException e) {</p><p> e.pr
47、intStackTrace();</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> public static void closecon(Connection con){</p&g
48、t;<p> if(con!=null){</p><p><b> try {</b></p><p> con.close();</p><p> } catch (SQLException e) {</p><p> e.printStackTrace();</p><p
49、><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> 系統(tǒng)主要模塊</b></p><p
50、><b> 登錄模塊</b></p><p><b> 圖5-1 登錄界面</b></p><p> 本模塊主要用于對(duì)用戶(hù)身份進(jìn)行鑒別。用戶(hù)有兩種身份:普通用戶(hù)和管理員。用戶(hù)通過(guò)單選框選擇登錄身份,通過(guò)表單輸入用戶(hù)名、密碼,系統(tǒng)根據(jù)用戶(hù)提供的信息對(duì)用戶(hù)進(jìn)行身份鑒別。界面如圖5-1所示。</p><p><
51、b> 后臺(tái)代碼實(shí)現(xiàn):</b></p><p> public void doPost(HttpServletRequest request, HttpServletResponse response)</p><p> throws ServletException, IOException {</p><p> String userNa
52、me=request.getParameter("username");</p><p> String password=request.getParameter("paswrd");</p><p> String userLevel=request.getParameter("userLevel");</p>
53、<p> User luser=new User();</p><p> luser.setUserName(userName);</p><p> luser.setPassword(password);</p><p> luser.setUserLevel(userLevel);</p><p> ILoginD
54、ao loginDao=new LoginDaoImpl();</p><p> User login=loginDao.getUser(luser);</p><p> if(login!=null){</p><p> HttpSession session=request.getSession();</p><p> sessi
55、on.setAttribute("login", login);</p><p> ServletContext context=this.getServletContext();</p><p> RequestDispatcher dispatcher;</p><p> if(login.getUserLevel().equals(&
56、quot;0")){</p><p> dispatcher=context.getRequestDispatcher("/comUser.jsp");</p><p><b> }</b></p><p><b> else{</b></p><p> dis
57、patcher=context.getRequestDispatcher("/manaUser.jsp");</p><p><b> }</b></p><p> dispatcher.forward(request, response);</p><p><b> }</b></p>
58、;<p><b> else{</b></p><p> request.setAttribute("loginFail","登錄失敗");</p><p> ServletContext context=this.getServletContext();</p><p> Requ
59、estDispatcher dispatcher=context.getRequestDispatcher("/login.jsp");</p><p> dispatcher.forward(request, response);</p><p><b> }</b></p><p><b> }</
60、b></p><p><b> 目錄生成模塊</b></p><p> 由登陸界面進(jìn)入主界面后,總體界面如圖5-2所示:</p><p><b> 圖5-2 主界面</b></p><p> 畫(huà)面左邊即為目錄。目錄模塊主要用于生成目錄部分,菜單的折疊展開(kāi)是使用javascript代碼實(shí)
61、現(xiàn)的。</p><p> 菜單展開(kāi)折疊功能實(shí)現(xiàn)代碼:</p><p> <script language="javascript"></p><p> var divheight=130;</p><p> var speed=11;</p><p><b> var
62、 i=0;</b></p><p><b> var s;</b></p><p><b> var p=0;</b></p><p> function doOpenClose(n){</p><p> if(document.getElementById("bbb&
63、quot;+n).offsetHeight<11){</p><p><b> i=0;</b></p><p><b> inc(n);</b></p><p><b> }</b></p><p><b> else{</b></p
64、><p> if(document.getElementById("bbb"+n).offsetHeight>divheight){</p><p> p=divheight;</p><p><b> inc2(n);</b></p><p><b> }</b>&l
65、t;/p><p><b> }</b></p><p><b> }</b></p><p> function inc(x){</p><p><b> i=i+10;</b></p><p> document.getElementById(&
66、quot;bbb"+x).style.height=i+"px";</p><p> if(i>divheight){</p><p> i=divheight-5;</p><p><b> }</b></p><p> var s=setTimeout("inc(
67、"+x+")",speed);</p><p> if(i==125){</p><p> window.clearTimeout(s);</p><p><b> }</b></p><p><b> }</b></p><p> f
68、unction inc2(x){</p><p><b> if(p>1){</b></p><p><b> p=p-10;</b></p><p> document.getElementById("bbb"+x).style.height=p+"px";</p
69、><p><b> }</b></p><p> var s=setTimeout("inc2("+x+")",speed);</p><p><b> if(p==0){</b></p><p> window.clearTimeout(s);</
70、p><p><b> }</b></p><p><b> }</b></p><p><b> </script></b></p><p><b> 基本信息管理模塊</b></p><p> 基本信息管理模塊包
71、括供應(yīng)商管理、貨物管理、倉(cāng)庫(kù)信息管理和部門(mén)管理。</p><p><b> 供應(yīng)商管理</b></p><p> 本功能用于對(duì)供應(yīng)商信息的記錄管理。管理員可以添加新的供應(yīng)商,修改已有的供應(yīng)商信息,刪除供應(yīng)商信息等。界面如圖5-4所示:</p><p> 圖5-4 供應(yīng)商管理界面</p><p><b>
72、 主要代碼:</b></p><p><b> 添加供應(yīng)商</b></p><p> public void doPost(HttpServletRequest request, HttpServletResponse response)</p><p> throws ServletException, IOExceptio
73、n {</p><p> request.setCharacterEncoding("utf-8");</p><p> response.setContentType("text/html;charset=utf-8");</p><p> String suppName=request.getParameter(&q
74、uot;suppName");</p><p> String suppPerson=request.getParameter("suppPerson");</p><p> String suppPhone=request.getParameter("suppPhone");</p><p> String
75、suppAddr=request.getParameter("suppAddr");</p><p> Supplier supplier=new Supplier();</p><p> supplier.setSuppName(suppName);</p><p> supplier.setSuppPerson(suppPerson);
76、</p><p> supplier.setSuppPhone(suppPhone);</p><p> supplier.setSuppAddr(suppAddr);</p><p> ISupplierDao supplierDao=new SupplierDaoImpl();</p><p> int i=supplierDao
77、.addSupplier(supplier);</p><p><b> if(i>0){</b></p><p> request.setAttribute("addPromt", "添加成功!");</p><p><b> }</b></p><
78、p><b> else{</b></p><p> request.setAttribute("addPromt", "添加失??!");</p><p><b> }</b></p><p> this.getServletContext().getRequestDis
79、patcher("/addSupplier.jsp").forward(request, response);</p><p><b> }</b></p><p><b> 刪除供應(yīng)商</b></p><p> public void doPost(HttpServletRequest requ
80、est, HttpServletResponse response)</p><p> throws ServletException, IOException {</p><p> String[] dele=request.getParameterValues("dele");</p><p> int suppId=0;</p&
81、gt;<p><b> int rs=0;</b></p><p> for(int i=0;i<dele.length;i++){</p><p> suppId=Integer.parseInt(dele[i]);</p><p> ISupplierDao supplierDao=new SupplierDao
82、Impl(); </p><p> rs=supplierDao.deleSupplier(suppId);</p><p> if(rs==0){</p><p><b> break;</b></p><p><b> }</b></p><p><b&g
83、t; }</b></p><p><b> if(rs>0){</b></p><p> request.setAttribute("delePromt", "刪除成功!");</p><p><b> }</b></p><p>&
84、lt;b> else{</b></p><p> request.setAttribute("delePromt", "刪除失?。?quot;);</p><p><b> }</b></p><p> this.getServletContext().getRequestDispatch
85、er("/toSupply").forward(request, response);</p><p><b> }</b></p><p><b> 貨物管理</b></p><p> 本功能用于對(duì)貨物信息的記錄管理。管理員可以添加新的貨物,修改已有的貨物信息,刪除貨物信息等。界面如圖5-5所示
86、:</p><p> 圖5-5 貨物管理界面</p><p> 實(shí)現(xiàn)代碼與供應(yīng)商管理相似。</p><p><b> 倉(cāng)庫(kù)信息管理</b></p><p> 本功能用于對(duì)倉(cāng)庫(kù)信息的記錄管理。管理員可以添加新的倉(cāng)庫(kù),修改已有的倉(cāng)庫(kù)信息,刪除倉(cāng)庫(kù)信息等。界面如圖5-6所示:</p><p>
87、 圖5-6 倉(cāng)庫(kù)管理界面</p><p> 實(shí)現(xiàn)代碼與供應(yīng)商管理相似。</p><p><b> 部門(mén)管理</b></p><p> 圖5-7 部門(mén)管理界面</p><p> 本功能用于對(duì)部門(mén)信息的記錄管理。管理員可以添加新的部門(mén),修改已有的部門(mén)信息,刪除部門(mén)信息等。界面如圖5-7所示。</p>&
88、lt;p> 實(shí)現(xiàn)代碼與供應(yīng)商管理相似。</p><p><b> 庫(kù)存管理模塊</b></p><p> 庫(kù)存管理模塊包括入庫(kù)管理、出庫(kù)管理和庫(kù)存管理。</p><p><b> 入庫(kù)管理</b></p><p> 本功能用于對(duì)貨物入庫(kù)的記錄管理。當(dāng)某種已有貨物進(jìn)貨后,就可以在此處進(jìn)
89、行添加新紀(jì)錄,查詢(xún)或刪除已有記錄等操作。界面如圖5-8所示:</p><p> 圖5-8 入庫(kù)管理界面</p><p><b> 主要代碼:</b></p><p><b> 添加入庫(kù)單</b></p><p> public void doPost(HttpServletRequest r
90、equest, HttpServletResponse response)</p><p> throws ServletException, IOException {</p><p> response.setContentType("text/html");</p><p> String instClass=request.getP
91、arameter("instClass");</p><p> int goodsId=Integer.parseInt(request.getParameter("goodsId"));</p><p> double instNum=Double.parseDouble(request.getParameter("instNum&q
92、uot;));</p><p> int stoId=Integer.parseInt(request.getParameter("stoId"));</p><p> Date date=new Date();</p><p> HttpSession session=request.getSession();</p>&l
93、t;p> User login=(User)session.getAttribute("login");</p><p> int userId=login.getUserId();</p><p> Instore instore=new Instore();</p><p> instore.setGoodsId(goodsId
94、);</p><p> instore.setInstClass(instClass);</p><p> instore.setInstNum(instNum);</p><p> instore.setStoId(stoId);</p><p> instore.setInstTime(date);</p><
95、p> instore.setModifyTime(date);</p><p> instore.setUserId(userId);</p><p> IInstoreDao instoreDao=new InstoreDaoImpl();</p><p><b> int i=0;</b></p><p&g
96、t; if(request.getParameter("instId").equals("")){</p><p> i=instoreDao.addInstore(instore);</p><p><b> if(i>0){</b></p><p> IStockDao stockDao
97、=new StockDaoImpl();</p><p> Stock stock=new Stock();</p><p> stock.setStoId(stoId);</p><p> stock.setGoodsId(goodsId);</p><p> stock.setStock(instNum);</p>
98、<p><b> int j=0;</b></p><p> if(stockDao.queryStock(stock)){</p><p> j=stockDao.updateStock(stock,1);</p><p><b> }</b></p><p><b>
99、 else{</b></p><p> j=stockDao.addStock(stock);</p><p><b> }</b></p><p> int volume=Integer.parseInt(request.getParameter("volume"));</p><p
100、> IStorageDao storageDao=new StorageDaoImpl();</p><p> i=storageDao.updateStorage(volume, stoId,1);</p><p> if(i>0&&j>0){</p><p> request.setAttribute("add
101、Promt", "添加成功!");</p><p><b> }</b></p><p><b> else{</b></p><p> request.setAttribute("addPromt", "添加失??!");</p>&
102、lt;p><b> }</b></p><p><b> }</b></p><p><b> else{</b></p><p> request.setAttribute("addPromt", "添加失敗!");</p><
103、;p><b> }</b></p><p><b> }</b></p><p><b> else{</b></p><p> int instId=Integer.parseInt(request.getParameter("instId"));</p>
104、;<p> instore.setInstId(instId);</p><p> instore.setModifyTime(new Date());</p><p> i=instoreDao.updateInstore(instore);</p><p><b> if(i>0){</b></p>
105、<p> request.setAttribute("modifyPromt", "修改成功!");</p><p><b> }</b></p><p><b> else{</b></p><p> request.setAttribute("mod
106、ifyPromt", "修改失??!");</p><p><b> }</b></p><p><b> }</b></p><p> this.getServletContext().getRequestDispatcher("/toAddInstore").for
107、ward(request, response);</p><p><b> }</b></p><p><b> 刪除入庫(kù)單</b></p><p> public void doPost(HttpServletRequest request, HttpServletResponse response)</p&
108、gt;<p> throws ServletException, IOException {</p><p> String[] dele=request.getParameterValues("dele");</p><p> int instId=0;</p><p><b> int rs=0;</b&
109、gt;</p><p> for(int i=0;i<dele.length;i++){</p><p> instId=Integer.parseInt(dele[i]);</p><p> IInstoreDao instoreDao=new InstoreDaoImpl();</p><p> rs=instoreDao.
110、deleInstore(instId);</p><p> if(rs==0){</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> i
111、f(rs>0){</b></p><p> request.setAttribute("delePromt", "刪除成功!");</p><p><b> }</b></p><p><b> else{</b></p><p>
112、request.setAttribute("delePromt", "刪除失??!");</p><p><b> }</b></p><p> this.getServletContext().getRequestDispatcher("/toInstore").forward(request, resp
113、onse);</p><p><b> }</b></p><p><b> 修改入庫(kù)單</b></p><p> public void doPost(HttpServletRequest request, HttpServletResponse response)</p><p> th
114、rows ServletException, IOException {</p><p> String[] dele=request.getParameterValues("dele");</p><p> int instId=0;</p><p><b> int rs=0;</b></p><
115、;p> for(int i=0;i<dele.length;i++){</p><p> instId=Integer.parseInt(dele[i]);</p><p> IInstoreDao instoreDao=new InstoreDaoImpl();</p><p> rs=instoreDao.deleInstore(instId
116、);</p><p> if(rs==0){</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> if(rs>0){</b&
117、gt;</p><p> request.setAttribute("delePromt", "刪除成功!");</p><p><b> }</b></p><p><b> else{</b></p><p> request.setAttribu
118、te("delePromt", "刪除失?。?quot;);</p><p><b> }</b></p><p> this.getServletContext().getRequestDispatcher("/toInstore").forward(request, response);</p>
119、<p><b> }</b></p><p><b> 出庫(kù)管理</b></p><p> 本功能用于對(duì)貨物出庫(kù)的記錄管理。當(dāng)某部門(mén)需要某種貨物時(shí),就可以在此處進(jìn)行添加新紀(jì)錄,查詢(xún)或刪除已有記錄等操作。界面如圖5-9所示:</p><p> 圖5-9 出庫(kù)管理界面</p><p>
120、 功能實(shí)現(xiàn)代碼與入庫(kù)管理模塊相似。</p><p><b> 信息查詢(xún)模塊</b></p><p> 本模塊用于對(duì)數(shù)據(jù)進(jìn)行集中查詢(xún)處理。管理員可以根據(jù)需要查詢(xún)供應(yīng)商、貨物、倉(cāng)庫(kù)、部門(mén)、入庫(kù)單、出庫(kù)單信息,并可以對(duì)其進(jìn)行修改、刪除操作。</p><p><b> 供應(yīng)商信息查詢(xún)</b></p><
121、p> 本功能主要實(shí)現(xiàn)對(duì)供應(yīng)商信息的查詢(xún),用戶(hù)可以根據(jù)供應(yīng)商編號(hào)或供應(yīng)商名稱(chēng)等對(duì)供應(yīng)商信息進(jìn)行查詢(xún),界面如圖5-10所示:</p><p> 圖5-10 供應(yīng)商信息查詢(xún)界面</p><p><b> 主要代碼:</b></p><p> public void doPost(HttpServletRequest request, H
122、ttpServletResponse response)</p><p> throws ServletException, IOException {</p><p> request.setCharacterEncoding("utf-8");</p><p> response.setContentType("text/ht
123、ml;charset=utf-8");</p><p> String queryCon=request.getParameter("queryCon");</p><p> if(queryCon==null){</p><p> queryCon=(String)request.getAttribute("query
124、Con");</p><p><b> }</b></p><p> String standa=request.getParameter("standa");</p><p> if(standa==null){</p><p> standa=(String)request.ge
125、tAttribute("standa");</p><p><b> }</b></p><p> request.setAttribute("queryCon", queryCon);</p><p> request.setAttribute("standa", standa
126、);</p><p> List<Supplier> suppList=new ArrayList<Supplier>();</p><p> ISupplierDao supplierDao=new SupplierDaoImpl();</p><p> if(standa.equals("id")){</p
127、><p> int suppId=Integer.parseInt(queryCon);</p><p> suppList=supplierDao.getSupplier(suppId);</p><p><b> }</b></p><p> else if(standa.equals("name&qu
128、ot;)){</p><p> suppList=supplierDao.getSupplier(queryCon);</p><p><b> }</b></p><p> request.setAttribute("suppList", suppList);</p><p> this.g
129、etServletContext().getRequestDispatcher("/querySupplier.jsp").forward(request, response);</p><p><b> }</b></p><p><b> 貨物信息查詢(xún)</b></p><p> 本功能主要實(shí)現(xiàn)
130、對(duì)貨物信息的查詢(xún),用戶(hù)可以根據(jù)貨物編號(hào)或貨物名稱(chēng)等對(duì)貨物信息進(jìn)行查詢(xún),界面如圖5-11所示:</p><p> 圖5-11 貨物信息查詢(xún)界面</p><p> 實(shí)現(xiàn)代碼與供應(yīng)商信息查詢(xún)相似。</p><p><b> 倉(cāng)庫(kù)信息查詢(xún)</b></p><p> 本功能主要實(shí)現(xiàn)對(duì)倉(cāng)庫(kù)信息的查詢(xún),用戶(hù)可以根據(jù)倉(cāng)庫(kù)編號(hào)或倉(cāng)
131、庫(kù)負(fù)責(zé)人等對(duì)倉(cāng)庫(kù)信息進(jìn)行查詢(xún),界面如圖5-12所示:</p><p> 圖5-12 倉(cāng)庫(kù)信息查詢(xún)界面</p><p> 實(shí)現(xiàn)代碼與供應(yīng)商信息查詢(xún)相似。</p><p><b> 部門(mén)信息查詢(xún)</b></p><p> 本功能主要實(shí)現(xiàn)對(duì)部門(mén)信息的查詢(xún),用戶(hù)可以根據(jù)部門(mén)編號(hào)或部門(mén)名稱(chēng)等對(duì)部門(mén)信息進(jìn)行查詢(xún),界面如圖5-
132、13所示:</p><p> 圖5-13 部門(mén)信息查詢(xún)界面</p><p> 實(shí)現(xiàn)代碼與供應(yīng)商信息查詢(xún)相似。</p><p><b> 入庫(kù)單信息查詢(xún)</b></p><p> 本功能主要實(shí)現(xiàn)對(duì)入庫(kù)單信息的查詢(xún),用戶(hù)可以根據(jù)入庫(kù)單編號(hào)或入庫(kù)貨物等對(duì)入庫(kù)單信息進(jìn)行查詢(xún),界面如圖5-14所示:</p>
133、<p> 圖5-14 入庫(kù)單信息查詢(xún)界面</p><p> 實(shí)現(xiàn)代碼與供應(yīng)商信息查詢(xún)相似。</p><p><b> 出庫(kù)單信息查詢(xún)</b></p><p> 本功能主要實(shí)現(xiàn)對(duì)出庫(kù)單信息的查詢(xún),用戶(hù)可以根據(jù)出庫(kù)單編號(hào)或出庫(kù)貨物等對(duì)貨物信息進(jìn)行查詢(xún),界面如圖5-15所示:</p><p> 圖5-15
134、出庫(kù)單信息查詢(xún)界面</p><p> 實(shí)現(xiàn)代碼與供應(yīng)商信息查詢(xún)相似。</p><p><b> 用戶(hù)管理模塊</b></p><p> 本模塊用于對(duì)系統(tǒng)用戶(hù)進(jìn)行操作。管理員可以進(jìn)行添加新用戶(hù),修改或刪除已有用戶(hù)等操作。界面如圖5-16所示:</p><p> 圖5-16 用戶(hù)管理界面</p><
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- jsp倉(cāng)庫(kù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 畢業(yè)論文---倉(cāng)庫(kù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 倉(cāng)庫(kù)管理系統(tǒng)論文-基于jsp的倉(cāng)庫(kù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 倉(cāng)庫(kù)貨物管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 基于jsp的倉(cāng)儲(chǔ)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 倉(cāng)庫(kù)管理系統(tǒng)后臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)---畢業(yè)論文
- 基于jsp的倉(cāng)庫(kù)管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文--基于jsp的書(shū)店管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文范文——倉(cāng)庫(kù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文--原材料倉(cāng)庫(kù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 畢業(yè)論文--原材料倉(cāng)庫(kù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 倉(cāng)庫(kù)管理系統(tǒng)的分析與實(shí)現(xiàn)[畢業(yè)論文]
- 基于jsp的網(wǎng)上花店管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) 畢業(yè)論文
- 【zs精品】基于jsp倉(cāng)庫(kù)庫(kù)存管理系統(tǒng)設(shè)計(jì)-畢業(yè)論文全套[畢業(yè)論文+代碼全套]
- 基于jsp的倉(cāng)庫(kù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 基于jsp的倉(cāng)庫(kù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 基于jsp的旅行社管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 畢業(yè)論文基于jsp的畢業(yè)論文管理系統(tǒng)的設(shè)計(jì)
- 畢業(yè)論文范文——倉(cāng)庫(kù)管理系統(tǒng)與實(shí)現(xiàn)
- 倉(cāng)庫(kù)管理系統(tǒng)設(shè)計(jì)畢業(yè)論文
評(píng)論
0/150
提交評(píng)論