食品進銷存管理系統(tǒng)_第1頁
食品進銷存管理系統(tǒng)_第2頁
食品進銷存管理系統(tǒng)_第3頁
食品進銷存管理系統(tǒng)_第4頁
食品進銷存管理系統(tǒng)_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、摘要中小食品批發(fā)公司在我國經(jīng)濟發(fā)展中具有重要的地位,目前我國的中小食品批發(fā)公司數(shù)量多,隨著全球經(jīng)濟一體化的發(fā)展和電子商務(wù)的興起,中小食品批發(fā)公司之間的競爭越來越激烈,很多食品批發(fā)商為了資金周轉(zhuǎn)靈活,都以多頻率小貨量的方式來進貨,因此帶來大量工作量及成本等的增加。為了提高工作效率降低成本,減少工作量,開發(fā)本系統(tǒng)。本系統(tǒng)使用JSP編寫,采用Ajax、JQuery異步刷新技術(shù)和Struts2、Hibernate、Spring三大框架,使用Oracle設(shè)計數(shù)據(jù)庫。該系統(tǒng)主要實現(xiàn)系統(tǒng)用戶管理、食品管理、供應(yīng)商和訂貨商管理,銷售訂單的制單、發(fā)貨和進貨訂單的制單、入庫。關(guān)鍵詞:食品;訂單;管理Abstrac

2、tThe development of small and medium enterprises in Chinas a large number of SMEs companies appear with the development of global economic integration and the rise of e-commerce,the companies between small and medicem-sized enterprises seems more and more fiere. To make the cash flow quickly, many d

3、istributors choose to use more frequencies but small amount to purchase,due to it which brings a large workload and add much money on prime cost. To improve the work the efficiency, and reduce the workload, so explore this system.The system is written in JSP, the main application of the Ajax, Jquery

4、, and Strust2, Hibernate, Spring these three framework and the Oracle design database. The software mainly healizes the Aolministor Management, Food Management, Suppliers and Orders management, making Sales orders deliver and stock goods, finally put in storage.Key words: food;order; manage目 錄摘 要IAB

5、STRACTII第1章 課題簡介11.1 開發(fā)背景11.2 研究內(nèi)容1第2章 需求分析3第3章 總體設(shè)計53.1系統(tǒng)模塊設(shè)計53.2 數(shù)據(jù)庫設(shè)計7第4章 詳細設(shè)計114.1 系統(tǒng)登錄界面設(shè)計114.2 系統(tǒng)主界面設(shè)計124.3 功能模塊設(shè)計13第5章 測試28總 結(jié)30參考文獻31附錄1 核心源代碼32附錄2 用戶操作方法44致 謝46第1章 課題簡介 1.1 開發(fā)背景在我國數(shù)量眾多的食品批發(fā)公司中,中小食品批發(fā)公司占了絕大多數(shù),這些食品批發(fā)公司也不可避免地要加入國際化食品批發(fā)公司的競爭行列,而實現(xiàn)食品批發(fā)公司信息化是參與競爭的必要條件,但是中小食品公司的多樣性及其靈活多變的經(jīng)營方式,加上其資

6、金投入量的限制,使得很多中小食品批發(fā)公司沒能進行信息化建設(shè)。實際上大部分中小食品批發(fā)公司需要的只是能解決食品進、銷、存管理和財務(wù)管理等的基礎(chǔ)軟件。因此,開發(fā)基于中小食品批發(fā)公司應(yīng)用的進銷存管理系統(tǒng)尤為重要。而隨著社會的不斷發(fā)展,計算機被廣泛應(yīng)用于各行各業(yè)之中。用計算機管理軟件對公司業(yè)務(wù)進行管理更是一種行業(yè)發(fā)展趨勢,也是衡量一個國家技術(shù)發(fā)展水平的標志。利用計算機管理不但可以提升工作效率,還可以節(jié)省人力物力,增強數(shù)據(jù)準確性、實時性和有效性。因此在食品批發(fā)公司使用計算機管理軟件進行進貨、銷售、庫存等管理是非常必要的。當前,隨著經(jīng)濟的全球化以及中國經(jīng)濟改革的逐漸深入,食品批發(fā)業(yè)面臨著越來越激烈的競爭,

7、改善公司內(nèi)部以及整個供應(yīng)鏈各個環(huán)節(jié)的管理、調(diào)度及資源配置,具備迅速適應(yīng)客戶的新需求和市場新機遇的能力,是中國公司贏得競爭勝利的決定性因素。為了適應(yīng)發(fā)展需要設(shè)計本系統(tǒng)。1.2 研究內(nèi)容高科技的發(fā)展,軟件管理系統(tǒng)成為工作的得力助手。今天,計算機價格越來越大眾化,管理軟件性能越來越優(yōu)秀,逐漸被應(yīng)用于眾多領(lǐng)域。管理軟件廣泛普及應(yīng)用的原因主要有以下幾個方面:第一,計算機行業(yè)本身發(fā)展迅速;第二,計算機可以代替人工進行繁雜和重復(fù)性的工作;第三,管理軟件可以節(jié)省許多資源;第四,管理軟件可以提高人們的工作效率;第五,管理軟件便于管理人員的管理。本食品進銷存管理系統(tǒng)是基于先進的軟件和高速、大容量的硬件基礎(chǔ)上的新的

