版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
存檔日期:存檔編號:題目:倉庫管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)學(xué)號:姓名:聯(lián)系電話:電子郵箱:QQ:學(xué)院:專業(yè):指導(dǎo)教師:
倉庫管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)摘要:長期以來,各行各業(yè)都離不開倉庫管理,因為倉庫管理作為企業(yè)各個項目的第一環(huán),這一環(huán)節(jié)往往是企業(yè)發(fā)展的第一步,如果倉庫管理不善將會給企業(yè)帶來不可估量的損失,這些損失可能會給企業(yè)帶來毀滅性的危機(jī),本人看出了倉庫管理不善可能造成的隱性危機(jī),對倉庫管理進(jìn)行了大量的研究分析,采用了結(jié)構(gòu)化的系統(tǒng)分析方法,對倉庫管理進(jìn)行了系統(tǒng)開發(fā),使得系統(tǒng)可以適用于企業(yè)進(jìn)行倉庫管理。本文系統(tǒng)地闡述了系統(tǒng)的開發(fā)過程,首先進(jìn)行了項目概述,簡單介紹了開發(fā)背景、開發(fā)目的和開發(fā)意義;接下來通過從技術(shù)、經(jīng)濟(jì)和社會三方面對項目進(jìn)行了可行性研究。本文通過對系統(tǒng)進(jìn)行深刻的分析,決定系統(tǒng)的基本功能,并設(shè)計出流程圖,為下面系統(tǒng)設(shè)計做下鋪墊。根據(jù)系統(tǒng)設(shè)計決定采用B/S結(jié)構(gòu),使用JSP平臺編寫代碼,并且使用SQL2000制作數(shù)據(jù)庫。完成系統(tǒng)編寫并運(yùn)行后要對系統(tǒng)的所有功能進(jìn)行多次測試,最后完善系統(tǒng)。關(guān)鍵詞:倉庫管理;JSP;數(shù)據(jù)庫
TheDesignandImplementationofWarehouseManagementSystemAbstract:Foralongtime,inallwalksoflifecannotleavethewarehousemanagement,becausewarehousemanagementasthefirstlinkoftheproject,thislinkisoftenthefirststepofenterprisedevelopment,ifthewarehousemanagementwillbringimmeasurableloss,theselossescouldbringadevastatingcrisis,Iseethatthewarehousemanagementmaycausetherecessivecrisis,toalargenumberofwarehousemanagementresearchandanalysis,usingthestructuredsystemanalysismethod,onthewarehousemanagementsystemdevelopment,makethewarehousemanagementsystemcanbeappliedtoenterprises.Thispapersystematicallyexpoundsthedevelopmentprocessofthesystem,firsthascarriedonthedescriptionofproject,simplyintroducesthedevelopmentbackground,developmentgoalanddevelopment;Nextthroughfromtwoaspectsoftechnologyandeconomicfeasibilitystudyofproject.Basedontheprofoundanalysiswascarriedoutonthesystem,thebasicfunctionofdecisionsystem,anddesignedaflowchart,dothebeddingforthefollowingsystemdesign.AccordingtosystemdesigndecisionadoptsB/Sstructure,usingJSPplatformcode,andusingSQL2000database.Writeandcompletesystemaftertheoperationtorunmultipletestsonthesystemofallfunctions,andfinallyimprovethesystem.Keywords:Warehousemanagement;JSP;database目錄第1章緒論 11.1課題背景 11.2倉庫管理系統(tǒng)的概述 11.3課題的目的及意義 11.3.1課題的目的 11.3.2課題的意義 21.4本文研究內(nèi)容及主要貢獻(xiàn) 2第2章可行性可行性分析及總體設(shè)計原則 32.1可行性分析 32.1.1技術(shù)可行性 32.1.2經(jīng)濟(jì)可行性 32.1.3社會可行性 32.2總體設(shè)計原則 32.3本章小結(jié) 3第3章系統(tǒng)分析 43.1業(yè)務(wù)流程分析 43.2數(shù)據(jù)流圖 53.3本章小結(jié) 7第4章系統(tǒng)設(shè)計 84.1系統(tǒng)功能設(shè)計 84.2數(shù)據(jù)庫設(shè)計 94.2.1概念結(jié)構(gòu)設(shè)計 94.2.2數(shù)據(jù)表設(shè)計 104.3系統(tǒng)開發(fā)工具和開發(fā)模式的選擇 104.3.1開發(fā)工具 104.3.2開發(fā)模式 114.4本章小結(jié) 11第5章系統(tǒng)實(shí)現(xiàn)和測試 125.1編碼實(shí)現(xiàn) 125.1.1代碼結(jié)構(gòu) 125.1.2關(guān)鍵代碼 135.2系統(tǒng)測試 305.3本章小結(jié) 30第6章總結(jié)與展望 316.1總結(jié) 316.2展望 31畢業(yè)設(shè)計體會 32致謝 33參考文獻(xiàn) 34英文翻譯資料 34PAGEPAGE7第1章緒論1.1課題背景近年來,計算機(jī)技術(shù)、互聯(lián)網(wǎng)技術(shù),計算機(jī)智能等等學(xué)科技術(shù)的不斷發(fā)展,半自動化機(jī)器系統(tǒng),甚至全自動化機(jī)器系統(tǒng)成為炙手可熱的主流系統(tǒng)。為了提高企業(yè)在市場上的社會競爭力,并且減少在人工方面的繁重開銷,大多數(shù)企業(yè)走上了智能化,自動化的道路。由于過去人工倉庫管理的種種弊端,例如:人手不足導(dǎo)致的管理不善;人手過剩導(dǎo)致的資源浪費(fèi)等等,都造成了企業(yè)在日常開銷以外的不可預(yù)估的損耗。在市場競爭壓力日益擴(kuò)大,通貨膨脹現(xiàn)象日益嚴(yán)重的中國,各大企業(yè)只有完善自身硬件實(shí)力、軟件實(shí)力,才能在市場上占有一席之地,那么做好企業(yè)最基本的倉庫管理也就至關(guān)重要了。本人分析研究了市場上許多類似功能的倉庫管理系統(tǒng),然而,大部分的倉庫管理系統(tǒng)都有功能不完善,系統(tǒng)安全性過低,實(shí)時更新性能較差等等各種各樣的缺陷。為了讓每個公司的倉儲管理人員能夠更快捷的獲取,更新,刪除各種倉庫管理信息,使得倉庫現(xiàn)存信息能跟上迅速變化的市場現(xiàn)狀,本人通過對市場需求進(jìn)行分析,并且設(shè)計此款倉庫管理系統(tǒng),方便公司相關(guān)部門的相關(guān)人員對倉庫進(jìn)行及時、有效、快捷的管理,從而使得倉庫管理的效率滿足公司、企業(yè)快速發(fā)展的要求。1.2倉庫管理系統(tǒng)的概述目前,市場上存在許多倉庫管理系統(tǒng),但是這些系統(tǒng)在投入使用的過程中存在的問題也是多種多樣的。當(dāng)然也有很多企業(yè)法人不重視倉庫管理這一基礎(chǔ)環(huán)節(jié),然而,企業(yè)由于倉庫管理問題最后以失敗告終的下場也屢見不鮮。因此,本文以這一基礎(chǔ)現(xiàn)象作為研究點(diǎn),分析市場上存在的倉庫管理系統(tǒng)存在的各種使用不合理問題,安全隱患問題,和其他不可預(yù)見性問題,在本文設(shè)計的倉庫管理系統(tǒng)中盡量規(guī)避上述出現(xiàn)的問題。本文所設(shè)計的倉庫管理系統(tǒng)主要為了完成下列目標(biāo):提高公司運(yùn)轉(zhuǎn)的效率,減小業(yè)務(wù)員工作量,使得倉庫信息及時更新,達(dá)到公司高速運(yùn)轉(zhuǎn)的要求。數(shù)據(jù)能夠及時更新,數(shù)據(jù)庫隨時更新。使得企業(yè)決策者能夠及時掌握最新數(shù)據(jù),緊跟市場步伐,避免公司的運(yùn)轉(zhuǎn)與市場脫節(jié),最終造成被市場淘汰的下場。公司信息的安全性和機(jī)密性對公司安全發(fā)展來說尤為重要,客戶的資料對公司來說是最珍貴的財富,訂單資料是公司運(yùn)作的最重要前提,因此倉庫管理系統(tǒng)在信息的安全性方面必須更加完善。操作便捷則是系統(tǒng)體現(xiàn)人性化的一個重要表現(xiàn),簡便的操作不僅可以提高工作的效率,還可以有效降低出錯率,這是在潛在層面上,有效提高公司的業(yè)績。1.3課題的目的及意義1.3.1課題的目的目前,仍然有許多小型的企業(yè),傳統(tǒng)的企業(yè)的倉庫管理模塊為手工登記倉庫信心,然而龐大的倉庫管理模塊,可以分解成許多部分,例如:客戶信息,客戶訂單,庫存信息,物流信息等等,這些小的組成部分不是互不干涉的,而是息息相關(guān)的,一個信息的改變往往導(dǎo)致所有信息的全盤更新,那么僅僅由手工修改登記是十分困難,且不人性化的。所以,倉庫管理系統(tǒng)開發(fā)的最初目的是使管理的模式從手工記錄轉(zhuǎn)變成電子倉儲信息的管理,為管理倉庫的人員提供方便的平臺。通過對實(shí)際倉庫管理以及現(xiàn)有管理模式的參考,本文開發(fā)出一款新型的倉庫管理系統(tǒng)。并且從已有的倉庫管理系統(tǒng)中尋找優(yōu)缺點(diǎn),使新的系統(tǒng)能更加適應(yīng)高速發(fā)展的市場需求。1.3.2課題的意義對倉庫管理系統(tǒng)的開發(fā),完善無疑是具有很多理論意義和現(xiàn)實(shí)意義的。本人所設(shè)計的倉庫管理系統(tǒng)不僅結(jié)合了前人所設(shè)計體系的優(yōu)點(diǎn),也盡可能降低系統(tǒng)隱含的缺點(diǎn),使系統(tǒng)最大化的接近現(xiàn)實(shí)需求。為了盡可能滿足企業(yè)需求,本文倉庫管理系統(tǒng)主要具有如下意義:企業(yè)在運(yùn)行,發(fā)展的過程中,最大的支出就是在人力資源方面,如果能夠在保證企業(yè)運(yùn)行效率的前提下,最大化的降低人力資源的損耗,那么對企業(yè)來說可以節(jié)省一大筆支出,所以節(jié)省人力資源是本系統(tǒng)最為顯著的一個現(xiàn)實(shí)意義。企業(yè)中最高決策者往往具備的專業(yè)知識相對薄弱,為了方便企業(yè)決策者查閱倉儲信息,并且使得決策者直接簡單的獲得自己所需要的信息,高效的做出合理的決策行為,本文系統(tǒng)的人性化,智能化就具有非凡的意義了。使用系統(tǒng)的人員并不都是熟練掌握計算機(jī)的技術(shù)人員,系統(tǒng)信息的錄入過程簡單明了很具現(xiàn)實(shí)意義。實(shí)現(xiàn)了倉庫管理的自動化管理,這種自動化管理往往不是全自動化,而是盡可能的減少人為操作的過程,這個過程也就盡可能的降低了由人類正常機(jī)能出現(xiàn)的疏忽、差錯造成的不可預(yù)計的損失。1.4本文研究內(nèi)容及主要貢獻(xiàn)本文通過6個章節(jié)來設(shè)計一款倉庫管理系統(tǒng)。第1章緒論:該部分用于說明系統(tǒng)的開發(fā)背景、目的及意義等。第2章可行性分析:該部分介紹此系統(tǒng)開發(fā)的技術(shù)、經(jīng)濟(jì)可行性,以及設(shè)計該系統(tǒng)的基本原則。第3章系統(tǒng)分析:該部分將通過對業(yè)務(wù)流程,數(shù)據(jù)流圖的分析來解析本系統(tǒng)。第4章系統(tǒng)設(shè)計:該部分總共分為系統(tǒng)功能設(shè)計和系統(tǒng)數(shù)據(jù)庫的設(shè)計,以及對開發(fā)工具和開發(fā)模式的選擇。第5章系統(tǒng)實(shí)現(xiàn)及測試:該部分分為編碼、實(shí)現(xiàn)和測試三部分內(nèi)容。編碼部分給出各功能模塊的關(guān)鍵性代碼,并給出效果圖。測試部分將根據(jù)可能出現(xiàn)的數(shù)據(jù)給出測試結(jié)果說明。第6章總結(jié)與展望:本部分介紹本系統(tǒng)的不足,并且對其將來的提升有哪些打算。第2章可行性可行性分析及總體設(shè)計原則2.1可行性分析為了確定該系統(tǒng)有投資價值,將從技術(shù)和經(jīng)濟(jì)兩個方面進(jìn)行可行性分析。2.1.1技術(shù)可行性SQL2000數(shù)據(jù)庫與JSP一起,就能輕松開發(fā)功能豐富、存儲安全、可快速部署的數(shù)據(jù)驅(qū)動應(yīng)用程序[1]。倉庫管理系統(tǒng)是一個用于數(shù)據(jù)庫管理和查詢的系統(tǒng),現(xiàn)有的技術(shù)已較為成熟,硬件、軟件的性能要求、環(huán)境條件等各項條件良好,利用現(xiàn)有技術(shù)條件可以達(dá)到該系統(tǒng)的功能目標(biāo)[2]。在學(xué)校期間已經(jīng)學(xué)習(xí)JSP技術(shù)和SQL2000數(shù)據(jù)庫。并且,時間充足。因此,倉庫管理系統(tǒng)技術(shù)方面是可行的。2.1.2經(jīng)濟(jì)可行性現(xiàn)在公司都有基本設(shè)施,應(yīng)用平臺也支持本系統(tǒng)。因此不需要再購買其他設(shè)施。本人在校期間學(xué)習(xí)過系統(tǒng)開發(fā),應(yīng)用平臺已有,所以此次開發(fā)不需要其他投資。本系統(tǒng)方便公司管理,公司若想跟上時代潮流必定會選擇使用該系統(tǒng)。因此,倉庫管理系統(tǒng)在經(jīng)濟(jì)方面是可行的。社會可行性法律因素本系統(tǒng)是根據(jù)對倉庫管理的多方面研究,結(jié)合計算機(jī)自動化技術(shù),獨(dú)立開發(fā),沒有抄襲其他軟件。用戶使用可行性本系統(tǒng)只需要用戶具備Windows即可,操作簡便,無需培訓(xùn)。減少了額外開支。因此,倉庫管理系統(tǒng)在社會方面是可行的。總體設(shè)計原則本系統(tǒng)為了方便系統(tǒng)用戶使用,所以必須采取一定的設(shè)計原則。其主要設(shè)計原則有:簡單性讓操作簡單易懂。實(shí)用性要求滿足必要的管理需要。先進(jìn)性本系統(tǒng)使用JSP、SQL2000作為系統(tǒng)開發(fā)工具和數(shù)據(jù)庫,兩個軟件具有良好的兼容性和系統(tǒng)穩(wěn)定性[3]。因此本設(shè)計具有良好的先進(jìn)性。2.3本章小結(jié)通過對系統(tǒng)可行性的分析,認(rèn)為此系統(tǒng)有投資價值且可實(shí)現(xiàn)。同時決定了此系統(tǒng)的基本設(shè)計語言和設(shè)計工具。第3章系統(tǒng)分析3.1業(yè)務(wù)流程分析圖3.1操作員業(yè)務(wù)流程圖圖3.2管理員業(yè)務(wù)流程圖3.2數(shù)據(jù)流圖在業(yè)務(wù)流程分析的基礎(chǔ)上,需要對數(shù)據(jù)流進(jìn)行了分析,從數(shù)據(jù)流動過程考察了實(shí)際業(yè)務(wù)的數(shù)據(jù)處理模式。該系統(tǒng)的數(shù)據(jù)流圖分為頂層、一層、二層。圖3.3操作員DFDPAGEPAGE35圖3.4管理員DFD3.3本章小結(jié)通過業(yè)務(wù)流程圖和數(shù)據(jù)流圖可以清楚看出系統(tǒng)結(jié)構(gòu)和基本功能。為以后的系統(tǒng)設(shè)計和代碼實(shí)現(xiàn)提供基礎(chǔ)。第4章系統(tǒng)設(shè)計4.1系統(tǒng)功能設(shè)計通過系統(tǒng)分析,很容易得出系統(tǒng)模塊。圖4.1管理員系統(tǒng)模塊如圖4.1所示,管理員的操作模塊有:出庫登記、入庫登記、貨品類別管理、貨品管理、修改密碼、庫存匯總、操作員管理。圖4.2操作員系統(tǒng)模塊如圖4.2所示,操作員的操作模塊有:出庫登記、入庫登記、貨品類別管理、貨品管理、個人信息、庫存匯總。4.2數(shù)據(jù)庫設(shè)計管理系統(tǒng),管理的就是數(shù)據(jù)庫,因此數(shù)據(jù)庫的設(shè)計至關(guān)重要。4.2.1概念結(jié)構(gòu)設(shè)計系統(tǒng)E-R圖能很清晰的指導(dǎo)設(shè)計,所以需要首先設(shè)計E-R圖。圖4.3系統(tǒng)E-R圖4.2.2數(shù)據(jù)表設(shè)計表4-1管理員數(shù)據(jù)表表4-2出入庫單據(jù)數(shù)據(jù)表表4-3操作員數(shù)據(jù)表表4-4商品數(shù)據(jù)表4.3系統(tǒng)開發(fā)工具和開發(fā)模式的選擇4.3.1開發(fā)工具本系統(tǒng)主要使用JSP、Struts技術(shù)對系統(tǒng)進(jìn)行設(shè)計和開發(fā)。JSP具有Java程序設(shè)計語言“一次編寫,各處執(zhí)行”、“安全性、保密性高”等的特點(diǎn)[4];Struts能滿足應(yīng)用開發(fā)的需求,簡單,迅速。使用MicrosoftSQLServer2000數(shù)據(jù)庫作為后臺數(shù)據(jù)庫,SQL Server2000系統(tǒng)具有強(qiáng)大的網(wǎng)上功能,可以在互聯(lián)網(wǎng)上發(fā)布數(shù)據(jù)庫中的數(shù)據(jù)。在SQLServer2000系統(tǒng)中,允許用戶把數(shù)據(jù)庫的數(shù)據(jù)發(fā)布到網(wǎng)絡(luò)上,并且可以根據(jù)需要修改發(fā)布的數(shù)據(jù)。在大家所了解數(shù)據(jù)庫系統(tǒng)中。經(jīng)過三十多年的發(fā)展,MicrosoftSQLServer2000已經(jīng)成為主流的數(shù)據(jù)處理技術(shù),因此決定使用SQL來制作本次的數(shù)據(jù)庫。4.3.2開發(fā)模式開發(fā)模式?jīng)Q定使用JSP常用的B/S模式。4.4本章小結(jié)根據(jù)系統(tǒng)分析完成對系統(tǒng)模塊的設(shè)計以及開發(fā)工具的確定,方便下面的代碼實(shí)現(xiàn)。第5章系統(tǒng)實(shí)現(xiàn)和測試5.1編碼實(shí)現(xiàn)5.1.1代碼結(jié)構(gòu)ckgl/cangchu/WebRoot/admin/adminAdd.jspadminMana.jspcatelogAdd.jspcatelogMana.jspchukuAdd.jspchukuMana.jspchukumingxiAdd.jspchukumingxiMana.jspgoodAdd.jspgoodMana.jsppanchuAdd.jsppanchuMana.jsprukuAdd.jsprukuMana.jsprukumingxiAdd.jsprukumingxiMana.jspyuangongAdd.jspyuangongMana.jspyuangongquanxian.jspusepw.jspsyspro.jspcenter.jspdown.jspindex.jspleft.jspmiddel.jsptop.jspcommon/msg.jspsuccess.jspcss/base.cssdtree.cssfront1.csslayout.cssmain.csswhole.csswoncore.cssjs/dtree,jsmenu.jspopup.jspublic.jsupdown.jsplogin.jsploginsuccess.jsp5.1.2關(guān)鍵代碼登錄界面代碼</table></td><tdwidth="1%"> </td><tdwidth="40%"valign="bottom">width="100%"height="49"border="0"align="center"="0"cellspacing="0"><tr><tdwidth="4%"> </td><tdwidth="96%"height="38"><class="login_txt_bt">倉庫管理系統(tǒng)</span></td></tr><tr><td> </td><tdheight="21"><tablecellSpacing="0""0"width="100%"border="0"id="table211"height="328"><tr><tdheight="164"colspan="2"align="middle"><FORMname="ThisForm"="<%=path%>/adminLogin.action"method=post><tr><tdwidth="13%"height="38"class="top_hui_text"><spanclass="login_txt">用戶名: </span></td><tdheight="38"colspan="2"class="top_hui_text"><inputname="userName"type="text"style="width:150px;"></td></tr><tr><tdwidth="13%"t="35"class="top_hui_text"><spanclass="login_txt">密 碼: </span></td><imgsrc="<%=path%>/img/luck.gif"width="19"height="18"></td></tr><tr><tdwidth="13%"height="35"><s="login_txt">身 份:</span></td><tdheight="35"colspan="2"class="top_hui_text"><selectclass="INPUT_text"name="userType"style="width:150px;"> <optionvalue="0">管理員</option> <value="1">操作員</option> </select></td></tr><tr><tdheight="35"> </td><tdwidth="90%"height="35"><inputname="button"type="button"class="button"id="Submit"value="登陸"onclick="check1()"><inputname="cs"type="reset"class="button"id="cs"value="重置"><imgid=""src="<%=path%>/img/loading.gif"style="display:none"/></td><tdwidth="10%"class="top_hui_text"></td></tr></table><br></form></td></tr><tr><tdwidth="433"height="164"align="right"valign="bottom"><imgsrc="<%=path%>/img/login-wel.gif"width="242"height="138"></td><tdwidth="57"align="right"valign="bottom"> </td></tr圖5.1登錄界面二、首頁代碼<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%><%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head> <metahttp-equiv=""content="no-cache"> <metahttp-equiv="cache-control"content="no-cache"> <metahttp-equiv="expires"content="0"> <metahttp-equiv=""content="keyword1,keyword2,keyword3"> <metahttp-equiv="description"content="Thisismypage"></head><framesetrows="90,*,30"cols="*"="0"frameborder="no"border="0"> <framesrc="<%=path%>/admin/top.jsp"name="topFrame"scrolling="no"noresize="noresize"id="topFrame"/> <framesrc="<%=path%>/admin/center.jsp"name="mainFrame"id="mainFrame"/> <framesrc="<%=path%>/admin/down.jsp"name="bottomFrame"scrolling="no"noresize="noresize"id="bottomFrame"/></frameset></html>截圖,見圖5.2圖5.2首頁三、入庫管理模塊代碼publicclassruku_servletextendsHttpServlet{ publicvoidservice(HttpServletRequestreq,res)throwsServletException,IOException { Stringtype=req.getParameter("type"); if(type.endsWith("rukuAdd")) { (req,res); } if(type.endsWith("rukuMana")) { rukuMana(req,res); } if(type.("rukuDel")) { rukuDel(req,res); } if(type.endsWith("rukuMingxiAdd")) { rukuMingxiAdd(req,res); } if(type."rukuMingxiMana")) { rukuMingxiMana(req,res); } if(type.("rukuMingxiDel")) { rukuMingxiDel(req,res); } } publicvoidrukuAdd(HttpServletRequestreq,HttpServletResponseres) { Stringdanjuhao=req.getParameter("danjuhao"); String=req.getParameter("shijian"); intzongjiage=Integer.parseInt(req.getParameter("zongjiage")); Stringjingshouren=req.getParameter("jingshouren"); String=req.getParameter("beizhu"); Stringdel="no"; Stringsql="insertintot_rukuvalues(?,?,?,?,?,?)"; Object[]={danjuhao,shijian,zongjiage,jingshouren,beizhu,del}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","ruku?type=rukuMana"); String="/common/success.jsp"; dispatch(targetURL,req,res); } publicvoidrukuDel(HttpServletRequestreq,HttpServletResponseres) { intid=parseInt(req.getParameter("id")); Stringsql="updatet_rukusetdel='yes'whereid=?"; Object[]params={id}; DBmydb=newDB(); mydbm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","ruku?type=rukuMana"); String="/common/success.jsp"; dispatch(targetURL,req,res); } publicvoidrukuMana(HttpServletRequestres)throwsServletException,IOException { ListrukuList=newArrayList(); Stringsql="select*fromt_rukuwheredel='no'"; Object[]params={}; DBmydb=newDB(); try {mydb.doPstm(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { Truku=newTruku(); ruku.setId(rs.getInt("id")); ruku.setDanjuhao(rs.getString("danjuhao")); ruku.setShijan(rs.getString("shijian")); ruku.set(rs.getInt("zongjiage")); ruku.setJingshouen(rs.getString("jingshouren")); ruku.setBeizhu(rs.getString("beizhu")); rukuLisadd(rku); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("ukuList",rukuList); req.getRequestDspatcher("admin/ruku/rukuMana.jsp").forward(req,res); } publicvoidrukuMingxiAdd(HttpServletRequestreq,HttpServletResponseres) { intruku_id=In.parseInt(req.getParameter("ruku_id")); intgoods_id=Integer.parseInt(req.getParameter("goods_id")); intshuliang=Integer.parseInt(req.getParameter("shuliang")); Stringbeizhu=req.geameter("beizhu"); Stringsql="insertintot_ringxivalues(?,?,?,?)"; Object[]params={ruku_id,goods_id,shuliang,beizhu}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("msg","操作成功");StringtargetURL="/common/msg.jsp"; dispatch(targetURL,req,res); } publicvoidrukuMingxiMServletRequestreq,HttpServletResponseres)throwsServletException,IOException { intruku_id=Integer.parseInt(req.getParameter("ruku_id")); ListrukuMingxiList=ArrayList(); Stringsql="select*fromt_rukuMingxiwhereruku_id="+ruku_id; Object[]params={}; DBmydb=newDB(); try { mydb.doPstm,params); ResultSetrs=mydb.getRs(); while(rs.next()) { TrukuMingxMingxi=newTrukuMingxi(); rukuMingxi.setId(rs.getInt("id")); rukuMingxi.setRuku_id(rs.getInt("ruku_id")); rukuMin_id(rs.getInt("goods_id")); rukuMinuliang(rs.getInt("shuliang")); rukuMinhu(rs.getString("beizhu")); rukuMingxi.setGoods_name(liuService.getGoodsName(rs.getInt("goods_id"))); rukuMingxiList.add(rukuMingxi); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); System.out.prinList.size()); req.setAttribugxiList",rukuMingxiList); req.setAttribute("ruku_id",ruku_id); req.getRequestDispatcher("admin/ruku/rukuMingxiMana.jsp").forward(req,res); } publicvoidrukuMletRequestreq,HttpServletResponseres) { intid=Integer.parseInt(req.getParameter("id")); Stringsql="deletefromt_rukuMingxiwhereid="+id; Object[]params={}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("msg","操作成功");StringtargetURL="/common/msg.jsp"; dispatch(targetURL,req,res); } publicvoiddispatch(HttpServletRequestrequest,HttpServletResponseresponse) { RequestDispatcherdispatch=getServletContext().getRequestDispatcher(targetURI); try { dispatch.forward(request,response); return; } catch(ServletExceptione) {e.printStackTrace(); } catch(IOExceptione) { e.printStackTrace(); } } publicvoidinit(Servlet)throwsServletException { super.init(config); } publicvoiddestroy() { }}圖5.3入庫管理模塊四、出庫管理模塊代碼publicclasschuku_servletextendsHttpServlet{ publicvoidservice(HttpServletR,HttpServletResponseres)throwsServletException,IOException { Stringtype=req.getParameter("type"); if(type.endsWith("chukuAdd")) { chukuAdd(req,res); } if(type.endsWith("chukuMana")) { chukuMana(req,res); } if(type.endsWith("chukuDel")) { chul(req,res); } if(type.endsWith("chukuMingxiAdd")) { chukuMingxiAdd(req,res); } if(type.endsWith("chukuMingxiMana")) { chukuMana(req,res); } if(type.endsWith("chukuMingxiDel")) { chukuMingxiDel(req,res); } } publicvoidchukuAdd(tRequestreq,HttpServletResponseres) { Stringdanjuhao=req.getParameter("danjuhao"); Stringshijian=req.getParameter("shijian"); intzongjiage=InInt(req.getParameter("zongjiage")); Stringjingshouren=req.getParameter("jingshouren"); Stringbeizhu=req.getParameter("beizhu"); Stringdel="no"; Stringsql="inse_chukuvalues(?,?,?,?,?,?)"; Object[]params={danjuhao,shijian,zongjiage,jingshouren,beizhu,del}; DBmydb=neB(); mydb.doPstm(sql,params); mydb.closed(); req.setAtessage","操作成功"); req.setAttribute("path","chuku?type=chukuMana"); StringtargetURL="/common/success.jsp"; dispatch(targetURL,req,res); } publicvoidchukuDeetRequestreq,HttpServletResponseres) { intid=Integer.parseInt(req.getParameter("id")); Stringsql="updatet_chukusetdel='yes'whereid=?"; Object[]params={id}; DBmydb=DB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("message","操作成功"); req.setAttribute("path","chuku?type=chukuMana"); StringtarL="/common/success.jsp"; dispatch(targetURL,req,res); } publicvoidchuquestreq,HttpServletResponseres)throwsServletException,IOException { ListchukuList=newArrayList(); Stringsql="select*fromt_chukuwheredel='no'"; Object[]params={}; DBmydb=newDB(); try { mydb.doql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { TchukuetInt("id")); chuku.setDanjuhao(rs.getString("danjuhao")); chuku.setShijian(rs.getString("shijian")); chuku.sete(rs.getInt("zongjiage")); chuku.setJingshouren(rs.getString("jingshouren")); chuku.setBeizhu(rs.getString("beizhu")); chukuList.add(chuku); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); req.setAttribute("chukuList",chukuList); req.getRequestDispatcher("admin/chuku/chukuMana.jsp").forward(req,res); } publicvoidchukuMingxiAdd(HttpServletRequestreq,HttpServletResponseres) { intchuku_id=Integert(req.getParameter("chuku_id")); intgoods_id=Integer.parseInt(req.getParameter("goods_id")); intshuliang=Integer(req.getParameter("shuliang")); Stringbeizhu=req.getParameter("beizhu"); Stringsql="insertintot_chukuMingxivalues(?,?,?,?)"; Object[]params={chuku_id,goods_id,shuliang,beizhu}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("msg","操作成功");StringtargetURL="/common/msg.jsp"; dispatch(targetURL,req,res); } publicvoidchukuMingx(HttpServletRequestreq,HttpServletResponseres)throwsServletException,IOException { intchuku_id=Integer.parseInt(req.getParameter("chuku_id")); ListchukuMingxiList=newArrayList(); Stringsql="select*fromt_chukuMingxiwherechuku_id="+chuku_id; Object[]params={}; DBmydb=newDB(); try { mydb.doP(sql,params); ResultSetrs=mydb.getRs(); while(rs.next()) { TchukuMingxichukuMingxi=newTchukuMingxi(); chukuMingxi.setId(rs.getInt("id")); chukuMingxi.setChuku_id(rs.getInt("chuku_id")); chukuMingxi.set.getInt("goods_id")); chukuMingxi.setShuliang(rs.getInt("shuliang")); chukuMingxi.sers.getString("beizhu")); chukuMingxi.setGoods_name(liuService.getGoodsName(rs.getInt("goods_id"))); chukuMingxiList.add(chukuMingxi); } rs.close(); } catch(Exceptione) { e.printStackTrace(); } mydb.closed(); System.out.println(gxiList.size()); req.setAttribute("chukuMingxiList",chukuMingxiList); req.setAttribute("chuku_id",chuku_id); req.getRequestDispatcher("admin/chuku/chukuMingxiMana.jsp").forward(req,res); } publicvoidchukuMinervletRequestreq,HttpServletResponseres) { intid=Integer.parseInt(req.getParameter("id")); Stringsql="deletefromt_chukuMingxiwhereid="+id; Object[]params={}; DBmydb=newDB(); mydb.doPstm(sql,params); mydb.closed(); req.setAttribute("msg","操作成功");StringtargetUmmon/msg.jsp"; dispatch(targetURL,req,res); } publicvoiddispatch(StringtargetURI,HttpServletRequestrequest,HttpServletResponseresponse) { RequestDispatcheetServletContext().getRequestDispatcher(targetURI); try { dispatch.forward(request,response); return; } catch(ServletExceptione) {e.printStackTrace(); } catch(IOExceptione) { e.printStackTrace(); } } publicvoidinit(Servl super.init(config); } publicvoiddestroy() }圖5.4出庫管理模塊PAGEPAGE9五、庫存管理模塊代碼publicclasskucun_servletextendsHttpServlet{ publicvoidservice(HttpSerreq,HttpServletResponseres)throwsServletException,IOException { Stringtype=reqParameter("type"); if(type.endsWith("kucunMana")) { kucunMana(req,res); } } publicvoidkucunMestreq,HttpServletResponseres)throwsServletException,IOException { ListkucunList=newArrayList(); List<Integer>goods_id_list=liuService.getAllGoods_id(); for(inti=0;i<goods_id_list.size();i++) { intgoods_id=goods_id_list.get(i); intkucunShuliang=liuService.getGoodang(goods_id)-liuService.getGoodsChukuShuliang(goods_id); Kucunkucun=newKucun(); kucun.setGoooods_id); kucun.setKucun(kucunShuliang); kucun.setGooduService.getGoodsName(goods_id)); kucunList.add(kucun); } req.setAttribute("kucunList",kucunList); req.getRequestDispatcher("admin/kucun/kucunMana.jsp").forward(req,res); } publicvoiddispatch(StringtargetURI,letRequestrequest,HttpServletResponseresponse) { RequestDispatcherdispatch=getServletContext().getRequestDispatcher(targetURI); try { dispatch.forward(rresponse); return; catch(ServletExceptione) {e.printStackTrace(); e.printStackTrace(); publicvoidinit(Servletconfig)throwsServletException { super.init(config); } publicvoiddestroy() { }}截圖,見圖5.5圖5.5庫存管理模塊5.2系統(tǒng)測試管理員測試,成功登錄。貨物模塊測試,成功增加,刪除。入庫模塊測試,訂單增加成功,詳情增加成功。出庫模塊測試,訂單增加成功,詳情增加成功。庫存模塊,成功統(tǒng)計。5.3本章小結(jié)基本完成代碼編寫,系統(tǒng)成功運(yùn)行,功能測試成功。第6章總結(jié)與展望總結(jié)隨著科學(xué)技術(shù)的不斷提高,倉庫管理系統(tǒng)成為時代主流,其迅速、方便、可靠性高、存儲量大、保密性好、成本低等優(yōu)點(diǎn)極大地提高人事勞資管理的效率。公司若想不被市場拋棄就要緊跟時代的步伐,如今計算機(jī)所帶來的自動化已成為主流。所以本人設(shè)計此系統(tǒng)希望能夠幫助公司更方便的解決倉儲問題。對于本次開發(fā),本文做了如下研究:系統(tǒng)概述:主要介紹了課題背景及意義??尚行苑治觯簭募夹g(shù)和經(jīng)濟(jì)兩方面得出此設(shè)計確實(shí)可行,并決定了開發(fā)工具。系統(tǒng)分析:通過對業(yè)務(wù)流程和數(shù)據(jù)流圖的分析來解剖系統(tǒng)。系統(tǒng)設(shè)計:使用JSP和SQL設(shè)計系統(tǒng)功能和數(shù)據(jù)庫。系統(tǒng)的實(shí)現(xiàn)和測試:通過對系統(tǒng)編碼,使系統(tǒng)功能得以實(shí)現(xiàn),并對功能進(jìn)行測試,以消除系統(tǒng)的漏洞。6.2展望目前該系統(tǒng)已具備倉庫管理的基本功能。由于第一次設(shè)計此系統(tǒng),所以針對的是單個倉庫的管理。后期將對多個倉庫管理,并不斷添加后續(xù)功能使其能完成整個物流系統(tǒng)的管理。畢業(yè)設(shè)計體會不知不覺已經(jīng)三個月過去了,對于很都東西從了解到熟練,也有更多東西是從不懂到可以基本運(yùn)用,這三個月收獲很大。由于本人對物流比較感興趣,暑假實(shí)習(xí)也都在物流公司,所以對倉庫管理很了解,不過自己的了解只限對公司軟件的使用。選課題時發(fā)現(xiàn)這個題目所以直接就選了,開始認(rèn)為自己接觸那么久,而且感覺很簡單,所以認(rèn)為自己會做的很簡單。系統(tǒng)設(shè)計最終選擇使用Java語言,但是并沒有學(xué)習(xí)過,只是自己了解過。于是就開始在圖書館尋找資料學(xué)習(xí)使用Java,并不斷向班級里學(xué)過的同學(xué)請教。在這時老師也給了很多幫助,推薦了幾本書幫助學(xué)習(xí)。系統(tǒng)設(shè)計的問題還好,因為以前感興趣于是在學(xué)習(xí)UML做課程設(shè)計時做了這個課題,所以系統(tǒng)的大體功能以前有所接觸。不過對于功能的代碼實(shí)現(xiàn)還是有很大困難。在找了不少資料和老師的幫助下終于解決了代碼的問題。然而功能的不足和系統(tǒng)的漏洞卻很多,于是又是不斷的請教老師同學(xué),查閱資料。在此同時,數(shù)據(jù)庫的使用也出現(xiàn)問題。學(xué)習(xí)過但是不熟練,于是又拿起了以前的書,嘗試各種操作。其中多次出現(xiàn)連接問題,在不斷努力的情況下終于逐漸減少。最終還是完成了自己的系統(tǒng),再看它,才發(fā)現(xiàn)自己開始多天真,使用別人的感覺簡單,自己做的時候才發(fā)現(xiàn)真的好難。很多東西根本做不好。果然,平時只會紙上談兵,不去做總感覺自己都會,做起來會很容易,這次真是響亮的一巴掌。不過還好還在學(xué)校,還不晚,工作才發(fā)現(xiàn)就不是這么輕松了。那些人經(jīng)常做肯定比我熟練,比我懂得多,遇到的問題也比我多,自然也就知道如何解決。虛心求教,一定會讓我在以后的工作中收獲很多。此次設(shè)計不僅讓我的專業(yè)知識得到練習(xí),更重要的是讓我擺正心態(tài),自己會的還是太少,還要不斷學(xué)習(xí)。
致謝四年大學(xué)將在此次設(shè)計后畫上句號,有點(diǎn)傷感,這是學(xué)生生涯的最后一份作業(yè)嗎?此時我只想感謝培養(yǎng)我多年的母校,老師們和我可愛的同學(xué)們。首先是我的母校,美麗的校園,良好的學(xué)習(xí)環(huán)境,豐富的校園生活讓我度過了4年不同于中學(xué)時代的學(xué)生生活。然后是各位老師們,無私的傳授我們知識,特別是張老師,曾經(jīng)的老師如今的導(dǎo)師,總是在輕松的氛圍下傳授知識給與我們提醒。并且在我們做畢設(shè)時給予各種幫助與督促。再者是我可愛的同學(xué)們。我們來自五湖四海在此相聚是緣分,感謝你們的陪伴和各種各樣的幫助。最后不能忘記我的家人,沒有你們支持,我無法在這美麗的校園中無憂的度過四年快樂時光。參考文獻(xiàn)[1]方睿.刁仁宏.網(wǎng)絡(luò)數(shù)據(jù)庫原理及應(yīng)用[M].四川大學(xué)出版社,2005.P23-33[4]張海藩.軟件工程導(dǎo)論(第5版).清華大學(xué)出版社,2008.P197-201[5]譚浩強(qiáng),劉炳文.C++程序設(shè)計教程.中國科學(xué)技術(shù)出版社,1995.P78—98。[8]劉昌祺.自動化立體倉庫設(shè)計.機(jī)械工業(yè)出版社,2004.P146-158。[9]朱衛(wèi)峰.物流自動化技術(shù)及應(yīng)用.華中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 圍手術(shù)期患者健康教育路徑的遠(yuǎn)程管理模式
- 器官芯片技術(shù)的應(yīng)用展望
- 商業(yè)健康險與醫(yī)療服務(wù)的法律銜接
- 哮喘患者心理干預(yù)的個性化方案效果分析結(jié)果應(yīng)用
- 呼吸系統(tǒng)ADR的鑒別診斷與報告規(guī)范
- 同行評議在臨床技能認(rèn)證中
- 合并房顫的STEMI患者抗凝與再灌注時間窗
- 1.2 憲法的內(nèi)容和作用 課件-2025-2026學(xué)年道德與法治八年級下冊 統(tǒng)編版
- 圍堰施工安全專項方案
- 發(fā)型沙龍活動策劃方案(3篇)
- 2025年六年級上冊道德與法治期末測試卷附答案(完整版)
- 雨課堂在線學(xué)堂《西方哲學(xué)-從古希臘哲學(xué)到晚近歐陸哲學(xué)》單元考核測試答案
- 學(xué)堂在線 雨課堂 學(xué)堂云 研究生學(xué)術(shù)與職業(yè)素養(yǎng)講座 章節(jié)測試答案
- 路面工程試驗檢測-路面基層底基層試驗檢測
- 文旅項目立項報告
- 生理學(xué)期中考試試題及答案
- 京張高鐵現(xiàn)場觀摩會整體策劃方案
- 安捷倫1200標(biāo)準(zhǔn)操作規(guī)程
- 合伙人合同協(xié)議書電子版
- 離婚協(xié)議書下載電子版完整離婚協(xié)議書下載三篇
- 磨床設(shè)備點(diǎn)檢表
評論
0/150
提交評論