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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、摘要中小食品批發公司在我國經濟發展中具有重要的地位,目前我國的中小食品批發公司數量多,隨著全球經濟一體化的發展和電子商務的興起,中小食品批發公司之間的競爭越來越激烈,很多食品批發商為了資金周轉靈活,都以多頻率小貨量的方式來進貨,因此帶來大量工作量及成本等的增加。為了提高工作效率降低成本,減少工作量,開發本系統。本系統使用JSP編寫,采用Ajax、JQuery異步刷新技術和Struts2、Hibernate、Spring三大框架,使用Oracle設計數據庫。該系統主要實現系統用戶管理、食品管理、供應商和訂貨商管理,銷售訂單的制單、發貨和進貨訂單的制單、入庫。關鍵詞:食品;訂單;管理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 開發背景11.2 研究內容1第2章 需求分析3第3章 總體設計53.1系統模塊設計53.2 數據庫設計7第4章 詳細設計114.1 系統登錄界面設計114.2 系統主界面設計124.3 功能模塊設計13第5章 測試28總 結30參考文獻31附錄1 核心源代碼32附錄2 用戶操作方法44致 謝46第1章 課題簡介 1.1 開發背景在我國數量眾多的食品批發公司中,中小食品批發公司占了絕大多數,這些食品批發公司也不可避免地要加入國際化食品批發公司的競爭行列,而實現食品批發公司信息化是參與競爭的必要條件,但是中小食品公司的多樣性及其靈活多變的經營方式,加上其資

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

45、,北京: 人民郵電出版社,(2010):356-3597 宮云戰,軟件測試教程 M,北京:機械工業出版社,(2008):911附錄1 核心源代碼1.application.xml(Spring配置文件,這個文件主要是用來配置系統數據庫連接等信息)<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數據源 -

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><!-配置事務管理器 ref 應該和上面的jdbc數據源的id相同 -><bean id="txManager" class="org.springframework.jdbc.datas

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

52、.*Service.*(.)"/> <!- 在aop中配置引用通知 -> <aop:advisor advice-ref="txAdvice" pointcut-ref="entryPointMethod" order="2"/> <!- 配置切面 (刪掉around)執行表達式同上-> <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開頭的方法 ,只讀(即不開啟事務)-&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配置文件,這個文件主要是用來配置頁面轉發)<?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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論