版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
學(xué)位論文PAGEPAGE45摘要伴隨著企業(yè)的逐漸發(fā)展壯大,其業(yè)務(wù)的膨脹給后勤的倉儲(chǔ)管理系統(tǒng)帶來了許多問題,倉儲(chǔ)管理軟件是目前較為有效的解決方案,倉儲(chǔ)管理系統(tǒng)是企業(yè)管理系統(tǒng)的一部分,其發(fā)揮的作用越來越重要,能給企業(yè)帶來巨大的效益。本文將根據(jù)軟件工程的理論,針對企業(yè)倉儲(chǔ)管理系統(tǒng)面臨的實(shí)際問題,開發(fā)出基于Java技術(shù)的倉儲(chǔ)管理系統(tǒng)。本文,首先分析倉儲(chǔ)系統(tǒng)的具體功能,然后根據(jù)實(shí)際需要進(jìn)行需求分析,并將需求分析以電子文檔的方式反饋給用戶,和用戶進(jìn)行溝通進(jìn)一步確認(rèn)需求,而后根據(jù)需求分析,使用系統(tǒng)分析和設(shè)計(jì)的結(jié)構(gòu)化分析方法,以及數(shù)據(jù)庫建模,建立了基于數(shù)據(jù)庫的模型,后臺(tái)數(shù)據(jù)使用Mysql完成?;陂_放結(jié)的開發(fā)結(jié)構(gòu)Java.EE,實(shí)現(xiàn)了系統(tǒng)登陸模塊、供應(yīng)商信息管理模塊、貨品信息管理模塊、入庫存報(bào)表生成模塊、出庫報(bào)表生產(chǎn)模塊等;最后對系統(tǒng)進(jìn)行調(diào)試并總結(jié),同時(shí)對以后的實(shí)際工作指明了方向。關(guān)鍵詞:Java技術(shù)軟件工程理論需求分析數(shù)據(jù)庫建模目錄TOC\o"1-2"\h\z\u摘要 1目錄 21引言 31.1選題背景及意義 31.2課題任務(wù) 42相關(guān)技術(shù)綜述 52.1Java技術(shù)簡介及相關(guān)原理 52.2Struts 63系統(tǒng)分析與設(shè)計(jì) 103.1系統(tǒng)分析 103.2系統(tǒng)環(huán)境 113.3需求分析 113.4系統(tǒng)功能設(shè)計(jì) 144數(shù)據(jù)庫設(shè)計(jì) 204.1概述 204.2E-R圖 204.3數(shù)據(jù)表 215系統(tǒng)功能的實(shí)現(xiàn) 265.1系統(tǒng)功能簡述 265.2模塊化功能實(shí)現(xiàn) 266調(diào)試 407總結(jié) 43參考文獻(xiàn) 44致謝 451引言1.1選題背景及意義在企業(yè)的發(fā)展過程中,伴隨著業(yè)務(wù)的激增給企業(yè)的管理帶來了許多問題,作為企業(yè)的管理信息系統(tǒng)可以有效地解決此類問題。而倉儲(chǔ)管理員理系統(tǒng)作為企業(yè)管理系統(tǒng)的重要組成部分,它可以給企業(yè)帶來巨大的經(jīng)濟(jì)效益,采用倉儲(chǔ)管理員理系統(tǒng)將使企業(yè)改變傳統(tǒng)的手工記錄模式,應(yīng)用數(shù)據(jù)庫技術(shù)使海量數(shù)據(jù)的存儲(chǔ)與處理變得輕而易舉,如此大幅度縮短倉儲(chǔ)業(yè)務(wù)流程的處理時(shí)間,提高企業(yè)倉儲(chǔ)管理的水平,適應(yīng)市場經(jīng)濟(jì)的發(fā)展形勢。早在70年代,計(jì)算機(jī)技術(shù)就最先被引用到了倉儲(chǔ)和物流配送領(lǐng)域當(dāng)中,伴隨著物流市場和產(chǎn)品訊息的疾速發(fā)展,物流軟件市場也應(yīng)運(yùn)而生,并且迅速發(fā)展壯大起來,涌現(xiàn)出了一大批倉儲(chǔ)物流應(yīng)用軟件;物流軟件作為企業(yè)管理應(yīng)用軟件,物流軟件,相比其他軟件提供了先進(jìn)的,效率高的特點(diǎn),可靠性和安全性,而且具有較小的實(shí)施風(fēng)險(xiǎn)和實(shí)施優(yōu)勢,其效益明顯,操作快捷等特點(diǎn),同時(shí)還具有實(shí)施成本低,效益明顯、見效快等優(yōu)點(diǎn)。根據(jù)物流軟件結(jié)構(gòu)分類,就當(dāng)前的物流軟件所使用的范圍來計(jì),物流軟件包含以下幾個(gè)子系統(tǒng):倉儲(chǔ)管理員理系統(tǒng)(WMS)、運(yùn)輸管理系統(tǒng)(TMS)、定單管理系統(tǒng)(OMS)、服務(wù)管理系統(tǒng)(SMS)等,其中倉儲(chǔ)管理員理系統(tǒng)是提供一整套倉庫業(yè)務(wù)及作業(yè)管理的應(yīng)用軟件,通過倉儲(chǔ)管理員理系統(tǒng)可以實(shí)現(xiàn)庫位分配自動(dòng)化及智能化操作,提升倉庫作業(yè)效率,提供準(zhǔn)確的庫存、庫位信息,實(shí)現(xiàn)倉儲(chǔ)管理員理的動(dòng)態(tài)化管理。我國自從加入WTO后,市場經(jīng)濟(jì)環(huán)境下的企業(yè)競爭越來越激烈,國內(nèi)許多企業(yè)由于信息記錄、收集、匯總、處理分析尚處于初級水平階段,記錄不規(guī)范,記錄信息分散,隨機(jī)性,單一的應(yīng)用,信息收集不及時(shí),不全面,不完善,不科學(xué),質(zhì)量,和主體多元化,不一致的結(jié)果,處理手段落后,效率低。倉儲(chǔ)管理員理系統(tǒng)是通過存儲(chǔ),出庫,庫存,庫存調(diào)整,整合批次管理、物料對應(yīng)、賬物符合、庫存清點(diǎn)、質(zhì)檢驗(yàn)收管理、實(shí)時(shí)庫存動(dòng)態(tài)管理等業(yè)務(wù)功能,對庫存業(yè)務(wù)的成本管理全過程進(jìn)行有效控制和跟蹤,實(shí)現(xiàn)完善的企業(yè)倉儲(chǔ)信息管理。倉儲(chǔ)管理員理系統(tǒng)的投入,將使倉庫的管理更加正規(guī)化,為產(chǎn)品的出入倉儲(chǔ)管理員理部門和銷售部門提供的便利,降低了倉庫的呆滯損耗;企業(yè)可以跟蹤服務(wù)來銷售產(chǎn)品,同時(shí)消除了銷售人員需要根據(jù)過去的做法來驗(yàn)證新的自戶外用品的麻煩,提高客戶服務(wù)的效率,同時(shí)節(jié)省相關(guān)費(fèi)用,避免不必要的業(yè)務(wù)糾紛,維護(hù)企業(yè)長期與用戶建立的良好信譽(yù)。1.2課題任務(wù)本文將根據(jù)軟件工程的理論,針對企業(yè)倉儲(chǔ)管理系統(tǒng)面臨的實(shí)際問題,對倉儲(chǔ)管理系統(tǒng)進(jìn)行分析、設(shè)計(jì)與實(shí)現(xiàn),開發(fā)出基于Java技術(shù)的倉儲(chǔ)管理系統(tǒng),以倉儲(chǔ)業(yè)務(wù)為核心驅(qū)動(dòng)模式,使用分層架構(gòu)實(shí)現(xiàn)具體部分。本文,首先分析倉儲(chǔ)系統(tǒng)的具體功能,然后根據(jù)實(shí)際需要進(jìn)行需求分析,并將需求分析以電子文檔的方式反饋給用戶,和用戶進(jìn)行溝通進(jìn)一步確認(rèn)需求,而后根據(jù)需求分析,使用系統(tǒng)分析和設(shè)計(jì)的結(jié)構(gòu)化分析方法,以及數(shù)據(jù)庫建模,建立了基于數(shù)據(jù)庫的模型,后臺(tái)數(shù)據(jù)使用Mysql完成?;陂_放結(jié)的開發(fā)結(jié)構(gòu)Java.EE,實(shí)現(xiàn)了系統(tǒng)登陸模塊、供應(yīng)商信息管理模塊、貨品信息管理模塊、入庫存報(bào)表生成模塊、出庫報(bào)表生產(chǎn)模塊等;最后對系統(tǒng)進(jìn)行調(diào)試并總結(jié),同時(shí)對以后的實(shí)際工作指明了方向。。2相關(guān)技術(shù)綜述2.1Java技術(shù)簡介及相關(guān)原理Java語言,是一種開發(fā)語言,致力于網(wǎng)絡(luò)應(yīng)用軟件的開發(fā),其具有跨平臺(tái)性、安全性、完全的面向?qū)ο蟮葍?yōu)點(diǎn),使其成為互聯(lián)網(wǎng)應(yīng)用軟件開發(fā)的領(lǐng)導(dǎo)者,Java適用于分布式計(jì)算環(huán)境的面向?qū)ο笤O(shè)計(jì)的編程語言,其具有簡窒、面對對象、分站式、解析型、安全、可靠、可移值、高性能、多線程等特點(diǎn)。企業(yè)級多層應(yīng)用系統(tǒng)的開發(fā)一直是所有企業(yè)面臨的難題,軟件開發(fā)商和眾多程序員,一直在追求和急切的期待一個(gè)成熟的、標(biāo)準(zhǔn)的企業(yè)級應(yīng)用平臺(tái),來簡化和規(guī)范企業(yè)級應(yīng)用系統(tǒng)的開發(fā)和部署。Java技術(shù)的出現(xiàn),尤其是J2EE(Java2PlatformEnterpriseEdition)的推出,正是大家渴望的結(jié)果,使得企業(yè)級應(yīng)用系統(tǒng)的開發(fā),由此變得更加快速和方便。要指出的是,J2EE為不同廠商創(chuàng)建的平臺(tái)產(chǎn)品提供了統(tǒng)一的標(biāo)準(zhǔn),它自身是一個(gè)標(biāo)準(zhǔn),實(shí)現(xiàn)了不同J2EE平臺(tái)產(chǎn)品之間的交互,建立在JavaEE規(guī)范框架之上的企業(yè)級應(yīng)用系統(tǒng)的基本構(gòu)造模塊的組件就是J2EE平臺(tái),從Web應(yīng)用到復(fù)雜的分布式企業(yè)級應(yīng)用,基本所有業(yè)務(wù)的應(yīng)用,全部可以在此技術(shù)框架基礎(chǔ)上進(jìn)行構(gòu)造,本文使用的組件技術(shù)主要有EnterpriseJavaBean、Servlet、JSP網(wǎng)頁等。2.1.1EnterpriseJavaBean(EJB)EnterpriseJavaBean(EJB)是J2EE平臺(tái)的核心,也是J2EE得到業(yè)界廣泛關(guān)注和支持的主要原因。眾所周知,J2EE其中的一個(gè)主要目標(biāo),使企業(yè)級多層應(yīng)用系統(tǒng)的開發(fā)變得簡單,而業(yè)務(wù)邏輯的開發(fā)才是程序員們專研的對象,EJB它自身就是一種規(guī)范,正是基于此類思維的服務(wù)器端技術(shù),一個(gè)可重用的組件框架被其重新定義了,以實(shí)現(xiàn)分站式的、面向?qū)ο蟮臉I(yè)務(wù)邏輯。EJB的核心思想,便是將業(yè)務(wù)邏輯與底層的系統(tǒng)邏輯完全分離開來,軟件開發(fā)者要將工作的重心轉(zhuǎn)移到業(yè)務(wù)邏輯上來,使用EJB容器來實(shí)現(xiàn)目錄服務(wù)和底層系統(tǒng)邏輯開發(fā),包含事務(wù)處理、持久性、安全性等。根據(jù)功能不同,EnterpriseJvavaBean的三種定義包括,實(shí)體Bean(EntityBean)、會(huì)話Bean(SessionBean)和消息驅(qū)動(dòng)Bean(Message-DrivenBean),有狀態(tài)和無狀態(tài)是會(huì)話Bean的兩種形式,多數(shù)的商業(yè)邏輯模仿要以使用無狀態(tài)的會(huì)話Bean,比方價(jià)格計(jì)算等,一般模仿一個(gè)客戶的會(huì)話,使用有狀態(tài)的會(huì)話Bean,它會(huì)臨時(shí)保存客戶信息,依據(jù)客戶的需求,選擇調(diào)用其它Bean來實(shí)現(xiàn)數(shù)據(jù)的存取,當(dāng)服務(wù)器關(guān)閉時(shí)或被客戶斷開連接時(shí),狀態(tài)信息或者數(shù)據(jù)在兩種狀態(tài)下都不會(huì)保存,會(huì)話Bean也就隨之消失。一個(gè)數(shù)據(jù)的保存,是通過實(shí)體Bean模擬業(yè)務(wù)數(shù)據(jù)來實(shí)現(xiàn)的,其可以示意為狀態(tài)信息或數(shù)據(jù)庫中的一條記錄。當(dāng)服務(wù)器關(guān)閉或客戶斷開連接后,實(shí)體Bean仍然可以保證其數(shù)據(jù)得以存儲(chǔ);訊息驅(qū)動(dòng)Bean的行為同會(huì)話Bean很相象,有差別的便是,僅需要發(fā)送消息時(shí)向這些Bean,才調(diào)用訊息驅(qū)動(dòng)Bean,比方,在需要的時(shí)刻,發(fā)送用戶確認(rèn)信息等。2.1.2JSP(JavaServerPages)JSP(JavaServerPages)是一種動(dòng)態(tài)的網(wǎng)頁技術(shù)標(biāo)準(zhǔn),它由SunMicrosystems公司與其他公司一同參加建立的標(biāo)準(zhǔn),JSP是基于Servlet技術(shù)的基礎(chǔ)上,發(fā)展起來的,處于逐漸發(fā)展完善之中,現(xiàn)已成為Java服務(wù)器編程的核心組成部分。JSP是聯(lián)合markup(HTML和XML)和Java代碼來共同處理的一種動(dòng)靜頁面。每頁首次被調(diào)用時(shí),經(jīng)過JSP引擎被編譯成Servlet,而后被執(zhí)行,之后屢次調(diào)用時(shí),實(shí)行編譯過的Servlet。JSP供給了多種方法訪問Javaclass、Servlet、Applets和WebServer,于是,Web運(yùn)用的功能就能夠分解成多個(gè)明確的定義公用接口的組件,聯(lián)合JSP將它們結(jié)合在一起.2.1.3ServletServlet是基于請求/響應(yīng)機(jī)制的組件,其用來擴(kuò)展Web服務(wù)器功能,Servlet從客戶端(如Web瀏覽器)獲取請求,繼而,將反應(yīng)結(jié)果返回到客戶端。鑒于Servlet的這種特征,它特別適用于Web運(yùn)用,Servlet和EJB組件的差別在于,EJB組件供給的服務(wù)器端組件特征,不能悉數(shù)適用于Servlet,而單一的請求/響應(yīng)任務(wù)處理更適合于Servlet,并且它不需要應(yīng)用服務(wù)器所供給的復(fù)雜的服務(wù)支持。2.2StrutsStruts框架是由Apache基金會(huì)在Jakarta中推出的一個(gè)子項(xiàng)目,在英文中是支架、支柱的意思,這也反映了在Web應(yīng)用程序開發(fā)中起著重要作用,Struts為Web應(yīng)用程序的總體框架,可以使開發(fā)人員把在部分精力集中在,怎么解決實(shí)際業(yè)務(wù)的題目上來,與此同時(shí)Struts框架也容許開發(fā)人員憑據(jù)實(shí)際需要實(shí)行拓展和定制,從而可以更好的適應(yīng)用戶的需求。選用Struts能夠簡化MVC設(shè)計(jì)模型下的Web運(yùn)用的開發(fā)設(shè)計(jì),很好地落實(shí)代碼重用,把開發(fā)人員從一些繁瑣的工作中解放出來,迅速開發(fā)出能夠充分發(fā)揮JSP/Servlet優(yōu)點(diǎn)、并擁有強(qiáng)可擴(kuò)展性的Web運(yùn)用。2.2.1MVC80年代Smalltalk開發(fā)了一種軟件設(shè)計(jì)模型,即,模型-視圖-控制器(MVC)是,如下圖2-1所示。。①模型(Model),主體是應(yīng)用程序的,Model表示業(yè)務(wù)數(shù)據(jù)或業(yè)務(wù)邏輯;②視圖(View),應(yīng)用程序中用戶界面關(guān)聯(lián)部分,用戶能夠看到并與之交互;③控制器(controller),其工作便是依據(jù)用戶錄入,管制用戶界面數(shù)據(jù)的體現(xiàn)和更新model。MVC式的涌現(xiàn),不但落實(shí)了功能和顯示模塊的分解,同時(shí)它還使應(yīng)用系統(tǒng)的可維護(hù)性、可擴(kuò)展性、可移植性和組件的可復(fù)用性在早期的程序中得到了改善,如若不注意對象功能和顯示的解耦合,經(jīng)常會(huì)導(dǎo)致程序的繁雜及維護(hù)困難。許多VB,Delphi等RAD都有這種現(xiàn)象,甚至目前的C#,Java有時(shí)候也會(huì)呈現(xiàn)出,把業(yè)務(wù)邏輯寫在顯示模塊中的問題,MVC設(shè)計(jì)模型在早期就提出了這一問題,但在Web的開發(fā)中植入MVC卻是極其困難。主要原因:一是在早期的Web項(xiàng)目的開發(fā)中,程序語言和HTML的分離一直難以實(shí)現(xiàn)。CGI程式以字符串輸出的方式,動(dòng)態(tài)地形成HTML內(nèi)容;其后伴隨著腳本語言的涌現(xiàn),前面的程式又被調(diào)了過來,改為將腳本語言的程序嵌入HTML內(nèi)容中;這兩種方法有一個(gè)共同的缺陷,就是它們總是不能將程序語言和HTML分隔開來。第二是,腳本語言的功能比較弱,缺少支撐MVC設(shè)計(jì)模型的一些必需的基礎(chǔ)技能,直到基于J2EE的JSPModel2問世時(shí)才得以改善,它用JSP完成了視圖的功能,用Servlet實(shí)現(xiàn)控制器的功能,用JavaBean技術(shù)實(shí)現(xiàn)模型的功能JSPModel1與JSPModel2,如下圖2-2、2-3所示。
狀態(tài)狀態(tài)改變狀態(tài)查詢通知改變視圖選擇用戶請求方法調(diào)用模型封裝應(yīng)用程度狀態(tài)響應(yīng)狀態(tài)查詢應(yīng)用程序功能通知視圖改變視圖解釋模型模型更新請求以送用戶輸入給控制器允許控制器選擇視圖控制器定義應(yīng)用程序行為用戶動(dòng)作映射成模型更新選擇影響的視圖事件圖2-1,MVC組件模型的關(guān)系和功能圖圖2-1,MVC組件模型的關(guān)系和功能圖2234ReqiestJSPBROWSERJavaBeanResponse1ApplicationServerEnterpriseServers/DataSources圖2-2JSPModel1Request5Request5(Model)JavaBean(View)JSP(Controller)ServletBROWSERResponseEnterpriseServers/DataSources1InstantiateInstantiate2323ApplicationServerApplicationServer圖圖2-3JSPModel22.2.2Struts流程ActionServlet可以處理了Struts流程的所有任務(wù),具體工作流程如下圖2-4所示。HttpServletHttpServlet<<frontcontroller>>org.apache.struts.action.ActionServlet<<dispatcher>>org.apache.struts.action.RepuestProcessorSerializable<<viewhelper>>org.apache.struts.action.ActionformActionConfigorg.apache.struts.action.ActionMapping<<requesthandler>>org.apache.struts.action.action.ActionActionMessagesSerializableorg.apache.struts.action.ActionErrorsActionConfigorg.apache.struts.action.ActionForward圖2-4Struts工作流程ActionServlet是一個(gè)FrontController,是一個(gè)標(biāo)準(zhǔn)化的Servlet,其利用RequestProcessor來處理轉(zhuǎn)發(fā)來的request,ActionMapping是ActionConfig的子類,是對struts-config.xml的一個(gè)映射,從中能夠取得所有的信息,RequestProcessor依據(jù)提交過來的url。ActionForm利用了ViewHelper模型,它是對HTML的form的一個(gè)包裝。此中包括有validate方法,用于驗(yàn)證form的有效性。ActionForm是一個(gè)契合JavaBean規(guī)范的類,其所有的特征都應(yīng)滿足get和set對應(yīng)。針對一些繁雜的系統(tǒng),可以選用DynaActionForm來構(gòu)建動(dòng)態(tài)的Form,即利用預(yù)制參數(shù)來生成Form,如此可以更靈活的擴(kuò)展程序。ActionErrors是對錯(cuò)誤信息的打包,只要在執(zhí)行action或者form.validate中出現(xiàn)異常,便可涎生一個(gè)ActionError,并加入到ActionErrors。在Form考證的過程中,一旦有Error發(fā)生,則會(huì)將頁面重新導(dǎo)向至輸入頁,并提示錯(cuò)誤。RequsestHandler業(yè)務(wù)邏輯的實(shí)行使用Action,每個(gè)Action只建立一個(gè)instance,Action并不是線程安全的,因此,不應(yīng)該在Action中訪問特定的資源;一般來說,應(yīng)改用BusinessDelegate模型來對Businesstier進(jìn)行訪問以達(dá)到解除耦合。Struts供給了多種Action供選擇調(diào)用,一般的Action只可以通過調(diào)用execute落實(shí)一項(xiàng)任務(wù),而DispatchAction能夠根據(jù)配置參數(shù)落實(shí),不是僅僅進(jìn)入execute()函數(shù),這樣可以執(zhí)行多種任務(wù),LookupDispatchAction能夠憑據(jù)提交表單按鈕的名稱來執(zhí)行函數(shù)命令。
3系統(tǒng)分析與設(shè)計(jì)3.1系統(tǒng)分析軟件系統(tǒng)設(shè)計(jì)之初,首要確定用戶需求,究竟要求軟件系統(tǒng)完成什么任務(wù),所以此階段的基本任務(wù)是分析、了解用戶的需求,將用戶的需求用書面形式表達(dá)出來,此階段不是確定系統(tǒng)怎么完成它的運(yùn)行工作,僅是確定系統(tǒng)必須實(shí)現(xiàn)哪些工作,即是體現(xiàn)目標(biāo)系統(tǒng)的完整、準(zhǔn)確、清晰、具體的特性。系統(tǒng)開發(fā)的基礎(chǔ)便是系統(tǒng)分析的結(jié)果,此關(guān)系到開發(fā)的成敗和軟件產(chǎn)品的質(zhì)量的優(yōu)劣。在全面客觀的系統(tǒng)分析的基礎(chǔ)上,根據(jù)用戶提出的系統(tǒng)功能進(jìn)行相應(yīng)的功能設(shè)計(jì)。1)系統(tǒng)功能概述①貨品出入倉儲(chǔ)管理員理貨品進(jìn)入倉庫,登記記錄,貨品出庫也要登記記錄,這是倉庫業(yè)務(wù)管理的重要內(nèi)容。進(jìn)入倉庫的貨品,從入庫申請的人員向倉儲(chǔ)管理員提交貨品開始,入庫申請人向倉儲(chǔ)管理員提交貨品和入庫申請單,入庫申請單記錄本次入庫的貨品名稱、數(shù)量、提交貨品的單位、執(zhí)行提交貨品的人員以及貨品注意事項(xiàng)等信息。倉儲(chǔ)管理員依據(jù)送貨人員提供的入庫申請單對待入庫貨品進(jìn)行檢查。若待入庫貨品與入庫申請單信息一致,則允許入庫;若不一致,則禁止入庫,請?zhí)峤回浧返膯挝换蛉藛T重新開具入庫申請單。對允許入庫的貨品,執(zhí)行倉儲(chǔ)管理員要對貨品的信息進(jìn)行登記,這些信息包括入庫貨品名稱、數(shù)量、時(shí)間、送貨入庫人員的信息、執(zhí)行貨品入庫的管理員。進(jìn)行登記后,將貨品存入倉庫,貨品入庫后,執(zhí)行入庫操作的倉儲(chǔ)管理員給提出入庫申請的入庫人員開具入庫單據(jù),流程結(jié)束。②出入庫記錄的查詢及報(bào)表倉庫的管理人員要對倉庫存儲(chǔ)的貨品信息、記錄等及時(shí)掌握并了解,這樣才能隨時(shí)把控倉庫的運(yùn)行動(dòng)態(tài),如此才有可能會(huì)使倉庫管理保持良好的運(yùn)營狀態(tài)。所以,一般倉儲(chǔ)管理員要能夠提供倉庫的入庫、出庫記錄的查詢功能,同時(shí)能夠?qū)⒊鰩臁⑷霂煊涗浬蓤?bào)表,供相關(guān)管理人員使用,所以,對入庫、出庫記錄的查詢,并將這些信息生成報(bào)表是倉儲(chǔ)管理員理系統(tǒng)的重要功能之一。③貨品信息管理倉庫存放的所有貨品,關(guān)于貨品自身的數(shù)據(jù)信息,對于貨品的存儲(chǔ)是極其重要的因素,譬如,什么貨品需要防潮措施,什么貨品需要輕拿輕放等,因此,對貨品自身的信息的登記、管理是倉儲(chǔ)管理員理的重要內(nèi)容之一。④其他信息管理除了以上提到的一些功能外,倉儲(chǔ)管理員理系統(tǒng)還應(yīng)該能對一些其他的信息進(jìn)行管理。比方,針對每個(gè)倉庫來說,都有具體的庫位用來存放貨品,倉儲(chǔ)管理員要對這些存儲(chǔ)庫位進(jìn)行的管理,每個(gè)庫房都有一些倉儲(chǔ)管理員,對這些倉儲(chǔ)管理員的管理,也是倉儲(chǔ)管理員理系統(tǒng)的功能之一。3.2系統(tǒng)環(huán)境①硬件環(huán)境服務(wù)器端:硬件配置為2G以上內(nèi)存,CPU為四核以上,硬盤容量為1T的計(jì)算機(jī)。通信網(wǎng)絡(luò):互聯(lián)網(wǎng),網(wǎng)絡(luò)協(xié)議為HTTP、TCP/IP。②軟件環(huán)境:服務(wù)器端:操作系統(tǒng)Windows2003數(shù)據(jù)庫服務(wù)器:MySQLServer4.1Web服務(wù)器:ApacheTomcat6.0技術(shù)架構(gòu)平臺(tái):SunJ2DK1.6③客戶端:操作系統(tǒng):WindowsXP/Win7屏幕分辨率推薦為:1024*768或以上3.3需求分析3.3.1倉儲(chǔ)管理員理系統(tǒng)系統(tǒng)功能分析,是在系統(tǒng)開發(fā)的整體任務(wù)的基礎(chǔ)實(shí)現(xiàn)的,倉儲(chǔ)管理員理系統(tǒng)需配備的功能主要有:①倉儲(chǔ)管理員理對各種貨品信息的輸入,包括貨品、供應(yīng)商、客戶、倉庫信息等。②倉儲(chǔ)管理員對各種貨品數(shù)據(jù)信息的查詢、統(tǒng)計(jì)、修改和維護(hù),包含貨品、票據(jù)查詢,貨品出入、人員操作統(tǒng)計(jì)等各種信息的修改與維護(hù)。③打印報(bào)表的生成。④在貨品管理中加入最高儲(chǔ)備和最低儲(chǔ)備字段,對倉庫中的產(chǎn)品實(shí)現(xiàn)監(jiān)控和報(bào)警。⑤操作日志的管理。⑥倉儲(chǔ)管理員理系統(tǒng)的使用幫助。3.3.1系統(tǒng)流程圖(下圖)核驗(yàn)貨品清單程度入庫單核驗(yàn)貨品清單程度入庫單報(bào)損計(jì)劃表報(bào)損計(jì)劃表出庫單庫存數(shù)據(jù)庫存?zhèn)浞莩绦虺鰩靻未蛴〕绦驇齑鎮(zhèn)浞莩鰩靻螏齑鏀?shù)據(jù)庫存?zhèn)浞莩绦虺鰩靻未蛴〕绦驇齑鎮(zhèn)浞輲齑娣治龀绦驇齑娣治龀绦驇齑娌樵兂绦虿樵儙齑嫘畔⒉樵儙齑嫘畔D3-1系統(tǒng)流程圖3.3.1數(shù)據(jù)流程圖剖析并調(diào)查相關(guān)倉儲(chǔ)管理員理信息的實(shí)際需求,得出數(shù)據(jù)流程圖3-2,如下所示。經(jīng)過對倉儲(chǔ)管理員理的管理內(nèi)容和數(shù)據(jù)流程分析,設(shè)計(jì)數(shù)據(jù)項(xiàng)和數(shù)據(jù)結(jié)構(gòu)如下:①貨品信息,包含的數(shù)據(jù)項(xiàng)有編號、貨品名稱、類別、貨品規(guī)格、計(jì)量單位、最高/最低限量、備注等。②倉庫信息,包括的數(shù)據(jù)項(xiàng)有編號、倉庫名稱、倉庫地點(diǎn)、保管員編號、備注等。③庫存狀態(tài)信息,包含的數(shù)據(jù)項(xiàng)有編號、貨品編號、庫存數(shù)目、庫房編號等。④入庫單信息,包含的數(shù)據(jù)項(xiàng)有編號、貨品編號、經(jīng)辦人編號、入庫日期、單價(jià)、數(shù)量、供應(yīng)商編號、庫房編號、定單狀況、備注等。⑤出庫單信息,包含的數(shù)據(jù)項(xiàng)有編號、貨品編號、經(jīng)手人編號、出庫日期、單價(jià)、出庫數(shù)目、客戶編號、倉庫編號、定單狀況、備注等。⑥舉行月盤點(diǎn)信息,包含的數(shù)據(jù)項(xiàng)編號、倉庫編號、盤點(diǎn)日期、經(jīng)手人編號、盤點(diǎn)數(shù)據(jù)等。⑦系統(tǒng)日記信息,包含的數(shù)據(jù)項(xiàng)有用戶名、操作時(shí)間、操作內(nèi)容等。⑧用戶管理信息,包含的數(shù)據(jù)項(xiàng)有用戶名、密碼、權(quán)限等。⑨調(diào)入單、借出單、報(bào)損單、調(diào)撥單信息等,與入庫單、出庫單信息基本類同。管理員管理員出庫信息入庫信息出庫信息入庫信息2.貨品出庫信息管理出庫信息表2.貨品出庫信息管理出庫信息表入庫信息表1.貨品入庫信息管理3.貨品庫存信息管理3.貨品庫存信息管理供應(yīng)商庫存信息表供應(yīng)商庫存信息表管理員管理員圖3-2倉儲(chǔ)管理員理系統(tǒng)數(shù)據(jù)流程圖3.3.1倉儲(chǔ)管理員理系統(tǒng)權(quán)限此系統(tǒng)角色包括兩類,倉儲(chǔ)部管理人員和倉儲(chǔ)主管,其中倉儲(chǔ)主管擁有整個(gè)系統(tǒng)的最高權(quán)限。倉儲(chǔ)部管理員:負(fù)責(zé)倉庫貨品的出入管理,可憑據(jù)流向單落實(shí)出入庫操作,具體權(quán)限設(shè)置如下:①庫存信息管理②庫檢信息維護(hù)③入庫單信息維護(hù)④出庫單信息維護(hù)⑤報(bào)表信息管理⑥密碼修改、清除信息等系統(tǒng)更改設(shè)置⑦供應(yīng)商、倉庫、客戶等基本信息的查詢?yōu)g覽等倉儲(chǔ)部主管:負(fù)責(zé)整個(gè)倉庫的日常運(yùn)作作和管理,具體權(quán)限設(shè)置如下:①部門信息維護(hù)和人員信息管理②審批權(quán)限③報(bào)表信息管理④密碼修改、數(shù)據(jù)庫備份等系統(tǒng)設(shè)置3.4系統(tǒng)功能設(shè)計(jì)根據(jù)倉儲(chǔ)管理員理系統(tǒng)的需求,設(shè)計(jì)了如下功能模塊:1)管部信息管理模塊為倉儲(chǔ)部主管提供對倉儲(chǔ)部信息的管理與維護(hù)的功能。①基礎(chǔ)信息管理模塊:為倉庫管理員提供對客戶信息、供貨商信息、庫房信息和倉庫管理員信息的管理維護(hù),包含對信息查詢、添加、修改和刪除等操作。②在庫信息管理模塊:a、庫存信息管理模塊:為倉庫管理員提供對短線貨品、貨品信息的管理維護(hù),包括對貨品信息查詢、添加、修改和刪除等操作。b、庫檢信息管理模塊:為倉庫管理員提供對產(chǎn)品庫檢信息、部件庫檢信息、禮品庫檢信息的管理和維護(hù),包含對信息查詢、添加、修改和刪除等操作。③出庫信息管理模塊:為倉庫管理員提供檢索、添加、修改和刪除出庫流向單(包括:產(chǎn)品出庫單、部件出庫單、禮品出庫單)的操作,其中添加和刪除操作后的出庫貨檢單要交由管理部審核。④入庫信息管理模塊:為倉庫管理員提供檢索、添加、修改和刪除入庫流向單(包含:部件、產(chǎn)品、禮品等入庫單)的操作、其中添加和刪除操作后的入庫貨檢單要交由管理部審核。⑤報(bào)表信息管理模塊:為倉庫管理員提供對報(bào)表信息的管理和維護(hù),包含對報(bào)表信息檢索、瀏覽和上交等操作。⑥系統(tǒng)設(shè)置模塊:為管理員提供實(shí)現(xiàn)對密碼修改、清除表信息的功能。2)貨品信息管理模塊①倉儲(chǔ)部職員管理模塊:為倉儲(chǔ)管理員供給實(shí)現(xiàn)對倉庫部門信息的管理與維護(hù),包含對部門信息檢索、添加、修改和刪除等操作;②倉庫報(bào)表管理模塊:為倉儲(chǔ)管理員供給實(shí)現(xiàn)對報(bào)表信息的管理與維護(hù),包含對報(bào)表的檢索、瀏覽和刪除等操作;③倉庫貨檢信息管理模塊:為倉儲(chǔ)管理員供給實(shí)現(xiàn)對貨檢信息的管理與維護(hù),包括對在庫貨檢信息、入庫貨檢信息和出庫貨檢信息的審核;④基礎(chǔ)信息管理模塊:為倉儲(chǔ)管理員供給實(shí)現(xiàn)對基本信息進(jìn)行添加、刪除、檢索和瀏覽功能;⑤系統(tǒng)設(shè)置模塊:為管理員供給實(shí)現(xiàn)密碼更改、數(shù)據(jù)庫備份和恢復(fù)的功能。用圖例來進(jìn)行系統(tǒng)建模,如下圖3-3所示。倉庫貨檢信息審核基本信息管理倉庫貨檢信息審核基本信息管理倉儲(chǔ)部主管登陸倉儲(chǔ)管理員入庫信息管理倉儲(chǔ)部主管登陸倉儲(chǔ)管理員入庫信息管理倉儲(chǔ)部信息管理在庫信息管理倉儲(chǔ)部信息管理在庫信息管理出庫信息管理出庫信息管理報(bào)表信息管理倉儲(chǔ)部系統(tǒng)維護(hù)報(bào)表信息管理倉儲(chǔ)部系統(tǒng)維護(hù)圖3-3總體用例圖①用戶從瀏覽器登陸用例用例名稱用戶登陸主題領(lǐng)域定義用戶登陸到系統(tǒng),進(jìn)入相應(yīng)的界面和獲得相應(yīng)的使用權(quán)限角色倉管員或主管業(yè)務(wù)觸發(fā)事件用戶準(zhǔn)備使用系統(tǒng)進(jìn)行業(yè)務(wù)處理或系統(tǒng)管理前置條件系統(tǒng)中已建立用戶名并分配了相應(yīng)權(quán)限結(jié)束條件成功條件:用戶登陸系統(tǒng)并取得相應(yīng)權(quán)限失敗條件:系統(tǒng)中無此用戶;用戶名、密碼錯(cuò)誤相關(guān)用例輸入概述用戶名、密碼、角色輸出概述本用例使用頻繁使用性備注用例備注主事件流Step系統(tǒng)/角色描述數(shù)據(jù)項(xiàng)備注1角色啟動(dòng)登陸程序2系統(tǒng)顯示登陸界面;提示用戶標(biāo)識和密鑰用戶名、密碼、角色3角色輸入用戶標(biāo)識和保密字,登陸系統(tǒng)4系統(tǒng)驗(yàn)證用戶是否合法、密字是否正確;返回相應(yīng)用戶界面、菜單如果否、或保密字不正確轉(zhuǎn)到A1。5分支事件流編號主流事件步驟角色/系統(tǒng)條件描述數(shù)據(jù)項(xiàng)轉(zhuǎn)去主流事件步驟備注A14系統(tǒng)不是合法用戶,用戶名、密碼錯(cuò)誤,用戶名和這密碼與角色不對應(yīng)返回登陸失敗信息登陸失敗信息2②供貨商信息查詢查詢用例概述用例名稱供貨商信息查詢主題領(lǐng)域供貨商信息查詢用例包定義供貨商信息檢索角色倉儲(chǔ)管理員理人員觸發(fā)事件進(jìn)行供貨商信息檢索前置條件有需要檢索的供貨商信息記錄結(jié)束條件成功條件:檢索到需要查詢的供貨商信息失敗條件:未檢索到需要查詢的供貨商信息相關(guān)用例輸入概述所需要查詢的供貨商信息輸出概述查詢結(jié)果使用性備注用例備注主事件流Step系統(tǒng)/角色描述數(shù)據(jù)項(xiàng)備注6角色進(jìn)入查詢界面7系統(tǒng)顯示查詢界面8角色輸入所需查詢的供貨商信息9系統(tǒng)查詢是否成功查詢成功如果查詢成功轉(zhuǎn)到A1;如果查詢不成功轉(zhuǎn)到A2。分支事件流NO主事件流Step角色/系統(tǒng)條件描述數(shù)據(jù)項(xiàng)轉(zhuǎn)去主事件流步驟備注A14系統(tǒng)完成供貨商信息查詢返回成功信息查詢的供貨商信息2A24系統(tǒng)未完成供貨商信息查詢返回失敗信息查詢失敗的信息提示2③供貨商信息修改用例用例名稱供貨商信息修改主題領(lǐng)域供貨商信息修改用例包用例定義供貨商信息修改角色倉儲(chǔ)管理員理人員業(yè)務(wù)觸發(fā)事件進(jìn)行供貨商信息修改前置條件有需要修改的供貨商信息記錄結(jié)束條件成功條件:失敗條件:檢索到需要修改的供貨商信息未檢索到需要修改的供貨商信息相關(guān)用例輸入概述所需要修改的供貨商信息輸出概述修改結(jié)果使用性備注用例備注主事件流Step系統(tǒng)/角色描述數(shù)據(jù)項(xiàng)備注10角色進(jìn)入修改界面11系統(tǒng)顯示修改界面12角色輸入所需修改的供貨商信息13系統(tǒng)修改是否成功修改成功如果修改成功轉(zhuǎn)到A1;如果修改不成功轉(zhuǎn)到A2。分支事件流NO主事件流Step角色/系統(tǒng)條件描述數(shù)據(jù)項(xiàng)轉(zhuǎn)去主事件流Step備注A14系統(tǒng)完成供貨商信息修改返回成功信息修改供貨商信息2A24系統(tǒng)沒有完成供貨商信息修改近回失敗信息修改失敗信息提示2④供貨商信息添加用例用例名稱供貨商信息增加主題領(lǐng)域供貨商信息增加用例包用例定義供貨商信息添加角色倉儲(chǔ)管理員理人員觸發(fā)事件供貨商信息添加前置條件有需要添加的供貨商信息結(jié)束條件成功條件:查詢到需要添加的供貨商信息失敗條件:未查到需要添加的供貨商信息相關(guān)用例輸入概述所需要添加的供貨商信息輸出概述添加結(jié)果使用性備注用例備注主事件流Step系統(tǒng)/角色描述數(shù)據(jù)項(xiàng)備注10角色進(jìn)入添加界面11系統(tǒng)顯示添加界面12角色輸入所需添加的供貨商信息13系統(tǒng)添加成功與否添加成功如果添加成功轉(zhuǎn)到A1;如果添加不成功轉(zhuǎn)到A2。分支事件流NO主事件流Step角色/系統(tǒng)條件描述數(shù)據(jù)項(xiàng)轉(zhuǎn)去主事件流Step備注A14系統(tǒng)完成供貨商信息添加返回成功信息添加的供貨商信息2A24系統(tǒng)沒有完成供貨商信息添加返回失敗信息添加失敗信息提示24數(shù)據(jù)庫設(shè)計(jì)4.1概述數(shù)據(jù)庫(DatabaseDesign)設(shè)計(jì)是依根據(jù)用戶的實(shí)際需要,在某一具體詳細(xì)的數(shù)據(jù)倉儲(chǔ)管理員的系統(tǒng)上,開發(fā)設(shè)計(jì)數(shù)據(jù)庫的構(gòu)造和創(chuàng)建數(shù)據(jù)庫的過程,其過程包括:需求分析Needsanalysis、概念設(shè)計(jì)ConceptDesign、邏輯設(shè)計(jì)LogicDesign、物理設(shè)計(jì)PhysicalDesign、驗(yàn)證設(shè)計(jì)Designverification五大步驟。4.2E-R圖要據(jù)要求,利用E-R實(shí)體關(guān)系圖來描述倉庫的概念模塊,如下圖4-1所示。零部件職員倉庫客戶裝配產(chǎn)品零部件職員倉庫客戶裝配產(chǎn)品人員編號數(shù)量入庫單編號庫房編號備注地址電話號碼責(zé)任人編號部件單編號信譽(yù)度編號編號編號組裝單編號部件單編號編號入庫單編號不合格品數(shù)量人員編號數(shù)量入庫單編號庫房編號備注地址電話號碼責(zé)任人編號部件單編號信譽(yù)度編號編號編號組裝單編號部件單編號編號入庫單編號不合格品數(shù)量供貨商編號姓名庫房編號成品編號供貨商編號供貨商編號姓名庫房編號成品編號供貨商編號庫房編號貨檢編號庫房編號庫房編號貨檢編號庫房編號不合格數(shù)量地址電話數(shù)量不合格數(shù)在庫貨檢日期不合格數(shù)量地址電話數(shù)量不合格數(shù)在庫貨檢日期在庫貨檢日期備注組裝日期入庫日期在庫貨檢日期備注組裝日期入庫日期貨檢員編號入庫日期貨檢日期數(shù)量貨檢員編號貨檢員編號入庫日期貨檢日期數(shù)量貨檢員編號圖4-1倉庫E-R系統(tǒng)圖圖4-1倉庫E-R系統(tǒng)圖(1)供貨商報(bào)告出庫組裝入庫報(bào)表編號庫房編號組裝編號供貨商報(bào)告出庫組裝入庫報(bào)表編號庫房編號組裝編號報(bào)表類型出庫單編號庫房編號庫房編號入庫日期入庫編號姓名供貨商編號報(bào)表類型出庫單編號庫房編號庫房編號入庫日期入庫編號姓名供貨商編號結(jié)束日期起始日期庫房編號提交人編號提交日期數(shù)量成品編號貨檢日期提交人編號信譽(yù)度性別結(jié)束日期起始日期庫房編號提交人編號提交日期數(shù)量成品編號貨檢日期提交人編號信譽(yù)度性別創(chuàng)建日期出庫單狀態(tài)審核日期組裝日期在庫貨檢日期入庫單狀態(tài)貨檢人編號地址電話號碼創(chuàng)建日期出庫單狀態(tài)審核日期組裝日期在庫貨檢日期入庫單狀態(tài)貨檢人編號地址電話號碼圖4-1倉庫E-R系統(tǒng)圖(2)審核人編號審核日期提交人編號客戶編號審核人編號主管編號主管編號審核日期圖4-1倉庫E-R系統(tǒng)圖(2)審核人編號審核日期提交人編號客戶編號審核人編號主管編號主管編號審核日期備注4.3數(shù)據(jù)表邏輯設(shè)計(jì),倉儲(chǔ)管理員理系統(tǒng)的數(shù)據(jù)庫是MySQL,如下表所示是表在數(shù)據(jù)庫中的邏輯表示。表4-1零部件的結(jié)構(gòu)字段名注釋類型長度是否為主鍵是否不為空_id編號INTEGER11√√Inbill_id入庫單號VARCHAR20Supplier_id供貨商號VARCHAR20Depot_id倉庫編號VARCHAR20Number數(shù)量INTEGER11Sumof_bad不合格數(shù)量INTEGER11Atcheck_date在庫貨檢時(shí)間DATE11√In_date入庫時(shí)間DATE11√Employee_id貨檢驗(yàn)編號char5表4-2產(chǎn)品的結(jié)構(gòu)字段名注釋類型長度是否為主鍵是否不為空_id編號INTEGER11√√Makebill_id組裝單編號VARCHAR20√Depot_id庫房編號VARCHAR20Check_id貨檢編號VARCHAR20Number數(shù)量INTEGER11Sumof_bad不合格數(shù)量INTEGER11Make_date組裝時(shí)間DATE11√Check_id貨檢時(shí)間DATE11√表4-3裝配產(chǎn)品的結(jié)構(gòu)字段名注釋類型長度是否為主鍵是否不為空_id編號INTEGER11√√Assembly_id部件單編號VARCHAR20√Product_id成品編號VARCHAR20表4-4客戶的結(jié)構(gòu)字段名注釋類型長度是否為主鍵是否不為空Customer_id編號VARCHAR20√√sex部件單編號VARCHAR20name姓名VARCHAR20credit信譽(yù)度INTEGER11phone電話號碼VARCHAR20address地址VARCHAR20remark備注VARCHAR20表4-5倉庫的結(jié)構(gòu)字段名注釋類型長度是否為主鍵是否不為空Depot_id庫房編號VARCHAR20√√Employee_id責(zé)任人編號VARCHAR20phone電話號碼VARCHAR20address地址VARCHAR20remark備注VARCHAR20表4-6職員的結(jié)構(gòu)字段名注釋類型長度是否為主鍵是否不為空Employee_id人員編號VARCHAR20√√Inbill_id入庫單編號VARCHAR20Supplier_id供貨商編號VARCHAR20Depot_id庫房編號VARCHAR20Number數(shù)量INTEGER11Sumof_bad不合格數(shù)INTEGER11Atcheck_date在庫貨檢時(shí)間DATE11√In_date入庫時(shí)間DATE11√Employee_id貨檢員編號VARCHAR5表4-7供貨商的結(jié)構(gòu)字段名注釋類型長度是否為主鍵是否不為空Supplier_id供貨商編號VARCHAR20√√name姓名VARCHAR20√sex性別VARCHAR20credit信譽(yù)度INTEGER11phone電話號碼VARCHAR20address地址VARCHAR20remark備注VARCHAR20表4-8入庫單結(jié)構(gòu)字段名注釋類型長度是否為主鍵是否不為空In_id入庫單編號VARCHAR20√√Depot_id庫房編號VARCHAR20Refer_date入庫時(shí)間DATE11Wh_id提交人編號VARCHAR20Check_date貨檢時(shí)間DATE11Ch_id貨檢人編號VARCHAR20√Audit_date審核時(shí)間VARCHAR11√M_id主管編號VARCHAR20In_state入庫單狀態(tài)VARCHAR20表4-9入庫清單結(jié)構(gòu)字段名注釋類型長度是否為主鍵是否不為空_id編號INTEGER11√√In_id入庫單編號VARCHAR20√Assembly_id部件編號VARCHAR20√Supplier_id供貨商編號VARCHAR20√N(yùn)umber數(shù)量INTEGER11Badnumber不合格數(shù)INTEGER11Good_rate合格率VARCHAR20表4-10組裝清單結(jié)構(gòu)字段名注釋類型長度是否為主鍵是否不為空Makebill_id組裝單編號VARCHAR20√√Depot_id庫房編號VARCHAR20Product_id成品編號VARCHAR20√N(yùn)umber數(shù)量INTEGER11Atcheck_date在庫貨檢日期DATE11√Make_date組裝時(shí)間DATE11Manager_id主管編號VARCHAR20√表4-11出庫單結(jié)構(gòu)字段名注釋類型長度是否為主鍵是否不為空Outbill_id出庫單編號VARCHAR20√√Depot_id庫房編號VARCHAR20Refer_date提交時(shí)間VARCHAR20Refer_id提交人編號VARCHAR20Audit_date審核時(shí)間DATE11Out_state出庫單狀態(tài)VARCHAR11Audit_id審核人編號VARCHAR20Customer_id客戶編號VARCHAR20√表4-12出庫清單結(jié)構(gòu)字段名注釋類型長度是否為主鍵是否不為空_id編號INTEGER11√√Outbill_id出庫單編號VARCHAR20√Product_id成品編號VARCHAR20√N(yùn)umber數(shù)量INTEGER11表4-13報(bào)告的結(jié)構(gòu)字段名注釋類型長度是否為主鍵是否不為空Report_id報(bào)表編號VARCHAR20√√Reporttype報(bào)表類型VARCHAR20√Depotid庫房編號VARCHAR20√beginDate起始時(shí)間DATE11√endDate線束時(shí)間DATE11√createTime創(chuàng)建時(shí)間DATE11√referId提交人編號VARCHAR20√checkState審核狀態(tài)VARCHAR20√checkDate審核時(shí)間DATE11AuditId審核人編號VARCHAR20表4-14詳細(xì)報(bào)告的結(jié)構(gòu)字段名注釋類型長度是否為主鍵是否不為空_id編號INTEGER11√√Report_id報(bào)表編號VARCHAR20√Depotid庫房編號VARCHAR20√goodsname貨品名稱VARCHAR40√goodstype貨品類型VARCHAR30√allnumber總數(shù)INTEGER11badnumber不合格數(shù)量INTEGER11Check_id審核人編號VARCHAR20√5系統(tǒng)功能的實(shí)現(xiàn)5.1系統(tǒng)功能簡述本課題研究的系統(tǒng)是基于Java技術(shù)的倉儲(chǔ)管理系統(tǒng),其主要包含三個(gè)模塊,基本信息數(shù)據(jù)、倉儲(chǔ)管理操作和幫助?;A(chǔ)數(shù)據(jù)用于設(shè)計(jì)一些基礎(chǔ)項(xiàng)目,庫存操作是對應(yīng)的入庫出庫一類對庫存所作的操作,幫助是對整個(gè)系統(tǒng)的簡單介紹。本系統(tǒng)使用成員的角色包含兩類,一類是倉儲(chǔ)部主管,另一類是普通的倉儲(chǔ)管理員,其中,倉儲(chǔ)部主管擁有整個(gè)倉儲(chǔ)系統(tǒng)的最高權(quán)限操作,倉儲(chǔ)部主管負(fù)責(zé)整個(gè)倉儲(chǔ)物流區(qū)域的日常運(yùn)作和維護(hù)管理等工作。5.2模塊化功能實(shí)現(xiàn)5.2.1登陸模塊的實(shí)現(xiàn)①登陸actionimportjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importjavax.servlet.http.HttpSession;importorg.apache.struts.action.Action;importorg.apache.struts.action.ActionForm;importorg.apache.struts.action.ActionForward;importorg.apache.struts.action.ActionMapping;importcom.javateam3.struts.form.LoginForm;importmon.dao.LoginService;/***MyEclipseStruts*Creationdate:01-30-2015**XDocletdefinition:*@struts.actionpath="/login"name="loginForm"input="/webpage/login.jsp"scope="request"validate="true"*/publicclassLoginActionextendsAction{publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){LoginFormloginForm=(LoginForm)form;try{StringuserName=loginForm.getUser_name().trim();Stringpsw=loginForm.getPsw().trim();LoginServiceloginService=newLoginService();HttpSessionsession=request.getSession(true);if(loginService.login(userName,psw)){session.setAttribute("username",userName);//如果登錄成功把登錄的名字放在session中以便在過濾器中判斷returnmapping.findForward("loginSuccess");//返回到登陸成功頁面}else{session.invalidate();request.setAttribute("loginError","用戶或者密碼錯(cuò)誤!!");//返回到錯(cuò)誤頁面returnmapping.findForward("loginError");}}catch(Exceptione){e.printStackTrace();}returnnull;}}②登陸過濾器Importjava.io.IOException;importjavax.servlet.Filter;importjavax.servlet.FilterChain;importjavax.servlet.FilterConfig;importjavax.servlet.ServletException;importjavax.servlet.ServletRequest;importjavax.servlet.ServletResponse;importjavax.servlet.http.*;publicclassSecurityAndDenyimplementsFilter{publicvoiddestroy(){//注銷時(shí)調(diào)用}publicvoiddoFilter(ServletRequestreq,ServletResponseresp,FilterChainchain)throwsIOException,ServletException{HttpServletRequestrequest=(HttpServletRequest)req;HttpServletResponseresponse=(HttpServletResponse)resp;HttpSessionsession=request.getSession(false);//取出來session如果沒有得到空值if(session==null||session.getAttribute("username")==null){//判斷是否登錄過如果沒有就重定向到登陸頁面Stringtemp="你還沒登陸請重新登陸!!";temp=.URLEncoder.encode(temp.toString(),"utf-8");response.sendRedirect("http://localhost:8080/JT03EtpLgtWebProject03/login.jsp?loginErr="+temp);return;}//如果登錄了就進(jìn)入請求頁面chain.doFilter(req,resp);}publicvoidinit(FilterConfigarg0)throwsServletException{//初始化時(shí)調(diào)用的方法}}③登陸DAOpublicBooleanlogin(StringuserName,Stringpsw){Employeeemployee=newEmployee();employee.setPsw(psw)employee.setUserName(userName);Listresults=findByExample(employee);intlength=results.size();if(length==1){returntrue;}else{returnfalse;}}5.2.2供貨商模塊的實(shí)現(xiàn)①供貨商查詢Actionpackagecom.javateam3.whmsys.manager.basicinfo.supplyerinfo.action;importjava.util.List;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.struts.action.Action;importorg.apache.struts.action.ActionForm;importorg.apache.struts.action.ActionForward;importorg.apache.struts.action.ActionMappingimportmon.PageBean;importcom.javateam3.whmsys.manager.basicinfo.supplyerinfo.form.QueryForm;importcom.javateam3.whmsys.manager.basicinfo.supplyerinfo.service.SupplierService;importmon.pojo.Supplier;importmon.utils.Tool;publicclassQueryActionextendsAction{publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{QueryFormqueryForm=(QueryForm)form;SupplierServicess=newSupplierService();PageBeanpageBean=newPageBean();Listlist=null;//存放查出來的spplier對象StringcrrPage=request.getParameter("cp");intcurrentPage=pageBean.getCurrentPage();intlineSize=pageBean.getLineSize();Suppliersupplier=change(queryForm);if(crrPage!=null){currentPage=Integer.parseInt(crrPage);}else{intallRecorders=ss.getCount(supplier);Tool.setALLRECORDERS(allRecorders);Tool.setPAGESIZE((allRecorders+lineSize-1)/lineSize);pageBean.setAllRecorders(allRecorders);pageBean.setPageSize((allRecorders+lineSize-1)/lineSize);}list=ss.queryByExample(supplier,currentPage,lineSize);pageBean.setCurrentPage(currentPage);request.setAttribute("pageBean",pageBean);request.setAttribute("list",list);//把查詢出來的supplier對象放在request里returnmapping.findForward("supplierResult");//把form表單里的東西轉(zhuǎn)化為supplier對象publicSupplierchange(QueryFormqueryForm){Suppliersupplier=newSupplier();if(queryForm.getSupplierId()!=null&&!queryForm.getSupplierId().equals(""))supplier.setSupplierId(queryForm.getSupplierId());if(queryForm.getAddress()!=null&&!queryForm.getAddress().equals(""))supplier.setAddress(queryForm.getAddress());if(queryForm.getName()!=null&&!queryForm.getName().equals(""))supplier.setName(queryForm.getName());if(queryForm.getCredit()!=null&&!queryForm.getCredit().equals(""))supplier.setCredit(queryForm.getCredit());if(queryForm.getPhone()!=null&&!queryForm.getPhone().equals(""))supplier.setPhone(queryForm.getPhone());if(queryForm.getRemark()!=null&&!queryForm.getRemark().equals(""))supplier.setRemark(queryForm.getRemark());returnsupplier;}}②供貨商修改Actionimportjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.struts.action.Action;importorg.apache.struts.action.ActionForm;importorg.apache.struts.action.ActionForward;importorg.apache.struts.action.ActionMapping;importmon.pojo.Supplier;importcom.javateam3.whmsys.manager.basicinfo.supplyerinfo.form.ModifyForm;importcom.javateam3.whmsys.manager.basicinfo.supplyerinfo.service.SupplierService;publicclassModifyActionextendsAction{publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){ModifyFormmodifyForm=(ModifyForm)form;suppliersupplier=newSupplier();supplier.setAddress(modifyForm.getAddress());supplier.setAddress(modifyForm.getAddress());supplier.setName(modifyForm.getName());supplier.setPhone(modifyForm.getPhone());supplier.setPhone(modifyForm.getPhone());supplier.setRemark(modifyForm.getRemark());supplier.setSupplierId(modifyForm.getSupplierId());SupplierServicess=newSupplierService();try{ss.upDate(supplier);returnmapping.findForward("success");}catch(Exceptione){e.printStackTrace();returnmapping.findForward("error");}}}③供貨商添加Actionimportjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;importorg.apache.struts.action.Action;importorg.apache.struts.action.ActionMapping;importmon.pojo.Supplier;importcom.javateam3.whmsys.manager.basicinfo.supplyerinfo.form.AddForm;importcom.javateam3.whmsys.manager.basicinfo.supplyerinfo.service.SupplierService;publicclassAddActionextendsAction{publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse){AddFormaddForm=(AddForm)form;Suppliersupplier=newSupplier();supplier.setAddress(addForm.getAddress());supplier.setCredit(addForm.getCredit());supplier.setName(addForm.getName());supplier.setPhone(addForm.getPhone());supplier.setPhone(addForm.getPhone());supplier.setSupplierId(addForm.getSupplierId());SupplierServicess=newSupplierService();try{ss.insert(supplier);returnmapping.findForward("success");}catch(Exceptione){e.printStackTrace();returnmapping.findForward("error");}}}供貨商DAOpackagecom.javateam3.whmsys.manager.basicinfo.supplyerinfo.dao;importjava.util.ArrayList;importjava.util.List;importorg.hibernate.Criteria;importorg.hibernate.LockMode;importorg.hibernate.Query;importorg.hibernate.Session;importorg.hibernate.Transaction;importorg.hibernate.criterion.Example;importmon.dao.BaseHibernateDAO;importmon.pojo.Supplier;importmon.utils.UtilGetExample;publicclassSupplierDAOextendsBaseHibernateDAO{publicstaticfinalStringNAME="name";publicstaticfinalStringNAME="name";publicstaticfinalStringPHONE="phone";publicstaticfinalStringCREDIT="credit";publicstaticfinalStringREMARK="remark";publicstaticfinalStringSUPPLIERID="supplierId";publicvoidsave(SuppliertransientInstance){Transactiontransaction=null;try{Sessionsession=getSession();transaction=session.beginTransaction();session.save(transientInstance);mit();session.close();}catch(Exceptionre){}}publicvoidupDate(SuppliertransientInstance)throwsException{try{Sessionsession=getSession();Transactiontransaction=session.beginTransaction();session.update(transientInstance);mit();session.close();}catch(RuntimeExceptionre){throwre;}}publicSupplierfindById(java.lang.Stringid){try{Sessionsession=getSession();Transactiontransaction=session.beginTransaction();Supplierinstance=(Supplier)session.get("mon.pojo.Supplier",id);session.close();returninstance;}catch(RuntimeExceptionre){throwre;}}publicintgetCount(Supplierinstance)throwsException{if(instance.getSupplierId()!=null){Suppliersupplier=findById(instance.getSupplierId());if(supplier!=null){retur
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025河南師范大學(xué)2025年招聘員額制工作人員(碩士)4人(公共基礎(chǔ)知識)綜合能力測試題附答案
- 2025安徽六安金寨縣紀(jì)委監(jiān)委(含縣委巡察機(jī)構(gòu))選調(diào)公務(wù)員10人備考題庫附答案
- 2025山西陽泉人才發(fā)展集團(tuán)招聘服務(wù)工作人員19人考前自測高頻考點(diǎn)模擬試題附答案
- 2025廣東深圳市眼科醫(yī)院招聘5人備考題庫附答案
- AI在氣候變化建模中的應(yīng)用:技術(shù)原理與實(shí)踐案例
- 2026上半年新疆巴州女兵征集開始筆試備考試題及答案解析
- 2026重慶工信職業(yè)學(xué)院招聘12人筆試參考題庫及答案解析
- 2025秋人教版道德與法治八年級上冊5.3友善待人課件
- 2025廣東佛山大學(xué)附屬第三醫(yī)院招聘事業(yè)單位聘用制(編制)工作人員36人(第一批)筆試模擬試題及答案解析
- 2026四川自貢醫(yī)元健康管理有限責(zé)任公司招聘工作人員11人筆試備考試題及答案解析
- 中國痤瘡治療指南
- 居民自建樁安裝告知書回執(zhí)
- 老同學(xué)聚會(huì)群主的講話發(fā)言稿
- 國家開放大學(xué)最新《監(jiān)督學(xué)》形考任務(wù)(1-4)試題解析和答案
- 天然氣輸氣管線陰極保護(hù)施工方案
- 高血壓問卷調(diào)查表
- GB/T 25156-2010橡膠塑料注射成型機(jī)通用技術(shù)條件
- GB/T 25085.3-2020道路車輛汽車電纜第3部分:交流30 V或直流60 V單芯銅導(dǎo)體電纜的尺寸和要求
- GB/T 242-2007金屬管擴(kuò)口試驗(yàn)方法
- GB/T 21776-2008粉末涂料及其涂層的檢測標(biāo)準(zhǔn)指南
- 全新版尹定邦設(shè)計(jì)學(xué)概論1課件
評論
0/150
提交評論