8、進銷存管理模式,做到通過集中式的信息數(shù)據(jù)庫,將公司的進貨、銷售、存儲等經(jīng)營業(yè)務(wù)有機的結(jié)合起來,大大減少公司管理部門的勞動量,改善公司內(nèi)部以及整個供應(yīng)鏈各個環(huán)節(jié)的管理、調(diào)度及資源配置,使得管理合理規(guī)范。系統(tǒng)盡量合理的控制物流,尤其是食品庫存的控制,將食品數(shù)量控制到只在需要的時候向需要的部門按需要的數(shù)量提供所需要的食品,也就是說,它既防止食品供應(yīng)滯后于對他們的需求,也防止食品過早地進貨,以免增加庫存,造成物資和資金的積壓,實現(xiàn)食品銷售的全方面管理。通過系統(tǒng)實現(xiàn)從基礎(chǔ)數(shù)據(jù)維護、進貨直到銷售后利潤統(tǒng)計的一系列功能。簡化手工勞動的繁雜性、降低人工勞動強度、提高數(shù)據(jù)的時效性、提高工作效率、降低經(jīng)營成本,為

9、管理層決策提供強有力的支持。本系統(tǒng)還要考慮到經(jīng)濟、技術(shù)和運行環(huán)境等方面的條件,來確定系統(tǒng)的總體結(jié)構(gòu)和系統(tǒng)各組成部分的技術(shù)方案,把系統(tǒng)用戶與訂單、食品的關(guān)系確定好。將系統(tǒng)用戶的權(quán)限限制為單一獨立的,這樣可以讓權(quán)限在分配的時候互不干擾。第2章 需求分析根據(jù)對一般中小食品批發(fā)公司的調(diào)查研究,其對系統(tǒng)的日常經(jīng)營管理需求分析為:批發(fā)公司準備進貨時由進貨員制作進貨訂單,制單時先選擇食品,輸入食品數(shù)量,之后選擇食品供應(yīng)商,最后確認制單。進貨的食品到貨后倉庫員再入庫,并對食品數(shù)量進行調(diào)整,然后財務(wù)員付款完成交易。食品訂貨商予訂購食品時,通過電話與批發(fā)公司的銷售員聯(lián)系,由銷售員制作銷售訂單,制單時先選擇食品、輸

10、入數(shù)量,之后選擇訂貨商確認制單。制單完成后倉庫員發(fā)貨,發(fā)貨后對食品數(shù)量進行調(diào)整,之后銷售員送貨并收款,最后財務(wù)員確認收款完成交易。倉庫管理中,對食品庫存、食品庫存金額進行記錄。記錄供應(yīng)商及訂貨商中消費金額或積分。1.具體任務(wù)根據(jù)調(diào)查分析,該系統(tǒng)完成如下具體任務(wù):(1)系統(tǒng)用戶管理:系統(tǒng)用戶信息管理、分配系統(tǒng)用戶角色。(2)進貨訂單流程:進貨員選擇食品,選擇供應(yīng)商,倉庫管理員入庫,制單員確認完成交易。(3)銷售訂單流程:銷售員選擇訂貨商,選擇食品、倉庫管理員發(fā)貨、分銷員確認付款、收款員確認收款、交易完成。(4)食品管理:管理食品類別信息、食品品牌信息、食品名稱、食品數(shù)量和食品單價信息、食品庫存(

11、5)訂貨商管理:用于維護訂貨商的編號、名稱、聯(lián)系人、地址、電話、積分額度等基本信息。(6)供應(yīng)商管理:用于維護供應(yīng)商的編號、名稱、地址、電話、消費金額等的基本信息。2.系統(tǒng)用例模型用例模型是面向?qū)ο蠓治雠c設(shè)計的概念模型,一般用于前期的需求研究以及項目范圍的控制、功能的分析,主要描述系統(tǒng)用戶可以對哪些模塊或者子模塊進行操作1。根據(jù)上面的任務(wù)分析,繪制本系統(tǒng)用例模型,本系統(tǒng)的用例模型如圖21所示。圖21 食品進銷存管理系統(tǒng)用例模型第3章 總體設(shè)計經(jīng)過需求分析之后,進入總體設(shè)計階段??傮w設(shè)計其目標是產(chǎn)生一個模塊化的程序結(jié)構(gòu),根據(jù)需求分析階段的工作,從用例模型得出可行方案,同時確定系統(tǒng)中每個程序由哪些

12、模塊組成及其相互關(guān)系2。經(jīng)分析,系統(tǒng)共分為RBAC管理菜單、進貨訂單管理、銷售訂單管理、客戶管理、倉庫管理5大模塊。以上各模塊按層次劃分子模塊,每個子模塊完成相應(yīng)功能,且每個子模塊具有單獨入口單獨出口。3.1系統(tǒng)模塊設(shè)計1.RBAC管理菜單模塊包括用戶管理一個子模塊。實現(xiàn)對系統(tǒng)用戶登錄賬號、密碼、用戶姓名、性別、激活狀態(tài)信息進行增加、修改、刪除、查詢、設(shè)置用戶角色功能。此模塊中封裝角色權(quán)限。RBAC管理菜單模塊功能結(jié)構(gòu)圖如圖31所示。RBAC管理菜單用戶管理圖31 RBAC管理菜單模塊功能結(jié)構(gòu)圖進貨訂單管理經(jīng)理操作入庫管理進貨訂單2.進貨訂單管理模塊包括進貨訂單、入庫管理、經(jīng)理操作三個子模塊。

