亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于SpringBoot+SSM 框架的進(jìn)銷存管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

        2020-08-12 06:48:08葛萌王穎
        科學(xué)技術(shù)創(chuàng)新 2020年24期
        關(guān)鍵詞:出庫(kù)入庫(kù)報(bào)表

        葛萌 王穎

        (咸陽(yáng)師范學(xué)院 計(jì)算機(jī)學(xué)院,陜西 咸陽(yáng)712000)

        某家具企業(yè)隨著經(jīng)營(yíng)規(guī)模的擴(kuò)大,目前利用Excel 進(jìn)行進(jìn)銷存方面的數(shù)據(jù)管理已經(jīng)顯得力不存心,希望借助Web 技術(shù)利用網(wǎng)絡(luò)處理進(jìn)銷存方面的數(shù)據(jù)管理,提高企業(yè)的運(yùn)行效率[1]。同時(shí)希望項(xiàng)目能夠快速上線并且后期由企業(yè)專人進(jìn)行維護(hù)升級(jí)。

        本文針對(duì)該企業(yè)的實(shí)際需求,考慮系統(tǒng)的開發(fā)效率和可維護(hù)性,采用SpringBoot 進(jìn)行系統(tǒng)開發(fā),利用SSM框架進(jìn)行分層構(gòu)建,框架各司其職負(fù)責(zé)處理某一層的業(yè)務(wù),層與層之間解耦合。避免了傳統(tǒng)Web 開發(fā)中存在的表示層數(shù)據(jù)與后臺(tái)Java 代碼耦合、開發(fā)效率低、難于維護(hù)等問(wèn)題。

        1 主要技術(shù)

        1.1 SpringBoot

        Spring Boot 通過(guò)自動(dòng)裝配功能和“約定大于配置”的開發(fā)理念能夠極大的提高Java EE 項(xiàng)目的開發(fā)效率[2],主要表現(xiàn)在以下方面:

        (1)無(wú)需定義XML 配置文件。(2)將所有資源打成一個(gè)jar包,創(chuàng)建獨(dú)立應(yīng)用的Spring 項(xiàng)目。(3)利用各種starter 啟動(dòng)器來(lái)簡(jiǎn)化Maven 的配置,減少對(duì)依賴資源的配置。(4)提供生產(chǎn)就緒型功能,如指標(biāo),健康檢查和外部配置。(5)提供更多的應(yīng)用開發(fā)模塊及功能。(6)內(nèi)嵌Web 服務(wù)器,項(xiàng)目的發(fā)布無(wú)需再提供war 包。(7)大量使用注解進(jìn)行開發(fā)。

        1.2 SSM框架

        SSM框架是Spring + Spring MVC + Mybatis 的整合,是標(biāo)準(zhǔn)的MVC 模式。其中SpringMVC 分離了控制器、模型對(duì)象、分派器以及處理程序?qū)ο蟮慕巧蛊涓菀走M(jìn)行定制[3]。Spring是一個(gè)輕量級(jí)的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架,供表現(xiàn)層調(diào)用,充當(dāng)了表現(xiàn)層與持久層間的接口[4]。Mybatis 主要負(fù)責(zé)數(shù)據(jù)的持久化操作,支持普通SQL 查詢、存儲(chǔ)過(guò)程和高級(jí)映射,通過(guò)對(duì)象關(guān)系映射將Java 對(duì)象與數(shù)據(jù)庫(kù)中的數(shù)據(jù)記錄相互轉(zhuǎn)換,通過(guò)開源框架配置文件中的引用與項(xiàng)目中的依賴包的導(dǎo)入,即可將三個(gè)框架整合起來(lái)實(shí)現(xiàn)完整的前后端通信流程[5],整合架構(gòu)如圖1 所示。

        圖1 SSM 架構(gòu)圖

        SSM框架中各配置文件的主要內(nèi)容如下:

        在springMVC.xml 中使用注解模式,掃描所有包中的注解,根據(jù)用戶請(qǐng)求,進(jìn)圖控制器找到相應(yīng)的RequestMapping 方法,進(jìn)行邏輯處理;配置靜態(tài)資源;配置視圖解析器。

        在applicationContext.xml 中配置數(shù)據(jù)源,連接數(shù)據(jù)庫(kù);加載mybatis 中的xml 文件,xml 文件在dao 層中,每個(gè)實(shí)體類對(duì)應(yīng)一個(gè)mapper.xml 文件對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作;配置Spring 事務(wù)管理器。在web.xml 中加載spring 容器,設(shè)置spring 容器加載配置文件的路徑;加載springMVC 的配置;配置防止Spring 內(nèi)存溢出監(jiān)聽器;配置編碼問(wèn)題。

        1.3 Redis

        由于系統(tǒng)是Web 架構(gòu),存在多個(gè)銷售員和進(jìn)貨員同時(shí)對(duì)系統(tǒng)進(jìn)行操作的場(chǎng)景。為了提高系統(tǒng)的響應(yīng)速度,使用Redis 內(nèi)存數(shù)據(jù)庫(kù)來(lái)滿足高并發(fā)的要求。在需要對(duì)某一商品入庫(kù)或出庫(kù)時(shí),查詢到該商品的庫(kù)存量放入到Redis 中,在用戶請(qǐng)求對(duì)該商品出庫(kù)時(shí),需要先在Redis 中查詢庫(kù)存量是否大于0,若滿足,服務(wù)器才能對(duì)該請(qǐng)求響應(yīng),否則直接響應(yīng)“當(dāng)前庫(kù)存為0”。每一個(gè)員工相當(dāng)于一個(gè)線程,在系統(tǒng)中將系統(tǒng)響應(yīng)邏輯放入同步塊中,完成高并發(fā)的出入庫(kù)操作。

        2 系統(tǒng)分析與設(shè)計(jì)

        2.1 系統(tǒng)功能模塊設(shè)計(jì)

        根據(jù)系統(tǒng)需求分析,系統(tǒng)的總體功能模塊如圖2 所示。

        圖2 系統(tǒng)功能模塊圖

        (1)員工管理:管理員用來(lái)創(chuàng)建員工賬號(hào)、初始密碼及角色等信息,可對(duì)其進(jìn)行查詢和刪除操作。員工自身可對(duì)密碼、基本信息等進(jìn)行修改。(2)商品管理:管理員可以對(duì)商品進(jìn)行添加、查詢、修改及刪除操作。也可以對(duì)商品按類別、名稱、ID 等進(jìn)行快速查。(3)入庫(kù)管理:管理員或進(jìn)貨員輸入要入庫(kù)的商品號(hào),對(duì)其進(jìn)行入庫(kù)操作(若未找到該商品,則需先增加該商品),也可以查看所有的入庫(kù)信息和修改某一入庫(kù)信息。(4)出庫(kù)管理:管理員或售貨員輸入要入庫(kù)的商品號(hào),對(duì)其進(jìn)行出庫(kù)操作(沒(méi)有入庫(kù)的商品不能進(jìn)行出庫(kù)操作),以及查看所有的出庫(kù)信息或修改某一出庫(kù)信息。(5)提醒信息管理:用戶可查看自己已發(fā)送、已接收的提醒信息,也可以給其他人發(fā)送、回復(fù)提醒信息。(6)智能推薦:管理員可查看某時(shí)間段內(nèi)推薦或不推薦的前十商品,推薦依據(jù)為該時(shí)間段內(nèi)商品的銷售數(shù)量。(7)報(bào)表:管理員可按時(shí)間、工廠查看相應(yīng)的商品報(bào)表,主要展示時(shí)間段內(nèi)某一廠家商品的營(yíng)業(yè)額及利潤(rùn),并將結(jié)果以圖表形式展示。(8)數(shù)據(jù)備份:管理員可對(duì)部分核心數(shù)據(jù)保存到Excel 文件,提高安全性。

        2.2 數(shù)據(jù)庫(kù)設(shè)計(jì)

        根據(jù)需求分析創(chuàng)建系統(tǒng)需要的相應(yīng)實(shí)體類及其屬性,各實(shí)體類創(chuàng)建相應(yīng)數(shù)據(jù)庫(kù)表存儲(chǔ)數(shù)據(jù)。創(chuàng)建的表名稱分別為jxc_goods、jxc_manager、jxc_message、jxc_stockin 及 jxc_stockout。員工信息表中的字段:id(員工編號(hào))為主鍵 自增、username(用戶名)、password(用戶密碼) 使用encode 函數(shù)進(jìn)行加密及decode 函數(shù)進(jìn)行解密、role(角色)分為管理員、進(jìn)貨員、售貨員,用來(lái)控制進(jìn)入系統(tǒng)的不同界面。商品信息表中的字段:id(商品ID)為主鍵,是出入庫(kù)表中的外鍵。入庫(kù)信息表中的字段:id(入庫(kù)編號(hào)ID)為主鍵 自增、operator(操作員)為當(dāng)前登錄系統(tǒng)的員工名稱、time(入庫(kù)時(shí)間)實(shí)在提交入庫(kù)信息時(shí)獲取的本地時(shí)間(日期)。出庫(kù)信息表中的字段:id(出庫(kù)編號(hào)ID)為主鍵 自增、operator(操作員)為當(dāng)前登錄系統(tǒng)的員工名稱、time(出庫(kù)時(shí)間)實(shí)在提交出庫(kù)信息時(shí)獲取的本地時(shí)間(日期)。站內(nèi)信表中的字段:message_id(信息編號(hào)ID)為主鍵 自增、sender(發(fā)送者)為當(dāng)前登錄系統(tǒng)的員工名稱、time(發(fā)送時(shí)間)是在提交信息時(shí)獲取的本地時(shí)間。

        本系統(tǒng)中manager 表對(duì)應(yīng)各員工信息,每個(gè)員工根據(jù)角色不同可進(jìn)行出入庫(kù)操作,也可對(duì)其他員工發(fā)送信息。出入庫(kù)的商品信息需預(yù)先存儲(chǔ)在goods 表中,可由多個(gè)員工進(jìn)行多次出入庫(kù)。各表間關(guān)系如圖3 所示。

        圖3 數(shù)據(jù)庫(kù)表關(guān)系圖

        3 關(guān)鍵功能設(shè)計(jì)

        3.1 過(guò)濾未登錄用戶

        除登錄頁(yè)面外不允許有其他頁(yè)面或后臺(tái)路徑進(jìn)入到本系統(tǒng)中。用戶通過(guò)正常登錄操作將登錄信息保存到session 中,在進(jìn)行其他操作(如入庫(kù)、出庫(kù)、回復(fù)信息等)都需要從session 中獲取當(dāng)前登錄用戶信息。如果在session 中沒(méi)有發(fā)現(xiàn)登錄用戶信息表明該操作沒(méi)有通過(guò)登錄,需要將請(qǐng)求重定向到登錄頁(yè)面;

        否則才執(zhí)行當(dāng)前的請(qǐng)求。利用過(guò)濾器實(shí)現(xiàn)上述要求,主要包括定義過(guò)濾器實(shí)現(xiàn)doFilter 方法和配置過(guò)濾器兩個(gè)步驟。自定義過(guò)濾器類繼承Filter 類,實(shí)現(xiàn)其doFilter 方法,核心代碼如下:

        通過(guò)編碼方式來(lái)配置過(guò)濾器。 定義WebConfig 類,添加Configuration 注解, 將自定義的過(guò)濾器配置到FilterRegistrationBean 中,SpringBoot 在啟動(dòng)時(shí)會(huì)創(chuàng)建FilterRegistrationBean 對(duì)象從而使過(guò)濾器生效,如下代碼所示。

        3.2 報(bào)表

        財(cái)務(wù)報(bào)表分析不僅對(duì)于企業(yè)財(cái)務(wù)管理活動(dòng)有重要意義,對(duì)于企業(yè)上一周期生產(chǎn)經(jīng)營(yíng)活動(dòng)的評(píng)估以及未來(lái)企業(yè)戰(zhàn)略規(guī)劃會(huì)產(chǎn)生同樣重要的影響[6]。報(bào)表是該系統(tǒng)中最重要的一個(gè)模塊,主要依據(jù)數(shù)據(jù)庫(kù)中一張入庫(kù)表及一張出庫(kù)表。表中分別記錄商品的出入庫(kù)價(jià)格、數(shù)量、時(shí)間及操作人員,報(bào)表就是根據(jù)這兩張表中的數(shù)據(jù)進(jìn)行計(jì)算,從而得到銷售額、利潤(rùn)等其他信息。

        報(bào)表分為時(shí)間報(bào)表及廠家報(bào)表,時(shí)間報(bào)表是通過(guò)拿到頁(yè)面中管理員輸入的開始時(shí)間及結(jié)束時(shí)間,查找指定時(shí)間范圍內(nèi)所有商品的進(jìn)貨數(shù)、售貨數(shù)、進(jìn)貨金額、售貨金額、退貨數(shù)、返廠數(shù)及利潤(rùn)并按照利潤(rùn)降序,顯示在前端頁(yè)面,拿到需要顯示在頁(yè)面中的數(shù)據(jù)選取幾條重要的數(shù)據(jù)如銷售金額、利潤(rùn)等,使用echart 技術(shù)將重要信息顯示在柱狀圖中。在sql 語(yǔ)句中首先連接入庫(kù)及商品表查詢商品信息及該商品在指定時(shí)間內(nèi)的總進(jìn)價(jià)及總進(jìn)貨數(shù)、連接出庫(kù)及商品表查詢商品信息及該商品在指定時(shí)間內(nèi)的總售價(jià)及總售貨數(shù),將查詢到的兩個(gè)結(jié)果集進(jìn)行左連接,在得到的結(jié)果集中通過(guò)不同字段間的計(jì)算得到該行商品對(duì)應(yīng)的利潤(rùn)、庫(kù)存等信息。在連接時(shí)如果某結(jié)果集無(wú)結(jié)果則對(duì)應(yīng)字段顯示為空,若為數(shù)字類型則顯示為0,得到最終的結(jié)果集按利潤(rùn)降序排序;廠家報(bào)表是查找本店在所有廠家中購(gòu)入的商品數(shù)量、商品類型、總進(jìn)價(jià)、利潤(rùn)等數(shù)據(jù),按利潤(rùn)降序,顯示柱狀圖方式與時(shí)間報(bào)表相同。時(shí)間報(bào)表的sql 語(yǔ)句如下:

        4 系統(tǒng)實(shí)現(xiàn)

        4.1 視圖層實(shí)現(xiàn)

        系統(tǒng)前端采用JSP 視圖技術(shù),并結(jié)合多個(gè)JS 及CSS 文件對(duì)頁(yè)面進(jìn)行布局,完成折疊面板及時(shí)間選擇控件的顯示。使用EL表達(dá)式顯示Controller 放入到Model 中的數(shù)據(jù)。對(duì)于頁(yè)面中需顯示的靜態(tài)資源,在該頁(yè)面發(fā)送請(qǐng)求時(shí)不攔截靜態(tài)資源路徑,使用${pageContext.request.contextPath}獲取上下文環(huán)境訪問(wèn)靜態(tài)資源,也可在springMVC.xml 中配置靜態(tài)資源,js 文件的配置如下:

        4.2 控制層實(shí)現(xiàn)

        在springMVC.xml 中使用注解模式,掃描所有包中的注解。編寫ActionController.java 及BackUpController.java 文件,使用@Controller 注解。前臺(tái)頁(yè)面發(fā)來(lái)的請(qǐng)求,可通過(guò)注解找到請(qǐng)求對(duì)應(yīng)的控制器中的使用@RequestMapping 注解的某一方法,在該方法中接收前臺(tái)頁(yè)面?zhèn)鬟f的參數(shù)并對(duì)請(qǐng)求進(jìn)行邏輯處理,通過(guò)調(diào)用業(yè)務(wù)邏輯層實(shí)現(xiàn)對(duì)數(shù)據(jù)的增、刪、改、查等操作,方法的返回類型為String,返回頁(yè)面名稱。通過(guò)springMVC.xml 中配置的視圖解析器返回到該路徑下的相應(yīng)頁(yè)面。注解模式使編程更加簡(jiǎn)潔,代碼更加清晰。

        4.3 業(yè)務(wù)邏輯層實(shí)現(xiàn)

        業(yè)務(wù)邏輯層中包含每一個(gè)實(shí)體類的接口,通過(guò)實(shí)現(xiàn)接口方法完成每個(gè)實(shí)體類的邏輯處理,例如系統(tǒng)中商品實(shí)體需完成增、刪、改、查及快速查詢操作,應(yīng)在業(yè)務(wù)邏輯層GoodsService.java 接口中定義操作方法,在GoodsServiceImpl.java 中實(shí)現(xiàn)GoodsService.java 接口中的方法,在方法中調(diào)用數(shù)據(jù)持久層并編寫處理邏輯代碼完成頁(yè)面的請(qǐng)求。

        4.4 數(shù)據(jù)持久層

        使用MyBatis 連接數(shù)據(jù)庫(kù)存儲(chǔ)及變更數(shù)據(jù)。 在applicationContext.xml 中配置數(shù)據(jù)源連接數(shù)據(jù)庫(kù)。每一實(shí)體類需要對(duì)應(yīng)的mapper.xml 文件,本系統(tǒng)中包含七個(gè)實(shí)體類的七個(gè)映射文件,在映射文件中完成不同操作的sql 語(yǔ)句編寫,可直接對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。 在 applicationContext.xml 中配置sqlSessionfactory 自動(dòng)掃描加載dao 層中mapper.xml 文件。從而將頁(yè)面?zhèn)鱽?lái)的請(qǐng)求數(shù)據(jù)通過(guò)控制器、業(yè)務(wù)邏輯層處理后在該層對(duì)數(shù)據(jù)庫(kù)操作,達(dá)到本次請(qǐng)求的目的。

        5 結(jié)論

        利用SpringBoot+SSM 框架設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)中小型企業(yè)的家具進(jìn)銷存管理系統(tǒng),使用SSM框架完成該系統(tǒng)控制層、業(yè)務(wù)邏輯層和持久層的功能,并達(dá)到松散耦合的目的。系統(tǒng)完成了相關(guān)的業(yè)務(wù)功能,達(dá)到了企業(yè)實(shí)際應(yīng)用的要求。通過(guò)實(shí)踐表明,本文所使用的整合架構(gòu)能夠提高Java EE 系統(tǒng)的開發(fā)效率和可維護(hù)性。

        猜你喜歡
        出庫(kù)入庫(kù)報(bào)表
        重磅!廣東省“三舊”改造標(biāo)圖入庫(kù)標(biāo)準(zhǔn)正式發(fā)布!
        中國(guó)食品品牌庫(kù)入庫(kù)企業(yè)信息公示①
        LabWindows/CVI中Excel報(bào)表技術(shù)研究
        卷煙配貨出庫(kù)流程的優(yōu)化與應(yīng)用
        散糧出庫(kù) 加快騰倉(cāng)
        從三大報(bào)表讀懂養(yǎng)豬人的成績(jī)單
        “出庫(kù)費(fèi)” 應(yīng)由誰(shuí)來(lái)付
        身臨其境探究竟 主動(dòng)思考完任務(wù)——《倉(cāng)儲(chǔ)與配送實(shí)務(wù)》入庫(kù)作業(yè)之“入庫(kù)訂單處理”教學(xué)案例
        人間(2015年8期)2016-01-09 13:12:42
        基于PLC的物流自動(dòng)化包裝線出庫(kù)穿梭車的設(shè)計(jì)
        批量地籍圖入庫(kù)程序設(shè)計(jì)方法
        亚洲日韩精品AⅤ片无码富二代| av人摸人人人澡人人超碰妓女 | 在线a人片免费观看高清| 91国产熟女自拍视频| 久久久久亚洲av无码专区首| 精品日韩欧美一区二区在线播放| 中文AV怡红院| 97中文乱码字幕在线| 国产成人无码a区在线观看导航 | 变态 另类 欧美 大码 日韩| 亚洲午夜无码久久yy6080| 麻豆av在线免费观看精品| 日本妇人成熟免费2020| 日本老熟妇毛茸茸| 视频在线观看一区二区三区| 中文字幕亚洲精品综合| 十八禁视频在线观看免费无码无遮挡骂过 | 亚洲阿v天堂2018在线观看| 国产特黄a三级三级三中国| 性欧美长视频免费观看不卡| 日本不卡在线视频二区三区| 国产精品亚洲ΑV天堂无码| 日本一区二区三区经典视频| 国产午夜福利精品一区二区三区| 肉体裸交丰满丰满少妇在线观看| 亚洲精品一品二品av| 丝袜美腿福利一区二区| 亚洲欧美aⅴ在线资源| 五月天综合社区| 日韩中文字幕熟女人妻| 精品无码国产自产拍在线观看| 国产一区视频在线免费观看| 在线免费观看国产视频不卡| 国产亚洲成性色av人片在线观| 国产成人免费一区二区三区| 国产桃色在线成免费视频| 一区二区三区国产精品麻豆| 成人午夜特黄aaaaa片男男| 亚洲欧美日韩综合在线观看| 亚洲另类国产精品中文字幕| 性久久久久久|