第三章系統分析與設計
3.1 可行性分析
一個完整的系統,可行性分析是必須要有的,因為他關系到系統生存問題,對開發的意義進行分析,能否通過本網站來補充線下超市進銷存管理模式中的缺限,去解決其中的不足等,通過對本網站,不僅能使工作量不斷地減少,還能使工作和管理的效率更加高。所以開發該網站能實現更大的意義和價值,網站完成后,能否達到預期效果就要通過可行性分析,分析之后,決定此系統是否開發。該超市進銷存系統的開發設計中,對技術、經濟、操作方面進行了可行性分析;
3.1.1 技術可行性
本系統開發選擇java語言,它被研究的目的就是在于能夠為網頁創建等可以看到的信息。隨著移動互聯網技術的不斷發展和創新,java儼然已成為下一代互聯網的Web標準。所以后臺設計選擇使用mysql數據庫主要用來的建立和維護信息。對于前臺開發要求應具備功能完善、易于操作等優點,后臺數據庫的要求則是能夠建立和維護數據信息的統一性和完整性。
3.1.2 操作可行性
現在隨著科技的飛速發展,計算機早已經進入了人們的日常生活中,人們的工作環境也不像以前有那么多的要求,需要員工一定要到公司辦公,有的工作在家也可以完成。這使得人們的工作效益有了很大的提高。操作的多樣性也變高了。因此,管理的計算機化,智能化是社會發展而帶來的必然趨勢,各種智能的軟件層出不窮,不同的軟件能完成用戶不同的需求,這不僅提高了工作效率還能完成一些客戶特定的一些需求。本系統不僅界面簡潔明了還采用可視化界面,用戶只要用鼠標和鍵盤就可以完成對相關信息的修改,刪除,添加等操作。因為這個系統的操作十分簡單,方便上手,對于第一次使用系統的人,只需要很少的時間就可以上手操作。由此可見,本系統在操作上是可行的。
3.1.3經濟可行性
基于springboot的超市進銷存系統,該網站軟件開發僅需要一臺普通的計算機便可完成實現開發,其成本很低。另外,作為畢業設計作品來講,開發成本基本上可以忽略不計,且該系統軟件的投入使用,可以實現更加快速高效的超市進銷存管理,同時還能實現對人力資源和管理資源的有效節約,該超市進銷存系統在經濟上完全可行。
3.2 需求分析
利用springboot、Java、MyEclipse和mysql數據庫等知識點,結合相關設計模式、以及軟件工程的相關知識,設計一個超市進銷存系統,來進行記錄員工的信息,以及系統信息的增刪改查的功能,根據實現需求,系統需完成這些基本功能:
(1)系統顯示,管理員界面和員工界面等界面。
(2)管理員和員工所有的信息都保存與數據庫中。
(3)對超市進銷存信息能夠進行查詢、修改、刪除、添加等操作。
3.3 總體設計
根據超市進銷存系統的功能需求,進行系統設計。
由管理員和員工,主要功能包括首頁、個人中心、員工管理、客戶管理、供應商管理、承運商管理、倉庫信息管理、商品類別管理、 商品信息管理、采購信息管理、入庫信息管理、出庫信息管理、銷售訂單管理、部門管理、崗位管理等功能;
系統對這些功能進行整合,產生的功能結構圖如下:
圖3-1 系統總體結構圖
3.4 數據庫設計與實現
在每一個系統中數據庫有著非常重要的作用,數據庫的設計得好將會增加系統的效率以及系統各邏輯功能的實現。所以數據庫的設計我們要從系統的實際需要出發,才能使其更為完美的符合系統功能的實現。
3.4.1 數據庫概念結構設計
數據庫的E-R圖反映了實體、實體的屬性和實體之間的聯系。下面是各個實體以及實體的屬性。
員工注冊實體屬性圖如下所示:
圖3-2員工注冊實體屬性圖
供應商管理實體屬性圖如下所示:
圖3-3供應商管理實體屬性圖
銷售訂單管理實體屬性圖如下所示:
圖3-4銷售訂單管理實體屬性圖
3.4.2數據庫具體設計
根據E-R圖,設計每張表的變量名,變量的類型及主鍵等如下。
表3-1:部門
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
---|---|---|---|---|---|
id | bigint | 主鍵 | 主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
bumen | varchar | 200 | 部門 | ||
bumenjianjie | longtext | 4294967295 | 部門簡介 |
表3-2:商品類別
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
---|---|---|---|---|---|
id | bigint | 主鍵 | 主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
shangpinleibie | varchar | 200 | 商品類別 |
表3-3:員工
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
---|---|---|---|---|---|
id | bigint | 主鍵 | 主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
yuangongzhanghao | varchar | 200 | 員工賬號 | ||
mima | varchar | 200 | 密碼 | ||
yuangongxingming | varchar | 200 | 員工姓名 | ||
xingbie | varchar | 200 | 性別 | ||
yuangongdianhua | varchar | 200 | 員工電話 | ||
touxiang | varchar | 200 | 頭像 | ||
bumen | varchar | 200 | 部門 | ||
gangwei | varchar | 200 | 崗位 |
表3-4:入庫信息
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
---|---|---|---|---|---|
id | bigint | 主鍵 | 主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
rukubianhao | varchar | 200 | 入庫編號 | ||
shangpinmingcheng | varchar | 200 | 商品名稱 | ||
shangpinleibie | varchar | 200 | 商品類別 | ||
rukushijian | datetime | 入庫時間 | |||
shuliang | int | 數量 | |||
rukubeizhu | longtext | 4294967295 | 入庫備注 | ||
yuangongzhanghao | varchar | 200 | 員工賬號 | ||
yuangongxingming | varchar | 200 | 員工姓名 | ||
sfsh | varchar | 200 | 是否審核 | 否 | |
shhf | longtext | 4294967295 | 審核回復 |
表3-5:銷售訂單
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
---|---|---|---|---|---|
id | bigint | 主鍵 | 主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
dingdanbianhao | varchar | 200 | 訂單編號 | ||
kehuxingming | varchar | 200 | 客戶姓名 | ||
shangpinmingcheng | varchar | 200 | 商品名稱 | ||
jiage | float | 價格 | |||
dingdanshuliang | int | 訂單數量 | |||
dingdanzongjia | float | 訂單總價 | |||
dingdanshijian | date | 訂單時間 | |||
dingdanxiangqing | longtext | 4294967295 | 訂單詳情 | ||
yuangongzhanghao | varchar | 200 | 員工賬號 | ||
yuangongxingming | varchar | 200 | 員工姓名 | ||
sfsh | varchar | 200 | 是否審核 | 否 | |
shhf | longtext | 4294967295 | 審核回復 |
表3-6:客戶
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
---|---|---|---|---|---|
id | bigint | 主鍵 | 主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
kehubianhao | varchar | 200 | 客戶編號 | ||
kehuxingming | varchar | 200 | 客戶姓名 | ||
kehutouxiang | varchar | 200 | 客戶頭像 | ||
kehudianhua | varchar | 200 | 客戶電話 | ||
kehudizhi | varchar | 200 | 客戶地址 |
表3-7:供應商
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
---|---|---|---|---|---|
id | bigint | 主鍵 | 主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
gongyingshangbianhao | varchar | 200 | 供應商編號 | ||
gongyingshangmingcheng | varchar | 200 | 供應商名稱 | ||
gongyingshangdianhua | varchar | 200 | 供應商電話 | ||
gongyingshangdizhi | varchar | 200 | 供應商地址 | ||
fuzeren | varchar | 200 | 負責人 |
表3-8:崗位
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
---|---|---|---|---|---|
id | bigint | 主鍵 | 主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
gangwei | varchar | 200 | 崗位 | ||
gangweirenshu | varchar | 200 | 崗位人數 | ||
gangweijianjie | longtext | 4294967295 | 崗位簡介 |
表3-9:配置文件
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
---|---|---|---|---|---|
id | bigint | 主鍵 | 主鍵 | ||
name | varchar | 100 | 配置參數名稱 | ||
value | varchar | 100 | 配置參數值 |
表3-10:出庫信息
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
---|---|---|---|---|---|
id | bigint | 主鍵 | 主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
chukubianhao | varchar | 200 | 出庫編號 | ||
shangpinmingcheng | varchar | 200 | 商品名稱 | ||
chengyunshangmingcheng | varchar | 200 | 承運商名稱 | ||
shangpinleibie | varchar | 200 | 商品類別 | ||
shuliang | int | 數量 | |||
chukushijian | datetime | 出庫時間 | |||
chukubeizhu | longtext | 4294967295 | 出庫備注 | ||
yuangongzhanghao | varchar | 200 | 員工賬號 | ||
yuangongxingming | varchar | 200 | 員工姓名 | ||
sfsh | varchar | 200 | 是否審核 | 否 | |
shhf | longtext | 4294967295 | 審核回復 |
表3-11:承運商
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
---|---|---|---|---|---|
id | bigint | 主鍵 | 主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
chengyunshangbianhao | varchar | 200 | 承運商編號 | ||
chengyunshangmingcheng | varchar | 200 | 承運商名稱 | ||
chengyunshangdianhua | varchar | 200 | 承運商電話 | ||
fuzeren | varchar | 200 | 負責人 | ||
chengyingshangdizhi | varchar | 200 | 承應商地址 |
表3-12:用戶表
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
---|---|---|---|---|---|
id | bigint | 主鍵 | 主鍵 | ||
username | varchar | 100 | 用戶名 | ||
password | varchar | 100 | 密碼 | ||
role | varchar | 100 | 角色 | 管理員 | |
addtime | timestamp | 新增時間 | CURRENT_TIMESTAMP |
表3-13:倉庫信息
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
---|---|---|---|---|---|
id | bigint | 主鍵 | 主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
cangkuhao | varchar | 200 | 倉庫號 | ||
cangkumingcheng | varchar | 200 | 倉庫名稱 | ||
cangkuweizhi | varchar | 200 | 倉庫位置 | ||
cangkuleixing | varchar | 200 | 倉庫類型 | ||
cangkuxiangqing | longtext | 4294967295 | 倉庫詳情 |
表3-14:token表
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
---|---|---|---|---|---|
id | bigint | 主鍵 | 主鍵 | ||
userid | bigint | 用戶id | |||
username | varchar | 100 | 用戶名 | ||
tablename | varchar | 100 | 表名 | ||
role | varchar | 100 | 角色 | ||
token | varchar | 200 | 密碼 | ||
addtime | timestamp | 新增時間 | CURRENT_TIMESTAMP | ||
expiratedtime | timestamp | 過期時間 | CURRENT_TIMESTAMP |
表3-15:采購信息
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
---|---|---|---|---|---|
id | bigint | 主鍵 | 主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
caigoubianhao | varchar | 200 | 采購編號 | ||
gongyingshangmingcheng | varchar | 200 | 供應商名稱 | ||
shangpinmingcheng | varchar | 200 | 商品名稱 | ||
shangpinleibie | varchar | 200 | 商品類別 | ||
caigoushuliang | varchar | 200 | 采購數量 | ||
dengjishijian | datetime | 登記時間 | |||
caigoubeizhu | longtext | 4294967295 | 采購備注 | ||
yuangongzhanghao | varchar | 200 | 員工賬號 | ||
yuangongxingming | varchar | 200 | 員工姓名 | ||
sfsh | varchar | 200 | 是否審核 | 否 | |
shhf | longtext | 4294967295 | 審核回復 |
表3-16:商品信息
字段名稱 | 類型 | 長度 | 字段說明 | 主鍵 | 默認值 |
---|---|---|---|---|---|
id | bigint | 主鍵 | 主鍵 | ||
addtime | timestamp | 創建時間 | CURRENT_TIMESTAMP | ||
shangpinbianhao | varchar | 200 | 商品編號 | ||
shangpinmingcheng | varchar | 200 | 商品名稱 | ||
shangpinleibie | varchar | 200 | 商品類別 | ||
shangpintupian | varchar | 200 | 商品圖片 | ||
guige | varchar | 200 | 規格 | ||
pinpai | varchar | 200 | 品牌 | ||
jiage | varchar | 200 | 價格 | ||
shuliang | int | 數量 | |||
chandi | varchar | 200 | 產地 | ||
cangkuhao | varchar | 200 | 倉庫號 | ||
cangkumingcheng | varchar | 200 | 倉庫名稱 | ||
xiangqing | longtext | 4294967295 | 詳情 |
第四章 系統功能的具體實現
4.1 登錄注冊
登錄,管理員和員工通過填寫用戶名、密碼等信息,選擇角色進行登錄等操作,如圖4-1所示。
圖4-1登錄界面圖
員工注冊;在員工注冊頁面中輸入員工賬號、密碼、確認密碼、員工姓名、員工電話等內容進行員工注冊操作;如圖4-2所示。
圖4-2員工注冊界面圖
4.2 管理員功能模塊
管理員登錄進入超市進銷存系統可以查看首頁、個人中心、員工管理、客戶管理、供應商管理、承運商管理、倉庫信息管理、商品類別管理、 商品信息管理、采購信息管理、入庫信息管理、出庫信息管理、銷售訂單管理、部門管理、崗位管理等功能進行詳細操作;如圖4-3所示。
圖4-3管理員功能界面圖
員工管理;在員工管理頁面中可以查看索引、員工賬號、員工姓名、性別、員工電話、頭像、部門、崗位等內容進行詳情、修改或刪除等操作;如圖4-4所示。
圖4-4員工管理界面圖
客戶管理,在客戶管理頁面中可以查看索引、客戶編號、客戶姓名、客戶頭像、客戶電話、客戶地址等內容進行詳情、修改或刪除等操作,如圖4-5所示。
圖4-5客戶管理界面圖
供應商管理,在供應商管理頁面可以查看索引、供應商編號、供應商名稱、供應商電話、供應商地址、負責人等內容進行詳情、修改或刪除等操作,如圖4-6所示。
圖4-6供應商管理界面圖
承運商管理,在承運商管理頁面中可以查看索引、承運商編號、承運商名稱、 承運電話、負責人、承運商地址等內容進行詳情、修改或刪除等操作,如圖4-7所示。
圖4-7承運商管理界面圖
倉庫信息管理;在倉庫信息管理頁面中可以查看索引、倉庫號、倉庫名稱、倉庫位置、倉庫類型等內容進行詳情、修改或刪除等操作;如圖4-8所示。
圖4-8倉庫信息管理界面圖
商品信息管理;在商品信息管理頁面中可以查看索引、商品編號、商品名稱、商品類別、商品圖片、規格、品牌、價格、數量、產地、倉庫號、倉庫名稱等內容進行詳情、修改或刪除等操作;如圖4-9所示。
圖4-9商品信息管理界面圖
采購信息管理;在采購信息管理頁面中可以查看索引、采購編號、供應商名稱、商品名稱、 商品類型、采購數量、登記時間、員工賬號、員工姓名、審核回復、審核狀態、審核等內容進行詳情、修改或刪除等操作;如圖4-10所示。
圖4-10采購信息管理界面圖
銷售訂單管理;在銷售訂單管理頁面中可以查看索引、訂單編號、客戶姓名、商品名稱、 價格、訂單數量、訂單總價、訂單時間、員工賬號、員工姓名、審核回復、審核狀態、審核等內容進行詳情、修改或刪除等操作;如圖4-11所示。
圖4-11銷售訂單管理界面圖
部門管理;在部門管理頁面中可以查看索引、部門等內容進行詳情、修改或刪除等操作;如圖4-12所示。
圖4-12部門管理界面圖
崗位管理,在崗位管理頁面可以查看索引、崗位、崗位人數等內容進行修改或刪除等操作;如圖4-13所示。
圖4-13崗位管理界面圖
4.3員工功能模塊
員工登錄進入超市進銷存系統可以查看首頁、個人中心、倉庫信息管理、 商品信息管理、采購信息管理、入庫信息管理、出庫信息管理、銷售訂單管理等功能進行詳細操作;如圖4-14所示。
圖4-14員工功能界面圖
倉庫信息管理,在倉庫信息管理頁面中可以查看索引、倉庫號、倉庫名稱、倉庫位置、倉庫類型等內容進行詳情等操作,如圖4-15所示。
圖4-15倉庫信息管理界面圖
商品信息管理,在商品信息管理頁面中可以查看索引、商品編號、商品名稱、商品類別、商品圖片、規格、品牌、價格、數量、產地、倉庫號、倉庫名稱等內容進行詳情、采購、入庫或出庫等操作;如圖4-16所示。
圖4-16商品信息管理界面圖
采購信息管理,在采購信息管理頁面中可以查看索引、采購編號、供應商名稱、商品名稱、 商品類型、采購數量、登記時間、員工賬號、員工姓名、審核回復、審核狀態等內容進行詳情、修改或刪除等操作;如圖4-17所示。
圖4-17采購信息管理界面圖
入庫信息管理,在入庫信息管理頁面中可以查看索引、入庫編號、商品名稱、商品類別、入庫時間、數量、員工賬號、員工姓名、審核回復、審核狀態等內容進行詳情、修改或刪除等操作;如圖4-18所示。
圖4-18入庫信息管理界面圖
出庫信息管理、在出庫信息管理頁面中可以查看索引、入庫編號、商品名稱、商品類別、出庫時間、數量、員工賬號、員工姓名、審核回復、審核狀態等內容進行詳情、修改或刪除等操作,如圖4-19所示。
圖4-19出庫信息管理界面圖
第五章 系統測試
系統測試是軟件開發過程中最后一步,但也是不可或缺的重要的一步,沒有人可以保證一次性編寫完成的系統不會出錯,而系統測試就是將自己開發的系統成為成品前的最后一步。在測試過程中需要進行嚴謹細致的測試,要盡可能全面地在不同情況下運行該系統,排除一切出現錯誤的可能。
系統測試不僅僅是發現系統潛在的BUG或錯誤,而更為重要的是為用戶提供一個良好的體驗和安全可使用的產品服務。而通過發現錯誤或潛在的問題,將有助于提升產品的競爭力,這也是軟件測試的其中的重要目的之一。
軟件測試的方法有好幾種,但目前主要采用的是包括以功能為主要測試方向的黑盒測試以及以邏輯為主要測試方向的白盒測試,這是兩種不同的測試方法,針對的測試側重點不同,本課題根據實際需求情況,選擇以功能為主要的黑盒測試方法,同時測試是要遵循一定的規則來執行的,一個測試要執行其執行的依據一般是由測試用例來規定的,而測試用例一般是依據需求或說明書來綜合制定的,測試在硬件出廠前是十分重要的一個過程,本課題由于時間和精力的關系,選擇以實現的功能作為測試要點來進行測試。具體測試過程如下:
測試用例1及測試過程:
登錄:錄入登錄信息,賬號,密碼,權限,然后單擊登錄進行操作,會出現兩種情況:一種情況是登錄成功,進入用戶相應的功能界面進行下一步操作;另一種情況是提示登錄失敗,系統會彈出一個對話框要求重新登錄操作;
測試用例2及測試過程:
管理員登錄:錄入登錄信息,管理員賬號,密碼,權限,然后單擊登錄進行操作,會出現兩種情況:登錄成功進入管理員具有權限的功能界面和提示登錄失敗。一種情況是登錄成功,進入管理員界面進行下一步操作;另一種情況是提示登錄失敗,系統會彈出一個對話框要求重新登錄操作;
總結
在這次畢業設計中,我使用了springboot框架,選擇MySQL作為后臺數據庫進行訪問及修改。在設計開始之初,我也在苦惱于系統的邏輯功能的具體實現,因為我對于超市進銷存管理的概念還較為模糊,其間我也查詢了大量的網上資料,清楚了解實際生活中超市進銷存管理主要面對的對象和管理需要完成的基本功能。
雖然在這過程中也遇到了許多的困難,主要有系統邏輯功能不合適和系統設計中出錯,當在自己查閱資料無法解決之時,我也會與同學和老師進行請教和討論,所以在這個過程之中,也讓我清楚的認識到自己的不足以及團隊的力量才是最大,以后不論是在學習還是工作中,都要融入到集體之中,那樣自己才會成長的更快。
當然,在此次設計中,仍然存在著很多的不足,本來之前我想讓其系統可以更為完美的實現角色與權限之間的控制,讓系統中每一次的權限操作都進行控制,但是也因為時間的不足以及本人的能力有限,并未完成,我希望自己在以后的學習中繼續完善,使這個系統更貼近實際的操作。