13、進貨訂單實現(xiàn)創(chuàng)建進貨訂單、編輯訂單、查詢個人創(chuàng)建的訂單。在創(chuàng)建訂單時,進貨員先選擇食品、輸入食品個數(shù),之后選擇供應(yīng)商完成訂單的創(chuàng)建。入庫管理實現(xiàn)進貨訂單明細查詢、入庫確認。經(jīng)理操作實現(xiàn)所有訂單的查看和創(chuàng)建進貨訂單。進貨訂單管理模塊功能結(jié)構(gòu)圖如圖32所示。圖32 進貨訂單模塊功能結(jié)構(gòu)圖3.銷售訂單管理模塊包括訂單管理、訂單發(fā)貨管理、確認訂單交易、經(jīng)理操作四個子模塊。訂單管理實現(xiàn)創(chuàng)建銷售訂單、修改訂單、查詢個人訂單、確認付款功能。創(chuàng)建銷售訂單時需要操作員選擇食品、輸入食品數(shù)量,之后選擇分銷商完成訂單創(chuàng)建。訂單發(fā)貨管理實現(xiàn)銷售訂單查詢、發(fā)貨確認。確認訂單交易實現(xiàn)訂單檢索、確認此訂單交易完成。經(jīng)理操作

14、實現(xiàn)所有銷售訂單查詢、確認訂單交易完成。銷售訂單管理模塊功能結(jié)構(gòu)圖如圖33所示。銷售訂單管理經(jīng)理操作訂單發(fā)貨管理訂單管理確認訂單交易圖33 銷售訂單管理模塊功能結(jié)構(gòu)圖客戶管理訂貨商管理供應(yīng)商管理4.客戶管理模塊包括供應(yīng)商管理和訂貨商管理兩個子模塊。其中供應(yīng)商管理實現(xiàn)查詢供應(yīng)商、修改供應(yīng)商信息、新增供應(yīng)商、刪除供應(yīng)商。訂貨商管理實現(xiàn)查詢訂貨商、修改訂貨商信息、新增訂貨商、刪除訂貨商。客戶管理模塊功能結(jié)構(gòu)圖如圖34所示。圖34 客戶管理模塊功能結(jié)構(gòu)圖5.倉庫管理模塊包括食品管理、食品銷售記錄、食品類別、食品品牌四個子模塊。食品管理實現(xiàn)對食品的查詢、新增、刪除、編輯、食品明細,食品明細實現(xiàn)查詢顯示該

15、食品的進貨訂單信息。食品銷售記錄實現(xiàn)對該食品的銷售訂單查詢。食品類別實現(xiàn)食品類別的查詢、新增、修改、刪除功能。食品品牌實現(xiàn)食品品牌的查詢、新增、修改、刪除功能。倉庫管理模塊功能結(jié)構(gòu)圖如圖35所示。倉庫管理 食品品牌食品銷售記錄食品管理食品類別圖35 倉庫管理模塊功能結(jié)構(gòu)圖3.2 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫系統(tǒng)的使用過程是將現(xiàn)實世界的數(shù)據(jù)經(jīng)過人為加工和計算機處理之后,又為現(xiàn)實世界提供信息的過程3。根據(jù)前面的分析,對本系統(tǒng)進行如下數(shù)據(jù)庫設(shè)計。1.PURCHASEORDERDETAILSID(進貨訂單詳細信息表):用于存儲進貨訂單詳細信息,表結(jié)構(gòu)如表31所示。表31 PURCHASEORDERDETAILSI

16、D字段名字段類型長度小數(shù)位數(shù)是否允許空字段說明PURDETAILSIDNUMBER38否詳細進貨訂單idPURCHASERIDNUMBER38否進貨商PRODUCTNUMBER38否食品PRODUCTQUERYNUMBER38否訂貨數(shù)量PRODUCTPRICENUMBER72否食品單價PRODUCTMONEYNUMBER72否訂單總價SFRKVARCHAR26否是否入庫PURCHASEORDERIDNUMBER38否進貨訂單編號QRRKYNUMBER38是入庫員JHYNUMBER38否進貨員JYZTNUMBER38否訂單狀態(tài)2.PRODUCT(食品信息表):用于存儲食品基本信息,表結(jié)構(gòu)如表32

17、所示。表32 PRODUCT字段名字段類型長度小數(shù)位數(shù)是否允許空字段說明PRODUCTIDNUMBER38否食品idPRODUCTNUMVARCHAR220否食品編號PRODUCTSELLPRICENUMBER72否銷售單價PRODUCTSURPLUSNUMBER38是庫存量CATEGORYNUMBER38否類別PRODUCTNAMEVARCHAR250否食品名稱3.ORDER(銷售訂單信息表):用于存儲銷售訂單信息,表結(jié)構(gòu)如表33所示。表33 ORDER字段名字段類型長度小數(shù)位數(shù)是否允許空字段說明ORDERIDNUMBER38否訂單idORDERNUMVARCHAR216否訂單編號ORDER

