版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
基于SSM的高校后勤報修管理系統(tǒng)的設(shè)計與實現(xiàn)摘要目前國內(nèi)各大高校規(guī)模日益擴大,師生人數(shù)也在逐漸增加,這給后勤服務(wù)管理帶來了不小的壓力。而現(xiàn)今某些高校依舊使用傳統(tǒng)的紙質(zhì)報修手段,對于師生們不斷提出的對公共生活設(shè)施、用具、用品、臥具、桌椅等物品的維修要求,顯然無法及時解決。并且現(xiàn)階段有某些高校依舊使用落后的紙質(zhì)報修手段,造成管理不統(tǒng)一、報修周期長等問題,這都給師生們的正常生活帶來了許多不便,有些涉及到比較緊急的水電故障等,無法第一時間得到解決,會帶來極大的安全隱患。為了進一步提高后勤管理水平,有效控制和管理報修程序、維修服務(wù),對維修人員、維修工作量、維修相關(guān)情況進行督促和分析,開發(fā)一個便利的網(wǎng)上報修系統(tǒng)勢在必行。首先對項目進行了需求分析,系統(tǒng)用戶可分為報修用戶、維修人員和管理員,用戶需要先登錄、師生可以進行報修申請、查看公告、修改個人信息、查看自己的報修記錄等。維修人員可以查看公告、處理報修申請、查看自己的維修記錄、修改個人信息等。管理員可以管理師生信息、管理師生報修信息、管理維修人員信息、管理維修人員維修記錄信息、績效統(tǒng)計、管理公告信息等。然后進行了系統(tǒng)設(shè)計,對系統(tǒng)做了模塊劃分,設(shè)計了數(shù)據(jù)庫。最后詳細描述了各個功能模塊是如何實現(xiàn)的。本系統(tǒng)使用HTML5、AJAX、JavaScript框架等技術(shù)實現(xiàn)前端;使用Spring、SpringMVC、Mybatis實現(xiàn)后端;使用Mysql數(shù)據(jù)庫來存儲數(shù)據(jù);使用Windows系統(tǒng)和Tomcat搭建服務(wù)器,完成項目的部署。最后進行編碼、測試以及上線完成最終系統(tǒng)的實現(xiàn)。關(guān)鍵詞:SSM;后勤報修管理系統(tǒng);HTML5;AJAX目錄TOC\o"1-3"\h\u1前言 前言1.1研究背景及意義在快速發(fā)展的今天,國內(nèi)經(jīng)濟日益繁榮,而國內(nèi)高校的規(guī)模也在日益擴大,師生人數(shù)日益增多,后勤管理部門的自然壓力也隨之而來。而在后勤部門與師生交互的最重要的報修環(huán)節(jié)卻仍有高校使用傳統(tǒng)的紙質(zhì)報修手段,這顯然無法及時解決師生們不斷提出的對公共生活設(shè)施、用具、用品、臥具、桌椅等物品的維修要求。并且,對于一些急需處理的水電等報修申請若無法及時聯(lián)系到相關(guān)人員處理可能會留下隱患,引發(fā)安全問題。為此,改善后勤服務(wù)水平、增強高校后勤部門的辦事速度、提高后勤服務(wù)意識早已變成當(dāng)前后勤實體的發(fā)展甚至是生存的核心問題,引進先進的計算機信息技術(shù)對后勤進行全面的信息化和網(wǎng)絡(luò)化管理已是高校后勤發(fā)展的迫切需求[1]。1.2系統(tǒng)使用的開發(fā)語言對于開發(fā)語言,本系統(tǒng)選擇使用了Java語言去進行開發(fā),因為本人在校期間所做的實踐項目多數(shù)系Java語言,相對于其他的語言來說比較熟悉;Java是面向?qū)ο蟮模褂闷饋頃拥娜菀桌斫?,并且Java的使用者較多,對于后期代碼維護也相對簡單有利。Java語言擁有操作簡單、可移植、高性能等優(yōu)點。并且Java的面向?qū)ο缶幊痰乃枷胧褂嬎銠C軟件開發(fā)變得簡單,并有效節(jié)省了代碼,提高了編程的工作效率。并且在編程的過程中,往往會遇到曾經(jīng)編譯過的地方需要修改的情況,在修改過程中可能會出現(xiàn)由于語言的不同導(dǎo)致計算機程序和軟件開發(fā)的過程中出現(xiàn)偏差、軟件開發(fā)周期會增加等狀況,使其無法達到預(yù)期的效果[2]。而Java編程語言可移植性特性可以解決這個問題。1.3系統(tǒng)相關(guān)使用技術(shù)本系統(tǒng)分為前端與后端,前端選擇使用HTML編寫,參考某些高?,F(xiàn)有的后勤管理系統(tǒng),為本系統(tǒng)設(shè)計了一個較為簡潔的功能界面。在前端的數(shù)據(jù)顯示中引入了一個基于Bootstrap的jQuery表格插件,功能較完備、頁面風(fēng)格統(tǒng)一。其通過Ajax方式加載服務(wù)器端的數(shù)據(jù)并渲染,能夠?qū)崿F(xiàn)數(shù)據(jù)異步獲取、編輯等功能。而后端則選擇了主流的SSM(Spring+SpringMVC+Mybatis)框架集,是由Spring、SpringMVC和Mybatis整合而成,這是輕量級并且應(yīng)用較多的一種組合框架,在目前來說還是比較受歡迎的,有許多的中小型企業(yè)的門戶網(wǎng)站、某些地方的政府網(wǎng)站都是基于SSM架構(gòu)集。該框架能幫助開發(fā)人員實現(xiàn)許多基礎(chǔ)性功能,節(jié)省了大量的編碼工作,提高了程序的規(guī)范性和代碼的重用性,使用起來比較簡便。前后端的交互使用JQuery+AJAX技術(shù)的組合去實現(xiàn),AJAX可以實現(xiàn)異步請求,局部刷新的功能,而JQuery是js開源的代碼庫,其“寫的更少、做的更多、”理念能夠讓開發(fā)者更加方便快捷地處理Ajax交互,可以讓系統(tǒng)用戶擁有一個優(yōu)良的操作體驗,是非常實用同時也是比較受廣大開發(fā)人員歡迎的功能。1.4系統(tǒng)可行性分析1.4.1技術(shù)可行性本系統(tǒng)開發(fā)基于Java+jsp語言,在一般的計算機上就能夠滿足開發(fā)本系統(tǒng)所需要的軟硬件條件,其占用的內(nèi)存也相對較少。本人在校期間學(xué)習(xí)過使用SSM框架集+Java語言開發(fā)一個項目,也查閱了充分資料,以我對軟件的開發(fā)以及設(shè)計在理論上來說是沒有問題的。1.4.2開發(fā)成本可行性系統(tǒng)的前端我選擇了免費開源的bootstrap框架,后端采用的是輕量級的SSM框架,開發(fā)簡便、功能性強,在節(jié)省了大量的開發(fā)時間的同時還能夠?qū)崿F(xiàn)大部分的功能,并且SSM作為輕量級的組合框架,具有減少開發(fā)人員編碼、規(guī)范性、重用性、易拓展及易維護的三大優(yōu)勢,大大降低了本系統(tǒng)的開發(fā)難度,并且對于系統(tǒng)的后期維護也相對來說是比較容易。而對于數(shù)據(jù)庫,則選擇了開源的MySQL數(shù)據(jù)庫[5],跟Oracle相比,體積小、速度快、開源的MySQL總體擁有成本低?;谝陨戏治觯鞠到y(tǒng)的開發(fā)成本可以忽略不計,在經(jīng)濟上是可行的。1.4.3用戶操作體驗可行性本系統(tǒng)不可注冊,選擇由管理員統(tǒng)一分配賬號的方式,只有擁有賬號本校師生才能登錄,若是新入職的職工或新生,需要管理員在后臺加入。若是外校人員則只能通過學(xué)校門戶網(wǎng)站鏈接訪問到系統(tǒng)登錄界面。因系統(tǒng)僅供校內(nèi)人員使用,人數(shù)有限,在一定程度上保護了系統(tǒng),同時用戶的信息安全也能得到較大的保障。在互聯(lián)網(wǎng)時代,幾乎每個人都有智能手機,開發(fā)完成后的系統(tǒng)可使用手機訪問,實現(xiàn)真正的切實可用,而系統(tǒng)的響應(yīng)式也是為此而生。2系統(tǒng)需求分析2.1開發(fā)環(huán)境分析因為本系統(tǒng)使用Java語言開發(fā),所以只需配置Java所需開發(fā)環(huán)境即可。2.1.1項目開發(fā)環(huán)境 操作系統(tǒng):Windows10Java運行環(huán)境:JDK1.8服務(wù)器:Tomcat9.0開發(fā)工具:Eclipse、Navicat2.2系統(tǒng)流程分析本系統(tǒng)共有四個用戶類型即報修用戶、維修人員和系統(tǒng)管理員。系統(tǒng)流程圖如圖2.1、圖2.2所示。圖2.1報修用戶、維修人員流程圖Figure2.1Userflowchart圖2.2管理員流程圖Figure2.2Administratorflowchart2.3系統(tǒng)需求分析本系統(tǒng)是供某個高校的后勤報修服務(wù)管理平臺,分為供報修用戶和維修人員使用的前臺和管理員使用的后臺。報修用戶可以在系統(tǒng)中查看公告、管理個人信息、報修申請、查看報修記錄;維修人員可以查看公告、管理個人信息、處理報修申請、查看維修記錄、個人信息管理;系統(tǒng)管理員功能有報修用戶管理、維修人員管理、報修申請管理、公告管理、統(tǒng)計等。登錄每個擁有賬號的用戶都可以登錄系統(tǒng)。管理員或用戶在登錄頁面輸入正確的賬號與密碼之后即可成功登入系統(tǒng)。查看公告登入系統(tǒng)后,用戶就可以看到管理員發(fā)布在系統(tǒng)中的最新公告了。報修申請在系統(tǒng)中,報修用戶可以進行報修申請。在地址的部分大的區(qū)域可選,而詳細地址則需報修用戶手動輸入查詢報修記錄詳情當(dāng)報修用戶提交了報修申請之后,即可在系統(tǒng)中看到自己提交的報修申請記錄,可點擊查看報修申請記錄詳情、進度、處理人信息等查看個人信息報修用戶可以在系統(tǒng)中查看自己的個人信息,可以需要根據(jù)進行修改相關(guān)信息。處理報修申請維修人員登錄系統(tǒng)后就可以看到個人所需負責(zé)的所有報修申請,可以按照系統(tǒng)中顯示的詳細地址前往處理故障,可根據(jù)用戶提交的破損圖片進行初步判斷,如是否需要攜帶工具、何種工具、是否只是用戶操作不當(dāng)所致。查詢維修記錄當(dāng)維修人員處理完成一個申請之后,點擊“確認完成”,系統(tǒng)將跳轉(zhuǎn)到已經(jīng)完工的、所有的個人維修記錄頁面,維修人員可以查看最新完成的,也可以查看往日完成的維修記錄,可進行關(guān)鍵字搜索查看相關(guān)的記錄。個人信息管理維修人員可以在系統(tǒng)中查看個人信息,可以對其進行修改。查詢維修記錄維修人員可以查看系統(tǒng)管理員發(fā)布的最新公告。報修用戶管理管理員可以對系統(tǒng)中的所有報修用戶的信息進行增刪改查等操作。當(dāng)系統(tǒng)用戶忘記密碼時可聯(lián)系管理員重置。維修人員管理管理員可以對系統(tǒng)中的所有報修用戶的信息進行增刪改查等操作。當(dāng)系統(tǒng)用戶忘記密碼時可聯(lián)系管理員重置。公告管理管理員可以發(fā)布新的系統(tǒng)公告,也可以查詢出系統(tǒng)中所有的公告,對其進行修改或刪除。統(tǒng)計管理管理員可以查看系統(tǒng)統(tǒng)計出的維修人員的績效、配件使用情況等。報修申請管理管理員可以查詢出系統(tǒng)中所有的報修申請記錄,可以按關(guān)鍵字查詢出所需記錄,然后查看其詳情,并設(shè)置分頁處理效果。2.4系統(tǒng)功能用例圖在本后勤報修系統(tǒng)中,有報修用戶、維修人員和系統(tǒng)管理員,三種用戶。其用例圖分別如圖2.3、圖2.4、圖2.5所示所示。圖2.3報修用戶用例圖Figure2.3Repairuserusecasediagram圖2.4維修人員用例圖Figure2.4repairusecasediagram圖2.5管理員用例圖Figure2.5Administratorusecasediagram
3系統(tǒng)概要設(shè)計3.1系統(tǒng)設(shè)計原則(1)易用性本系統(tǒng)功能性較強,使用簡單方便。界面簡介但功能實用。3.2系統(tǒng)模塊劃分據(jù)系統(tǒng)需求分析,系統(tǒng)的主要用戶有報修用戶、維修人員和管理員三種,前臺用戶為報修用戶、維修人員。前臺功能結(jié)構(gòu)圖如圖3.1所示。圖3.1前臺功能結(jié)構(gòu)圖Figure3.1Foregroundstructurediagram后臺功能結(jié)構(gòu)圖如圖3.2所示。圖3.2后臺功能結(jié)構(gòu)圖Figure3.2Backgroundstructurediagram3.3系統(tǒng)各功能模塊設(shè)計3.3.1前臺功能設(shè)計(1)登錄系統(tǒng)用戶登錄系統(tǒng)前以及沒有賬號的校外人員僅可瀏覽系統(tǒng)登錄頁,無法進行任何操作。用戶輸入正確的賬號密碼之后就可以成功登入系統(tǒng),若賬號密碼或錯誤,將返回登錄頁面,并提示用戶“賬號或密碼錯誤”。(2)報修申請用戶登錄系統(tǒng)之后就可以在系統(tǒng)中提交報修申請。(3)報修查詢報修成功后,用戶就可以查看報修記錄詳細,報修申請狀態(tài)(是否已處理)、處理人信息等。(4)查看公告系統(tǒng)用戶可以在系統(tǒng)中查看管理員發(fā)布的最新公告。(5)個人信息管理用戶可以查看個人信息,并根據(jù)有需要進行修改密碼等需要的操作。(6)報修申請?zhí)幚砭S修人員在接到系統(tǒng)提示的報修申請后可登錄系統(tǒng)查看詳情,按照地址上所示前往處理故障,待完成后確認完工。(7)維修記錄查詢維修人員可以查詢自己處理過的所有維修記錄,可以查看維修詳情、維修中所使用的配件情況,可以輸入關(guān)鍵字查詢某一條記錄。3.3.2后臺功能設(shè)計(1)報修單管理管理員可查出所有的報修記錄、按完成狀態(tài)分類查詢。管理員可以進行關(guān)鍵字查詢,以便于查看某一條報修記錄詳情。(2)管理報修用戶信息管理員可以在系統(tǒng)中添加、刪除、查詢報修用戶,還可以修改報修用戶信息。(3)維修人員管理管理員可以在系統(tǒng)中添加、刪除、查詢維修人員,還可以修改維修人員信息。(4)公告管理管理員可以在系統(tǒng)在發(fā)布新的公告、查詢系統(tǒng)中以往發(fā)出的公告,可對其進行修改、刪除。(5)統(tǒng)計管理員可以查詢出系統(tǒng)中統(tǒng)計的維修人員的績效、維修中所使用的配件、每個宿舍的報修記錄數(shù)等。3.4系統(tǒng)數(shù)據(jù)庫設(shè)計3.4.1總體設(shè)計本系統(tǒng)共設(shè)計了5張數(shù)據(jù)庫表:admin表:存儲系統(tǒng)管理員信息;user表:存儲報修用戶信息;repair表:存儲維修人員信息;report表:存儲報修記錄信息;notice表:存儲公告信息;3.4.2E-R圖設(shè)計根據(jù)設(shè)計的數(shù)據(jù)表,分析各實體間聯(lián)系,繪制了圖3.3所示的E-R圖。圖3.3數(shù)據(jù)庫E-R設(shè)計圖Figure3.3DatabaseE-Rdesigndiagram3.4.3數(shù)據(jù)庫物理設(shè)計表3.1admin表Table3.1Theadmintable字段名字段描述數(shù)據(jù)類型長度是否主鍵約束說明id管理員編號bigint15是notnull唯一約束name管理員姓名varchar30否notnull-loginName賬號varchar30否notnull-passWord密碼varchar30否notnull-email郵箱varchar30否--lastLoginTime上次登錄時間date-否-id管理員編號bigint15是notnull唯一約束name管理員姓名varchar30否notnull-loginName賬號varchar30否notnull-表3.2user表Table3.2Theusertable字段名字段描述數(shù)據(jù)類型長度是否主鍵約束說明id用戶編號varchar11是notnull唯一約束name用戶姓名varchar30否notnull外鍵loginName用戶賬號varchar30否notnull外鍵password用戶密碼varchar30否notnull默認值0gender用戶性別char1否notnull-number用戶號碼char11否notnull-department用戶部門varchar15否notnull-表3.3repairper表Table3.3Therepairpertable字段名字段描述數(shù)據(jù)類型長度是否主鍵約束說明id維修人員編號bigint15是notnull唯一約束rename維修人員姓名varchar30否notnull-loginName賬號varchar30否notnull-passWord密碼varchar30否notnull-gender性別char1否notnull-phone電話char11否notnulldepart部門date-否notnull-email郵箱varchar30否notnull-lastLoginTime上次登錄時間date-否-表3.4report表Table3.4Reporttable字段名字段描述數(shù)據(jù)類型長度是否主鍵約束說明reportid報修申請編號int11是notnull唯一約束userName報修人varchar15否notnull外鍵repairName負責(zé)人varchar15否notnull外鍵text報修內(nèi)容varchar255否notnull-time報修時間datetime-否notnull-address報修地點varchar50否notnull-status狀態(tài)char1否notnull默認值0picture破損圖片varchar50否notnull-parts配件varchar255否notnull-表4.5notice表Table4.5Thenoticetable字段名字段描述數(shù)據(jù)類型長度是否主鍵約束說明id公告編號int15是notnulltime發(fā)布時間datetime-否notnull-text公告內(nèi)容varchar255否notnull-4系統(tǒng)實現(xiàn)4.1登錄(1)功能描述該模塊主要是判定用戶是否為擁有賬號的校內(nèi)人員,確保只有系統(tǒng)中存在的用戶才能正常登錄訪問系統(tǒng)。并且在登錄成功以后將會跳到系統(tǒng)用戶主頁;如果賬號密碼錯誤則返回登錄頁面,清空輸入框內(nèi)容并給出錯誤提示信息。(2)效果展示登錄模塊效果展示如圖4.1所示。圖4.1用戶登錄Figure4.1Userlgoin(3)實現(xiàn)原理當(dāng)用戶輸入完整用戶名與密碼點擊“登錄”后,系統(tǒng)以post方式提交登錄的form表單,調(diào)用控制層的登錄行為方法,以頁面中傳遞的賬號和密碼與user表中的數(shù)據(jù)比較,數(shù)據(jù)一致則繼續(xù)向下執(zhí)行index方法,驗證身份信息,最后跳轉(zhuǎn)到系統(tǒng)用戶主界面。(4)主要代碼publicStringlogin(StringloginName,Stringpassword,Modelmodel,HttpSessionsession){ Useruser=userService.login(loginName,password); if(user==null){ session.setAttribute("msg","賬號或密碼錯誤"); return"login"; }else{ session.setAttribute("user",user); return"redirect:/index"; } } publicStringloginUI(StringloginName,Stringpassword,Modelmodel,HttpSessionsession){ RepairPerrepairPer=repairPerService.login(loginName,password); System.out.println(loginName+password); if(repairPer==null){ session.setAttribute("msg","賬號或密碼錯誤"); return"repairLogin"; }else{ session.setAttribute("repairPer",repairPer); return"redirect:/repair"; } }4.2報修用戶模塊4.2.1報修申請(1)功能描述報修用戶在此頁面進行報修申請。填寫完報修內(nèi)容及地址等信息之后,點擊“保存”按鈕即可成功報修。(2)效果展示用戶報修效果展示如圖4.2所示。圖4.2用戶報修Figure4.2Userreport(3)實現(xiàn)原理先在報修界面獲取到當(dāng)前用戶的姓名等關(guān)鍵信息,在提交報修申請一并提交到report表中。(4)主要代碼 publicStringaddRepotUI(@PathVariable("id")IntegerreportId,Modelmodel){ Reportreport=reportrService.add(); model.addAttribute("report",report); return"admin/add"; } @RequestMapping(value="{id}",method=RequestMethod.POST) publicStringedit(Reportreport){ reportService.update(report); return"redirect:/user/list"; }4.2.2查看所有報修申請功能描述報修用戶可以在系統(tǒng)中查看自己所有的報修申請記錄。效果展示查看報修申請記錄效果展示如圖4.3所示。圖4.3個人報修記錄Figure4.3Personalreports實現(xiàn)原理當(dāng)用戶點擊所選的菜單欄后,系統(tǒng)會以loginName為條件查詢出相應(yīng)數(shù)據(jù),返回到表格中。主要代碼publicJsonModelfind(ReportQueryreportQuery){ Page<Report>page=reportService.findByQuery(reportQuery); JsonModeljsonModel=newJsonModel(); jsonModel.setSuccess(true); jsonModel.setRows(page.getData()); jsonModel.setTotal(page.getTotal()); returnjsonModel; }4.2.3個人信息管理(1)功能描述:報修用戶可以查看自己的所有信息。如果用戶想修改個人的密碼等信息可在此頁面上直接修改后點擊“保存”按鈕即可。(2)效果展示報修用戶查看個人信息效果分別如圖4.4所示圖4.4個人信息管理Figure4.4Personalinformation(3)實現(xiàn)原理系統(tǒng)以報修用戶編號為參數(shù),查詢出用戶的個人信息,然后顯示在jsp頁面,編輯完所有的信息點擊“保存”按鈕即可修改成功。(4)主要代碼publicJsonModelfind(UserQueryuserQuery){ Page<User>page=userService.findByQuery(userQuery); JsonModeljsonModel=newJsonModel(); jsonModel.setSuccess(true); jsonModel.setRows(page.getData()); jsonModel.setTotal(page.getTotal()); returnjsonModel;}publicStringeditUI(@PathVariable("id")IntegeruserId,Modelmodel){ Useruser=userService.findById(userId); model.addAttribute("user",user); return"user/edit"; }4.2.4查看公告(1)功能描述報修用戶可以系統(tǒng)中查看管理員發(fā)布的最新公告。(2)效果展示報修用戶查看系統(tǒng)公告效果分別如圖4.5所示圖4.5查看公告詳情Figure4.5Viewnotice(3)實現(xiàn)原理報修用戶點擊左邊的“查看公告欄”后,jsp頁面通過超鏈接傳輸公告的id到控制層,實現(xiàn)findAllnotice方法,并執(zhí)行相應(yīng)的sql語句,然后返回頁面進行展示。(4)主要代碼publicJsonModelfindAllnotice(NoticeQuerynoticeQuery){ Page<Notice>page=noticeService.findByQuery(noticeQuery); JsonModeljsonModel=newJsonModel(); jsonModel.setSuccess(true); jsonModel.setRows(page.getData()); jsonModel.setTotal(page.getTotal()); returnjsonModel; }對應(yīng)sql語句<selectid="findTotal"parameterType="noticeQuery"resultType="int">select*fromnoticeorderbytimedesclimit1</select>4.3維修人員模塊4.3.1報修申請?zhí)幚恚?)功能描述維修人員登入系統(tǒng)后就會查看到自己需處理的所有報修申請,維修人員可按照申請中顯示的地址前往處理故障,在完成后點擊“完成”即可處理完成報修申請。(2)報修申請效果展示如圖4.6所示。圖4.6查看所有維修單Figure4.6Queryallreports(3)實現(xiàn)原理搜索維修記錄要是維修人員在點擊查詢按鈕后,將輸入框中的條件傳入后端進行查詢,并在頁面刷新表格數(shù)據(jù),顯示到頁面。高亮顯示搜索條件是通過js字符替換實現(xiàn)的。(4)主要代碼publicJsonModelreportUnfinish(ReportQueryreportQuery){ Page<Report>page=reportService.findUnfinish(reportQuery); JsonModeljsonModel=newJsonModel(); jsonModel.setSuccess(true); jsonModel.setMsg("查找成功"); jsonModel.setRows(page.getData()); jsonModel.setTotal(page.getTotal()); returnjsonModel; }<selectid="findFinish"parameterType="reportQuery"resultType="report"><!--將查詢到的數(shù)據(jù)封裝成report對象--> select*fromuseraleftjoinreportbon=b.usernamewherestatus=1limit#{offset},#{pageSize}</select>4.3.2查看所有維修記錄(1)功能描述維修人員可以在系統(tǒng)中查看自己負責(zé)的所喲維修記錄,在顯示出所有維修單頁面上方根據(jù)條件查找符合條件的維修記錄。(2)效果展示搜索維修記錄效果展示如圖4.6所示。圖4.6查看所有維修記錄Figure4.6Queryallreports(3)實現(xiàn)原理搜索維修記錄要是維修人員在點擊我的維修記錄后,系統(tǒng)將查詢到的所有數(shù)據(jù)封裝成report對象,顯示在頁面。(4)主要代碼select*fromuseraleftjoinreportbon=b.usernameleftjoinrepairperconb.repairname=c.rename <where> <iftest="name!=nullandname!=''"> name=#{name} </if> <iftest="loginName!=nullandloginName!=''">orloginName=#{loginName}</if></where>limit#{offset},#{pageSize}</select>4.3.2個人信息管理(1)功能描述維修人員可以對個人信息進行管理,如修改密碼。(2)效果展示個人信息管理效果展示如圖4.7所示。圖4.7搜索維修單Figure4.7Searchingreports(3)實現(xiàn)原理維修人員點擊個人信息,系統(tǒng)以loginName為參數(shù)查詢出個人所有信息,在修改完后點擊“保存”按鈕即可修改成功。(4)主要代碼publicJsonModelfind(RepairPerQueryrepairPerQuery){ Page<RepairPer>page=repairPerService.findByQuery(repairPerQuery); JsonModeljsonModel=newJsonModel(); jsonModel.setSuccess(true); jsonModel.setRows(page.getData()); jsonModel.setTotal(page.getTotal()); returnjsonModel;}publicStringeditUI(@PathVariable("id")IntegerrepairPerId,Modelmodel){ RepairPerrepairPer=repairPerService.findById(repairPerId); model.addAttribute("repairPer",repairPer); return"admin/person"; }<selectid="findByQuery"parameterType="reportQuery"resultType="report">select*fromreport<where><iftest="userNname!=nullanduserNname!=''">oruserNname=#{userNname}</if><iftest="loginName!=nullandloginName!=''">orloginName=#{loginName}</if></where>limit#{offset},#{pageSize}</select>4.3.3查看公告詳情(1)功能描述與報修用戶同理,維修人員也可以在系統(tǒng)上查看管理員發(fā)布的公告詳情。(2)效果展示公告詳情效果展示如圖4.8所示。圖4.8公告詳情Figure4.8Noticedetails(3)實現(xiàn)原理維修人員通過點擊在主頁的左邊的菜單欄“辦事大廳”下的“查看公告”菜單,通過<a>標(biāo)簽傳輸?shù)刂返絉eportController控制層,觸發(fā)findAllreport方法查找所有的公告,按時間排序,并且考慮到時效性,只顯示最新的一條公告記錄。(4)主要代碼 publicJsonModelfindAllreport(ReportQueryreportQuery){ Page<Report>page=reportService.findByQuery(reportQuery); JsonModeljsonModel=newJsonModel(); jsonModel.setSuccess(true); jsonModel.setRows(page.getData()); jsonModel.setTotal(page.getTotal()); returnjsonModel; }相應(yīng)的sql語句:<selectid="findByQuery"parameterType="noticeQuery"resultType="notice"> select*fromnoticeorderbytimedesclimit1<where> <iftest="text!=nullandtext!=''"> text=#{text} </if> </where></select>4.4系統(tǒng)管理模塊(1)功能描述當(dāng)管理員成功登入系統(tǒng)之后,即可在此頁面對系統(tǒng)中的所有的用戶進行一系列的操作。點擊左邊的下拉菜單就可以跳轉(zhuǎn)到相應(yīng)的界面進行系統(tǒng)主要操作。(2)效果展示系統(tǒng)管理員的操作頁面如果圖4.9所示:圖4.9系統(tǒng)管理員界面Figure4.9Systemadministratorpage(3)實現(xiàn)原理本頁面作為系統(tǒng)管理員登錄成功后的展示平臺,管理員可以點擊系統(tǒng)左表的菜單欄進行相應(yīng)的操作。(4)主要代碼publicString管理員登錄方法(StringloginName,Stringpassword,Modelmodel,HttpSessionsession){ Adminadmin=userService.login(loginName,password); if(admin==null){ session.setAttribute("msg","賬號或密碼錯誤"); return"login"; }else{ session.setAttribute("admin",admin);return"redirect:/index"; } } publicStringindex(){ return"index"; }4.4.1報修申請管理(1)功能描述管理員可管理系統(tǒng)中所有的報修申請,管理員可以查詢出系統(tǒng)記錄的所有報修記錄,可以輸入關(guān)鍵字查詢,也可以按已完成和未完成的分類查看。(2)效果展示查詢所有報修單管理效果展示如圖4.10、4.11、4.12所示。圖4.10所有報修申請管理Figure4.10Allreportmanage查詢所有未完成的報修單效果展示如圖4.12所示。圖4.11未完成報修申請管理Figure4.11unfinishedreportmanage圖4.12已完成報修申請管理Figure4.12finishedreportmanage(3)實現(xiàn)原理在管理員點擊左邊菜單欄中的“報修申請管理-所有報修單”,就會通過<a>標(biāo)簽獲取查詢對象,到ReportController控制層執(zhí)行相關(guān)實現(xiàn)方法,將查詢到的所有報修申請記錄,返回到數(shù)據(jù)表格中,因為這個數(shù)據(jù)是不斷增多的,因此設(shè)置分頁查看功能。(4)主要代碼publicJsonModelfindAllreport(ReportQueryreportQuery){ Page<Report>page=reportService.findByQuery(reportQuery); JsonModeljsonModel=newJsonModel(); jsonModel.setSuccess(true); jsonModel.setRows(page.getData()); jsonModel.setTotal(page.getTotal()); returnjsonModel; } publicJsonModelreportFinish(ReportQueryreportQuery){ Page<Report>page=reportService.findFinish(reportQuery); JsonModeljsonModel=newJsonModel(); jsonModel.setSuccess(true); jsonModel.setRows(page.getData()); jsonModel.setTotal(page.getTotal()); returnjsonModel; } publicStringreportUnfinish(){ return"admin/reportUnfinish"; } publicJsonModelreportUnfinish(ReportQueryreportQuery){ Page<Report>page=reportService.findUnfinish(reportQuery); JsonModeljsonModel=newJsonModel(); jsonModel.setSuccess(true); jsonModel.setRows(page.getData()); jsonModel.setTotal(page.getTotal()); returnjsonModel; }<selectid="findByQuery"parameterType="reportQuery"resultType="report"> select*fromuseraleftjoinreportbon=b.usernameleftjoinrepairperconb.repairname=c.renamewhereb.reportidisnotnulllimit#{offset},#{pageSize}</select><selectid="findFinish"parameterType="reportQuery"resultType="report"> select*fromuseraleftjoinreportbon=b.usernameleftjoinrepairperconb.repairname=c.renamewhereb.reportidisnotnullandb.status=1limit#{offset},#{pageSize}</select><selectid="findUnfinish"parameterType="reportQuery"resultType="report"> select*fromuseraleftjoinreportbon=b.usernameleftjoinrepairperconb.repairname=c.renamewhereb.reportidisnotnullandb.status=0limit#{offset},#{pageSize}</select><selectid="count"parameterType="performanceQuery"resultType="performance">(b)按條件查找記錄(1)功能描述在管理員查詢出所有報修申請的頁面,通過關(guān)鍵字查詢某一條報修記錄,如報修用戶的賬號或密碼,(2)效果展示按條件查找報修記錄效果展示如圖4.11所示。圖4.13所有報修申請關(guān)鍵字查詢Figure4.13Searchingallreportmanagebykeyword(3)實現(xiàn)原理管理員表詢出所有申記錄出來之后,可以在表格左上方的搜索框中輸入關(guān)鍵字查詢某一條記錄,關(guān)鍵字可以是報修人名字、賬號等關(guān)鍵信息。(4)主要代碼<selectid="findByQuery"parameterType="reportQuery"resultType="report">select*fromreport<where><iftest="userNname!=nullanduserNname!=''">oruserNname=#{userNname}</if><iftest="loginName!=nullandloginName!=''">orloginName=#{loginName}</if></where>limit#{offset},#{pageSize}</select>4.4.2報修用戶管理(1)功能描述在管理員頁面,可以查詢出所有的系統(tǒng)報修用戶,可對相應(yīng)數(shù)據(jù)進行增刪改查等操作。(2)效果展示管理報修用戶管理效果展示如圖4.14、4.15、4.16、4.17所示。圖4.14查詢報修用戶信息Figure4.14ManageTeachers-studentsusersinformation圖4.14添加報修用戶Figure4.14Addusers圖4.15修改報修用戶Figure4.15Editusers(3)實現(xiàn)原理在管理員點擊左邊菜單欄中的“報修用戶管理”下拉菜單中“所有報修用戶列表”,就會通過<a>標(biāo)簽獲取查詢對象,到UserController控制層執(zhí)行相應(yīng)方法,并創(chuàng)建user對象,以id為參數(shù)查出所有的用戶信息,返回到數(shù)據(jù)表格中,設(shè)置分頁查看用戶信息功能。(4)主要代碼publicJsonModellist(UserQueryuserQuery){ Page<User>page=userService.findByQuery(userQuery); JsonModeljsonModel=newJsonModel(); jsonModel.setSuccess(true); jsonModel.setRows(page.getData()); jsonModel.setTotal(page.getTotal()); returnjsonModel; } publicStringaddUI(){ return"user/add"; } publicStringaddUI(Useruser){ user.setPassword("1"); user.setLastLoginTime(newDate()); userService.add(user); return"redirect:/users/list"; } publicStringeditUI(@PathVariable("id")IntegeruserId,Modelmodel){ Useruser=userService.findById(userId); model.addAttribute("user",user); return"user/edit"; } publicStringedit(Useruser){ userService.update(user); return"redirect:/users/list"; } publicJsonModeldelete(@PathVariable("id")IntegeruserId){ JsonModeljsonModel=newJsonModel(); userService.deleteById(userId); jsonModel.setSuccess(true); returnjsonModel; }selectid="findByQuery"parameterType="userQuery"resultType="user"> select*fromuser <where> <iftest="name!=nullandname!=''"> name=#{name} </if> <iftest="loginName!=nullandloginName!=''">orloginName=#{loginName}</if></where>limit#{offset},#{pageSize}</select><insertid="add"parameterType="user"> insertintouser(name,loginName,password,gender,number,department) values(#{name},#{loginName},#{password},#{gender},#{number},#{department}) </insert> <!--UserfindById(IntegeruserId);--> <selectid="findById"parameterType="int"resultType="user"> select*fromuserwhereid=#{id} </select> <selectid="findTotal"parameterType="userQuery"resultType="int">selectcount(*)fromuser<where><iftest="name!=nullandname!=''">orname=#{name}</if><iftest="loginName!=nullandloginName!=''">orloginName=#{loginName}</if></where></select><updateid="update"parameterType="user">updateuser<set><iftest="name!=nullandname!=''">name=#{name},</if><iftest="password!=nullandpassword!=''">password=#{password},</if><iftest="gender!=nullandgender!=''">gender=#{gender},</if><iftest="number!=nullandnumber!=''">number=#{number},</if><iftest="department!=nullanddepartment!=''">department=#{department},</if></set>whereid=#{id}</update><deleteid="deleteById"parameterType="int">deletefromuserwhereid=#{id}</delete>4.4.3維修人員管理(1)功能描述管理員可在系統(tǒng)中查詢出所有維修人員信息的表格中選擇某一個維修人員以查看其詳細信息,在有需要時可對所選的維修人員信息進行修改。(2)效果展示維修人員信息管理頁面效果展示如圖4.18、4.19、4.20所示。圖4.18維修人員信息管理Figure4.18Managerepairsinformation圖4.19修改維修人員的信息Figure4.19Editrepairsinformation圖4.20添加維修人員的信息Figure4.20Addrepairsinformation(3)實現(xiàn)原理當(dāng)管理員在查詢出所有的維修人員界面信息界面表格中選擇某一條記錄時,通過超鏈接將參數(shù)id傳到后臺,實現(xiàn)edit方法。修改完成后,管理員點擊“保存”按鈕將重定向到查詢出所有維修人員表格頁面,展示出(4)主要代碼publicJsonModellist(RepairPerQueryrepairPerQuery){ Page<RepairPer>page=repairPerService.findByQuery(repairPerQuery); JsonModeljsonModel=newJsonModel(); jsonModel.setSuccess(true); jsonModel.setMsg("查找成功!"); jsonModel.setRows(page.getData()); jsonModel.setTotal(page.getTotal()); returnjsonModel; } publicStringaddUI(RepairPerrepairPer){ repairPer.setPassword("123"); repairPer.setLastLoginTime(newDate()); System.out.println(repairPer); repairPerService.add(repairPer); return"redirect:/repairPers/adminList"; } publicStringeditUI(@PathVariable("id")IntegerrepairPerId,Modelmodel){ RepairPerrepairPer=repairPerService.findById(repairPerId); model.addAttribute("repairPer",repairPer); return"admin/adminEdit"; } publicStringedit(RepairPerrepairPer){ repairPerService.update(repairPer); return"redirect:/repairPers/adminList"; }publicJsonModeldelete(@PathVariable("id")IntegerrepairPerId){ JsonModeljsonModel=newJsonModel(); userService.deleteById(repairId); jsonModel.setSuccess(true); jsonModel.setMsg("刪除成功"); returnjsonModel; }SQL語句<selectid="findByQuery"parameterType="repairPerQuery"resultType="repairPer"> select*fromrepairper <where> <iftest="rename!=nullandrename!=''"> rename=#{rename} </if> <iftest="loginName!=nullandloginName!=''">orloginName=#{loginName}</if></where>limit#{offset},#{pageSize}</select><insertid="add"parameterType="repairPer">insertinto`repairper`(`rename`,`loginName`,`password`,`gender`,`phone`,`depart`,`email`,`lastLoginTime`) values(#{rename},#{loginName},#{password},#{gender},#{phone},#{depart},#{email},#{lastLoginTime}) </insert> <selectid="findTotal"parameterType="repairPerQuery"resultType="int">selectcount(*)fromrepairper<where><iftest="rename!=nullandrename!=''">orrename=#{rename}</if><iftest="loginName!=nullandloginName!=''">orloginName=#{loginName}</if></where></select> <selectid="findById"parameterType="int"resultType="repairPer"> select*fromrepairperwhereid=#{id} </select><updateid="update"parameterType="repairPer">updaterepairper<set><iftest="rename!=nullandrename!=''">rename=#{rename},</if><iftest="password!=nullandpassword!=''">password=#{password},</if><iftest="gender!=nullandgender!=''">gender=#{gender},</if><iftest="phone!=nullandphone!=''">phone=#{phone},</if><iftest="depart!=nullanddepart!=''">depart=#{depart},</if>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年浙江泰隆商業(yè)銀行社會招聘備考題庫完整答案詳解
- 中國人民銀行清算總中心直屬企業(yè)深圳金融電子結(jié)算中心有限公司2026年公開招聘備考題庫及一套答案詳解
- 2026年雄安中關(guān)村科技園運營服務(wù)有限責(zé)任公司招聘備考題庫及一套完整答案詳解
- 中國熱帶農(nóng)業(yè)科學(xué)院香料飲料研究所2026年第一批公開招聘工作人員備考題庫及1套完整答案詳解
- 廈門市海滄區(qū)海滄幼兒園2026年助教、頂崗教師招聘備考題庫完整答案詳解
- 2026年重慶市江津區(qū)吳灘中心衛(wèi)生院公開招聘檢驗崗非在編專業(yè)技術(shù)人員備考題庫及一套參考答案詳解
- 2026年鹽城市大豐區(qū)司法局公開招聘勞務(wù)派遣人員備考題庫及1套完整答案詳解
- 2025至2030中國咖啡連鎖市場擴張策略與消費者行為研究報告
- 2026年西雙版納州紀委監(jiān)委公開招聘編外聘用人員備考題庫及一套答案詳解
- 2026年鹽城經(jīng)濟技術(shù)開發(fā)區(qū)部分單位公開招聘合同制工作人員7人備考題庫及1套完整答案詳解
- 高職院校技能大賽指導(dǎo)手冊
- 智齒拔除術(shù)課件
- DG-TJ08-401-2025 公共廁所規(guī)劃和設(shè)計標(biāo)準
- 集成電路測試技術(shù)與實踐 課件 4集成電路測試運算放大器參數(shù)測試
- 數(shù)字倫理教育-洞察及研究
- 戶外領(lǐng)隊培訓(xùn)知識課件
- 設(shè)備操作手冊用戶使用指南
- 護理差錯事故報告制度
- 2025至2030中國高級計劃和排程(APS)軟件行業(yè)項目調(diào)研及市場前景預(yù)測評估報告
- 國開機考答案 管理學(xué)基礎(chǔ)2025-06-27
- 河流水文、水系特征及成因(教學(xué)設(shè)計)
評論
0/150
提交評論