(附源码)ssm医务志愿者管理系统 毕业设计 100910
ssm醫務志愿者管理系統
摘?要
隨著互聯網趨勢的到來,各行各業都在考慮利用互聯網將自己推廣出去,最好方式就是建立自己的互聯網系統,并對其進行維護和管理。在現實運用中,應用軟件的工作規則和開發步驟,采用Java技術建設醫務志愿者管理系統。
本設計主要實現集人性化、高效率、便捷等優點于一身的醫務志愿者管理系統,完成用戶管理、項目立項、項目申請、項目過程、項目匯總、服務分類、志愿者考核等功能模塊。系統通過瀏覽器與服務器進行通信,實現數據的交互與變更。只需通過一臺電腦,動動手指就可以操作系統,實現數據通信管理。整個系統的設計過程都充分考慮了數據的安全、穩定及可靠等問題,而且操作過程簡單。本系統通過科學的管理方式、便捷的服務提高了工作效率,減少了數據存儲上的錯誤和遺漏。
醫務志愿者管理系統使用Java語言,采用基于 MVC模式的JavaEE技術進行開發,使用 MyEclipse 2017 CI 10 編譯器編寫,數據方面主要采用的是微軟的MySQL關系型數據庫來作為數據存儲媒介,配合前臺HTML+CSS 技術完成系統的開發。
關鍵詞:醫務志愿者管理系統;Java語言;關系型數據庫;數據存儲
SSM medical volunteer management system
Abstract
With the advent of the Internet trend, all walks of life are considering using the Internet to promote themselves. The best way is to establish their own Internet system and maintain and manage it. In practical application, according to the working rules and development steps of the application software, Java technology is used to build the medical volunteer management system.
This design mainly realizes the medical volunteer management system with the advantages of humanization, high efficiency and convenience, and completes the functional modules such as user management, project initiation, project application, project process, project summary, service classification, volunteer assessment and so on. The system communicates with the server through the browser to realize the interaction and change of data. You can operate the system and realize data communication management by moving your fingers through a computer. The safety, stability and reliability of data are fully considered in the design process of the whole system, and the operation process is simple. Through scientific management and convenient service, the system improves work efficiency and reduces errors and omissions in data storage.
The medical volunteer management system is developed using java language, Java EE technology based on MVC mode and MyEclipse 2017 CI 10 compiler. In terms of data, Microsoft's MySQL relational database is mainly used as the data storage medium, and the system development is completed with the foreground HTML + CSS technology.
Key words:?Medical volunteer management system; Java language; Relational database; data storage
目 ?錄
第1章?緒論
1.1?研究背景與意義
1.2?研究現狀
1.3?主要工作及論文結構
第2章 相關技術介紹
2.1開發技術
2.2 MVVM模式
2.3?B/S結構
2.4?Mysql數據庫
2.5?SSM框架
2.5 SSM框架各層關系
第3章 系統分析
3.1?可行性分析
3.1.1?技術可行性
3.1.2?經濟可行性
3.1.3?社會可行性
3.2系統功能分析和描述
3.3性能分析 6
3.4系統操作流程 7
3.4.1添加信息流程 7
3.4.2操作流程 7
3.4.3刪除信息流程 8
第4章 系統設計
4.1系統架構設計
4.2開發流程設計
4.3數據庫設計
4..3.1實體ER圖 13
4.3.2數據表 14
第5章?系統實現
5.1?數據庫連接模塊的實現
5.2?登錄模塊的實現 16
5.3?用戶模塊的實現
5.4?管理員模塊的實現 25
第6章?系統測試 31
6.1?測試環境 31
6.2?測試目標
6.3?功能測試 31
6.4?測試結果 32
第7章?總結與展望 34
參考文獻 35
致謝 37
志愿者管理著社會一些志愿活動事務,平時信息管理和活動事務的具體管理都是依靠各個部門的人員反復溝通交流和核對。這種管理方式存在著許多缺點,如:效率低、另外時間一長,將產生大量的文件和數據,這對于查找、更新和管理都帶來了不少的困難。
隨著計算機技術的飛速發展,計算機在企業和大學管理中應用的普及,利用計算機實現活動事務的管理勢在必行。利用計算機支持協會組織高效率完成活動管理的日常事務,是適應現代社會發展要求,推動大學活動事務管理走向科學化、規范化的必要條件 。
醫務志愿者管理系統的實現可以讓減輕比較繁瑣的手工活動管理,讓人力資源管理人員從繁重瑣碎的案頭工作和頻繁低效的部門組織交流中解脫出來,去完成更重要的工作。它具有手工管理所無法比擬的優點,比如信息流通到位及時、組織管理責任明確、文件查找方便、檔案處理可靠性高、存儲量大、壽命長等。這些都可以讓我們更加針對性、便捷性地科學進行醫務志愿者管理系統,極大地提高活動管理的效率,更好地為熱心的志愿者提供信息支持而和活動平臺,同時也為社會志愿者活動的發展奠定了一個堅實的基礎,所有這些都將大大提升活動效果和積極地影響志愿者們的價值觀念,為培養是三能人才添磚加瓦。
國內的醫務志愿者管理系統體系結構對中國而言最主要的一塊就是能夠隨時得到政府的支持,所以就主哦功能過的志愿者協會中必然有一個部門是與政府直接相關的,可以很快的領略政府的精神和含義,在此基礎上件起起了志愿者服務管理組織的其他部門,例如:社區義工聯以及共青團志愿者組織,這種小型的社區網站體系結構主要是建立在了上述的部門上,而其自身又衍生去了很多管理部門,其主要的組成是由志愿者、志愿者直接管理者、志愿者協會管理專員、以及志愿者協會的團支部來組成的。所以大學生志愿者是這個系統架構的主要成員。而這些志愿者又被分為在職志愿者以及臨時志愿者,在職志愿者主要從事的是一些全職的工作由他們負責管理整個志愿者組織,而臨時志愿者則是來自于社會各界人士,他們平時都有自己的工作,而在空暇之余來參加志愿活動。
西方國家的志愿者的服務管理工作早已經有了完善的制度,志愿活動本身已經成為了西方社會制度化、專業化的社會工作了。所以從以上的敘述可以看出,這樣的結果不僅是因為許多西方國家的志愿服務活動起步早且規模大,更大的原因則是政府管理措施嚴謹,所以讓志愿活動產生了極高的社會效益。當然,現在國內也在政府的管理下慢慢的開始步入組織化、規范化和系統化的道路,政府已經意識到志愿者的服務活動不僅僅是國家進行公民的道德教育的機會,更是一種維護社會穩定的無形力量和有力措施,現在國內建立志愿者組織的目標就是為了對志愿者服務的管理形成一套很是完整的運作機制。
本文的主要工作是研究如何將計算機和信息管理進行有機結合,從而利用Java語言以及Mysql數據庫技術在Dreamweaver中實現了系統的功能模塊,切實的開發出一套貼近醫務志愿者管理系統的實際,有效管理醫務志愿者管理系統的系統。?
論文結構如下:
第一章緒論:主要對醫務志愿者管理系統的開發背景,研究現狀,目的,及意義進行了分析。
第二章開發技術及軟件:主要把系統開發工具進行介紹,另外講解開發系統所用到的一些特殊功能技術。
第三章系統分析:主要是對醫務志愿者管理系統進行需求分析,以及對其數據流程與功能進行分析。
第四章系統設計:主要根據系統需求對系統的設計進行介紹,以及對數據的開發與功能模塊設計的過程。
第五章系統實現:本章主要結合系統界面截圖,介紹了系統各個功能實現的結果。
第六章系統測試:本章系統進行功能模塊的測試,撰寫測試用例,確保系統各大功能準確無誤。
第七章總結與展望:對整個論文的研究內容進行總結,概括整個論文的特點,指出不足之處,為下步深究指明方向。
本系統前端部分基于MVVM模式進行開發,采用B/S模式,后端部分基于Java的ssm框架進行開發。
前端部分:前端框架采用了比較流行的漸進式JavaScript框架Vue.js。使用Vue-Router和Vuex實現動態路由和全局狀態管理,Ajax實現前后端通信,Element UI組件庫使頁面快速成型,項目前端通過柵格布局實現響應式,可適應PC端、平板端、手機端等不同屏幕大小尺寸的完美布局展示。
后端部分:采用ssm作為開發框架,同時集成MyBatis、Redis等相關技術
MVVM是Model-View-ViewModel的簡寫。它本質上就是MVC 的改進版。MVVM 就是將其中的View 的狀態和行為抽象化,讓我們將視圖 UI 和業務邏輯分開。當然這些事 ViewModel 已經幫我們做了,它可以取出 Model 的數據同時幫忙處理 View 中由于需要展示內容而涉及的業務邏輯。微軟的WPF帶來了新的技術體驗,如Silverlight、音頻、視頻、3D、動畫……,這導致了軟件UI層更加細節化、可定制化。同時,在技術層面,WPF也帶來了 諸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由來便是MVP(Model-View-Presenter)模式與WPF結合的應用方式時發展演變過來的一種新型架構框架。它立足于原有MVP框架并且把WPF的新特性糅合進去,以應對客戶日益復雜的需求變化。
Mysql 經過多次的更新,功能層面已經非常的豐富和完善了,從Mysql4版本到5版本進行了比較大的更新,在商業的實際使用中取得了很好的實際應用效果。最新版本的Mysql支持對信息的壓縮,同時還能進行加密能更好的滿足對信息安全性的需求。同時經過系統的多次更新,數據庫自身的鏡像功能也得到了很大的增強,運行的流暢度和易用性方面有了不小的進步,驅動的使用和創建也更加的高效快捷。最大的變動還是進行了空間信息的顯示優化,能更加方便的在應用地圖上進行坐標的標注和運算。強大的備份功能也保證了用戶使用的過程會更加安心,同時支持的Office特性還支持用戶的自行安裝和使用。在信息的顯示形式上也進行了不小的更新,增加了兩個非常使用的顯示區,一個是信息區,對表格和文字進行了分類處理,界面的顯示更加清爽和具體。第二是儀表的信息控件,能在儀表信息區進行信息的顯示,同時還能進行多個信息的比對,為用戶的實際使用帶來了很大的便捷。
針對本文中設計的在線考試系統在實際的實現過程中,最終選擇Mysql數據庫的主要原因在于在企業的應用系統應用及開發的過程中會存在大量的數據庫比較頻繁的操作,而且數據的安全性要求也是非常的高。綜合這些因素,最終選擇安全性系數比較高的Mysql來對在線考試系統后臺數據進行存儲操作。
數據庫管理系統的總體結構圖如下圖所示。
?
圖2-1 數據庫組成結構
B/S結構
B/S(Browser/Server)比前身架構更為省事的架構。它借助Web server完成數據的傳遞交流。只需要下載瀏覽器作為客戶端,那么工作就達到“瘦身”效果, 不需要考慮不停裝軟件的問題。
SSM即SpringMVVM+Spring+MySQL,這三個框架有各自最獨有的優勢,那么將它們組合在一起能夠碰撞出很強的火花。設計者在不需消耗大量功夫,能做出Web應用程序,而且這個程序還具有層次清晰、升級更新操作不影響正常使用的、允許多次使用的特點。這個復合框架形成一個有著結構完整、功能強大和結構良好的體系:SpringMVVM使各板塊分離,Spring使開發更靈活方便,讓開發者直接對對象進行操縱,各層次分工明細,并實現各個層次間的解耦,讓代碼更加的靈活精簡。這個框架使程序員能夠規避在開發時期避免個別錯誤導致整體被破壞,也能在后期應對客戶對產品提出的新需求。
DAO層、Service層這兩個層次都可以單獨開發,互相的耦合度很低,完全可以獨立進行,這樣的一種模式在開發大項目的過程中尤其有優勢。
Controller,View層因為耦合度比較高,因而要結合在一起開發,但是也可以看作一個整體獨立于前兩個層進行開發。這樣,在層與層之前只需要知道接口的定義,調用接口即可完成所需要的邏輯單元應用,一切顯得非常清晰簡單。
開發任何一個系統,都要對其可行性進行分析,對其時間和資源上的限制進行考慮,這樣可以減少系統開發的風險。同時,分析之后不僅能夠合理的運用人力,還能在各方面資源的消耗上得到節省。下面就對技術、經濟和社會三個方面來介紹。
技術可行性主要考慮當前項目所用的技術是否能夠符合,在設備上是否能夠滿足,及各種輔助工具是否提供幫助。本系統用的是Java開發語言,調試相對簡單,當前的計算機硬件配置也完全能滿足開發的需求,因此在技術上是絕對可行的。軟件方面:由于軟件的開發平臺成熟可行,它們速度快、容量大、可靠性能高、價格低,完全能滿足系統的需求。采用Java編程語言,已無技術上的問題。
系統所采用的Myeclipse開發平臺和Mysql后端數據庫均為免費開發工具。故開發成本主要集中在后期的推廣及系統維護上。相對于成本較高的C/S模式,也是選用了成本較低的B/S模式,所以經濟上幾乎沒任何問題。
本系統是自行開發的系統,以方便高效管理醫務志愿者管理系統為出發點,是具有實際意義的系統,開發的環境軟件和用到的數據庫也都是開源代碼,不存在侵權等問題,所以在社會方面也是可行的。
對于性能分析,與傳統的管理方式相比,傳統的管理方式是使用人工通過用紙和筆進行數據信息的統計和管理,并且這種方式對于存儲和查找某一數據信息都比較麻煩,隨著計算機網絡的到來,這種傳統的方法很難適應當下社會的發展,不僅降低人們的辦事效率,而且還需要很多的人力和物力,對于使用的時間和所要花費的費用都是比較高的,為了降低成本費用,提高用戶的工作效率,進行開發一套基于計算機和網絡技術的醫務志愿者管理系統。
醫務志愿者管理系統的開發設計時一個獨立的系統,以之前數據庫進行數據的存儲開發,主要是為了實現醫務志愿者管理系統的用戶角色及相對應的功能模塊,讓醫務志愿者管理系統的管理不會存在管理差異、低效率,而是跟傳統的管理信息恰好相反,醫務志愿者管理系統的實現可以節約資源,并且對于業務的處理速度也提高,速度快、效率高,功能性強大。
3.3系統流程分析
3.3.1添加信息流程
添加信息,編號系統使用自動編號模式,沒有用戶填寫,用戶添加信息輸入信息,系統將自動確認的信息和數據,驗證的成功是有效的信息添加到數據庫,信息無效,重新輸入信息。添加信息流程如圖3-3所示。
?
圖3-3 添加信息流程圖
3.3.2操作流程
用戶想進入系統,首先進入系統登錄界面,通過正確的用戶名、密碼,選擇登錄類型登錄,系統會檢查登錄信息,信息正確,然后輸入相應的功能界面,提示信息錯誤,登錄失敗。系統操作流程如圖3-4所示。
?
圖3-4操作流程圖
3.3.3刪除信息流程
用戶選擇要刪除的信息并單擊Delete按鈕。系統提示是否刪除信息。如果用戶想要刪除信息,系統將刪除信息。系統數據庫刪除信息。刪除信息流程圖如圖3-5所示。
?
圖3-5?刪除信息流程圖
系統設計
醫務志愿者管理系統的系統項目的概述設計分析,主要內容有醫務志愿者管理系統的具體分析,進行數據庫的是設計,數據采用mysql數據庫,并且對于系統的設計采用比較人性化的操作設計,對于系統出現的錯誤信息可以及時做出處理及反饋。
基于醫務志愿者管理系統的設計基于現有的電腦,可以實現管理員,用戶管理、項目立項、項目申請、項目過程、項目匯總、服務分類、志愿者考核等詳細的了解及統計分析。根據系統功能需求建立的模塊關系圖如下圖:?
?
????????圖4-1管理員功能模塊圖
???????
醫務志愿者管理系統的開發對管理模塊和系統使用的數據庫進行分析,編寫代開發,規劃和操作是構建信息管理應用程序的必要三步曲,它決定了系統是否能夠真正實現預設功能以及是否可以在成功設計后實施。在開發過程中,每個階段必須嚴格按照線性順序進行開發,并且在相應階段生成的每個工作都可以通過技術進行驗證和檢查。確保一個階段完成后是正確的,不會造成下一階段拖拽現象,使系統完成設計功能后得到保證。
從醫務志愿者管理系統的成功開發經驗來看,上述方法效果最為明顯,最大程度地降低了系統開發的復雜性。如圖4-2所示。
?
?????????圖4-2開發系統流程圖
數據庫是信息系統的基礎和核心。數據庫設計的好壞直接影響到信息系統開發的成敗。創建數據庫表首先確定實體的屬性和實體之間的關系。根據關系創建一個數據表。
4.3.1實體ER圖
數據庫是整個軟件編程中最重要的一個步驟,對于數據庫問題主要是判定數據庫的數量和結構公式的創建。展示系統使用的是Mysql進行對數據庫進行管理,進行保證數據的安全性、穩定性等。
概念模型的設計是為了抽象真實世界的信息,并對信息世界進行建模。它是數據庫設計的強大工具。數據庫概念模型設計可以通過E-R圖描述現實世界的概念模型。系統的E-R圖顯示了系統中實體之間的鏈接。而且Mysql數據庫是自我保護能力比較強的數據庫,下圖主要是對數據庫實體的E-R圖:
(1)項目立項管理E-R圖,如圖4-3所示:
?
?圖4-3項目立項管理實體屬性圖
?(2)?志愿者考核管理E-R圖如圖4-4所示:
?
???圖4-4志愿者考核管理實體圖
這些功能可以充分滿足醫務志愿者管理系統的需求。此系統功能較為全面如下圖系統功能結構如圖4-5所示。
?
??????????????????????????????圖4-5系統功能結構圖
4.3.2數據表
將數據庫概念設計的E-R圖轉換為關系數據庫。在關系數據庫中,數據關系由數據表組成,但是表的結構表現在表的字段上。
volunteer_users表
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| volunteer_users_id | int | 11 | 是 | 是 | 志愿者用戶ID |
| volunteer_number | varchar | 64 | 是 | 否 | 志愿者編號 |
| full_name | varchar | 64 | 否 | 否 | 姓名 |
| gender | varchar | 64 | 否 | 否 | 性別 |
| age | varchar | 64 | 否 | 否 | 年齡 |
| examine_state | varchar | 16 | 是 | 否 | 審核狀態 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| user_id | int | 11 | 是 | 否 | 用戶ID |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
volunteer_assessment表:
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| volunteer_assessment_id | int | 11 | 是 | 是 | 志愿者考核ID |
| volunteer_number | varchar | 64 | 是 | 否 | 志愿者編號 |
| full_name | varchar | 64 | 否 | 否 | 姓名 |
| on_duty_situation | varchar | 64 | 否 | 否 | 到崗情況 |
| working_conditions | varchar | 64 | 否 | 否 | 工作情況 |
| attendance | varchar | 64 | 否 | 否 | 考勤情況 |
| pass_the_examination | varchar | 64 | 否 | 否 | 考核通過 |
| remarks | varchar | 64 | 否 | 否 | 備注 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
service_classification表:
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| service_classification_id | int | 11 | 是 | 是 | 服務分類ID |
| service_category | varchar | 64 | 否 | 否 | 服務類別 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
project_summary表:
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| project_summary_id | int | 11 | 是 | 是 | 項目匯總ID |
| project_area | varchar | 64 | 否 | 否 | 項目區域 |
| service_category | varchar | 64 | 否 | 否 | 服務類別 |
| service_object_ | varchar | 64 | 否 | 否 | 服務對象 |
| project_number | varchar | 64 | 否 | 否 | 項目人數 |
| date | date | 0 | 否 | 否 | 日期 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
project_process表:
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| project_process_id | int | 11 | 是 | 是 | 項目過程ID |
| item_no | varchar | 64 | 否 | 否 | 項目編號 |
| entry_name | varchar | 64 | 否 | 否 | 項目名稱 |
| service_object_ | varchar | 64 | 否 | 否 | 服務對象 |
| service_category | varchar | 64 | 否 | 否 | 服務類別 |
| date | date | 0 | 否 | 否 | 日期 |
| project_status | varchar | 64 | 否 | 否 | 項目狀態 |
| volunteer_information | text | 0 | 否 | 否 | 志愿者信息 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
project_initiation表:
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| project_initiation_id | int | 11 | 是 | 是 | 項目立項ID |
| item_no | varchar | 64 | 否 | 否 | 項目編號 |
| entry_name | varchar | 64 | 否 | 否 | 項目名稱 |
| service_object_ | varchar | 64 | 否 | 否 | 服務對象 |
| service_category | varchar | 64 | 否 | 否 | 服務類別 |
| number_of_volunteers | varchar | 64 | 否 | 否 | 志愿者人數 |
| date | date | 0 | 否 | 否 | 日期 |
| project_basis | text | 0 | 否 | 否 | 立項依據 |
| project_content | longtext | 0 | 否 | 否 | 項目內容 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
project_application表:
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| project_application_id | int | 11 | 是 | 是 | 項目申請ID |
| volunteer_number | int | 11 | 否 | 否 | 志愿者編號 |
| full_name | varchar | 64 | 否 | 否 | 姓名 |
| contact_information | varchar | 64 | 否 | 否 | 聯系方式 |
| item_no | varchar | 64 | 否 | 否 | 項目編號 |
| entry_name | varchar | 64 | 否 | 否 | 項目名稱 |
| examine_state | varchar | 16 | 是 | 否 | 審核狀態 |
| examine_reply | varchar | 255 | 否 | 否 | 審核回復 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
從web系統查詢數據的根本的查詢步驟:
Step1: 進行檢查并且過濾來自用戶的系統數據;
Step2: 成立起一個合適的數據庫進行連接;
Step3: 進行查詢系統數據庫;
Step4: 獲得查詢的結構;
Step5: 把查詢的結果展示給用戶。
Step6: 數據庫連接斷開,釋放資源。
數據庫連接原理如下圖所示。
?
圖5-1數據庫連接原理
數據庫連接關鍵代碼如下所示。
/**
?* 臨時訪問牌(AccessToken)表實體類
?*
?*/
@TableName("access_token")
@Data
@EqualsAndHashCode(callSuper = false)
public class AccessToken implements Serializable {
????private static final long serialVersionUID = 913269304437207500L;
????/**
?????* 臨時訪問牌ID
?????*/
????@TableId(value = "token_id", type = IdType.AUTO)
????private Integer tokenId;
????/**
?????* 臨時訪問牌
?????*/
????@TableField(value = "token")
????private String token;
????/**
?????* 最大壽命:默認2小時
?????*/
????@TableField(value = "maxage")
????private Integer maxage;
????/**
?????* 創建時間:
?????*/
????@TableField(value = "create_time")
????private Timestamp createTime;
????/**
?????* 更新時間:
?????*/
????@TableField(value = "update_time")
????private Timestamp updateTime;
????/**
?????* 用戶信息
?????*/
????@TableField(value = "user_id")
????private Integer user_id;
}
為確保系統安全性,系統操作員只有在登錄界面輸入正確的用戶名、密碼、權限以及驗證碼,單擊“登錄”按鈕后才能夠進入本系統的主界面。
用戶登錄流程圖如下所示。
????????????????????
?
圖5-1用戶登錄流程圖
登錄界面如下圖所示。
圖5-1登錄界面
?
登錄代碼如下:
????/**
?????* 登錄
?????* @param data
?????* @param httpServletRequest
?????* @return
?????*/
????@PostMapping("login")
????public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
????????log.info("[執行登錄接口]");
????????String username = data.get("username");
????????String email = data.get("email");
????????String phone = data.get("phone");
????????String password = data.get("password");
????????List resultList = null;
????????QueryWrapper wrapper = new QueryWrapper<User>();
????????Map<String, String> map = new HashMap<>();
????????if(username != null && "".equals(username) == false){
????????????map.put("username", username);
????????????resultList = service.selectBaseList(service.select(map, new HashMap<>()));
????????}
????????else if(email != null && "".equals(email) == false){
????????????map.put("email", email);
????????????resultList = service.selectBaseList(service.select(map, new HashMap<>()));
????????}
????????else if(phone != null && "".equals(phone) == false){
????????????map.put("phone", phone);
????????????resultList = service.selectBaseList(service.select(map, new HashMap<>()));
????????}else{
????????????return error(30000, "賬號或密碼不能為空");
????????}
????????if (resultList == null || password == null) {
????????????return error(30000, "賬號或密碼不能為空");
????????}
????????//判斷是否有這個用戶
????????if (resultList.size()<=0){
????????????return error(30000,"用戶不存在");
????????}
????????User byUsername = (User) resultList.get(0);
????????Map<String, String> groupMap = new HashMap<>();
????????groupMap.put("name",byUsername.getUserGroup());
????????List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
????????if (groupList.size()<1){
????????????return error(30000,"用戶組不存在");
????????}
????????UserGroup userGroup = (UserGroup) groupList.get(0);
????????//查詢用戶審核狀態
????????if (!StringUtils.isEmpty(userGroup.getSourceTable())){
????????????String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
????????????if (res==null){
????????????????return error(30000,"用戶不存在");
????????????}
????????????if (!res.equals("已通過")){
????????????????return error(30000,"該用戶審核未通過");
????????????}
????????}
????????//查詢用戶狀態
????????if (byUsername.getState()!=1){
????????????return error(30000,"用戶非可用狀態,不能登錄");
????????}
????????String md5password = service.encryption(password);
????????if (byUsername.getPassword().equals(md5password)) {
????????????// 存儲Token到數據庫
????????????AccessToken accessToken = new AccessToken();
????????????accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
????????????accessToken.setUser_id(byUsername.getUserId());
????????????tokenService.save(accessToken);
????????????// 返回用戶信息
????????????JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
????????????user.put("token", accessToken.getToken());
????????????JSONObject ret = new JSONObject();
????????????ret.put("obj",user);
????????????return success(ret);
????????} else {
????????????return error(30000, "賬號或密碼不正確");
????????}
}
????public String select(Map<String,String> query,Map<String,String> config){
????????StringBuffer sql = new StringBuffer("select ");
????????sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
????????sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
????????if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
????????????sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
????????}
????????if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
????????????sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
????????}
????????if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
????????????int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
????????????int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
????????????sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
????????}
????????log.info("[{}] - 查詢操作,sql: {}",table,sql);
????????return sql.toString();
}
????public List selectBaseList(String select) {
????????List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
????????List<E> list = new ArrayList<>();
????????for (Map<String,Object> map:mapList) {
????????????list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
????????}
????????return list;
}
用戶輸入賬號、設置密碼、確認密碼、昵稱、郵箱、手機號、身份、姓名 性別、學號等必填信息后,點擊注冊按鈕完成用戶的注冊。
用戶注冊流程圖如下所示。
?
圖5-1用戶注冊流程圖
用戶注冊界面如下圖所示。
?
圖5-1用戶注冊界面
用戶注冊代碼如下:
????/**
?????* 注冊
?????* @return
?????*/
????@PostMapping("register")
????public Map<String, Object> signUp(HttpServletRequest request) throws IOException {
????????// 查詢用戶
????????Map<String, String> query = new HashMap<>();
????????Map<String,Object> map = service.readBody(request.getReader());
????????query.put("username",String.valueOf(map.get("username")));
????????List list = service.selectBaseList(service.select(query, new HashMap<>()));
????????if (list.size()>0){
????????????return error(30000, "用戶已存在");
????????}
????????map.put("password",service.encryption(String.valueOf(map.get("password"))));
????????service.insert(map);
????????return success(1);
}
????public Map<String,Object> readBody(BufferedReader reader){
????????BufferedReader br = null;
????????StringBuilder sb = new StringBuilder("");
????????try{
????????????br = reader;
????????????String str;
????????????while ((str = br.readLine()) != null){
????????????????sb.append(str);
????????????}
????????????br.close();
????????????String json = sb.toString();
????????????return JSONObject.parseObject(json, Map.class);
????????}catch (IOException e){
????????????e.printStackTrace();
????????}finally{
????????????if (null != br){
????????????????try{
????????????????????br.close();
????????????????}catch (IOException e){
????????????????????e.printStackTrace();
????????????????}
????????????}
????????}
????????return null;
????}
????public void insert(Map<String,Object> body){
????????E entity = JSON.parseObject(JSON.toJSONString(body),eClass);
????????baseMapper.insert(entity);
????????log.info("[{}] - 插入操作:{}",entity);
}
項目立項頁面可以搜索項目編號、項目名稱、服務對象、服務類別、志愿者人數、日期、立項依據等詳情信息等操作。
?
圖5-1項目立項界面
項目申請頁面可以搜索志愿者編號、項目、聯系方式、項目編號、項目名稱等詳情信息等操作。
?
圖5-1項目申請界面
為確保系統安全性,系統操作員只有在登錄界面輸入正確的用戶名、密碼、權限以及驗證碼,單擊“登錄”按鈕后才能夠進入本系統的主界面。
?????????
?
圖5-1管理員登陸界面
項目立項信息添加功能主要指對其項目編號、項目名稱、服務對象、服務類別、志愿者人數、日期、立項依據等一些基本信息的編輯查看評論、添加、刪除和修改。
項目立項界面如圖所示。
?
圖5-1項目立項界面
項目立項管理關鍵代碼如下:
????@RequestMapping(value = "/del")
????@Transactional
????public Map<String, Object> del(HttpServletRequest request) {
????????service.delete(service.readQuery(request), service.readConfig(request));
????????return success(1);
}
????
???????
}
項目過程信息添加功能主要指對其項目編號、項目名稱、服務對象、服務類別、日期、項目狀態、志愿者信息等一些基本信息的編輯、查詢添加、刪除和修改。
?
圖5-1項目過程管理界面
項目匯總添加功能主要指對其項項目區域、服務類別、服務對象、項目人數、日期等一些基本信息的編輯、查詢添加、刪除和修改。
?
圖5-1項目匯總管理界面圖
項目匯總管理關鍵代碼如下所示。
???public List selectBaseList(String select) {
????????List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
????????List<E> list = new ArrayList<>();
????????for (Map<String,Object> map:mapList) {
????????????list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
????????}
????????return list;
}
志愿者考核添加功能主要指對其志愿者編號、項目、到崗情況、工作情況、考核通過、備注等一些基本信息的編輯、查詢添加、刪除和修改。
?
圖5-1志愿者考核管理界面圖
1、服務器端
操作系統:Windows 7
Web服務器:Tomcat7.0
數據庫:Mysql
開發語言:Java
2、客戶端
瀏覽器:Internet Explorer10
界面布局:DIV+CSS
分辨率:最佳效果1027*768以上像素
3、開發工具
Visual Studio Code
Myeclipse
系統測試是用于檢查軟件的質量、性能、可靠性等是否符合用戶需求。一套嚴謹的、規范的、完善的測試過程將大大提高軟件的質量、可信度、可靠性,降低軟件的出錯率,降低用戶風險系數。通過在計算機上對系統進行測試試驗并從中發現此系統中存在的問題和錯誤然后加以修改,使之更加符合用戶需求。
1.測試的目的是通過測試來發現程序在執行過程中的錯誤的過程。
2.好的測試方案是可以檢驗出還未被發現的錯誤的方案。
3.好的測試是發現了到目前為止還未被發現的錯誤的測試。
4.該系統能夠完成公告欄、管理員、訓練資訊、資訊分類列表、學生用戶、訓練項目、預約信息等功能,做到所開發的系統操作簡單,盡量使系統操作不受用戶對電腦知識水平的限制。
下表是醫務志愿者管理系統功能的測試用例,檢測了醫務志愿者管理系統中對精品推薦信息的增加,刪除,修改,查詢操作是否成功運行。觀察系統的響應情況,得出該功能也達到了設計目標,系統運行正確。
前置條件;用戶登錄系統。
表6-1項目申請管理的測試用例
| 功能描述 | 用于項目申請管理 | |
| 測試目的 | 檢測項目申請管理時的各種操作的運行情況 | |
| 測試數據以及操作 | 預期結果 | 實際結果 |
| 點擊添加項目申請,必填項合法輸入,點擊保存 | 提示添加成功 | 與預期結果一致 |
| 點擊添加項目申請,必填項輸入不合法,點擊保存 | 提示必填項不能為空 | 與預期結果一致 |
| 點擊修改項目申請,必填項修改為空,點擊保存 | 提示必填項不能為空 | 與預期結果一致 |
| 點擊修改項目申請,必填項輸入不合法,點擊保存 | 提示必填項不能為空 | 與預期結果一致 |
| 點擊刪除項目申請,選擇項目申請刪除 | 提示刪除成功 | 與預期結果一致 |
| 點擊搜索項目申請,輸入存在的項目申請名 | 查找出項目申請 | 與預期結果一致 |
| 點擊搜索項目申請 ,輸入不存在的在線投票名 | 不顯示項目申請 | 與預期結果一致 |
下表是項目匯總管理功能的測試用例,檢測了項目匯總管理的操作是否成功運行。觀察系統的響應情況,得出該功能也達到了設計目標,系統運行正確。
前置條件;用戶登錄系統。
表6-2 項目匯總管理的測試用例
| 功能描述 | 用于項目匯總管理 | |
| 測試目的 | 檢測項目匯總管理時各種操作的情況 | |
| 測試數據以及操作 | 預期結果 | 實際結果 |
| 未選擇項目,點擊提交 | 提示請選擇報名 | 與預期結果一致 |
| 未上傳附件,點擊提交 | 提示請選擇附件 | 與預期結果一致 |
| 未選擇原因,點擊提交 | 提示請選擇原因 | 與預期結果一致 |
根據以上測試情況,測試結果如下表所示。
表6-1測試結果表
| 測試項目 | 測試結果 |
| 登錄測試 | 成功 |
| 修改密碼測試 | 成功 |
| 項目匯總管理測試 | 成功 |
| 項目申請測試 | 成功 |
| 項目過程 | 成功 |
| 用戶管理測試 | 成功 |
| 服務分類管理測試 | 成功 |
| 志愿者考核管理測試 | 成功 |
| 項目立項管理測試 | 成功 |
本研究針對醫務志愿者管理系統地需求建模,數據建模及過程建模分析設計并實現醫務志愿者管理系統的過程。給出系統應用架構并分析優劣勢,通過功能分解圖,系統組件圖描述功能需求。設計建立了數據庫,給出系統關鍵數據結構的定義。通過類關系圖描述組件間的協作關系,給出各個類的定義方法。通過描述每一個類的字段,屬性及方法實現醫務志愿者管理系統的前后端代碼。最終給出系統集成整合方法,完成醫務志愿者管理系統地設計與實現。
在此項目的開發中,先要按照產品經理做出的產品模型鋪出大體的頁面,并在其中找好頁面的邏輯關系,并且中途總結一些頁面上的問題重新反饋給產品經理,當靜態頁面的搭建的大體已經完善時,就需要和負責后臺開發的技術開發者聯系,來接好前后臺的數據接口,可以讓后臺的信息在前臺顯示出來,在這個項目實現中,不光明白了前端開發和產品經理的聯系,也明白了后臺在整個系統中起到了什么作用,因為前后臺的連接,用戶可以對系統進行操作,可以在輸入自己的相關信息后,通過后臺加工,完成對數據庫的查找、修改、添加,而理解了這些關系與實現的方法后。再去完善整個系統的功能就更加清晰與簡單了。此次的項目它涉及了前臺與后臺系統的搭建,在學校所學的知識基礎上,此次的項目,讓我對于一個系統的前端開發,以及后臺的作用都有了一個更深切的認知。
參考文獻
[1]朱珍珠,段華斌,鄧永清,杜丹蕾.基于Java的增值平臺的設計與實現[J].辦公自動化,2022,27(05):55-58.
[2]郭靜.基于SSM框架的高校新生預報到系統的設計與實現[J].電子技術與軟件工程,2022(02):232-235.
[3]蔡明月.冬奧會高校志愿者管理問題研究[J].科技傳播,2022,14(01):55-57.
[4]張烈超,胡迎九.典型Java Web開發框架模型的研究[J].武漢交通職業學院學報,2021,23(04):122-127.
[5]徐旭,李明明,夏輝,陳曦,王天宇,肖碩,雍旭.基于SSM框架的互聯網+多元監管下構建醫療設備質量控制管理服務平臺研究[J].中國醫學裝備,2021,18(12):106-110.
[6]李春生,李朝霞,劉濤,胡亞楠.基于SSM的科研室管理系統的研究與設計[J].計算機技術與發展,2021,31(12):148-154.
[7]胡世洋,賴森林.淺論SSM框架在構建“微農”信息服務中的應用[J].電腦知識與技術,2021,17(34):4-6.
[8]李耀,李路蘭,王明宇,楊廣,王偉,孫新杰.基于SSM框架的創新創業申報系統的構建——以六盤水師范學院為例[J].電腦知識與技術,2021,17(33):47-48+52.
[9]王宇,夏麗麗,何穎剛.基于SSM框架的高校畢業論文管理系統的設計與實現[J].電子技術與軟件工程,2021(22):26-29.
[10]林永強. 一種居家養老服務志愿者的管理系統及方法[P]. 廣東省:CN108648125B,2021-10-29.
[11]Jun Ma, Jun Mao, Long Chen , Lili Yin. Design and Implementation of Multi-terminal Debugging System based on SSM Framework[J]. International Core Journal of Engineering,2021,7(7):
[12]田夢娜. 社會工作機構志愿者管理研究[D].華中師范大學,2021.
[13]朱蓓蓓. 英國公共圖書館志愿者調查與分析研究[D].山東師范大學,2021.
[14]曾麗娟,邱毅,段濤,李建水,唐嘯龍,鄧大煒.基于B/S架構醫院志愿者管理系統的設計與實現[J].醫學信息,2021,34(07):27-30+34.
[15]魯迎春.遵義市圖書館文化志愿者管理存在的問題及對策思考[J].遵義師范學院學報,2020,22(06):172-174+178.
[16]丁心悅. 醫務社會工作部的志愿者管理問題與對策研究[D].江西財經大學,2020.
[17]Xiaojie Guo,Tingmei Wang*. Design and Implementation of Graduate Information Management System Based on SSM Framework[J]. Journal of Simulation,2020,8(2):
[18] Design and Implementation of ERP System Based on SSM Framework[J]. ,2020,440(5):
[19]呂龍鋒, 專業社會工作 “廣東志愿者”信息管理系統應用. 郭長勇,劉俊文 主編,佛山年鑒,廣東旅游出版社,2018,390-391,年鑒.
[20]Ping Wanxin,Chen Yuankun,Hou Xiaoyan. Design of Campus Bicycle Rental Management System Based on SSM Framework[J]. Journal of Physics: Conference Series,2019,1314:
[21]李冉, 市級志愿者協會管理系統v1.0. 湖北省,荊楚理工學院,2018-12-03.
[22]湯佳,孫潔,沈杏華,胡錄才,郭迎.醫務志愿者綜合管理系統初探[J].江蘇衛生事業管理,2015,26(02):69-70.
致謝
在此論文完成之際,感謝我的指導老師。在指導老師的網頁設計課上,當時我學到了很多東西,這對于我實習過程中也打了一定的基礎,而且指導老師對于我的設計也提出許多建議,并予以悉心的指導,對于一些細小的問題都耐心的指導我去完善,授予我寫論文的好友,時常的鼓勵我,另外感謝教導我完善此項目的前端同學,對于這個項目,我是邊學習邊實現完成的,有許多東西開始并不是很明白,但前端開發的同學非常耐心的引導我去將這個項目完成,在系統的后端開發中,所用到的后臺開發技術也時常會給我講解,助于我更好的將論文完成,在此對幫助到我的同學和一直予以教導的指導老師致以衷心的感謝,祝事業有成。
免費領取本源代碼,請關注點贊+私聊
總結
以上是生活随笔為你收集整理的(附源码)ssm医务志愿者管理系统 毕业设计 100910的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 生僻字怎么用计算机打出来,电脑搜狗输入法
- 下一篇: 2023最新SSM计算机毕业设计选题大全