18、TIMEDATE否制單時間ORDERMONEYNUMBER92否訂單總價CUSTOMNAMENUMBER38否訂貨商ORDERACTIVATEVARCHAR26否訂單狀態(tài)ORDERCONSIGNORNUMBER38否發(fā)貨員PAYMONEYVARCHAR26否是否付款EMPLOYEENUMBER38否制單員ORDERTIMEDELIVERYDATE否發(fā)貨時間ORDERACTUALCOSTMONEYNUMBER92否實際付款金額PAYMONETEMPNUMBER38否確認收款員JYZTVARCHAR26否交易狀態(tài)4.ORDERDETAILSID(銷售訂單詳細信息表):用于存儲銷售訂單詳細信息,表結(jié)

19、構(gòu)如表34所示。表34 ORDERDETAILSID字段名字段類型長度小數(shù)位數(shù)是否允許空字段說明ORDERDETNUMBER38否詳細訂單idORDERNUMNUMBER38否訂單編號PRODUCTNAMENUMBER38否食品PRODUCTQUERYNUMBER38否訂貨數(shù)量PRODUCTPRICENUMBER72否食品單價PRODUCTMONEYNUMBER72否訂單總價CATEGORYNUMBER38否食品類型BRANDNUMBER38否食品品牌PRODUCTBRANDNUMBER38否食品品牌5.PURCHASEORDER(進貨訂單信息表):用于存儲進貨訂單信息,表結(jié)構(gòu)如表35所示。表

20、35 PURCHASEORDER字段名字段類型長度小數(shù)位數(shù)是否允許空字段說明PURCHASEIDNUMBER38否進貨訂單idPURCHASEIDVARCHAR216否進貨訂單號PURCHASEMONEYNUMBER92否訂單總額PURCHASETIMEDATE否制單時間PURCHASERNUMBER38否進貨商PURCHASERACTIVATEVARCHAR26否訂單狀態(tài)PUREMPLOYEENUMBER38否制單員JYZTVARCHAR26否交易狀態(tài)QUERENEMPNUMBER38否確認人6.EMPLOYEE(系統(tǒng)用戶表):用于存儲系統(tǒng)用戶信息,表結(jié)構(gòu)如表36所示。表36 EMPLOYE

21、E字段名字段類型長度小數(shù)位數(shù)是否允許空字段說明IDNUMBER38否用戶idEIDVARCHAR217否用戶登錄名ENAMEVARCHAR216-否用戶名PASSWORDVARCHAR212-否密碼BIRTHDAYDATE否出生日期GENDERVARCHAR2否性別ACTIVATENUMBER1否用戶狀態(tài)VISITDATE6否上次登錄時間WORKBIRTHDAYDATE6否入職時間YJNUMBER82是業(yè)績DEPTVARCHAR230否部門ROLEVARCHAR230否角色AUTHVARCHAR230否權(quán)限7.PURCHASER(供應(yīng)商信息表):用于存儲供應(yīng)商的基本信息,表結(jié)構(gòu)如表37所示。表

22、37 PURCHASER 字段名字段類型長度小數(shù)位數(shù)是否允許空字段說明PIDNUMBER38否供應(yīng)商idPURNAMEVARCHAR250否供應(yīng)商名稱PURUSERVARCHAR210是聯(lián)系人PURTELVARCHAR250是電話PURADDVARCHAR2200是地址8.CUSTOMER(訂貨商信息表):用于存儲訂貨商的信息,表結(jié)構(gòu)如表38所示。表38 CUSTOMER字段名字段類型長度小數(shù)位數(shù)是否允許空字段說明CUSTOMIDNUMBER38否訂貨商idCUSTOMNAMEVARCHAR250否姓名CUSTOMTELVARCHAR250是電話CUSTOMADDVARCHAR250是地址JF

23、NUMBER38是積分XYNUMBER3是信用評價9.BRAND(食品品牌信息表):用于存儲食品品牌信息,表結(jié)構(gòu)如表39所示。表39 BRAND字段名字段類型長度小數(shù)位數(shù)是否允許空字段說明BIDNUMBER38否食品品牌idBRANDNAMEVARCHAR250否食品品牌名稱10. GATEGORY(食品類別表):用于存儲食品的類別,表結(jié)構(gòu)如表310所示。表310 GATEGORY字段名字段類型長度小數(shù)位數(shù)是否允許空字段說明CATEGORYIDNUMBER38否食品類別idCATEGORYNAMEVARCHAR250否食品類別名稱第4章 詳細設(shè)計4.1 系統(tǒng)登錄界面設(shè)計系統(tǒng)設(shè)計過程中采用了js

24、p技術(shù),jsp技術(shù)是目前企業(yè)級應(yīng)用網(wǎng)絡(luò)管理系統(tǒng)最流行的技術(shù)之一4。登錄界面的設(shè)計過程是先創(chuàng)建一個名為login.jsp的頁面,然后在頁面中添加一個表格,在表格中添加兩個文本框用于輸入用戶名和密碼,將文本框的id和name屬性分別設(shè)置為loginname和password,并提供一個登錄按鈕用于讓用戶提交表單。在后臺,創(chuàng)建個LoginAction的Struts2控制器類,用于處理用戶登錄,通過struts2功能,取出loginname和password的值,之后把值添加到hql語句中去數(shù)據(jù)庫查詢,在LoginAction中設(shè)置一個名為error的域成員,用于登錄失敗時提示用戶,如果登錄,將用戶的

