基于java百货中心供应链管理系统(含源文件)
歡迎添加微信互相交流學習哦!
項目源碼:https://gitee.com/oklongmm/biye
百貨中心供應鏈管理系統
?
百貨中心供應鏈管理系統
摘要
近年來,隨著計算機技術的發展,以及信息化時代下企業對效率的需求,計算機技術與通信技術已經被越來越多地應用到各行各業中去。百貨中心作為物流產業鏈中重要的一環,為了應對新興消費方式的沖擊,從供貨到銷售的各個環節也迫切地需要實現信息化、自動化。而上面所提到的這些環節,在二十世紀中期后被稱為“供應鏈”,也是在本世紀初才在中國受到關注的一門新興科學。
本文就百貨中心供應鏈管理系統的設計與開發展開論述,按照軟件工程開發的實際步驟,依次對該項目的可行性分析、需求分析、概要設計、詳細設計、系統實現以及系統測試分別進行闡述。
在查閱了各界媒體資料、分析了國內外供應鏈管理系統的基礎上,經過認真學習與不懈探索,利用J2EE技術和Mysql數據庫,最終完成了百貨中心供應鏈管理系統的開發,并經過一系列測試及試用,達到了最初的設計目標。
關鍵詞:供應鏈,軟件工程,J2EE
?
supply chain management system of department store
Abstract
In recent years, with the development of computer technology, and the enterprise is in great demand of efficiency in the information era, computer technology and information technology has been increasingly applied to all walks of life. Department store is an important part of logistics industry chain, in order to cope with the emerging consumer's impact, from supplying marketing, every aspect needs to implement informatization and automation urgently. These aspects mentioned above came to be known as the "supply chain" in the middle of twentieth Century, which is a new science not attached attention from China until the beginning of this century.
In this paper, the design and development of supply chain management system of department store is described and analyzed, according to the actual steps of software engineering, ?the project feasibility analysis, demand analysis, outline design, detailed design, system implementation and system test are described individually.?
Under the base of consulting the media data, analyzing the supply chain management system at home and abroad. After study and exploration, ?finally the development of supply chain management system of department store is completed using J2EE technology and Mysql database. With a series of tests, the system has met the original design goals.
Key words: supply chain, software engineering,J2EE ?
目錄
1引言?? ?1
1.1課題背景?? ?1
1.2目的和意義?? ?2
1.3研究內容和組織結構?? ?2
2開發工具及技術?? ?3
2.1開發工具?? ?3
2.2使用技術?? ?4
3可行性分析?? ?6
3.1法律的可行性?? ?6
3.2經濟的可行性?? ?6
3.3技術的可行性?? ?6
4需求分析?? ?7
4.1系統功能分析?? ?7
4.1.1經理用例圖?? ?7
4.1.2人事部員工用例圖?? ?7
4.1.3采購部員工用例圖?? ?8
4.1.4物資部員工用例圖?? ?8
4.1.5銷售部員工用例圖?? ?9
4.2功能模塊需求分析?? ?9
4.3數據流圖?? ?10
4.3.1頂層數據流圖?? ?10
4.3.2一層數據流圖?? ?10
4.4數據字典?? ?11
4.4.1數據項的描述?? ?11
4.4.2數據流的描述?? ?12
4.4.3描述外部實體?? ?14
5系統設計?? ?15
5.1系統結構設計?? ?15
5.2系統子模塊功能介紹?? ?15
5.3數據庫設計?? ?16
5.3.1數據庫概念設計(E-R模型)?? ?16
5.3.2數據庫表結構設計?? ?17
6系統實現?? ?20
6.1系統登錄界面?? ?22
6.2登錄成功界面?? ?23
6.3人事管理界面?? ?25
6.4合作公司管理界面?? ?26
6.5采購管理界面?? ?28
6.6庫存管理界面?? ?31
6.7銷售管理界面?? ?34
6.8經營統計界面?? ?35
7系統測試?? ?35
7.1測試目的?? ?35
7.2測試方法?? ?36
7.3測試結果?? ?36
8總結?? ?37
參考文獻?? ?38
致謝?? ?39
?
1 ?引言
1.1 ?課題背景
隨著國內物流行業的迅速發展,越來越多的企業認識到了“供應鏈”一詞的含義以及它對整個企業物流活動的重大意義,于是,“供應鏈管理”也逐漸受到了大家的重視。供應鏈管理主要涉及到四個領域:供應、生產計劃、物流、需求[1]。職能領域主要包括產品工程、產品技術保證、采購、生產控制、庫存控制、倉儲管理、分銷管理[2]。在供應鏈管理中涉及到如此廣泛、復雜的物流活動,要對其進行統籌、控制絕非易事,這也是我國企業目前在供應鏈管理中亟待解決的難題。與此同時,互聯網和網絡技術的進步為我們解決這一問題提供了方案,借助互聯網及互聯網技術,企業各個物流階段的大量數據可以得到及時傳輸,并通過日益成熟的算法或處理手段實現對這些數據的準確分析,從而指導企業的物流活動或對未來做出預測。百貨中心作為現在物流以及商業中的重要一環,為了應對新興消費方式的沖擊,其供應鏈模式自然也有統籌優化的必要,同時,Internet和網絡技術的飛速發展也為供應鏈的管理提供了新的手段。
SCM(Supply Chain Management)系統即供應鏈管理系統,利用計算機和Internet的優點,將供應鏈中的信息流加以收集并控制,只需要少量的人工,便可實現對整個供應鏈進行監管[3]。
國際上研究供應鏈主要是開始于二戰后期的物流管理,主要從多級庫存以及生產-分銷的角度來研究供應鏈的優化問題。從最初的物流管理到供應鏈管理,再到如今把供應鏈增長到戰略管理來研究,花費了半個多世紀的時間。國內對供應鏈的研究起步較晚,國內一些企業對于供應鏈管理的認識比較膚淺,直到1997年以后,隨著各種有關供應鏈方面的研究和報道增多,人們對物流領域的這一新鮮事物的關注也逐漸升溫,直到今天,許多國外的知名公司如IBM、SAP都能為企業的供應鏈管理提供一整套的解決方案,國內近些年也出現了許多解決企業供應鏈管理問題的公司和軟件[1]。但總體來說,對于這一門相對還很年輕的科學,我們還有很長的路要走。
隨著我國經濟結構調整的深入,對企業節能減排的要求更加嚴格,企業只有通過強化環境保護的自我約束機制,來降低產品和生產過程相關的環境污染所帶來的生產經營風險。綠色供應鏈管理能使整個供應鏈的資源消耗和環境負作用最小,并能有效滿足日益增長的綠色消費需求,從而提高供應鏈的競爭力。
因此,實施綠色供應鏈管理是企業發展的必然趨勢,這對我國供應鏈管理行業提出了更高的要求。
1.2 ?目的和意義
對于課題-百貨中心供應鏈管理系統,在了解了傳統SCM的基礎上,結合了計算機及Internet技術的優點,旨在于簡化操作,提高效率,提高數據、信息的安全程度,為企業及其員工提供一個更加便捷高效的工作環境。
與傳統僅僅利用表格、賬目來實現對供應鏈的管理,基于Web的百貨中心供應鏈管理系統具有如下優點:
1)?? ?信息存放在數據庫中,安全穩定,便于備份;
2)?? ?不同職位的員工都可以使用一套系統,節約成本、方便管理;
3)?? ?基于Web的辦公系統,方便員工維護,無地域限制;
4)?? ?利用計算機將不同數據整合,方便企業管理、進行決策。
1.3 ?研究內容和組織結構
本文主要通過對百貨中心供應鏈管理系統進行需求分析,結合供應鏈管理的相關理論,設計出供應鏈管理系統的各個功能模塊,并對其做出一定的說明指導,方便使用者進行操作。
系統的主要研究內容包括:
1)?? ?百貨中心供應鏈管理系統的可行性分析
研究供應鏈管理相關方面的知識,了解百貨中心供應鏈的運作模式及現狀,分析確定開發本系統的必要性和可行性。
2)?? ?系統需求分析
確定業務流程,分析數據流向,完成數據流圖和系統用例圖的繪制,完成數據字典的制作。
3)?? ?系統概要/詳細設計
根據需求分析階段的結果,以提高百貨中心各層員工的工作效率為目的,將整個系統分成若干個小模塊,通過設計、編寫代碼實現不同功能,完成數據庫的搭建,最后將整個系統進行整合。
4)?? ?系統測試
對完成的系統進行條件許可下的測試,對系統的安全性、穩定性、容錯性進行評估。
本文組織結構:
1)?? ?引言部分-闡述本系統的該項研究的目的和范圍,以及該項研究工作在國民經濟中的實用價值與理論意義;本文所要解決的問題;論文內容安排等。
2)?? ?開發工具及技術分析-對于本系統開發將要用到的開發工具及技術進行簡單的說明,并分析其優勢。
3)?? ?系統需求分析-分析系統業務流程,為整個系統的設計開發打下基礎。
4)?? ?概要/詳細設計-依據前文的分析進一步設計系統的各模塊功能,為一些比較有難度的部分提供解決方案。
5)?? ?系統實現及測試-描述系統各模塊的功能并展示部分關鍵代碼,并且完成一些簡單的數據錄入測試。
2 ?開發工具及技術
2.1 ?開發工具
本設計主要利用MyEclipse和Tomcat服務器,加上Mysql數據庫進行開發,同時使用Maven來輔助、簡化開發。下面對使用到的開發工具進行簡要的介紹。
1)?? ?MyEclipse
MyEclipse企業級工作平臺(MyEclipse Enterprise Workbench,簡稱MyEclipse)是一個功能豐富的JavaEE開發環境,包括了完備的編碼、調試、測試和發布功能,完整支持HTML, Struts, JSP, CSS, Javascript, SQL, Hibernate[4]。它是對EclipseIDE的擴展,是一個十分優秀的用于開發Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常強大,支持也十分廣泛,尤其是對各種開源產品的支持都十分不錯[5]。
2)?? ?Tomcat
Tomcat服務器是一個免費的開放源代碼的Web應用服務器,它屬于輕量級應用服務器,在中小型系統和并發訪問用戶不是很多的場合下被普遍使用,十分符合本項目的需求[6]。Tomcat運行時占用的系統資源小,擴展性好,支持負載平衡與郵件服務等開發應用系統常用的功能,并且它仍在不斷地改進和完善中,因此十分受程序員的青睞。
3)?? ?Mysql
Mysql是最流行的關系型數據庫管理系統,在WEB應用方面MySQL是最好的RDBMS(Relational Database Management System:關系數據庫管理系統)應用軟件之一[7]。MySQL所使用的SQL語言是用于訪問數據庫的最常用標準化語言。MySql使用C和C++編寫,并使用了多種編譯器進行測試,保證源代碼的可移植性;支持多種操作系統;為多種編程語言提供了API;支持多線程,充分利用CPU資源;提供TCP/IP、ODBC和JDBC等多種數據庫連接途徑;可以處理擁有上千萬條記錄的大型數據庫[8]。
4)?? ?Maven
Maven是基于項目對象模型(POM),可以通過一小段描述信息來管理項目的構建,報告和文檔的軟件項目管理工具。Maven是一個項目管理工具,它包含了一個項目對象模型 (Project Object Model),一組標準集合,一個項目生命周期(Project Lifecycle),一個依賴管理系統(Dependency Management System),和用來運行定義在生命周期階段(phase)中插件(plugin)目標(goal)的邏輯。當你使用Maven的時候,你用一個明確定義的項目對象模型來描述你的項目,然后Maven可以應用橫切的邏輯,這些邏輯來自一組共享的(或者自定義的)插件。
2.2 ?使用技術
1)?? ?JSP
JSP, 全名為Java Server Pages,是由SunMicrosystems公司倡導、許多公司參與一起建立的一種動態技術標準[9]。在傳統的網頁HTML文件中加入Java程序片段和JSP標簽,就構成了JSP網頁java程序片段可以操縱數據庫、重新定向網頁以及發送E-mail等,實現建立動態網站所需要的功能。所有程序操作都在服務器端執行,網絡上傳送給客戶端的僅是得到的結果,這樣大大降低了對客戶瀏覽器的要求,即使客戶瀏覽器端不支持Java,也可以訪問JSP網頁。
JSP的根本是一個簡化的Servlet設計,他實現了Html語法中的java擴張(以 <%, %>形式)。JSP與Servlet一樣,是在服務器端執行的。通常返回給客戶端的就是一個HTML文本,因此客戶端只要有瀏覽器就能瀏覽[10]。Web服務器在遇到訪問JSP網頁的請求時,首先執行其中的程序段,然后將執行結果連同JSP文件中的HTML代碼一起返回給客戶端。插入的Java程序段可以操作數據庫、重新定向網頁等,以實現建立動態網頁所需要的功能。
2)?? ?SSH框架
SSH 為 struts + spring + hibernate的一個集成框架,是目前較流行的一種Web應用程序開源框架[11]。集成SSH框架的系統從職責上分為四層:表示層、業務邏輯層、數據持久層和域模塊層,以幫助開發人員在短期內搭建結構清晰、可復用性好、維護方便的Web應用程序。其中使用Struts作為系統的整體基礎架構,負責MVC的分離,在Struts框架的模型部分,控制業務跳轉,利用Hibernate框架對持久層提供支持,Spring做管理,管理struts和hibernate。
采用上述開發模型,不僅實現了視圖、控制器與模型的徹底分離,而且還實現了業務邏輯層與持久層的分離[12]。這樣無論前端如何變化,模型層只需很少的改動,并且數據庫的變化也不會對前端有所影響,大大提高了系統的可復用性。而且由于不同層之間耦合度小,有利于團隊成員并行工作,大大提高了開發效率。
3)?? ?Tiles
Tiles 是一種JSP布局框架,主要目的是為了將復數的jsp頁面作為一個的頁面的部分機能,然后用來組合成一個最終表示用頁面用的,這樣的話,便于對頁面的各個機能的變更及維護。 Tiles使得struts在頁面的處理方面多了一種選擇。并且更容易實現代碼的重用。
4)?? ?JavaScript
JavaScript是一種基于對象和事件驅動并具有相對安全性的客戶端腳本語言[13]。同時也是一種廣泛用于客戶端Web開發的腳本語言,常用來給HTML(標準通用標記語言的子集)網頁添加動態功能,比如響應用戶的各種操作, 是一種動態、弱類型、基于原型的語言,內置支持類。在HTML基礎上,使用JavaScript可以開發交互式Web網頁[14]。JavaScript的出現使得網頁和用戶之間實現了一種實時性的、動態的、交互性的關系,使網頁包含更多活躍的元素和更加精彩的內容。JavaScript的一個重要功能就是面向對象的功能,通過基于對象的程序設計,可以用更直觀、模塊化和可重復使用的方式進行程序開發。
3 ?可行性分析
在進行系統開發時,會受到來自時間、資源等多方面的限制,因此,在每一個項目開發開始之前,首先進行系統的可行性分析就顯得十分重要,它可以減少項目開發的風險,避免人力、物力、財力的浪費[15]。下面將就法律、經濟和技術三方面對本項目進行討論。
3.1 ?法律的可行性
百貨中興供應鏈管理系統是自主開發的管理系統,開發過程中使用的開發工具及技術都是免費的,開源的,不存在侵權的問題,所有的源代碼都是親自編寫或直接由工具自動生成,沒有使用他人的項目成果或方案,因此在法律上是可行的。
3.2 ?經濟的可行性
本系統所使用的開發工具都是開源的,為開發軟件節省了大量的金錢和時間,采用的技術也是完全開放的、免費的,達到了降低成本的目的。軟件對企業的硬件需求也不高,市場上的中低檔計算機也可以符合使用要求,同時由于利用了互聯網,比一般的供應鏈管理系統更加經濟、效率。
3.3 ?技術的可行性
系統使用的開發工具是MyEclipse、Maven和Mysql數據庫,工具免費且小巧,安裝方便,簡單易學。并且采用了目前十分流行的J2EE技術,因而有很多途徑找到相關的學習資料,在大學期間我也學習了許多相關的知識,包括對于數據庫和編程思想的學習,使得在這個項目中更容易上手,能夠迅速投入到系統的設計開發中去。
4 ?需求分析
4.1 ?系統功能分析
經過對百貨中心供銷流程的了解和對供應鏈管理相關資料的分析,決定將系統用戶分成五類不同的用例,系統應根據用例的不同職能實現不同的功能,經過分析,系統應具備人事管理、合作公司管理、采購訂單管理、庫存管理、銷售管理、經營統計六大功能模塊。具體用例圖如下:
4.1.1 ?經理用例圖
經理用例-經理應是百貨中心的最高負責人之一,負責百貨中心大部分的業務管理及監督工作,必要時也可以完成所有其他用例的操作,地位相當于系統管理員,具有最高權限。
?
圖4.1 經理用例圖
4.1.2 ?人事部員工用例圖
人事部員工用例-人事部員工主要操作系統的人事管理模塊,同時也可以進入經營統計模塊查看。
?
圖4.2人事部員工用例圖
4.1.3 ?采購部員工用例圖
采購部員工用例-采購部員工主要負責操作系統的合作公司管理模塊和采購訂單管理模塊,同時也可以進入經營統計模塊查看。
?
圖4.3采購部員工用例圖
4.1.4 ?物資部員工用例圖
物資部員工用例-物資部員工主要負責操作系統的庫存管理模塊,同時也可以進入經營統計模塊查看。
?
圖4.4物資部員工用例圖
4.1.5 ?銷售部員工用例圖
銷售部員工用例-物資部員工主要負責操作系統的銷售管理模塊,同時也可以進入經營統計模塊查看。
?
圖4.5銷售部員工用例圖
4.2 ?功能模塊需求分析
考慮到用戶可能對計算機操作不是十分熟悉,本系統應具備操作簡便、界面友好的特點,再結合系統分析的結論,本系統還應增加一個登錄模塊以實現不同用例登錄系統后可以進行不同的操作,具體分析如下:
1)?? ?系統界面簡潔大方,使用簡便,有友好的操作提示信息;
2)?? ?系統具有一定的安全性,避免惡意操作對系統及數據造成損害;
3)?? ?貼近實際用戶的工作情況,對一些關鍵數據提供打印、保存功能;
4)?? ?系統應具備登錄、人事管理、合作公司管理、采購訂單管理、庫存管理、銷售管理、經營統計七大功能。
4.3 ?數據流圖
根據之前的分析,繪制數據流圖。
4.3.1 ?頂層數據流圖
用戶通過輸入用戶名和密碼,來實現用戶登錄,登錄失敗時會給出相應的提示并留在登錄頁面,登錄成功后可以順利進入供應鏈管理系統。
?
圖4.6 系統頂層數據流圖
4.3.2 ?一層數據流圖
成功登錄的用戶可以進入不同的模塊完成相應的操作,根據登錄用戶的身份不同,可以進行的操作也會不同。
?
圖4.7 系統第一層數據流圖
4.4 ?數據字典
數據字典的作用是對數據流圖中的各種成分進行詳細說明,作為數據流圖的細節補充,和數據流圖一起構成完整的系統需求模型[16]。數據字典一般應包括對數據項,數據結構、數據存儲和數據處理的說明。以下列出本系統的主要數據字典條目。
4.4.1 ?數據項的描述
表4.1 用戶信息數據項描述
數據項?? ?類型?? ?長度?? ?值范圍
ID?? ?數字?? ?11?? ?00000000000至99999999999之間
用戶名?? ?文本?? ?255?? ?最多255個字符
密碼?? ?文本?? ?255?? ?最多255個字符
表4.2 合作公司數據項描述
數據項?? ?類型?? ?長度?? ?值范圍
ID?? ?數字?? ?11?? ?00000000000至99999999999之間
公司名?? ?文本?? ?255?? ?最多255個字符
表4.3 采購訂單數據項描述
數據項?? ?類型?? ?長度?? ?值范圍
ID?? ?數字?? ?11?? ?00000000000至99999999999之間
商品名?? ?文本?? ?255?? ?最多255個字符
數量?? ?數字?? ?11?? ?00000000000至99999999999之間
價格?? ?數字?? ??? ?雙精度浮點型
表4.4 庫存信息數據項描述
數據項?? ?類型?? ?長度?? ?值范圍
ID?? ?數字?? ?11?? ?00000000000至99999999999之間
產品名?? ?文本?? ?255?? ?最多255個字符
數量?? ?數字?? ?11?? ?00000000000至99999999999之間
表4.5 銷售信息數據項描述
數據項?? ?類型?? ?長度?? ?值范圍
ID?? ?數字?? ?11?? ?00000000000至99999999999之間
數量?? ?數字?? ?11?? ?00000000000至99999999999之間
價格?? ?數字?? ??? ?雙精度浮點型
4.4.2 ?數據流的描述
1)?? ?數據流編號:F1
數據流名:員工簡要信息
簡述:判斷用戶輸入的信息是否符合要求,登錄成功后用戶可根據自己的權限對系統進行操作
組成:用戶名+密碼
2)?? ?數據流編號:F2、F3、F4
數據流名:員工登錄信息
簡述:獲得與員工權限相關的信息,根據不同權限在頁面上顯示不同的操作選項
組成:ID+用戶名+密碼+真實姓名+所在部門
3)?? ?數據流編號:F5、F6
數據流名:員工信息
簡述:實現對員工信息的增、刪、改、查操作
組成:ID+用戶名+密碼+真實姓名+性別+年齡+所在部門+創建人+創建時間+修改人+修改時間
4)?? ?數據流編號:F7、F8
數據流名:合作公司信息
簡述:實現對合作公司信息的增、刪、改、查操作
組成:ID+公司名+負責人+公司地址+聯系電話+創建人+創建時間+修改人+修改時間
5)?? ?數據流編號:F9、F10
數據流名:采購訂單信息
簡述:實現對采購訂單信息的增、刪、改、查操作
組成:ID+商品名+數量+價格+運輸方式+貨物狀態+創建人+創建時間+修改人+修改時間
6)?? ?數據流編號:F11、F12
數據流名:庫存信息
簡述:實現對庫存信息的增、改、查操作
組成:ID+產品名+數量+存放位置+存放狀態+創建人+創建時間+修改人+修改時間
7)?? ?數據流編號:F13、F14
數據流名:銷售信息
簡述:實現對庫存信息的增、查操作
組成:ID +數量+價格+創建人+創建時間+修改人+修改時間
8)?? ?數據流編號:F15
數據流名:銷售人員信息
簡述:統計銷售人員情況
組成:姓名+銷售金額
9)?? ?數據流編號:F16
數據流名:采購人員信息
簡述:統計采購人員情況
組成:姓名+采購金額
10)?? ?數據流編號:F17
數據流名:銷售商品信息
簡述:統計銷售商品信息
組成:產品名+銷售總量
4.4.3 ?描述外部實體
1)?? ?外部實體名稱:經理
簡述:系統管理員,具有最高權限
輸入的數據流:人事信息、合作公司信息、采購訂單信息、庫存信息、銷售信息
輸出的數據流:人事信息、合作公司信息、采購訂單信息、庫存信息、銷售信息、經營統計
2)?? ?外部實體名稱:人事部員工
簡述:負責百貨中心的人事活動及管理
輸入的數據流:人事信息
輸出的數據流:人事信息、經營統計
3)?? ?外部實體名稱:采購部員工
簡述:負責百貨中心與外部合作、采購的事物
輸入的數據流:合作公司信息、采購訂單信息
輸出的數據流:合作公司信息、采購訂單信息、經營統計
4)?? ?外部實體名稱:物資部員工
簡述:負責管理百貨中心的倉庫、完成商品的入庫、出庫工作
輸入的數據流:庫存信息
輸出的數據流:庫存信息、經營統計
5)?? ?外部實體名稱:銷售部員工
簡述:負責百貨中心的銷售工作
輸入的數據流:銷售信息
輸出的數據流:銷售信息、經營統計
5 ?系統設計
5.1 ?系統結構設計
按照需求分析階段的結果,本系統的結構主要由兩部分構成,首先是登錄模塊,之后會由登錄模塊中返回的結果給用戶展示可以進行的操作,包括人事管理、合作公司管理、采購訂單管理等六大類操作。系統結構圖大致如下:
圖5.1 系統結構圖
5.2 ?系統子模塊功能介紹
1)?? ?登錄模塊:用戶通過輸入用戶名和密碼來登錄系統,如果輸入錯誤會返回登錄界面,成功登錄后用戶的登錄信息會存儲在瀏覽器中,系統會根據這些信息判斷該用戶的操作權限。
2)?? ?人事管理模塊:已經登錄的符合權限的用戶可以在此模塊中查看公司員工信息,也可以根據需要添加、修改、刪除員工信息。
3)?? ?合作公司管理模塊:已經登錄的符合權限的用戶可以在此模塊中查看合作公司信息,也可以根據需要添加、修改、刪除合作公司信息。
4)?? ?采購訂單管理模塊:已經登錄的符合權限的用戶可以在此模塊中查看采購訂單信息,也可以根據需要添加、修改、刪除采購訂單信息。
5)?? ?庫存管理模塊:已經登錄的符合權限的用戶可以在此模塊中查看商品庫存信息,也可以根據需要添加、修改、商品庫存信息。
6)?? ?銷售管理模塊:已經登錄的符合權限的用戶可以在此模塊中查看商品銷售信息,也可以根據需要添加商品銷售信息。
7)?? ?經營統計模塊:已經登錄的用戶可以在此模塊中查看最佳銷售、最佳采購、最佳商品的信息。
5.3 ?數據庫設計
5.3.1 ?數據庫概念設計(E-R模型)
本系統實體與其屬性的關系用E-R模型表示如下(見下頁):
圖5.1 百貨中心供應鏈管理系統E-R模型
5.3.2 ?數據庫表結構設計
根據上述模型,在將其轉化成關系模型后,在數據庫(數據庫名:chain)中創建如下5張表:
1)?? ?用戶表(表名:tb_chain_user)
用來存儲公司員工的表,主要用于系統的登錄判斷。包含用戶id、用戶名、密碼、真實姓名、性別、年齡、就職日期、是否為管理員、照片、所在部門、創建人、創建日期、更新人、更新日期字段。
表5.1用戶表(tb_chain_user)
?
2)?? ?合作公司表(表名:tb_chain_cooperation)
用來存儲百貨中心的合作公司的表,主要用于管理與百貨中心合作的公司及公司的商品。主要包含合作公司id、公司名、負責人、公司地址、聯系電話、創建人、創建日期、更新人、更新日期等字段。
表5.2 合作公司表(tb_chain_cooperation)
?
3)?? ?訂單表(表名:tb_chain_purchase)
用來存儲采購訂單的表,用于記錄采購的商品在入庫前的狀態。包含訂單id、商品名、數量、價格、運送方式、運送狀態、商品公司(合作公司)、創建人、創建時間、更新人、更新時間字段。
表5.3 訂單表(tb_chain_purchase)
?
4)?? ?庫存表(表名:tb_chain_stock)
用來存儲商品的表,用于顯示百貨中心倉庫中的貨物及其相關信息。包含商品id、商品名、數量、擺放位置、存儲狀態、創建人、創建時間、更新人、更新時間字段。
表5.4 庫存表(tb_chain_stock)
?
5)?? ?銷售單表(表名:tb_chain_sale)
用來存儲銷售信息的表,用于存儲百貨中心商品的銷售情況。包含銷售單id、數量、價格、商品id、用戶id、創建人、創建時間、更新人、更新時間字段。
表5.5 銷售單表(tb_chain_sale)
?
6 ?系統實現
在經過了需求分析、概要設計和詳細設計后,便開始了百貨中心供應鏈管理系統的實現階段,首先我利用Tiles結合JavaScript對頁面進行布局,之后再利用Maven完成整個項目框架的搭建,利用Hibernate反向工程生成Java實體類,再使用Struts和Spring完成之前設計的業務邏輯。部分關鍵代碼及最終程序的運行效果如下:
1)?? ?登錄模塊關鍵代碼
public String logon() {
? ? ? ? UserEntity userEntity = userService.getUserEntity(username, password);
? ? ? ? if (userEntity != null) {
? ? ? ? ? ? ActionContext.getContext().getSession().put("user", userEntity);
? ? ? ? ? ? return SUCCESS;
? ? ? ? } else {
? ? ? ? ? ? this.addActionError("用戶名或者密碼不正確");
? ? ? ? ? ? return INPUT;
? ? ? ? }
? ? }
2)?? ?增、刪、改、查功能調用關鍵代碼
public String list() {
? ? ? ? if (userEntityPaginationBean == null) {
? ? ? ? ? ? userEntityPaginationBean = new PaginationBean<UserEntity>();
? ? ? ? }
? ? ? ? userEntityPaginationBean = userService.pagedList(userEntityPaginationBean);
? ? ? ? return SUCCESS;
? ? }
public String show() {
? ? ? ? userEntity = userService.getUserEntity(userEntity);
? ? ? ? return SUCCESS;
? ? }
public String add() {
? ? ? ? return SUCCESS;
? ? }
public String update() {
? ? ? ? userEntity = userService.getUserEntity(userEntity);
? ? ? ? return SUCCESS;
? ? }
public String delete() {
? ? ?? ?try{
? ? ?? ??? ?userService.delete(userEntity);
? ? ?? ??? ?list();
? ? ?? ??? ?this.addActionMessage("用戶刪除成功!");
? ? ?? ??? ?}
? ? ? ? catch(Exception e){
? ? ? ? ?? ?list();
? ? ? ? ?? ?this.addActionMessage("刪除失敗,不能刪除已登錄用戶!");
? ? ? ? }?
? ? ? ? return SUCCESS;
? ? }
public String save() {
? ? ? ? userService.saveOrUpdateEntity(userEntity);
? ? ? ? list();
? ? ? ? this.addActionMessage("用戶操作成功!");
? ? ? ? return SUCCESS;
? ? }
3)?? ?經營統計模塊關鍵代碼
public List<Object[]> top10BestSale() {
? ? ? ? HibernateTemplate tmpl = getHibernateTemplate();
? ? ? ? return tmpl.execute(new HibernateCallback<List<Object[]>>() {
? ? ? ? ? ? public List<Object[]> doInHibernate(Session session) throws HibernateException, SQLException {
? ? ? ? ? ? ? ? SQLQuery query = session.createSQLQuery("select t1.real_name, sum(t2.amount) total_amount from tb_chain_user t1 " +
? ? ? ? ? ? ? ? ? ? ? ? "left join tb_chain_sale t2 on t1.USER_ID = t2.user_id " +
? ? ? ? ? ? ? ? ? ? ? ? "group by t1.real_name " +
? ? ? ? ? ? ? ? ? ? ? ? "order by total_amount desc " +
? ? ? ? ? ? ? ? ? ? ? ? "limit 0, 10");
? ? ? ? ? ? ? ? List results = query.list();
? ? ? ? ? ? ? ? return (List<Object[]>)results;
? ? ? ? ? ? }
? ? ? ? });
? ? }
public List<Object[]> top10BestPurchases() {
? ? ? ? HibernateTemplate tmpl = getHibernateTemplate();
? ? ? ? return tmpl.execute(new HibernateCallback<List<Object[]>>() {
? ? ? ? ? ? @SuppressWarnings("unchecked")
? ? ? ? ? ? @Override
? ? ? ? ? ? public List<Object[]> doInHibernate(Session session) throws HibernateException, SQLException {
? ? ? ? ? ? ? ? SQLQuery query = session.createSQLQuery("select t1.real_name, sum(t2.amount) total_amount from tb_chain_user t1 " +
? ? ? ? ? ? ? ? ? ? ? ? "left join tb_chain_purchase t2 on t1.USER_ID = t2.user_id " +
? ? ? ? ? ? ? ? ? ? ? ? "group by t1.real_name " +
? ? ? ? ? ? ? ? ? ? ? ? "order by total_amount desc " +
? ? ? ? ? ? ? ? ? ? ? ? "limit 0, 10");
? ? ? ? ? ? ? ? List results = query.list();
? ? ? ? ? ? ? ? return (List<Object[]>)results;
? ? ? ? ? ? }
? ? ? ? });
? ? }
public List<Object[]> top10BestProduct() {
? ? ? ? HibernateTemplate tmpl = getHibernateTemplate();
? ? ? ? return tmpl.execute(new HibernateCallback<List<Object[]>>() {
? ? ? ? ? ? @SuppressWarnings("unchecked")
? ? ? ? ? ? @Override
? ? ? ? ? ? public List<Object[]> doInHibernate(Session session) throws HibernateException, SQLException {
? ? ? ? ? ? ? ? SQLQuery query = session.createSQLQuery("select t1.`product`, sum(t2.`QUANTITY`) total_quantity from tb_chain_stock t1 " +
? ? ? ? ? ? ? ? ? ? ? ? "left join tb_chain_sale t2 on t1.`COO_ID` = t2.stock_id " +
? ? ? ? ? ? ? ? ? ? ? ? "group by t1.product " +
? ? ? ? ? ? ? ? ? ? ? ? "order by total_quantity desc");
? ? ? ? ? ? ? ? List results = query.list();
? ? ? ? ? ? ? ? return (List<Object[]>)results;
? ? ? ? ? ? }
? ? ? ? });
? ? }
6.1 ?系統登錄界面
項目發布后,在瀏覽器地址欄輸入http://localhost:8080,頁面會跳轉到webapp目錄下的index.jsp頁面并發送index.action請求,未登錄的用戶會再發送一個login.action請求并跳轉到login.jsp頁面。
?
圖6.1 系統登錄界面
如果未輸入用戶名/密碼,或輸入的用戶名/密碼不正確,點擊登錄按鈕后會給出出錯提示,提醒重新登錄。
?
圖6.2 登錄出錯提示
6.2 ?登錄成功界面
成功登錄的用戶會進入系統歡迎界面,整個界面是借助Tiles的幫助完成的,它讓系統可以在執行不同的請求后只讓頁面的主題部分跳轉,而網頁的頭、導航欄、尾部不跳轉,節省了大量重復書寫代碼帶來的開銷。
根據用戶的身份不同,登錄后所能看到的操作選項也有所區別。
1)?? ?經理登錄界面
在本系統中,經理被定義為具有最高權限的用例,可以使用系統的所有功能,能夠看到系統所有的操作選項。
?
圖6.4 經理登錄界面
2)?? ?人事部員工登錄界面
本系統中,人事部員工可以操作系統的人事管理模塊,因此進入系統后只能看到人事管理的操作選項以及經營統計選項。
?
圖6.5 人事部員工登錄界面
其他部分員工登錄成功界面相似,故不再附圖。
6.3 ?人事管理界面
經理、人事部員工可以進入人事管理界面對百貨中心的員工信息進行添加、刪除、修改、查看功能。
1)?? ?人事管理界面
用戶進入人事管理界面后,可以根據頁面的文字提示對人事信息進行相應的操作,所有員工的主要信息被頁面上的表格列出并實現分頁功能。
?
圖6.6 人事管理界面
2)?? ?添加員工界面
用戶點擊人事管理界面上的“添加員工”按鈕進入添加員工界面,在本頁面中輸入要添加的員工的信息后,點擊保存,即可將新的員工信息添加進數據庫中,如果有關鍵的信息沒有正確輸入,頁面會給出相應的提示。
?
圖6.7 添加員工界面
3)?? ?更新員工信息界面
類似于添加員工信息,修改員工信息界面實現了對單個員工信息的修改,同樣實現了出錯提示功能。
?
圖6.8 更新員工信息界面
4)?? ?刪除員工成功界面
成功刪除員工信息后會在頁面上給出綠色的成功提示信息。
?
圖6.9 刪除員工信息成功
5)?? ?刪除員工信息失敗界面
當已經登錄的用戶想要刪除自己的信息時,會給出刪除失敗的提示,因為已經登錄的用戶不能刪除自己。
?
圖6.10 刪除員工信息失敗
6.4 ?合作公司管理界面
經理、采購部員工可以登錄合作公司管理界面對合作公司進行添加、刪除、修改、查看操作。
1)?? ?合作公司管理界面
用戶進入合作公司管理界面后,可以根據頁面的文字提示對合作公司信息進行相應的操作,所有合作公司的主要信息被頁面上的表格列出并實現分頁功能。
?
圖6.11 合作公司管理界面
2)?? ?添加合作公司界面
用戶點擊合作公司管理界面上的“添加合作公司”按鈕進入添加合作公司界面,在本頁面中輸入要添加的合作公司信息后,點擊保存,即可將新的合作公司信息添加進數據庫中,如果有關鍵的信息沒有正確輸入,頁面會給出相應的提示。
?
圖6.12 添加合作公司
3)?? ?修改合作公司信息界面
類似于添加合作公司信息,修改合作公司信息界面實現了對單個合作公司信息的修改,同樣實現了出錯提示功能。
?
圖6.13 修改合作公司
4)?? ?刪除合作公司成功界面
成功刪除合作公司信息后會在頁面上給出綠色的成功提示信息。
?
圖6.14 刪除合作公司成功
6.5 ?采購管理界面
經理、采購部員工可以進入采購管理界面,對采購訂單進行添加、刪除、修改、查看操作。其中添加的采購商品必須來自已經有合作關系的公司。
1)?? ?采購管理界面
用戶進入采購管理界面后,可以根據頁面的文字提示對采購信息進行相應的操作,所有采購訂單的主要信息被頁面上的表格列出并實現分頁功能。
?
圖6.15 采購管理界面
2)?? ?添加采購信息界面
用戶點擊采購管理界面上的“添加采購信息”按鈕進入添加采購信息界面,在本頁面中輸入要添加的采購信息后,點擊保存,即可將新的采購信息添加進數據庫中,如果有關鍵的信息沒有正確輸入,頁面會給出相應的提示。
?
圖6.16 添加采購信息
3)?? ?修改采購信息界面
類似于添加采購信息,修改采購信息界面實現了對單個采購信息的修改,同樣實現了出錯提示功能。
?
圖6.17 修改采購信息
4)?? ?刪除采購信息成功界面
成功刪除采購信息后會在頁面上給出綠色的成功提示信息。
?
圖6.18 刪除采購信息成功
5)?? ?采購單明細界面
在采購管理界面點擊單個的采購信息鏈接,可以進入采購信息明細界面,在本頁面中可以看到本采購訂單的詳細信息。
?
圖6.19 采購信息明細
6)?? ?打印采購信息明細界面
在采購信息明細界面下方點擊“打印”按鈕,進入打印采購信息明細界面,可以將相應的采購訂單詳細信息保存或打印。
?
圖6.20 打印采購信息明細
6.6 ?庫存管理界面
經理、物資部員工可以進入庫存管理界面,并添加、修改庫存信息。
1)?? ?庫存管理界面
用戶進入庫存管理界面后,可以根據頁面的文字提示對庫存信息進行相應的操作,所有庫存的主要信息被頁面上的表格列出并實現分頁功能。
?
圖6.21 庫存管理界面
2)?? ?添加庫存信息界面
用戶點擊庫存管理界面上的“添加庫存信息”按鈕進入添加庫存信息界面,在本頁面中輸入要添加的庫存信息后,點擊保存,即可將新的庫存信息添加進數據庫中,如果有關鍵的信息沒有正確輸入,頁面會給出相應的提示。
?
圖6.22 添加庫存信息
3)?? ?修改庫存信息界面
類似于添加庫存信息,修改庫存信息界面實現了對單個庫存信息的修改,同樣實現了出錯提示功能。
?
圖6.23 修改庫存信息
4)?? ?庫存信息明細界面
在庫存管理界面點擊單個的庫存信息鏈接,可以進入庫存信息明細界面,在本頁面中可以看到本庫存的詳細信息。
?
圖6.24 庫存信息明細
5)?? ?打印庫存信息明細界面
在庫存信息明細界面下方點擊“打印”按鈕,進入打印庫存信息明細界面,可以將相應的庫存詳細信息保存或打印。
?
圖6.25 打印庫存信息明細
6.7 ?銷售管理界面
經理、銷售部員工可以進入銷售管理界面,并對銷售信息進行添加、查看操作。
1)?? ?銷售管理界面
用戶進入銷售管理界面后,可以根據頁面的文字提示對庫存信息進行相應的操作,所有銷售情況被頁面上的表格列出并實現分頁功能。
?
圖6.26 銷售管理界面
2)?? ?添加銷售記錄界面
用戶點擊庫存管理界面上的“添加銷售記錄”按鈕進入添加銷售信息界面,在本頁面中輸入要添加的銷售信息后,點擊保存,即可將新的銷售信息添加進數據庫中,如果有關鍵的信息沒有正確輸入,頁面會給出相應的提示。
?
圖6.27 添加銷售信息
6.8 ?經營統計界面
所有權限的員工都可以查看百貨中心的經營狀況,其中統計了銷售量前十的員工、采購額前十的員工和銷售數目前十的商品,方便員工了解公司經營現狀,幫助決策層找到公司可能存在的問題。
?
圖6.28 經營狀況統計
7 ?系統測試
7.1 ?測試目的
軟件測試(software testing),描述一種用來促進鑒定軟件的正確性、完整性、安全性和質量的過程。在整個軟件生命周期中,軟件測試占了很大一部分比例,它是保證軟件質量的關鍵環節,也是降低軟件開發風險的必要手段,軟件測試工作應該貫穿整個項目開發的始終。
7.2 ?測試方法
1)?? ?白盒測試-白盒測試也稱結構測試或邏輯驅動測試,它是按照程序內部的結構測試程序,通過測試來檢測產品內部動作是否按照設計規格說明書的規定正常進行,檢驗程序中的每條通路是否都能按預定要求正確工作。在系統開發初期,由于參數設置的失誤,我開發的系統經常出現如下的錯誤:
?
圖7.1 系統出錯
經過耐心的調試、測試,已經基本解決了這些錯誤。
2)?? ?黑盒測試-黑盒測試也稱功能測試,它是通過測試來檢測每個功能是否都能正常使用。在系統功能實現后,我也對系統進行了一部分文本錄入測試作為黑盒測試,解決了之前部分頁面文字提示錯誤、頁面跳轉錯誤的bug,但由于用戶測試的時間有限,還有一些有待改進的地方需要在實際使用中發現。
7.3 ?測試結果
實現了所有模塊的功能,修正了已經發現的所有問題、錯誤。但系統還有許多不完善的地方,有待實踐階段的檢驗和提高。
?
8 ?總結
通過這次對百貨中心供應鏈管理系統的設計與開發,讓我進一步溫習了大學課堂上學到了軟件工程相關的知識,也使得書本上J2EE、數據庫相關的知識得到了實踐的機會,同時也對Jsp、JavaScript、Maven等有了進一步的了解,通過查詢相關的資料并學習,我也發現了許多不足的地方,還有更多更新更實用的技術,等著我去學習去鉆研。總之,經過不懈的學習與調試,我的編程能力有了很大的提高,更重要的是,我也看到了自己仍需努力的方向。
?
參考文獻
[1]曹俊超,戴克商.物資管理理論與實務.北京:清華大學出版社,2006.?
[2]羅伯特?M?蒙茲卡.劉秉鐮,李莉,劉洋譯.采購與供應鏈管理.北京:中信出版社,2004.
[3]肯尼斯?萊桑斯,邁克爾吉林厄姆,鞠磊等譯.采購與供應鏈管理.北京:電子工業出版社,2004.
[4] 劉京華等. Java Web整合開發王者歸來(JSP+Servlet+Struts+Hibernate+Spring).北京:清華大學出版社,2010.
[5] HUNT J,LFTUS C.精通J2EE-Java企業級應用[M].北京:清華大學出版社,2004.
[6] LIANG Y D..Java語言程序設計[M].北京:機械工業出版社,2003.
[7] Angela Yochem.J2EE應用與BEA WebLogic Server[M].北京:電子工業出版社,2005.
[8]陳天河.Java數據庫高級編程寶典[M].北京:電子工業出版社,2005.
[9]泰勒.JDBC數據庫編程與J2EE[M].北京:電子工業出版社,2004.
[10]顧兵.XML實用技術教程[M].北京:清華大學出版社,2007.
[11]丁寶康.數據庫實用教程[M].北京:清華大學出版社,2003.
[12]李剛. 輕量級Java+EE企業應用實戰(第3版).北京:電子工業出版社,2012.
[13] 陳亞輝,繆勇.Struts2+Spring+Hibernate框架技術與項目實戰.北京:清華大學出版社,2012.
[14] 劉勇軍,王電鋼. Java EE項目應用開發:基于Struts2,Spring,Hibernate.北京:電子工業出版社,2012.
[15] 埃克爾. Java編程思想(第4版).北京:機械工業出版社,2007.
[16] 張海藩.軟件工程導論[M].北京:清華大學出版社,2003.
?
總結
以上是生活随笔為你收集整理的基于java百货中心供应链管理系统(含源文件)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 神剑仙缘java_异界修真-神剑仙缘
- 下一篇: 购书中心管理信息系统(含源文件)