




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第2章開發(fā)工具及相關技術2.1Java技術Java技術是一套電腦程序設計語言及相關技術,被廣泛地運用于各行各業(yè)。Java具有面向對象、可移植性、安全性和高效性等特性,在軟件開發(fā)、企業(yè)應用開發(fā)、網(wǎng)站建設等方面具有廣泛的應用前景。Java技術在軟件開發(fā)領域有著廣闊的應用前景。Java以其強大的通用性、高效性和可移植性,已經(jīng)成為眾多通用軟件與開發(fā)工具所選擇的編寫與開發(fā)語言。不管是個人電腦,數(shù)據(jù)中心,游戲控制臺,科研超級電腦,手機,Java技術已經(jīng)被廣泛使用。在企業(yè)級應用開發(fā)領域,JavaEE已成為主導網(wǎng)絡應用程序構建的主流技術框架。該平臺為企業(yè)應用程序開發(fā)提供了大量的應用服務器,集成的開發(fā)工具以及程序構件,從而實現(xiàn)了企業(yè)應用程序開發(fā)的效率與可靠性。另外,Java在金融服務領域也得到了廣泛的應用,比如在交易平臺中,Java具有強大的安全性和高效性。另外,Java技術對網(wǎng)站的構建也起到了很大的作用。隨著互聯(lián)網(wǎng)的飛速發(fā)展,網(wǎng)站建設的熱潮也隨之高漲,Java技術的運用為企業(yè)的網(wǎng)站增添了吸引力,增強了企業(yè)網(wǎng)站的競爭能力。借助Java技術,企業(yè)可以建立功能強大、維護方便、可擴充性好的Web站點,從而提高企業(yè)的整體形象,增強企業(yè)的市場競爭力。2.2Mysql數(shù)據(jù)庫MySQL是一種面向不同行業(yè)對數(shù)據(jù)的存儲與管理要求非常高的關系數(shù)據(jù)庫管理系統(tǒng)。以SQL(StructureQueryLanguage)為數(shù)據(jù)存取規(guī)范語言,采用數(shù)據(jù)表、索引、視圖、觸發(fā)器、存儲過程等方式對數(shù)據(jù)進行組織與存儲,為了實現(xiàn)高效且可靠的數(shù)據(jù)存儲與檢索,MySQL作為一種多平臺兼容的數(shù)據(jù)庫系統(tǒng),不僅能在Windows、Linux、Mac等多種操作系統(tǒng)上穩(wěn)定運行,為開發(fā)人員提供了極大的便利,而且其出色的性能表現(xiàn)也確保了數(shù)據(jù)處理的迅速與準確。使得它可以快速地完成大量的數(shù)據(jù)查詢與處理。同時,它也可以通過增加額外的伺服器或額外的硬體來提升資料庫的效能與容量。MySQL提供了多樣化的存儲引擎選擇,包括InnoDB和MyISAM等,以滿足不同場景和需求下的數(shù)據(jù)存儲和處理要求,各有特色,使用場合也各不相同,因此用戶可根據(jù)自己的需要,自行選擇。另外,MySQL還為用戶提供了大量的API接口,使用戶可以使用不同的程序語言和數(shù)據(jù)庫進行交互。2.3SpringBoot介紹SpingBoot,準確的來說就是一個框架技術,是近幾年一個流行的框架,當然,也會隨著時代的發(fā)展和語言的進步,框架技術也在跟隨這兩者的腳步完善,總體來說,解決不穩(wěn)定的問題,解決這個開發(fā)慢、太依賴包等疑難雜癥。讓程序員能更好地去編程。SpringBoot是一個和Java搭配的框架,因為用Java,所以用SpringBoot變得越來越受歡迎,SpringBoot利用容器的這個特點。用這個容器去掃描像XML的文件,準確地去查找獲得對象,提供Web框架。另外,絕對沒有代碼生成,不需要XML配置。2.4B/S結構B/S架構(Browser/Server)作為C/S體系結構的優(yōu)化與升級,在互聯(lián)網(wǎng)的發(fā)展浪潮中應運而生。此架構實現(xiàn)了客戶機的統(tǒng)一,將系統(tǒng)的核心功能集中至服務器端,從而極大地簡化了系統(tǒng)的開發(fā)流程、維護過程及用戶使用體驗。在B/S架構下,瀏覽器成為了客戶端的核心應用程序,用戶通過訪問互聯(lián)網(wǎng)上的瀏覽器即可實現(xiàn)工作界面的操作,使得系統(tǒng)使用更為便捷與高效。無需安裝任何軟件,只需與因特網(wǎng)相連就可以了。服務端需要具有數(shù)據(jù)處理、訪問權限以及網(wǎng)絡資源管理等功能,主要是接受和處理用戶的請求,然后將請求的結果反饋給用戶。該模式的優(yōu)勢在于跨平臺,跨瀏覽器,無需將客戶端與服務器端的接口進行匹配,只需在一個端口上就可以讓多個用戶同時訪問。同時,B/S體系結構還可以降低系統(tǒng)對客戶的資源需求,降低系統(tǒng)的負荷,為企業(yè)提供更加穩(wěn)定可靠的服務。第3章需求分析3.1系統(tǒng)設計目標智能倉儲管理系統(tǒng)能有效地提升倉儲管理人員的工作效率,解決了過去繁雜的進出貨物過程和周期較長的缺點。該系統(tǒng)能有效地解決人工輸入文件信息時,因謄寫錯誤等原因造成的數(shù)據(jù)不準的問題,同時還能簡化查詢程序,讓工作人員不用再用手動去翻找。以電子方式提升生產(chǎn)力。還可以減少庫存管理上的漏洞,節(jié)省在管理上的費用,從而大大提升了庫房的管理水平。根據(jù)不同的要求,將該系統(tǒng)分為不同的功能模塊,使使用者可以根據(jù)不同的功能模塊,進行簡單的操作,實現(xiàn)對倉庫的管理。3.2可行性分析該系統(tǒng)基于Eclipse開發(fā)工具,結合多項前沿技術,運用Java(特別是Swing組件)進行開發(fā),并采用MySQL數(shù)據(jù)庫作為數(shù)據(jù)存儲解決方案,確保了系統(tǒng)的穩(wěn)定、高效與易用性。然后,對各個功能進行詳細的剖析,使得各個模塊盡可能地保持獨立性,同時具備較高的內(nèi)聚程度和較小的耦合性,從而為以后的功能維護提供了可能,因而具有一定的技術可行性。該研究主要針對中國眾多電廠的運行情況以及是否愿意在該體系上進行投資進行了詳盡的分析。這是一個大概的估算,用于我們的設備的建設和運營費用,和以后的維修費用,同時也估算了它完工后可能產(chǎn)生的經(jīng)濟效益和社會效益。同時,本系統(tǒng)也是為實際倉儲工作人員所設計,在實際應用中,更方便,更有經(jīng)濟效益,具有較高的經(jīng)濟效益,具有較高的經(jīng)濟效益。操作可行性,該智能倉庫系統(tǒng)由六大模塊構成,各個模塊是不可分割的,它們是一起構成的,在系統(tǒng)的開發(fā)中,各模塊之間不能有任何的功能,在一個模塊中的功能盡量統(tǒng)一,從而降低了以后的維護成本,也更易于執(zhí)行,在編程的時候,嚴格按照代碼的編寫規(guī)格來進行,讓系統(tǒng)的代碼更清楚。該系統(tǒng)所包含的所有功能均可由操作人員完成,而系統(tǒng)管理員幾乎沒有必要對其進行常規(guī)操作。系統(tǒng)管理員負責的是系統(tǒng)的管理,而工作人員負責的是存貨,這樣的分工更容易管理。這樣把兩個功能分離開來,便于對整個系統(tǒng)進行維護和管理,保證每個操作人員都是經(jīng)過管理人員精挑細選出來的,一旦發(fā)生問題,系統(tǒng)管理員能夠迅速判斷出是哪個操作人員,并對其負責,從而使操作變得具有可行性。3.3需求分析3.3.1系統(tǒng)總體需求通過對存貨進行合理的庫存量和存貨成本的計算,實現(xiàn)企業(yè)在存貨管理過程中的最優(yōu)。強化庫存材料的控制,定期進行出庫數(shù)據(jù)的統(tǒng)計,按照進出庫記錄進行對應的存貨量化管理,保證材料的庫存量足夠。(1)登入認證功能:在登入時,將自動判斷使用者的身分,以保證倉儲管理系統(tǒng)之資訊安全性。如果帳號不正確或密碼不正確,則會傳回一個錯誤指令,導致登入失敗。(2)管理員功能:專為系統(tǒng)管理員設計,除擁有用戶所具備的全部操作權限外,管理員還可執(zhí)行一系列高級管理任務。這些任務包括但不限于進行庫存統(tǒng)計查詢、新增供應商信息,以及全面管理公司員工。管理員可輕松添加新員工、刪除離職員工,并隨時修改員工的個人信息,確保人員信息的準確性和實時性。(3)職員功能模塊:職員可以對每日的存貨進行管理,如進出庫、個人資料等,還可以查詢到商品的銷售狀況。(4)倉庫查詢管理:此功能是由系統(tǒng)管理員與職員共用的,可以進行查看,出入庫,盤點存貨,商品價格變化等。(5)僅由系統(tǒng)管理員負責對雇員的私人信息進行管理。作為系統(tǒng)管理員,他們不但有權管理、修改每一個使用者的資料,而且可以增加或刪除雇員的資料,保證雇員資訊的即時更新及準確。(6)系統(tǒng)管理模塊是企業(yè)人力資源管理的中心環(huán)節(jié),它將企業(yè)的主要職能和操作人員的職能劃分清楚。為保證系統(tǒng)的安全與穩(wěn)定,系統(tǒng)中的每一個成員均享有修改密碼的權利。但是,如果要增加一個新的操作人員,只有系統(tǒng)管理員才有適當?shù)牟僮鳈嘞?。這樣的權限設定,保證了系統(tǒng)的專業(yè)與嚴謹,并能有效地避免非法操作。3.3.2用例圖分析該智能倉庫的設計方案是將用戶分成兩類,一類是員工,一類是系統(tǒng)管理員。其中,員工主要負責庫房的日常管理及資料維護工作;系統(tǒng)管理員負責全面監(jiān)管員工及庫房的管理事務,確保各項工作的順利進行。系統(tǒng)管理員作為該系統(tǒng)的核心管理者,肩負著系統(tǒng)管理與維護的重任。其職責包括但不限于查詢庫存信息、更新個人信息、管理員工檔案、處理產(chǎn)品入庫與出庫等事務,以確保系統(tǒng)的穩(wěn)定運行和數(shù)據(jù)的準確性。圖3-1倉庫管理員用例圖員工功能涵蓋了出入庫信息查詢、庫存盤點、供應商信息管理、價格查詢以及用戶信息變更和用戶管理等多項功能,旨在為員工提供全面、便捷的操作體驗。圖3-2員工用例圖3.4業(yè)務流程分析3.4.1管理員模塊業(yè)務流程系統(tǒng)管理員在登錄時,必須輸入正確的賬號和密碼,才能成功進入系統(tǒng)。登錄成功后,其主要職責是維護商品信息以及管理員工個人信息。這包括但不限于查詢、修改用戶的個人信息,查詢出入庫記錄,以及統(tǒng)計庫存信息等核心功能,以確保系統(tǒng)的數(shù)據(jù)準確性和操作流暢性。圖3-3管理員程序流程圖3.4.2員工模塊業(yè)務流程分析職員需要輸入準確的賬號和密碼才能夠登錄成功。順利登錄后,核心功能是維護商品的信息與查詢個人信息。其中包括的主要功能是查看用戶的個人信息、查詢產(chǎn)品的入出庫,查詢現(xiàn)有庫存統(tǒng)計等。圖3-4員工程序流程圖3.5本章小結在本章中,我們對各個模塊展開了詳盡的剖析,進而從技術、經(jīng)濟、操作層面進行了深入的可行性探討。經(jīng)過全面系統(tǒng)的分析,我們最終確認了該系統(tǒng)的可行性。緊接著,在第二節(jié)中,我們聚焦于需求分析,對系統(tǒng)中的特定特性進行了細致劃分,并重點闡述了其各項功能,同時介紹了其顯著特點。我們首先深入剖析了各模塊的市場需求,并對系統(tǒng)的基本功能進行了全面分析,進一步探討了系統(tǒng)在開發(fā)過程中是否能夠滿足用戶的期望。此外,我們還對該系統(tǒng)的整體需求及功能進行了詳盡說明。在第二章中,我們采用用例圖的方式,對系統(tǒng)的用戶需求和核心功能進行了詳盡的分析。而到了第三章,我們則對企業(yè)經(jīng)營過程進行了詳盡的闡述,以便更好地理解系統(tǒng)的實際應用場景。第4章系統(tǒng)設計4.1系統(tǒng)總體設計4.1.1系統(tǒng)功能模塊設計通過對功能需求的分析,將其分為六大功能模塊,即:菜單信息管理,登錄,出入庫管理,供應商,庫存統(tǒng)計,個人信息管理。基礎信息管理模塊涵蓋了訂單處理、產(chǎn)品目錄維護以及供應商信息更新等多項關鍵資料的管理工作;庫存管理工作可以對倉庫系統(tǒng)中的商品流進行數(shù)據(jù)統(tǒng)計;查詢資料統(tǒng)計功能,可進行日常資訊的查詢;庫存盤點可以查看庫存中的產(chǎn)品數(shù)量,產(chǎn)品進出庫,調(diào)整庫存,以及產(chǎn)品銷量的統(tǒng)計;系統(tǒng)管理員可以增加雇員的資料,也可以更改自己的口令。圖4-1功能模塊圖4.1.2系統(tǒng)業(yè)務流程(1)用戶登錄機制:系統(tǒng)會對登錄用戶的身份進行自動核實,確認其合法性,并隨之完成系統(tǒng)認證流程。這樣,不同角色的用戶能夠依據(jù)其權限執(zhí)行相應的任務。(2)日常數(shù)據(jù)維護:這個系統(tǒng)負責對用戶信息、生產(chǎn)商資料、商品種類以及商品詳情等各類數(shù)據(jù)進行全面維護,確保數(shù)據(jù)的準確性和時效性。(3)進貨管理:當產(chǎn)品生產(chǎn)需要原材料時,這個功能將協(xié)助我們從對應的供應商處進行采購,并在輸入相關信息后妥善存儲,為生產(chǎn)提供有力的物資保障。(4)原材料出庫:由于庫存中的原材料不能直接用于生產(chǎn),我們需通過這個功能從庫存中提取所需原材料,為生產(chǎn)流程提供必要的物質(zhì)條件。(5)產(chǎn)品入庫操作:當不同種類的產(chǎn)品生產(chǎn)完成后,系統(tǒng)會進行分類,并妥善安排存儲位置,確保產(chǎn)品有序入庫。(6)庫存管理功能:此模塊允許我們查看當前庫存狀況并進行有效管理。此外,還可以根據(jù)實際情況調(diào)整產(chǎn)品的價格及購入時間等相關信息,以滿足市場變化和運營需求。(7)統(tǒng)計:根據(jù)產(chǎn)品銷售的時間,價格和數(shù)量計算出產(chǎn)品的盈利關系,畫出條形,折線和扇形統(tǒng)計圖,方便用戶查看。4.2數(shù)據(jù)庫設計此智慧倉庫系統(tǒng)主要包括五個表,即商品信息表、管理員信息表、生產(chǎn)商信息表、入庫信息表和出庫信息表。商品信息表:商品信息主要維護在此表格中。新商品添加進來后將儲存在此表格當中。包括Sname、產(chǎn)品名稱、供應商、數(shù)量和價格。Sname是主鍵,非空且唯一的。管理員信息表是一個特定設計的表格,用于全面管理和維護工廠內(nèi)所有操作員及系統(tǒng)管理員的詳細信息。一旦用戶個人信息被成功添加,這些信息將被存儲在這張表中。表中包含的主要字段有:Account(賬號)、密碼、姓名、地址、電子郵件等,其中Account字段作為主鍵,確保了此數(shù)據(jù)的非空性和唯一性。入庫數(shù)據(jù)表是專門用于存儲倉庫入庫信息的核心表格,所有與入庫相關的詳細數(shù)據(jù)均會被準確記錄并保存在此表中。表中主要包含的字段有:ID(標識號)、供應商、產(chǎn)品名稱、存儲時間、庫存數(shù)量、價格、操作員等。ID字段作為主鍵,確保了每條入庫記錄的唯一性。出庫數(shù)據(jù)表作為專門記錄倉庫出庫信息的核心載體,承載著所有與出庫相關的詳細數(shù)據(jù),確保數(shù)據(jù)的準確性和完整性。主要字段包括:ID(標識號)、供應商、產(chǎn)品名稱、交貨時間、庫存數(shù)量、價格、客戶名稱、業(yè)務員等。其中,ID字段同樣作為主鍵,確保了每條出庫記錄的唯一性。生產(chǎn)商信息表主要用于維護生產(chǎn)商的相關信息。表中包含的主要字段有:Name(生產(chǎn)商名稱)、產(chǎn)品名稱、數(shù)量、價格等。其中,Name字段作為主鍵,確保了每個生產(chǎn)商名稱的唯一性。在數(shù)據(jù)庫設計的初始階段,數(shù)據(jù)庫的概念設計是至關重要的一步,我們可以借助實體-關系圖(Entity-RelationshipDiagram,簡稱E-R圖)這一工具,以直觀的方式展示實體及其屬性之間的關聯(lián)與聯(lián)系,為后續(xù)的數(shù)據(jù)庫邏輯設計和物理設計奠定堅實基礎。以及不同實體之間的聯(lián)系。E-R圖是一種有效的工具,它能夠幫助我們清晰地理解數(shù)據(jù)的結構,并為后續(xù)的數(shù)據(jù)庫邏輯設計和物理設計提供堅實的基礎。圖4-2系統(tǒng)的E-R圖4.3本章小結本章主要論述系統(tǒng)設計,第一節(jié)是系統(tǒng)的總體設計,主要通過系統(tǒng)功能設計模塊和系統(tǒng)業(yè)務流程模塊,描述系統(tǒng)屬性及其設計中所使用的方法。第二節(jié)是數(shù)據(jù)庫開發(fā),主要通過在ER圖中表示已開發(fā)的模塊和模塊,字段和字段之間的關系在表中進行詳細說明。第5章系統(tǒng)實現(xiàn)5.1登錄模塊的實現(xiàn)該函數(shù)是訪問該體系的門戶。在注冊時,根據(jù)用戶所輸入的各種信息,對用戶進行身份認證,并對其進行相應的授權。在此基礎上,設計了兩個不同的登錄口。倉庫管理員只需輸入正確的使用者名稱及密碼,即可取得相應之作業(yè)權限。這些登錄所使用的帳號及密碼,均已提前儲存在使用者資料表格中,可由管理員提前輸入或自行登記。但是,不管是采用何種方法輸入的信息,在閱讀之前,必須先與數(shù)據(jù)庫進行對接,才能保證從相應的數(shù)據(jù)庫中正確地提取出用戶的資料,從而進行登錄確認和權限指派。圖5-1用戶登陸界面5.2庫存管理庫存量管理工作是指庫房的完備庫存管理系統(tǒng),其中主要包含產(chǎn)品出庫、產(chǎn)品入庫、產(chǎn)品庫存量查詢、庫存量變動以及庫存盤點等功能。商品倉庫專門負責管理新商品的需求與存儲;發(fā)貨流程則是依據(jù)訂單號從庫存中精準提取指定數(shù)量的商品,并實時更新庫存數(shù)據(jù)以反映變動;存貨查詢功能則允許用戶輸入想要查詢的商品信息,系統(tǒng)隨即返回該商品的當前存貨數(shù)量,為用戶提供便捷的庫存信息查詢服務;更改庫存是指通過輸入原材料信息來更改原材料存儲信息;最后一個功能是庫存盤點,它返回倉庫中所有貨物的庫存信息。5.2.1入庫模塊這個功能模塊是整個系統(tǒng)設計當中最主要的功能模塊之一。對不同方式的入庫流程而言,在倉庫管理過程中區(qū)別不大,主要區(qū)別還是體現(xiàn)在業(yè)務系統(tǒng)中。員工在此界面可自主選擇對應的供應商及其旗下產(chǎn)品,隨后輸入所需入庫的商品數(shù)量、價格等相關信息,以完成入庫操作。點擊保存入庫后,后臺數(shù)據(jù)庫將會發(fā)生相應的修改;用戶也可以點擊刪除入庫或更改入庫,系統(tǒng)將會依 據(jù)訂單編號進行相應刪除或修改;點擊“查找入庫”按鈕,系統(tǒng)將展示所有入庫的詳細信息;若輸入特定的訂單編號后再點擊“查找入庫”,則系統(tǒng)將僅顯示與該訂單相關的入庫信息,提供更為精準的數(shù)據(jù)查詢服務。圖5-2查找入庫界面5.2.2出庫模塊該系統(tǒng)在進行出庫操作時,嚴格依據(jù)庫存記錄中已有的商品信息進行。用戶既可以一次性查詢所有出庫記錄,也可以根據(jù)特定的訂單編號選擇性地查詢相關出庫記錄。并更改存儲庫中的出庫記錄,已經(jīng)出庫的商品信息將顯示在相應的信息框中。如果在交付操作期間,庫存中的商品數(shù)量小于0,系統(tǒng)將報告錯誤。此時,交貨可能不正常。庫存量恢復正常后,庫房里的產(chǎn)品數(shù)目將會發(fā)生改變。圖5-3查找出庫界面5.2.3查詢統(tǒng)計模塊倉庫庫存量統(tǒng)計是對庫房內(nèi)產(chǎn)品的綜合管理,其中包含產(chǎn)品出入庫、產(chǎn)品信息查閱、庫存量財務報表顯示。根據(jù)倉庫中的銷售訂單進行貨物交付,以準備適當數(shù)量的貨物和相應的庫存減少。查詢商品信息其中包括商品價格、出入庫數(shù)量、時間及操作員等信息的精確查詢;最后是庫存盤點,這一功能是將倉庫中的所有商品進行統(tǒng)一庫存整理。圖5-4查詢統(tǒng)計界面5.3添加供應商模塊在添加供應商功能中,用戶可以選擇供應商名稱,在輸入框中輸入供應商旗下的產(chǎn)品名稱,點擊“添加供應商旗下產(chǎn)品”按鈕,即可完成商品的添加操作;同時,系統(tǒng)也支持從供應商列表中刪除現(xiàn)有的供應商,以及刪除供應商旗下的子產(chǎn)品。在添加供應商的過程中,還可以同時附加添加其旗下的產(chǎn)品,每次最多可添加五種子產(chǎn)品,添加完畢后點擊“保存”按鈕即可生效。同時該模塊也支持供應商重置,一次性刪除供應商旗下所有產(chǎn)品。圖5-5添加供應商界面5.4商品管理模塊通過對庫房商品數(shù)據(jù)進行深入統(tǒng)計分析,我們可以清晰地識別出哪些商品的銷售量較大,哪些商品的銷售量較小?;谶@樣的分析結果,我們可以合理調(diào)整庫存策略:對于銷售量大的商品,應適當增加其在倉庫的存放數(shù)量,以確保供應充足;而對于銷售量小的商品,則可以適當減少購買量,避免庫存積壓。此外,通過對過去的銷售訂單進行系統(tǒng)分析,我們能夠更準確地預測下一個階段的銷售趨勢,并據(jù)此制定針對性的銷售策略。這一模塊不僅提供了對倉庫管理系統(tǒng)庫存報表信息的全面統(tǒng)計,更為公司在制定銷售策略時提供了有力的數(shù)據(jù)支持和指導。圖5-6商品管理界面5.5個人信息管理模塊當系統(tǒng)管理員或用戶登入用戶界面時,使用者鍵入賬戶管理按鍵,會切換到用戶的個人信息管理頁面。其中系統(tǒng)管理員具備兩個功能。第一個功能是執(zhí)行一些與管理員或員工的個人數(shù)據(jù)相關的功能,通過這些功能,我們可以獲取到用戶的完整個人信息。此外,只有系統(tǒng)管理員才有權限操作所有員工的信息,確保數(shù)據(jù)的安全與準確。圖5-7角色管理界面在該界面中,系統(tǒng)管理員具備添加員工個人信息的權限,這些信息包括但不限于員工賬號、賬號密碼、郵箱地址、員工姓名以及員工地址等,以確保員工信息的完整性和準確性。圖5-8用戶管理界面在這個功能中,系統(tǒng)管理員能夠修改所有個人信息,還能夠訪問每個員工個人信息。按照員工的需求,系統(tǒng)管理員也能夠隨意進入公司員工的個人信息管理頁面,能夠對員工的所有數(shù)據(jù)展開修更改。更改后,用戶也可以以一個新的個人身份進行登錄,在信息更新后登錄到相應界面。5.6本章小結本章主要介紹這個系統(tǒng)的實施情況以及登錄模塊、庫存管理、添加供應商模塊、庫存報表模塊、個人信息管理等六個模塊等。這六個模塊首先描述它們的功能,伴隨著相應的頁面圖片,然后跟隨實現(xiàn)流程詳細說明這些功能。第6章系統(tǒng)測試6.1系統(tǒng)測試綜述在軟件開發(fā)中,系統(tǒng)的功能測試是一個十分關鍵的環(huán)節(jié)。通過對單元測試、系統(tǒng)集成測試等多層次的測試,對系統(tǒng)的功能與性能進行檢驗。在此基礎上,對系統(tǒng)進行了性能測試。在系統(tǒng)中,用戶登陸是一種非常普遍的操作,它主要用來對用戶進行身份認證和授權。一般情況下,由系統(tǒng)管理員對用戶帳號及使用權限的設定進行管理。當您執(zhí)行系統(tǒng)的功能測試時,您必須確認您的登錄功能是正確的。在測試期間,我們將對是否登陸成功以及是否登錄進行測試。首先,我們要在登陸前輸入正確的使用者名稱及密碼。若成功登入,將會出現(xiàn)一條歡迎訊息,以及有關的資料,如個人資料等。這表示該用戶已經(jīng)成功地登入了該系統(tǒng),并可以正常地使用該系統(tǒng)的功能。但是,若輸入的使用者名稱或密碼為空,系統(tǒng)將顯示錯誤提示,提醒用戶必須填寫完整的使用者名稱和密碼。若用戶輸入的使用者名稱或密碼不正確,系統(tǒng)同樣會給出相應的錯誤提示,幫助用戶獲取正確的信息。在這種情況下,用戶需要重新輸入正確的使用者名稱及密碼方可成功登入。除了正常的使用者名稱及密碼認證之外,本系統(tǒng)也能設定其它的安全性確認方法,如CAPTCHA。當使用者登入時,系統(tǒng)會要求使用者填寫驗證碼,以提高登入的安全性。另外,為了使使用者在忘記密碼或更改密碼時,可以更容易地完成對密碼的修改。這樣,使用者就可以很容易的修改自己的密碼,或者在確認的過程中恢復自己的密碼。總之,在對系統(tǒng)進行性能測試時,用戶登陸是一個非常重要的環(huán)節(jié)。通過對登錄函數(shù)的成敗進行了驗證,從而保證了系統(tǒng)的穩(wěn)定、安全,提高了用戶的使用體驗。庫存管理工作功能模塊順利實現(xiàn)了儲存產(chǎn)品的基本功能。當用戶輸入正確的產(chǎn)品信息時,后臺可以根據(jù)接收到的數(shù)據(jù)區(qū)分真假,并將其正確寫入數(shù)據(jù)庫;當使用者輸入產(chǎn)品的訂單編號和數(shù)目時,后臺能夠準確找到數(shù)據(jù)庫庫存表格中相適應產(chǎn)品的數(shù)目;在庫存查詢模塊中,當輸入正確的訂單號時,后臺可以根據(jù)輸入的訂單號找到該商品的所有庫存信息,并可以正確返回到用戶界面。添加供應商模塊,管理員在添加供應商名稱時必須合法,若輸入的供應商名稱與已有的名稱重復,則會出現(xiàn)請重新輸入提示;在刪除供應商時必須必須先確保該供應商不存在未處理的記錄或關聯(lián)數(shù)據(jù),否則將會報錯;在刪除供應商旗下的子產(chǎn)品時,必須先選擇供應商復選框,否則無法刪除;在添加供應商的子產(chǎn)品時,最多一次性輸入五種產(chǎn)品,否則將會報錯,點擊重置按鈕時,會清空供應商旗下的所有子產(chǎn)品。庫存報表報表模塊,當點擊入庫數(shù)據(jù)統(tǒng)計時,就會顯示關于不同供應商旗下不同產(chǎn)品的數(shù)量的條形統(tǒng)計圖,根據(jù)不同的入庫清單,精確的計算出每種產(chǎn)品的入庫數(shù)量;當點擊出庫數(shù)據(jù)統(tǒng)計時,就會顯示關于不同供應商旗下不同產(chǎn)品的數(shù)量的條形統(tǒng)計圖,根據(jù)不同的出庫清單,顯示出產(chǎn)品的出庫數(shù)量;點擊盈虧數(shù)據(jù)統(tǒng)計按鈕,則會根據(jù)入庫和出庫的產(chǎn)品的時間,數(shù)量及價格計算出收入和支出的余額,通過扇形統(tǒng)計圖表達出來;當點擊貨物流動曲線時,可以選擇不同的供應商,通過折線統(tǒng)計圖顯示出該供應商三個月以內(nèi)或者總的倉庫產(chǎn)品的流動曲線,包括入庫和出庫流動曲線。個人信息管理模塊,當?shù)卿浻脩魴嘞逓楣芾韱T時,會有三種功能,用戶可進行個人信息的全面管理,包括新增員工賬號和刪除不再需要的員工賬號。之后,通過點擊個人信息管理按鈕,用戶可以便捷地修改或重置自己的個人信息,確保數(shù)據(jù)的時效性和準確性,當點擊添加員工按鈕時,必須添加系統(tǒng)中不存在的員工,否則將會提示錯誤,并且在添加員工時,員工信息必須填寫完整,否則會提示信息不能為空;當點擊刪除員工賬號按鈕時,在后續(xù)操作中,管理員可先點擊“查詢員工賬號”功能,系統(tǒng)將展示系統(tǒng)中所有的員工信息。管理員可根據(jù)顯示出的員工信息進行刪除操作,但需注意,被刪除的員工必須是系統(tǒng)中已存在的員工記錄。另外,當?shù)卿浻脩舻臋嘞尴薅閱T工權限時,員工僅具備修改自己個人信息的權限,無法對其他員工信息進行操作。6.2測試用例6.2.1用戶登錄模塊表6-1用戶登錄測試用例表用例序號用例名稱輸入/動作預期結果實際結果結果對比001登錄界面輸入空的賬號或密碼,點擊登錄按鈕登錄失敗,提示賬號或者密碼錯誤登錄失敗,提示賬號或者密碼錯誤符合期望002登錄界面輸入錯誤的賬號、密碼并點擊登錄登錄失敗,提示賬號或者密碼錯誤登錄失敗,提示賬號或者密碼錯誤符合期望003登錄界面輸入正確的賬號與密碼登錄成功,跳轉到相應界面登錄成功,跳轉到相應界面符合期望004忘記密碼界面輸入賬號為空提交失敗,提示賬號不可為空提交失敗,提示賬號不可為空符合期望005忘記密碼界面輸入錯誤的郵箱格式提交失敗,提示郵箱格式輸入錯誤提交失敗,提示郵箱格式輸入錯誤符合期望006忘記密碼界面輸入正確賬號,密碼,郵箱,驗證碼提交成功,提示更改成功提交成功,提示更改成功符合期望該模塊主要實現(xiàn)用戶登錄功能,通過以上測試用例,該模塊功能都已實現(xiàn),暫未發(fā)現(xiàn)錯誤。能夠對用戶輸入的賬號密碼進行判空以及防止注入漏洞。6.2.2庫存管理模塊表6-2庫存管理測試用例表用例序號用例名稱輸入/動作預期結果實際結果結果對比001商品的入庫頁面單擊商品入庫按鈕跳轉到商品入庫界面跳轉到商品入庫界面符合期望002商品入庫頁面點擊查找入庫跳轉到相應頁面,顯示入庫記錄跳轉到相應頁面,顯示入庫記錄符合期望003商品入庫頁面輸入正確訂單編號,點擊刪除入庫刪除成功,庫存更新刪除成功,庫存更新符合期望004商品出庫頁面輸入正確訂單編號,點擊刪除出庫刪除成功,庫存更新刪除成功,庫存更新符合期望005查詢記錄頁面點擊查詢記錄按鈕跳轉到查詢記錄頁面跳轉到查詢記錄頁面符合期望該模塊主要實現(xiàn)商品出入庫功能,通過以上測試用例,該模塊的所有功能均已順利實現(xiàn),目前未發(fā)現(xiàn)任何錯誤。它能夠對商品的入庫和出庫等一系列操作進行精確處理,并確保相關界面能夠正確無誤地展示所需信息。6.2.3添加供應商模塊表6-3添加供應商測試用例表用例序號用例名稱輸入/動作預期結果實際結果結果對比001添加供應商界面單擊添加供應商按鈕跳轉到添加供應商界面跳轉到添加供應商界面符合期望002添加供應商界面輸入正確供應商名稱,點擊添加供應商按鈕提示供應商添加成功,供應商更新提示供應商添加成功,供應商更新符合期望003添加供應商界面選擇供應商,輸入產(chǎn)品名稱,點擊添加旗下產(chǎn)品按鈕添加成功,庫存更新添加成功,庫存更新符合期望該模塊主要實現(xiàn)添加供應商功能,通過以上測試用例,該模塊功能都已實現(xiàn),暫未發(fā)現(xiàn)錯誤。能夠對商品供應商的一系列操作進行正確處理,相應界面能夠正確展示。6.2.4庫存報表模塊表6-4庫存報表測試用例表用例序號用例名稱輸入/動作預期結果實際結果結果對比001進庫數(shù)據(jù)統(tǒng)計頁面點擊進庫數(shù)據(jù)統(tǒng)計按鈕自動跳轉到進庫數(shù)據(jù)統(tǒng)計頁面自動跳轉到進庫數(shù)據(jù)統(tǒng)計頁面符合期望002出庫數(shù)據(jù)統(tǒng)計頁面單擊出庫數(shù)據(jù)統(tǒng)計按鈕自動跳轉到出庫數(shù)據(jù)統(tǒng)計界面自動跳轉到出庫數(shù)據(jù)統(tǒng)計界面符合期望003盈虧數(shù)據(jù)統(tǒng)計頁面點擊盈虧數(shù)據(jù)統(tǒng)計按鈕自動跳轉到盈虧數(shù)據(jù)統(tǒng)計頁面自動跳轉到盈虧數(shù)據(jù)統(tǒng)計頁面符合期望004貨物流動曲線頁面點擊貨物流動曲線按鈕自動跳轉到貨物流動曲線頁面自動跳轉到貨物流動曲線頁面符合期望005貨物流動曲線頁面選擇供應商,點擊出庫按鈕,點擊查看最近三個月按鈕顯示近三個月貨物流動曲線顯示近三個月貨物流動曲線符合期望006貨物流動曲線頁面選擇供應商,點擊出庫按鈕,點擊查看歷來數(shù)據(jù)按鈕顯示所有貨物流動曲線顯示所有貨物流動曲線符合期望該模塊主要實現(xiàn)用庫存統(tǒng)計功能,通過以上測試用例,該模塊功能都已實現(xiàn),暫未發(fā)現(xiàn)錯誤。需求分析中所要求的所有功能都已實現(xiàn),數(shù)據(jù)的各項功能都可以正常使用。6.2.5個人信息管理模塊表6-5個人信息管理測試用例表用例序號用例名稱輸入/動作預期結果實際結果結果對比001賬號管理頁面點擊賬號管理按鈕跳轉相應頁面跳轉相應頁面符合期望002添加員工賬號頁面輸入錯誤的員工信息添加員工信息失敗添加員工信息失敗符合期望003添加員工賬號頁面輸入正確的員工信息添加員工信息成功,員工信息更新添加員工信息成功,員工信息更新符合期望004刪除員工賬號界面查詢員工賬號按鈕顯示所有員工個人信息顯示所有員工個人信息符合期望005刪除員工賬號頁面輸入正確的員工工號,點擊刪除員工賬號刪除員工信息成功,員工信息更新刪除員工信息成功,員工信息更新符合期望006個人信息管理頁面輸入正確的個人信息,點擊保存?zhèn)€人信息保存成功,個人信息更新個人信息保存成功,個人信息更新符合期望該模塊主要實現(xiàn)信息管理功能,通過以上測試用例,該模塊功能都已實現(xiàn),暫未發(fā)現(xiàn)錯誤。能夠對用戶的個人信息進行處理,用戶個人信息界面能夠正確展示。6.3本章小結經(jīng)過上面的所有測試,整個系統(tǒng)包含的所有功能都能夠正常運行,基本達到了預期的結果。其中登錄模塊、庫存管理模塊、添加供應商模塊、庫存報表模塊、個人信息管理模塊等五個模塊預期的功能也全部都較好的實現(xiàn)了,用戶界面簡約大方,適于倉庫做為平常的應用管理軟件較長時間的使用。結論這一次研發(fā)的智能倉庫管理系統(tǒng),其核心是從對存貨的管理角度出發(fā),仔細地構造了一個庫存進銷存的商業(yè)邏輯,將與庫存項目有關的數(shù)據(jù)進行了統(tǒng)一的管理,達到了對信息來源的集成。在該系統(tǒng)的幫助下,使用者可以極大地減少多余的作業(yè),從復雜的倉儲工作中解脫出來,更多地關注那些由機器所不能完成的事務,從而提高庫存的準確性,加速存貨的周轉,并且減少因庫存而引起的資金浪費。該系統(tǒng)主要包括基本信息菜單信息管理,登錄管理,進出庫管理,供應商管理,庫存統(tǒng)計,個人信息管理等六個主要功能,能夠充分滿足庫房管理員的日常工作需要。在測試過程中,我們采用了“黑箱”和“白盒子”兩種方式來保證系統(tǒng)的性能。本文主要探討了系統(tǒng)開發(fā)的背景、目的及其重要性,并概述了當前國內(nèi)外倉儲管理系統(tǒng)的發(fā)展狀況。在此基礎上,簡要介紹了該系統(tǒng)的獨特性和優(yōu)勢。文章深入闡述了系統(tǒng)開發(fā)所運用的技術和工具,詳細說明了系統(tǒng)的主要功能及其實現(xiàn)方式。進一步地,文章對系統(tǒng)的可行性進行了全面分析,并提出了MVC體系結構,詳細闡述了各層次的功能,同時簡要說明了數(shù)據(jù)庫的設計。此外,文章還對系統(tǒng)的功能、非功能要求以及數(shù)據(jù)進行了詳細描述,并進行了整體要求和過程分析。通過對系統(tǒng)主要功能的深入分析,文章詳細闡述了其體系結構和各功能模塊的具體實現(xiàn)過程。最后,在系統(tǒng)測試方面,文章列舉了測試對象中的部分實例,展示了系統(tǒng)的穩(wěn)定性和可靠性。并通過圖表分析來判定系統(tǒng)是否達到了預期要求,并給出了相應的改善方案。最后,對各個模塊進行了性能試驗,結果表明該系統(tǒng)完全符合設計要求,達到了預定的目的。但是,該系統(tǒng)的研制并不只是為了滿足中小企業(yè)的需求,它還將為中小企業(yè)的倉儲管理提供一個有效的解決方案。當前,該系統(tǒng)以單倉進銷存管理為主,還有很大的改進空間。首先,隨著新零售模式的興起,企業(yè)的庫存分配越來越全球化,對倉儲空間的流動性提出了更高的要求。針對多個倉儲物流的協(xié)同調(diào)度問題,以及物流、人工費用等因素,需要對物流系統(tǒng)進行優(yōu)化調(diào)度,使物流系統(tǒng)收益最大化。其次,為了提高系統(tǒng)的負荷容量,可將系統(tǒng)進行模塊化分解,并將其分解成若干個子系統(tǒng)。在此基礎上,我們需要持續(xù)關注新技術的發(fā)展,使系統(tǒng)的效能與使用者經(jīng)驗得到更大的提高。參考文獻[1]陳曉鶯,許勝飛.智能倉儲物流管理系統(tǒng)的設計與應用研究[J].物流研究,2023,(02):64-69.[2]董洛含,劉麗華,逄瑞佳,等.基于ZigBee與RFID的倉庫貨物智能管理系統(tǒng)設計[J].遼寧科技學院學報,2022,24(03):36-38.[3]張淼垚.智能工廠倉儲數(shù)據(jù)管理系統(tǒng)設計與實現(xiàn)[D].北京郵電大學,2022.DOI:10.26969/d.cnki.gbydu.2022.002628.[4]陳娟.基于MVC的小型倉庫管理系統(tǒng)設計[J].電腦編程技巧與維護,2022,(12):101-103.[5]寧雪梅.倉庫管理系統(tǒng)數(shù)據(jù)庫設計與實現(xiàn)[J].大眾標準化,2022,(16):139-141.[6]劉峰.基于互聯(lián)網(wǎng)的倉庫管理系統(tǒng)[J].機電產(chǎn)品開發(fā)與創(chuàng)新,2021,34(01):74-77.[7]李欣雨.智能倉儲管理系統(tǒng)的研究及開發(fā)[D].山東大學,2022.DOI:10.27272/ki.gshdu.2022.002072.[8]李春暉,翁楓,韓衛(wèi)民,等.新型3D智慧倉庫管理系統(tǒng)的設計[J].機械制造與自動化,2021,50(05):208-210.DOI:10.19344/ki.issn1671-5276.2021.05.057.[9]司小龍.基于Java和SQLServer的倉庫管理系統(tǒng)的設計與開發(fā)[J].科技創(chuàng)新與生產(chǎn)力,2023,(01):71-74+77.[10]范昊,范龍慶.智能倉庫管理系統(tǒng)和電子標簽揀配系統(tǒng)在智能物流中的應用[J].制造業(yè)自動化,2022,44(04):22-24.[11]安沈昊,于榮歡.基于MySQL的天地一體化網(wǎng)絡結構數(shù)據(jù)庫構建[J].兵工自動化,2021,40(12):66-70.[12]侯金彪.一種基于Jsp和MySQL的外賣系統(tǒng)的設計與實現(xiàn)[J].安順學院學報,2021,23(03):129-136.[13]M.LB,EvaS,LópezFRLD,etal.TrainingindustrialengineersinLogistics4.0[J].Computers&IndustrialEngineering,2023,184.[14]NaomiB,NaderN,M.CS,etal.Aninterdisciplinaryandmulti-levelreviewofresiliencetoinformtrainingofhumanresourcesforcriticalinfrastructure[J].InternationalJournalofDisasterRiskReduction,2022,78.[15]MathuwanS,PanitaW,PrachyanunN.CrystallizedIntelligenceWisdomRepositoryManagementSystemwithaConversationalAgent[J].InternationalEducationStudies,2023,16(2):150-.附錄A基于SpringBoot的智慧倉庫管理系統(tǒng)的設計與實現(xiàn)部分代碼<!DOCTYPEhtml><html><head> <metacharset="utf-8"> <title>三級菜單使用文檔--layui后臺管理模板2.0</title> <metaname="renderer"content="webkit"> <metahttp-equiv="X-UA-Compatible"content="IE=edge,chrome=1"> <metaname="viewport"content="width=device-width,initial-scale=1,maximum-scale=1"> <metaname="apple-mobile-web-app-status-bar-style"content="black"> <metaname="apple-mobile-web-app-capable"content="yes"> <metaname="format-detection"content="telephone=no"> <linkrel="stylesheet"href="../../layui/css/layui.css"media="all"/> <linkrel="stylesheet"href="../../css/public.css"media="all"/></head><bodyclass="childrenBody"> <blockquoteclass="layui-elem-quote"> 其實本模版中的三級菜單的展示方式和實際開發(fā)中的做法是不一樣的,下面將說一下本模版中的做法 </blockquote> <fieldsetclass="layui-elem-fieldlayui-field-titlemagt30"> <legend>實際開發(fā)</legend> </fieldset> <p>在實際的開發(fā)中,無論是頂部菜單還是左側菜單都應該是通過接口獲取的。首先獲取頂部菜單,然后點擊頂級菜單通過傳參再次訪問接口來獲取二級、三級菜單。</p> <fieldsetclass="layui-elem-fieldlayui-field-titlemagt30"> <legend>本模版的做法</legend> </fieldset> <p>由于頂部菜單是大分類,不會有太多,所以在本模版中是直接寫死的,代碼如下【具體請看index.html第25-36行】:</p> <preclass="layui-code"lay-title="HTML"> <dddata-menu="seraphApi"><ahref="javascript:;"><iclass="layui-icon"data-icon=""></i><cite>使用文檔</cite></a></dd> <iclass="layui-red">請注意這里面的“data-menu”屬性,此屬性值需要和json中的字段名對應以便能夠進行通過此屬性查找對應的子菜單</i> </pre> <p>然后通過index.js中的代碼進行循環(huán)渲染,就成了當前大家看到的這個樣子了,js代碼如下【具體請看index.js中的第18-38行】:</p> <preclass="layui-code"lay-title="JavaScript"> functiongetData(json){ $.get("接口路徑",function(data){ if(json=="contentManagement"){<iclass="layui-blue">//此處即實際開發(fā)中傳遞的參數(shù)</i> dataStr=data.contentManagement;<iclass="layui-blue">//獲取到當前頂級菜單下的子菜單渲染到左側</i> tab.render(); } }) } </pre> <blockquoteclass="layui-elem-quote"> <pclass="layui-red">如果不動大框架的前提下,請嚴格按照菜單數(shù)據(jù)格式返回數(shù)據(jù),菜單數(shù)據(jù)格式請參考:<ahref="javascript:;"data-url="page/doc/bodyTabDoc.html#navJson"class="layui-btnlayui-btn-xsgoNavJson"><iclass="seraph"data-icon="icon-mokuai"></i><citeclass="layui-hide">bodyTab模塊</cite>去看看菜單數(shù)據(jù)格式</a></p> </blockquote> <scripttype="text/javascript"src="../../layui/layui.js"></script> <scripttype="text/javascript">layui.config({base:"../../js/"}).extend({"bodyTab":"bodyTab"})layui.use(['code','jquery','bodyTab'],function(){var$=layui.$, tab=layui.bodyTab();layui.code({about:false});$(".goNavJson").click(function(){parent.tab.tabAdd($(this)); })}) </script></body></html>//登錄按鈕form.on("submit(login)",function(data){varbtn=$(this);//設置登錄按鈕為不可點擊btn.text("登陸中...").attr("disabled","disabled").addClass("layui-disabled");//提交數(shù)據(jù)到后臺接口/login/login$.post("/login/login",data.field,function(rs){//設置登錄按鈕,恢復可以點擊,在前端防止重復點擊btn.text("登錄").attr("disabled",false).removeClass("layui-disabled");layer.msg(rs.msg);if(rs.code!=200){layer.msg(rs.msg);}else{//跳轉到templates/inedx/index.html頁面layer.msg(rs.msg);location.href="/sys/index";}});returnfalse;})//表單輸入效果$(".loginBody.input-item").click(function(e){e.stopPropagation();$(this).addClass("layui-input-focus").find(".layui-input").focus();})$(".loginBody.layui-form-item.layui-input").focus(function(){$(this).parent().addClass("layui-input-focus");})$(".loginBody.layui-form-item.layui-input").blur(function(){$(this).parent().removeClass("layui-input-focus");if($(this).val()!=''){$(this).parent().addClass("layui-input-active");}else{$(this).parent().removeClass("layui-input-active");}})})<!DOCTYPEhtml><html><head> <metacharset="utf-8"> <title>圖片總數(shù)--layui后臺管理模板</title> <metaname="renderer"content="webkit"> <metahttp-equiv="X-UA-Compatible"content="IE=edge,chrome=1"> <metaname="viewport"content="width=device-width,initial-scale=1,maximum-scale=1"> <metaname="apple-mobile-web-app-status-bar-style"content="black"> <metaname="apple-mobile-web-app-capable"content="yes"> <metaname="format-detection"content="telephone=no"> <linkrel="stylesheet"href="../../layui/css/layui.css"media="all"/> <linkrel="stylesheet"href="../../css/public.css"media="all"/></head><bodyclass="childrenBody"><formclass="layui-form"> <blockquoteclass="layui-elem-quotenews_search"> <divclass="layui-inline"> <inputtype="checkbox"name="selectAll"id="selectAll"lay-filter="selectAll"lay-skin="primary"title="全選"> </div> <divclass="layui-inline"> <aclass="layui-btnlayui-btn-smlayui-btn-dangerbatchDel">批量刪除</a> </div> <divclass="layui-inline"> <aclass="layui-btnlayui-btn-smuploadNewImg">上傳新圖片</a> </div> </blockquote> <ulclass="layer-photos-demo"id="Images"></ul></form><scripttype="text/javascript"src="../../layui/layui.js"></script><scripttype="text/javascript"src="images.js"></script></body></html>layui.config({ base:"../../js/"}).use(['flow','form','layer','upload'],function(){varflow=layui.flow,form=layui.form,layer=parent.layer===undefined?layui.layer:top.layer,upload=layui.upload,$=layui.jquery;//流加載圖片varimgNums=15;//單頁顯示圖片數(shù)量flow.load({elem:'#Images',//流加載容器done:function(page,next){//加載下一頁$.get("../../json/images.json",function(res){//模擬插入varimgList=[],data=res.data;varmaxPage=imgNums*page<data.length?imgNums*page:data.length;setTimeout(function(){for(vari=imgNums*(1);i<maxPage;i++){imgList.push('<li><imglayer-src="../../'+data[i].src+'"src="../../'+data[i].thumb+'"alt="'+data[i].alt+'"><divclass="operate"><divclass="check"><inputtype="checkbox"name="belle"lay-filter="choose"lay-skin="primary"title="'+data[i].alt+'"></div><iclass="layui-iconimg_del"></i></div></li>');}next(imgList.join(''),page<(data.length/imgNums));form.render();},500);});}});//設置圖片的高度$(window).resize(function(){$("#Imagesliimg").height($("#Imagesliimg").width());})//多圖片上傳upload.render({elem:'.uploadNewImg',url:'../../json/userface.json',multiple:true,before:function(obj){//預讀本地文件示例,不支持ie8obj.preview(function(index,file,result){$('#Images').prepend('<li><imglayer-src="'+result+'"src="'+result+'"alt="'++'"class="layui-upload-img"><divclass="operate"><divclass="check"><inputtype="checkbox"name="belle"lay-filter="choose"lay-skin="primary"title="'++'"></div><iclass="layui-iconimg_del"></i></div></li>')//設置圖片的高度$("#Imagesliimg").height($("#Imagesliimg").width());form.render("checkbox");});},done:function(res){//上傳完畢}});//彈出層$("body").on("click","#Imagesimg",function(){parent.showImg();})//刪除單張圖片$("body").on("click",".img_del",function(){var_this=$(this);layer.confirm('確定刪除圖片"'+_this.siblings().find("input").attr("title")+'"嗎?',{icon:3,title:'提示信息'},function(index){_this.parents("li").hide(1000);setTimeout(function(){_this.parents("li").remove();},950);layer.close(index);});})//全選form.on('checkbox(selectAll)',function(data){varchild=$("#Imagesliinput[type='checkbox']");child.each(function(index,item){item.checked=data.elem.checked;});form.render('checkbox');});//通過判斷是否全部選中來確定全選按鈕是否選中form.on("checkbox(choose)",function(data){varchild=$(data.elem).parents('#Images').find('liinput[type="checkbox"]');varchildChecked=$(data.elem).parents('#Images').find('liinput[type="checkbox"]:checked');if(childChecked.length==child.length){$(data.elem).parents('#Images').siblings("blockquote").find('input#selectAll').get(0).checked=true;}else{$(data.elem).parents('#Images').siblings("blockquote").find('input#selectAll').get(0).checked=false;}form.render('checkbox');})//批量刪除$(".batchDel").click(function(){var$checkbox=$('#Imagesliinput[type="checkbox"]');var$checked=$('#Imagesliinput[type="checkbox"]:checked');if($checkbox.is(":checked")){layer.confirm('確定刪除選中的圖片?',{icon:3,title:'提示信息'},function(index){varindex=layer.msg('刪除中,請稍候',{icon:16,time:false,shade:0.8});setTimeout(function(){//刪除數(shù)據(jù)$checked.each(function(){$(this).parents("li").hide(1000);setTimeout(function(){$(this).parents("li").remove();},950);})$('#Imagesliinput[type="checkbox"],#selectAll').prop("checked",false);form.render();layer.close(index);layer.msg("刪除成功");},2000);})}else{layer.msg("請選擇需要刪除的圖片");}})})packagecom.gdpu.bean;importcom.baomidou.mybatisplus.annotation.IdType;importcom.baomidou.mybatisplus.annotation.TableId;importjava.io.Serializable;importlombok.Data;importlombok.EqualsAndHashCode;importlombok.experimental.Accessors;/***<p>**</p>**@author*@since2020-06-29*/@Data@EqualsAndHashCode(callSuper=false)@Accessors(chain=true)publicclassWarehouseimplementsSerializable{privatestaticfinallongserialVersionUID=1L;@TableId(value="house_id",type=IdType.INPUT)privateIntegerhouseId;privateStringname;privateStringaddress;}packagecom.gdpu;importorg.mybatis.spring.annotation.MapperScan;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importorg.springframework.context.annotation.Configuration;@Configuration@SpringBootApplication@MapperScan("com.gdpu.mapper")publicclassDemoApplication{publicstaticvoidmain(String[]args){SpringApplication.run(DemoApplication.class,args);}}packagecom.gdpu.realm;importcom.baomidou.mybatisplus.core.conditions.query.QueryWrapper;importcom.gdpu.bean.TbUser;importmon.ActiveUser;importcom.gdpu.service.TbUserService;importorg.apache.shiro.authc.AuthenticationException;importorg.apache.shiro.authc.AuthenticationInfo;importorg.apache.shiro.authc.AuthenticationToken;importorg.apache.shiro.authc.SimpleAuthenticationInfo;importorg.apache.shiro.authz.AuthorizationInfo;importorg.apache.shiro.realm.AuthorizingRealm;importorg.apache.shiro.subject.PrincipalCollection;importorg.apache.shiro.util.ByteSource;importjavax.annotation.Resource;publicclassUserRealmextendsAuthorizingRealm{@ResourceprivateTbUserServicetbUserService;@OverridepublicStringgetName(){returnthis.getClass().getSimpleName();}/**授權**/@OverrideprotectedAuthorizationInfodoGetAuthorizationInfo(PrincipalCollectionprincipalCollection){returnnull;}/**認證**/@OverrideprotectedAuthenticationInfodoGetAuthenticationInfo(AuthenticationTokentoken)throwsAuthenticationException{//mybatisplus3.2.0的條件構造器QueryWrapper<TbUser>用于篩選相同的賬號QueryWrapper<TbUser>queryWrapper=newQueryWrapper();//在數(shù)據(jù)庫中篩選賬號相同的userqueryWrapper.eq("account",token.getPrincipal().toString());TbUsertbUser=tbUserService.getOne(queryWrapper);if(null!=tbUser){//新建活動用戶ActiveUseractiveUser=newActiveUser();activeUser.setTbUser(tbUser);//獲取數(shù)據(jù)庫中該用戶的鹽,鹽由md5加密算法生成ByteSourcecredentials=ByteSource.Util.bytes(tbUser.getSalt());System.out.println("credentials="+credentials);//判斷密碼是否相同SimpleAuthenticationInfoinfo=newSimpleAuthenticationInfo(activeUser,tbUser.getPassword(),credentials,this.getName());returninfo;}returnnull;}}packagecom.gdpu.controller;importcom.baomidou.mybatisplus.core.conditions.query.QueryWrapper;importcom.baomidou.mybatisplus.core.metadata.IPage;importcom.baomidou.mybatisplus.extension.plugins.pagination.Page;importcom.gdpu.bean.Customer;importcom.gdpu.bean.Provider;importmon.DataGridView;importmon.ResultObj;importcom.gdpu.service.CustomerService;imp
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 零碳園區(qū)低碳發(fā)展戰(zhàn)略與規(guī)劃
- 工業(yè)互聯(lián)網(wǎng)平臺數(shù)據(jù)備份與恢復策略在2025年的數(shù)據(jù)備份與恢復技術發(fā)展趨勢報告
- 食品加工行業(yè)2025年節(jié)能減排技術專利技術與市場前景
- 2025年能源領域碳捕集與封存項目投資回報率研究
- 餐飲商會獎懲機制方案(3篇)
- 專職勸導員職責方案
- 吉林疫情管理辦法
- 后勤分工管理辦法
- 吳江電梯管理辦法
- 品質(zhì)漏檢管理辦法
- 2025年茶藝師高級技能考核試卷:茶藝設備維護與操作試題
- 人教版數(shù)學七年級上冊單元測試卷-第一單元-有理數(shù)(含答案)
- 【艾青詩選】批注
- 《能源法》重點內(nèi)容解讀與實務應用
- 2025年云南省康旅控股集團有限公司招聘筆試參考題庫含答案解析
- 2025年寧波市交通建設工程試驗檢測中心有限公司招聘筆試參考題庫附帶答案詳解
- 《數(shù)控技術頂崗實習》課程標準
- 【MOOC】《武術基礎教與學》(東北大學)中國大學慕課答案
- 神話寓言的解讀寓言故事與兒童教育
- 《對血漿輸注的認識》課件
- Unit 1 Friendship 講義-2024年滬教牛津版英語七年級上冊
評論
0/150
提交評論