25、id,及用戶擁有的權(quán)限全部存入到session中,用于權(quán)限分配。系統(tǒng)登錄界面如圖41所示。圖41 系統(tǒng)登錄界面4.2 系統(tǒng)主界面設(shè)計系統(tǒng)主界面是系統(tǒng)用戶登錄后進入的界面,設(shè)計過程是先新建一個名為main.jsp的頁面,通過框架對界面進行設(shè)計。左面引用的界面為menu.jsp,用于顯示當前登錄用戶名稱的標簽,及本系統(tǒng)的各個功能模塊的入口鏈接。當用戶單擊左側(cè)各個功能模塊時,架框右則會通過超鏈接跳轉(zhuǎn)到各自相應(yīng)的操作界面。系統(tǒng)主界面如圖42所示。圖42 系統(tǒng)主界面4.3 功能模塊設(shè)計系統(tǒng)后臺設(shè)計過程中采用了java語言設(shè)計,java語言的優(yōu)點是一次編譯到處運行,可移植能力非常強,只需開發(fā)人員在自己的計

26、算機上編譯后,在其它計算機上就可以運行5。1.進貨訂單管理界面進貨訂單管理界面為purorder/list.jsp。在頁面中插入一個表格,用于顯示進貨訂單相應(yīng)信息,每一行提供“修改”、“完成”和“配置”的超鏈接按鈕以進行相對應(yīng)操作。后臺創(chuàng)建PurchaseOrderAction的Struts2控制器類,該類定義了檢索、修改、創(chuàng)建訂單、配置訂單的供應(yīng)商功能。條件檢索功能由PurchaseOrderAction中的域成員對應(yīng)檢索條件,單擊“檢索”時ddbh(訂單編號)、dddate(制單日期)、wcdate(完成日期)通過struts2進行賦值,之后把值添加到hql語句中去數(shù)據(jù)庫檢索,可進行單一條

27、件或多條件檢索。系統(tǒng)中進貨訂單編號是由后臺PurOrderAction類完成的,前兩位“jh”表示進貨訂單,之后八位為當天日期,最后四位為當日訂單個數(shù)。進貨訂單管理界面如圖43所示。圖43 進貨訂單管理界面2.進貨訂單經(jīng)理操作界面進貨訂單經(jīng)理操作界面為purorder/jlcz.jsp。在頁面中插入一個表格,用于顯示所有進貨訂單相應(yīng)信息,每行提供“修改”、“完成”和“配置”的超鏈接按鈕以進行相對應(yīng)操作。后臺創(chuàng)建PurchaseOrderAction的Struts2控制器類,該類定義了檢索、修改、創(chuàng)建訂單,配置訂單的供應(yīng)商等。條件檢索功能由PurchaseOrderAction中的域成員對應(yīng)檢索

28、條件,單擊“檢索”時ddbh(訂單編號)、dddate(制單日期)、wcdate(完成日期)通過struts2進行賦值,之后把值添加到hql語句中去數(shù)據(jù)庫檢索,可進行單一條件或多條件檢索。進貨訂單管理經(jīng)理操作界面如圖44所示。圖44 進貨訂單管理經(jīng)理操作界面3.進貨訂單創(chuàng)建界面單擊進貨訂單管理界面中的“創(chuàng)建訂單”進入進貨訂單創(chuàng)建界面。進貨訂單創(chuàng)建界面為purorder/table.jsp。使用ajax技術(shù)實現(xiàn)選擇食品,每行提供“刪除”按鈕,通過ajax技術(shù)實現(xiàn)異步刷新,單擊“刪除”后該行直接刪除。單擊“保存”按鈕,執(zhí)行PurchaseOrderAction中的save方法,來確認保存訂單食品。

29、進貨訂單創(chuàng)建界面如圖45所示。圖45 進貨訂單創(chuàng)建界面4.進貨食品選擇界面單擊進貨訂單創(chuàng)建界面中的“選擇食品”進入進貨食品選擇界面。進貨食品選擇界面為purorder/selectTable.jsp。在頁面中插入一個表格,表格顯示食品的相應(yīng)信息,通過ajax來傳遞到進貨訂單創(chuàng)建界面,并且用PurchaseOrderAction中的productIds域成員來保存食品id,將選過的食品框變?yōu)椴豢蛇x,防止用戶重復(fù)選擇食品。之后通過PurchaseOrderDetailsAction中save方法保存訂單。進貨食品選擇界面如圖46所示。圖46 進貨食品選擇界面5.銷售訂單管理界面銷售訂單管理界面為o

30、rder/list.jsp。在頁面中插入一個表格,表格顯示銷售訂單相應(yīng)信息。條件檢索功能由OrderAction中的域成員對應(yīng)檢索條件,單擊“檢索”時ddbh(訂單編號)、dddate (制單日期)、wcdate (發(fā)貨日期)、customId (訂貨商)、employeeId (發(fā)貨員)通過struts2進行賦值,之后把值添加到hql語句中去數(shù)據(jù)庫查詢,可單一條件伙伴多條件檢索。銷售訂單編號是由后臺OrderAction的類完成的,“dd”表示銷售訂單,之后八位是當天日期,最后四位是當日銷售訂單個數(shù),在查詢時,OrderAction中獲取session中的登錄id,只查詢該id創(chuàng)建的訂單。銷

31、售訂單管理界面如圖47所示。圖47 銷售訂單管理界面6.銷售訂單編輯界面系統(tǒng)設(shè)計過程中采用了Ajax技術(shù),其作用是提供網(wǎng)頁瀏覽者與網(wǎng)頁內(nèi)容的交互,并可以進行信息驗證,可實現(xiàn)異步刷新頁面6。單擊銷售訂單管理界面中的“編輯”進入銷售訂單編輯界面,銷售訂單編輯界面為order/table.jsp。在頁面中插入一個表格,表格顯示銷售訂單明細信息。當輸入購買數(shù)量時使用ajax技術(shù)自動取出食品單價與食品數(shù)量的值并算出所需金額。單擊“保存”時通過OrderDetailsAction中的save方法來保存該訂單,保存訂單時從session中取出該用戶id。銷售訂單編輯界面如圖48所示。圖48 銷售訂單編輯界面

32、7.訂單發(fā)貨管理界面訂單發(fā)貨管理界面為dispathorder/list.jsp。在頁面中插入一個表格,表格顯示銷售訂單相關(guān)信息。上方檢索功能由后臺DispathOrderAction中的域成員對應(yīng)檢索條件,單擊“檢索”時ddbh(訂單編號)、dddate(制單日期)、custom(訂貨商)、employee(發(fā)貨員)、activate(訂單狀態(tài))、paymoney(付款狀態(tài))、wczt(交易狀態(tài))條件通過struts2功能自動對其賦值。單擊每行訂單時,DispathOrderAction的類中的orderList域成員的信息可在其下面顯示,再次單擊則隱藏。訂單發(fā)貨管理界面如圖49所示。圖49

33、 訂單發(fā)貨管理界面8.銷售訂單經(jīng)理操作界面銷售訂單經(jīng)理操作界面為dispathorder/jlcz.jsp。在頁面中插入一個表格,表格顯示所有銷售訂單相應(yīng)信息。上方檢索功能由后臺DispathOrderAction中的域成員對應(yīng)檢索條件,單擊“檢索”時ddbh(訂單編號)、dddate(制單日期)、custom(訂貨商)、employee(發(fā)貨員)、activate(訂單狀態(tài))、paymoney(付款狀態(tài))、wczt(交易狀態(tài))、fdate(發(fā)貨日期)、fxyId(分銷員)、skyId(收款員)條件通過struts2功能自動對其賦值??砂磫我换蚨鄺l件進行檢索。單擊每行訂單時,檢索其明細在下面顯

34、示,再次單擊則隱藏。銷售訂單經(jīng)理操作界面如圖410所示。圖410 銷售訂單經(jīng)理操作界面9.供應(yīng)商管理界面供應(yīng)商管理界面為purchaser/list.jsp。在頁面中插入一個表格,表格顯示供應(yīng)商信息。后臺使用PurchaserAction類中的add、edit、list、delete等方法來實現(xiàn)對供應(yīng)商的新增、修改、刪除、檢索。供應(yīng)商管理界面如圖411所示。圖411 供應(yīng)商管理界面10.新增供應(yīng)商界面單擊供應(yīng)商管理界面中的“新增供應(yīng)商”進入新增供應(yīng)商界面,新增供應(yīng)商界面為purchaser/edit.jsp。在頁面中插入一個表格插入三個文本框,設(shè)置其id和name屬性,單擊“保存”按鈕時pur

35、chasername(供應(yīng)商名稱)、purchasertel(供應(yīng)商電話)、purchaseradd(供應(yīng)商地址)通過struts2的功能賦值,將值傳到后臺PurchaserAction類中的相對應(yīng)域成員中,之后用save方法保存供應(yīng)商。新增供應(yīng)商界面如圖412所示。圖412 新增供應(yīng)商界面11.訂貨商管理界面訂貨商管理界面為custom/list.jsp。在頁面中插入一個表格,表格顯示供應(yīng)商信息。后臺使用CustomAction類中的add、edit、delete、list方法來實現(xiàn)對訂貨商的新增、修改、刪除、檢索。訂貨商管理界面如圖413所示。圖413 訂貨商管理界面12.新增訂貨商界面單

36、擊訂貨商管理界面中的“新增訂貨商”進入新增訂貨商界面,新增訂貨商界面為custom/edit.jsp。在頁面中插入一個表格插入三個文本框,設(shè)置其id和name屬性,單擊“保存”按鈕時customname(訂貨商名稱)、customtel(訂貨商電話)、customadd(訂貨商地址)通過struts2的功能賦值,將值傳到后臺CustomAction類中的相對應(yīng)域成員中,之后用save方法保存訂貨商信息。新增訂貨商界面如圖414所示。圖414 新增訂貨商界面13.食品管理界面食品管理界面為product/list.jsp。在頁面中插入一個表格,表格顯示食品信息。在后臺建立ProductActio

37、n的類,使用里面的list、add、edit、mingxi、delete方法來實現(xiàn)對食品信息的檢索、新增、編輯、明細查詢、刪除操作。上方檢索功能由后臺ProductAction中的域成員對應(yīng)檢索條件,單擊“檢索”時productname(商品名稱)、category(食品類型)、brand(食品品牌)、productquery(商品數(shù)量)條件通過struts2功能自動對其賦值??砂磫我换蚨鄺l件進行食品檢索。食品管理界面如圖415所示。圖415 食品管理界面14.食品銷售記錄界面食品銷售記錄界面為product/profit.jsp。在頁面中插入一個表格,表格顯示食品銷售信息。單擊每行時,在后臺

38、使用ProductAction類中的spxiaoshou的方法在該行下方顯示該食品的銷售訂單,再單擊則隱藏。上方檢索功能由后臺ProductAction中的域成員對應(yīng)檢索條件,單擊“檢索”時productname(商品名稱)、category(食品類型)、brand(食品品牌)、pxff(排序方法)條件通過struts2功能自動對其賦值??砂磫我换蚨鄺l件進行食品檢索。食品銷售記錄界面如圖416所示。圖416 食品銷售記錄界面15.員工管理界面員工管理界面為employee/list.jsp。在頁面中插入一個表格,表格顯示員工信息。在后臺使用EmployeeAction類中的list、edit、

39、save、delete、saverole方法來實現(xiàn)對員工的檢索、編輯、保存、刪除、設(shè)置角色操作。上方檢索功能由后臺EmployeeAction中的域成員對應(yīng)檢索條件,單擊“檢索”時empname(員工名)條件通過struts2功能自動對其賦值。最后訪問時間是在退出登錄的時候通過后臺的logoutAction類來修改的。員工管理界面如圖417所示。圖417 員工管理界面16.員工新增界面單擊員工管理界面中的“增加員工”進入員工新增界面,員工新增界面為employee/edit.jsp。單擊“新增員工”按鈕時通過Employee類中的edit方法彈出該界面。在頁面中插入一個表格三個文本框、一個單選

40、按鈕和一個select下拉列表,并且分別設(shè)置其id和name屬性。手動輸入用戶信息單擊“保存”時,通過struts2功能將值傳入后臺EmployeeAction類中的loginname、password、empname、gender、activate域成員,再調(diào)用save方法來保存員工信息。員工新增界面如圖418所示。圖418 員工新增界面第5章 測試系統(tǒng)測試的重要性體現(xiàn)在它是保證系統(tǒng)質(zhì)量與可靠性的最后關(guān)口,是對整個系統(tǒng)開發(fā)過程包括系統(tǒng)分析、系統(tǒng)設(shè)計和系統(tǒng)實現(xiàn)的最終審查。系統(tǒng)測試的對象顯然不僅僅是源程序,而應(yīng)是整個軟件,它把系統(tǒng)分析、系統(tǒng)設(shè)計、以及程序設(shè)計各階段的開發(fā)文檔,都作為測試的對象。軟

41、件測試不等于程序測試,它是根據(jù)軟件開發(fā)各個階段的規(guī)格說明和程序的內(nèi)容結(jié)構(gòu)而精心設(shè)計的一批測試用例,并利用這些用例去運行程序,以發(fā)現(xiàn)程序錯誤的過程7。單元測試是指程序中的一個模塊或一個子程序,是程序運行的最小單元,或是程序最小的獨立編譯單位。單元測試是軟件開發(fā)過程中進行的最低級別的測試活動,其目的是要檢測程序模塊中有無故障。1.創(chuàng)建銷售訂單測試測試數(shù)據(jù):可口可樂的購買數(shù)量5,統(tǒng)一綠茶的購買數(shù)量不填。測試界面如圖51所示。圖51 創(chuàng)建銷售訂單測試界面測試結(jié)果:可口可樂購買數(shù)量下方提示“此貨物購買數(shù)量不能大于庫存量”,統(tǒng)一綠茶購買數(shù)量下方提示“食品個數(shù)必須填寫”,測試結(jié)果與預(yù)期結(jié)果相符。2.新增用戶

42、測試測試數(shù)據(jù):所有數(shù)據(jù)全部正確填寫、全部不填寫或部分填寫。測試結(jié)果:所有數(shù)據(jù)全部正確填寫后單擊“提交”可以成功新增加一新用戶,全部不填寫或部分填寫不能成功增加用戶,并給出相應(yīng)的提示信息,與預(yù)期結(jié)果相符。數(shù)據(jù)均不填寫的測試界面如圖52所示。圖52 新增員工測試界面3.用戶登錄測試測試數(shù)據(jù):填寫正確用戶名和密碼,錯誤用戶名和錯誤密碼。測試結(jié)果:正確時點擊登錄,進入系統(tǒng)主界面。用戶名密碼錯誤時,密碼下方提示“登錄失敗”。登錄失敗提示界面如圖53所示。圖53 登錄失敗提示界面本系統(tǒng)對所有模塊都進行了單元測試,經(jīng)測試各模塊均可以完成預(yù)期的相應(yīng)功能???結(jié)短暫的畢業(yè)設(shè)計結(jié)束了,我在這次設(shè)計過程中實現(xiàn)了對過

43、去所學(xué)知識的回顧、總結(jié)和應(yīng)用。本管理系統(tǒng)能夠?qū)崿F(xiàn)數(shù)據(jù)的輸入、查詢、修改、刪除、統(tǒng)計等功能,能夠追朔到數(shù)據(jù)的始終,完成了食品進銷存管理系統(tǒng)從需求方面的開發(fā)和應(yīng)用,達到預(yù)期的目的。不可否認,該系統(tǒng)的功能還不完善,仍存在許多的缺點和不足,例如,在計算利潤時,是以平均價格來進行計算利潤,用庫存金額除以庫存數(shù)量,之后用售出單價減去平均進價來計算,正規(guī)方法應(yīng)該是在食品進貨訂單中加標注,賣出的食品到相對應(yīng)的進貨訂單中檢索出進貨價格,進行計算利潤;還有用戶部門沒有進行分配,這個缺點是在需求分析時沒有寫進去,之后總體設(shè)計的時候也沒有考慮到,導(dǎo)致用戶沒有部門的缺陷,但是此缺陷可以在今后升級中修復(fù);另外在選擇供應(yīng)商

44、時候,應(yīng)該可以查詢出該供應(yīng)商都能供應(yīng)哪些食品,這個缺陷是當時調(diào)研時未考慮到,經(jīng)過老師指點才發(fā)現(xiàn)的,此缺陷也可在升級程序過程中修復(fù)。參考文獻1 張俊蘭,王文發(fā),馮伍,軟件工程(第一版)M,西安:西安交通大學(xué)出版社,(2009):41442 劉竹林,軟件工程案例開發(fā)與實踐M,北京:清華大學(xué)出版社,(2009):2629 3 王立福,數(shù)據(jù)庫系統(tǒng)概論(第三版)M,北京:北京大學(xué)出版社,(2009):894 劉曉華,JSP應(yīng)用開發(fā)詳解 M,北京:電子工業(yè)出版社,(2007):75 趙毅,跨平臺程序設(shè)計語言Java M,西安:西安電子科技大學(xué)出版社,(2006):156 阮文江,Ajax 程序設(shè)計應(yīng)用 M

45、,北京: 人民郵電出版社,(2010):356-3597 宮云戰(zhàn),軟件測試教程 M,北京:機械工業(yè)出版社,(2008):911附錄1 核心源代碼1.application.xml(Spring配置文件,這個文件主要是用來配置系統(tǒng)數(shù)據(jù)庫連接等信息)<beans xmlns="/schema/beans" xmlns:xsi="/2001/XMLSchema-instance" xmlns:context="http:/www.springframewo

46、/schema/context" xmlns:tx="/schema/tx" xmlns:aop="/schema/aop" xsi:schemaLocation=" /schema/tx/spring-tx-3.0.xsd" default-autowire="byName" ><!- 配置jdbc數(shù)據(jù)源 -

47、> <bean id="myDataSource" class="mons.dbcp.BasicDataSource" destroy-method="close"><property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/><property name="url" value="jdbc:oracle:thin::1521:

48、liufei"/><property name="username" value="ddgl"/><property name="password" value="ddgl"/></bean><!-配置hibernate 抽象工廠 -><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean&q

49、uot;><property name="dataSource" ref="myDataSource" /><property name="mappingLocations"><!- 如果你有很多hbm 寫起來很累 -><list><value>classpath:/com/material/hbm/*.hbm.xml</value></list></property><property name="hibernate

50、Properties"><value>hibernate.show_sql = truehibernate.cache.use_second_level_cache=truehibernate.cache.use_query_cache=true </value></property></bean><!-配置事務(wù)管理器 ref 應(yīng)該和上面的jdbc數(shù)據(jù)源的id相同 -><bean id="txManager" class="org.springframework.jdbc.datas

51、ource.DataSourceTransactionManager"> <property name="dataSource" ref="myDataSource"/> </bean> <!- 配置Aop -> <aop:config> <!- 配置切入點,即攔截哪些方法, 執(zhí)行表達式改成當前的-> <aop:pointcut id="entryPointMethod" expression="execution(* com.material

52、.*Service.*(.)"/> <!- 在aop中配置引用通知 -> <aop:advisor advice-ref="txAdvice" pointcut-ref="entryPointMethod" order="2"/> <!- 配置切面 (刪掉around)執(zhí)行表達式同上-> <aop:aspect id="profilingAspect" ref="profiler"> <aop:pointcut id=&quo

53、t;serviceMethodWithReturnValue" expression="execution(* com.material.*Service.*(.)"/> </aop:aspect> </aop:config> <!- 配置參考通知 -> <tx:advice id="txAdvice" transaction-manager="txManager"> <tx:attributes><!- 以get開頭的方法 ,只讀(即不開啟事務(wù))-&g

54、t; <tx:method name="get*" read-only="true"/> <tx:method name="*"/> </tx:attributes> </tx:advice><!- 配置注解 -> <context:component-scan base-package="com.material"/> <context:annotation-config/></beans>2.Struts.xml(

55、Struts2配置文件,這個文件主要是用來配置頁面轉(zhuǎn)發(fā))<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-/Apache Software Foundation/DTD Struts Configuration 2.1/EN" "/dtds/struts-2.2.dtd"><struts> <package name="default&qu

56、ot; extends="struts-default"> <action name='*Action' class='1Action'> <result name='login'>/main/master.jsp</result> <result name='dist'>/orders/list.jsp</result> <result name='list'>/1/list.jsp</result> &

57、lt;result name='edit'>/1/edit.jsp</result> <result name='add'>/1/add.jsp</result> <result name='ordersEdit'>/orders/uptable.jsp</result> <result name='purchEdit'>/purchaseOrder/uptable.jsp</result> <result name='orderDetails'>/orders/table.jsp</result> <result name='s

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論