SSM+老年人社区服务平台 毕业设计-附源码211711
Ssm老年人社區服務平臺的設計與實現
摘?要
科技進步的飛速發展引起人們日常生活的巨大變化,電子信息技術的飛速發展使得電子信息技術的各個領域的應用水平得到普及和應用。信息時代的到來已成為不可阻擋的時尚潮流,人類發展的歷史正進入一個新時代。在現實運用中,應用軟件的工作規則和開發步驟,采用Java技術建設老年人社區服務平臺系統。
本設計主要實現集人性化、高效率、便捷等優點于一身的老年人社區服務平臺系統,完成公告內容(輪播圖、公告欄)、用戶管理(管理員、護工人員、注冊用戶、)、內容模塊(社區新聞、新聞分類)、商城中心(菜品中心列表、分類列表、訂單列表)模塊管理(護工請假、護工預約、護工介紹、健康信息、老人信息、事故信息)等功能模塊。系統通過瀏覽器與服務器進行通信,實現數據的交互與變更。本系統通過科學的管理方式、便捷的服務提高了工作效率,減少了數據存儲上的錯誤和遺漏。老年人社區服務平臺系統使用Java語言,采用基于MVVM模式的SSM技術進行開發,使用 Eclipse 2017 CI 10 編譯器編寫,數據方面主要采用的是微軟的MySQL關系型數據庫來作為數據存儲媒介,配合前臺HTML+CSS 技術完成系統的開發。
關鍵詞:老人社區服務;Java語言;關系型數據庫;數據存儲
Design and implementation of SM community service platform for the elderly
Abstrac
The rapid development of scientific and technological progress has caused great changes in people's daily life. The rapid development of electronic information technology has popularized and applied the application level of electronic information technology in various fields. The advent of the information age has become an irresistible fashion trend, and the history of human development is entering a new era. In practical application, according to the working rules and development steps of application software, Java technology is used to build the community service platform system for the elderly.
This design mainly realizes the elderly community service platform system integrating the advantages of humanization, high efficiency and convenience, and completes the announcement content (rotation map, bulletin board), user management (administrator, nursing staff, registered users,), content module (community news, news classification) Mall Center (menu center list, classification list, order list) module management (nurse leave, nurse appointment, nurse introduction, health information, elderly information, accident information) and other functional modules. The system communicates with the server through the browser to realize the interaction and change of data. Through scientific management and convenient service, the system improves work efficiency and reduces errors and omissions in data storage. The elderly community service platform system uses Java language, adopts SSM technology based on MVVM mode for development, and is written with eclipse 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:?Community service for the elderly; Relational database; Data storage
目 ?錄
第1章 緒論
1.1?研究意義
1.2?研究背景
1.3?本文的組織結構
第2章 相關技術介紹
2.1開發技術
2.2 MVVM模式
2.3 Mysql數據庫
2.4 B/S結構
2.5 SSM框架
2.6 SSM框架各層關系
第3章 系統分析
3.1?可行性分析
3.1.1?技術可行性分析
3.1.2?經濟可行性分析
3.1.3?操作可行性分析
3.2?功能需求分析
3.3?非功能需求分析 8
3.4?數據流程分析 8
第4章 系統設計 10
4.1?系統架構設計 10
4.2?系統功能結構 10
4.3?功能模塊設計
4.4?數據庫設計
4.4.1?概念模型
4.4.2?關系模型
4.4.3?數據表
第5章 系統實現
5.1?登錄模塊的實現
5.2?用戶子系統模塊的實現 22
5.2.1?用戶首頁模塊 22
5.2.2?注冊模塊 23
5.2.3社區新聞模塊 25
5.2.4護工介紹模塊
5.3?管理員子系統模塊的實現
5.3.1護工人員管理模塊
5.3.2?個人資料管理模塊
5.3.3菜品中心管理模塊 31
5.3.4?訂單列表管理模塊
第6章 系統測試
6.1?測試目的
6.2?測試過程
6.3?測試結果
第7章 總結與展望 37
參考文獻 38
致謝 39
隨著計算機技術的飛速發展,計算機在各行各業中的應用迅速普及,計算機的應用在信息管理領域同樣也得到了飛速的發展。對于老年人社區的管理來說,利用計算機實現日常工作來提高辦事效率,是適應當今社會發展要求,推動信息管理領域現代化快速發展的必要條件。雖然老年人社區管理中一直存在著管理制度,但是社區管理是一項瑣碎、復雜而又十分細致的工作。人員流動等工作量非常的大,如果用手工來操作,不僅工作量大而且容易出現錯誤。而利用計算機就不同了,一個完善的社區管理系統可以幫你解決所有這方面的問題。同時計算機具有手工管理所無法比擬的優點。例如:檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、成本低等。這些優點能夠極大地提高老年人社區管理的效率。
進入21世紀,中國社會發展面臨著社會轉型的巨大沖擊,加上20世紀80年代以后生育率和出生率的不斷下降,中國社會邁進了人口老齡化的門坎,人口老齡化是當代社會普遍存在的問題,“老有所養"?更是社會發展需要解決的首要問題,且已成為當今無法回避的嚴.峻而緊迫的重大課題。因此,城市老年人要由誰來提供養老服務的問題,已成為國家及學術界探討的重點所在,在這種背景下,積極探索新形勢下發展養老事業的新途徑,也勢在必行。隨著,人口老齡化程度的加劇,中國養老模式面臨著重大的挑戰。城市老年人社區服務以其獨有的優勢成為各大城市共同的選擇。雖然,城市老年人社區服務模式盡管經過二十多年的發展,取得了一定進步,但是,依然存在諸多問題。
第一章是緒論,本文章的開頭部分,對本題目的研究背景和研究意義等一些做文字性的描述。
第二章研究了老年人社區服務平臺系統的所采用的開發技術和開發工具。
第三章是系統分析部分,包括系統總體需求描述、功能性角度分析系統需求、非功能性等各個方面分析系統是否可以實現。
第四章是系統設計部分,本文章的重要部分,提供了系統架構的詳細設計和一些主要功能模塊的設計說明。
第五章是系統的具體實現,介紹系統的各個模塊的具體實現。
第六章在前幾章的基礎上對系統進行測試和運行。
最后對系統進行了認真的總結,以此對未來有一個新的展望。
本系統前端部分基于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來對學生社團管理系統后臺數據進行存儲操作。
B/S(Browser/Server)比前身架構更為省事的架構。它借助Web server完成數據的傳遞交流。只需要下載瀏覽器作為客戶端,那么工作就達到“瘦身”效果, 不需要考慮不停裝軟件的問題。
SSM即SpringMVVM+Spring+MySQL,這三個框架有各自最獨有的優勢,那么將它們組合在一起能夠碰撞出很強的火花。設計者在不需消耗大量功夫,能做出Web應用程序,而且這個程序還具有層次清晰、升級更新操作不影響正常使用的、允許多次使用的特點。這個復合框架形成一個有著結構完整、功能強大和結構良好的體系:SpringMVVM使各板塊分離,Spring使開發更靈活方便,讓開發者直接對對象進行操縱,各層次分工明細,并實現各個層次間的解耦,讓代碼更加的靈活精簡。這個框架使程序員能夠規避在開發時期避免個別錯誤導致整體被破壞,也能在后期應對客戶對產品提出的新需求。
DAO層、Service層這兩個層次都可以單獨開發,互相的耦合度很低,完全可以獨立進行,這樣的一種模式在開發大項目的過程中尤其有優勢。
Controller,View層因為耦合度比較高,因而要結合在一起開發,但是也可以看作一個整體獨立于前兩個層進行開發。這樣,在層與層之前只需要知道接口的定義,調用接口即可完成所需要的邏輯單元應用,一切顯得非常清晰簡單。
系統分析
本次設計基于B/S 模式下,運用Java、JSP技術采用的是MySQL數據庫和Eclipse實現,總體的可行性共分為以下三個方面。
所謂的技術可行性就是在限定時間,前期擬定的功能能否被滿足。在開發設計上是否會遇上解決不了的問題。做完的項目能否被很好地應用,如果存在缺點在后期的維護上是否存在很大的難度。在對這個系統評估后,認定已存在的技術能達成目標。用Java技術來實現動態的頁面,嵌入低依賴性的設計模式,靈活的數據庫,配合穩定的服務器,整個系統的運行效率大大提升。由此可見,在技術層面達成目標不是非非之想。
在項目上使用的工具大部分都是是當下流行開源免費的,所以在開發前期,開發時用于項目的經費將會大大降低,不會讓開發該軟件在項目啟動期受到經費的影響,所以經濟上還是可行的。盡量用最少的花費去滿足用戶的需求。省下經費用于人工費,以及設備費用。將在無紙化,高效率的道路上越走越遠。
本系統實現功能的操作很簡單,普通電腦的常見配置就可以運行本軟件,并且只要粗通電腦使用的基本常識就可以流暢的使用本軟件。電腦具備連接互聯網的能力,并且可以正常訪問系統,并不需要操作者有什么高超的能力,只需了解業務流程,并且按照專業知識進行正確操作即可,所以老年人社區服務平臺系統具備操作可行性。
在系統開發設計前,應該對功能做初步設想,清楚這個管理系統有什么板塊,每個板塊有什么功能,整體的設計是否滿足使用者的需求,接著對所開發的系統功能進行的詳細分析總結,從而設計出完整的系統并將其實現。用戶和開發人員的交流分析,使其達到最佳理解程度,使系統功能達到最佳。
用戶用例圖如下所示。
?
圖3-1 用戶用例圖
管理員用例圖如下所示。
?
圖3-2 管理員用例圖
護工人員用例圖如下所示。
?
圖3-3護工用例圖
老年人社區服務平臺系統在對需求做解析后,整個系統主要分為三部分:管理員、護工和注冊用戶,每個模塊下的分支功能不一樣。對功能做出如下說明:
普通用戶模塊:
賬號注冊。
賬號登錄認證。
管理個人資料信息,修改可修改的信息項。
社區新聞模塊:包括快標題、封面圖、文章分類、標簽。
護工介紹模塊:包括護工工號、姓名、性別、年齡、照片、每小時單價。
個人中心模塊:包括實名認證、修改密碼、訂單信息。
管理員模塊:
維護普通用戶,審核普通用戶的賬號,可以凍結普通用戶的登錄權限,或者刪除普通用戶賬號。
發布社區新聞,并可以銷毀某個社區新聞,更新社區新聞數據,模糊搜索社區新聞數據等。
護工請假模塊,對護工請假信息的查詢、刪除、添加等信息。
護工介紹模塊:對護工介紹信息的查詢、刪除、添加等信息。
護工預約模塊:對護工預約信息的查詢、刪除、添加等信息。
健康信息模塊:并可以銷毀某個健康信息,更新健康數據,模糊搜索健康信息數據等。
健康知識模塊:并可以銷毀某個健康知識,更新健康知識數據,模糊搜索健康知識數據等。
老人信息模塊:并可以銷毀某個老人信息,更新老人信息數據,模糊搜索老人信息數據等。
系統非功能需求有非常多,比如性能需求、可承載最大用戶數、穩定性、易用性需求等。本系統分析時考慮到易用性需求,因為系統是給人使用的,所以必須充分從用戶的角度出發,考慮用戶體驗,使系統易理解易上手易操作。
一層數據流程圖包括了登錄注冊、用戶功能和檢索維護等模塊,在登錄注冊模塊使用到的數據存儲有用戶賬戶文檔,用戶功能模塊需要的存儲是用戶各功能模塊數據文檔,檢索維護是使用以上這些數據文檔通過關鍵詞進行檢索。
系統的一層數據流圖如下圖所示。
?
圖3-2系統數據流圖(一層)
二層數據流程是對一層數據流層圖中填寫登錄注冊信息、用戶功能的細化。即:填寫登錄注冊信息細化為填制信息、后臺審核,用戶功能細化為護工介紹、護工請假、護工要預約、健康信息、健康知識、事故信息、老人信息等操作。
系統的二層數據流圖如下圖所示。
?
圖3-4系統數據流圖(二層)
目前B/S體系的系統主要的數據訪問方式是:通過瀏覽器頁面用戶可以進入系統,系統可以自動對用戶向服務器發送的請求進行處理,處理請求是在系統后臺中進行的,用戶在瀏覽器頁面上進行相應操作,就能夠看到服務端傳遞的處理結果。老年人社區服務平臺系統主要分為視圖-模型-控制三層架構設計。在視圖層中,主要是操作在服務器端向客戶端反饋并顯示的數據,在模型層中,主要處理相關的業務邏輯、數據整合等,最后的控制層它介于視圖和模型之間,主要是調整兩層之間的關系,最終落實數據的傳遞。
系統架構圖如下圖所示。
?
圖4-1系統架構圖
系統設計的目的是分析系統包括的所有功能結構,為開發人員設計開發和實現系統做好準備工作。經過前期的需求調查、分析和整理之后,確定的總體需求主要包括多個模塊,分別是:護工介紹、護工預約、護工請假、健康知識、健康信息、老人信息、事故信息。系統整體角色分為三部分,一是管理員、二是注冊用戶、三是護工。權限分布也是很明顯,普通用戶是在除去瀏覽信息之外還具有查詢和管理自己賬戶信息、公告欄、社區新聞、護工介紹、健康知識等權限;管理員是最高權限擁有者。
系統功能結構圖如下圖所示。
?
圖4-2系統功能結構圖
管理員模塊:
維護普通用戶:審核普通用戶的賬號,可以凍結普通用戶的登錄權限,或者刪除普通用戶賬號。
老人信息:對老人信息進行維護。
護工請假管理:對護工請假進行維護,添加、刪除、修改信息。
護工介紹管理:對護工介紹進行維護,添加、刪除、修改信息。
護工預約管理:對預約信息進行維護,添加、刪除、修改信息。
健康信息管理:對健康信息進行維護管理。
健康知識管理:對健康知識信息的進行維護管理。
對于一個要開發的系統來說,E-R圖可以讓別人能更快更輕松的了解此系統的事務及它們之間的關系。根據系統分析階段所得出的結論確定了在老年人社區服務平臺系統中存在著多個實體分別是用菜品中心、護工請假、護工介紹、護工預約、健康信息、健康知識、老人信息。
系統總體ER圖如下圖所示。
?
圖4-4系統總體ER圖
管理員(管理員id、用戶名、密碼、權限)
注冊用戶(注冊用戶id、用戶名、性別、年齡、審核狀態)
護工人員(護工人員id、護工工號、審核狀態)
護工請假(護工請假id、護工工號、請假類型、請假開始時間、請假結束時間、請假原因、審核狀態、審核回復)
護工預約(護工預約id、護工工號、姓名、每小時單價、預約時長、總費用、服務時間、用戶名、聯系電話、服務地址、審核狀態、審核回復、支付狀態、支付類型)
護工介紹(護工介紹id、護工工號、姓名、性別、年齡、照片、每小時單價、護工介紹、點擊數、點贊數)
健康知識(健康知識id、標題、封面、所屬類別、簡介、詳情、點擊數、點贊數)
健康信息(健康信息id、用戶名、姓名、填報日期、體溫、血壓、有無不適、其他備注)
菜品中心(菜品中心id、食材、原價、賣價、商品庫存、商品分類)
老人信息(老人信息id、老人姓名、性別、年齡、身份證、緊急聯系人、聯系電話、疾病史、藥物國民史)
事故信息(事故信息id、老人姓名、事故時間、事故內容、事故原因、處理方案)
數據庫邏輯結構就是將E-R圖在數據庫中用具體的字段進行描述。用字段和數據類型描述來使對象特征實體化,最后形成具有一定邏輯關系的數據庫表結構。老年人社區服務平臺系統所需要的部分數據結構表如下表所示。
registered_user表:
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| registered_user_id | int | 11 | 是 | 是 | 注冊用戶ID |
| user_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 | 是 | 否 | 更新時間 |
nursing_workers_ask_for_leave表:
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| nursing_workers_ask_for_leave_id | int | 11 | 是 | 是 | 護工請假ID |
| nurse_no | int | 11 | 否 | 否 | 護工工號 |
| leave_type | varchar | 64 | 否 | 否 | 請假類型 |
| leave_start_time | datetime | 0 | 否 | 否 | 請假開始時間 |
| leave_end_time | datetime | 0 | 否 | 否 | 請假結束時間 |
| reason_for_leave | text | 0 | 否 | 否 | 請假原因 |
| examine_state | varchar | 16 | 是 | 否 | 審核狀態 |
| examine_reply | varchar | 255 | 否 | 否 | 審核回復 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
nursing_staff表:
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| nursing_staff_id | int | 11 | 是 | 是 | 護工人員ID |
| nurse_no | varchar | 64 | 是 | 否 | 護工工號 |
| examine_state | varchar | 16 | 是 | 否 | 審核狀態 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| user_id | int | 11 | 是 | 否 | 用戶ID |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
nurse_appointment表:
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| nurse_appointment_id | int | 11 | 是 | 是 | 護工預約ID |
| nurse_no | int | 11 | 否 | 否 | 護工工號 |
| full_name | varchar | 64 | 否 | 否 | 姓名 |
| unit_price_per_hour | varchar | 64 | 否 | 否 | 每小時單價 |
| appointment_duration | int | 11 | 否 | 否 | 預約時長 |
| total_cost | varchar | 64 | 否 | 否 | 總費用 |
| service_time_ | datetime | 0 | 否 | 否 | 服務時間 |
| user_name | int | 11 | 否 | 否 | 用戶名 |
| contact_number | varchar | 64 | 否 | 否 | 聯系電話 |
| service_address | varchar | 64 | 否 | 否 | 服務地址 |
| examine_state | varchar | 16 | 是 | 否 | 審核狀態 |
| examine_reply | varchar | 255 | 否 | 否 | 審核回復 |
| pay_state | varchar | 16 | 是 | 否 | 支付狀態 |
| pay_type | varchar | 16 | 否 | 否 | 支付類型: 微信、支付寶、網銀 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
introduction_to_nursing_workers表:
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| introduction_to_nursing_workers_id | int | 11 | 是 | 是 | 護工介紹ID |
| nurse_no | int | 11 | 否 | 否 | 護工工號 |
| full_name | varchar | 64 | 否 | 否 | 姓名 |
| gender | varchar | 64 | 否 | 否 | 性別 |
| age | varchar | 64 | 否 | 否 | 年齡 |
| photo | varchar | 255 | 否 | 否 | 照片 |
| unit_price_per_hour | int | 11 | 否 | 否 | 每小時單價 |
| introduction_to_nursing_workers | longtext | 0 | 否 | 否 | 護工介紹 |
| hits | int | 11 | 是 | 否 | 點擊數 |
| praise_len | int | 11 | 是 | 否 | 點贊數 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
health_knowledge表:
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| health_knowledge_id | int | 11 | 是 | 是 | 健康知識ID |
| title | varchar | 64 | 否 | 否 | 標題 |
| cover | varchar | 255 | 否 | 否 | 封面 |
| category | varchar | 64 | 否 | 否 | 所屬類別 |
| brief_introduction | text | 0 | 否 | 否 | 簡介 |
| details | longtext | 0 | 否 | 否 | 詳情 |
| hits | int | 11 | 是 | 否 | 點擊數 |
| praise_len | int | 11 | 是 | 否 | 點贊數 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
health_information表:
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| health_information__id | int | 11 | 是 | 是 | 健康信息ID |
| user_name | int | 11 | 否 | 否 | 用戶名 |
| full_name | varchar | 64 | 否 | 否 | 姓名 |
| filling_date | date | 0 | 否 | 否 | 填報日期 |
| temperature | varchar | 64 | 否 | 否 | 體溫 |
| blood_pressure | varchar | 64 | 否 | 否 | 血壓 |
| any_discomfort | varchar | 64 | 否 | 否 | 有無不適 |
| other_remarks | varchar | 64 | 否 | 否 | 其他備注 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
food_center表:?
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| food_center_id | int | 11 | 是 | 是 | 菜品中心ID |
| ingredients | varchar | 64 | 否 | 否 | 食材 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| cart_title | varchar | 125 | 否 | 否 | 標題 |
| cart_img | text | 0 | 否 | 否 | 封面圖 |
| cart_description | varchar | 255 | 否 | 否 | 描述 |
| cart_price_ago | double | 8 | 是 | 否 | 原價 |
| cart_price | double | 8 | 是 | 否 | 賣價 |
| cart_inventory | int | 11 | 是 | 否 | 商品庫存 |
| cart_type | varchar | 64 | 是 | 否 | 商品分類 |
| cart_content | longtext | 0 | 否 | 否 | 正文 |
| cart_img_1 | text | 0 | 否 | 否 | 主圖1 |
| cart_img_2 | text | 0 | 否 | 否 | 主圖2 |
| cart_img_3 | text | 0 | 否 | 否 | 主圖3 |
| cart_img_4 | text | 0 | 否 | 否 | 主圖4 |
| cart_img_5 | text | 0 | 否 | 否 | 主圖5 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
elderly_information表:
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| elderly_information_id | int | 11 | 是 | 是 | 老人信息ID |
| old_man_name | varchar | 64 | 否 | 否 | 老人姓名 |
| gender | varchar | 64 | 否 | 否 | 性別 |
| age | int | 11 | 否 | 否 | 年齡 |
| id | varchar | 64 | 否 | 否 | 身份證 |
| emergency_contact_ | varchar | 64 | 否 | 否 | 緊急聯系人 |
| contact_number | varchar | 64 | 否 | 否 | 聯系電話 |
| disease_history | text | 0 | 否 | 否 | 疾病史 |
| national_history_of_drugs | text | 0 | 否 | 否 | 藥物國民史 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
accident_information表:?
| 名稱 | 類型 | 長度 | 不是null | 主鍵 | 注釋 |
| accident_information_id | int | 11 | 是 | 是 | 事故信息ID |
| old_man_name | varchar | 64 | 否 | 否 | 老人姓名 |
| accident_time | datetime | 0 | 否 | 否 | 事故時間 |
| accident_content | text | 0 | 否 | 否 | 事故內容 |
| cause_of_accident | text | 0 | 否 | 否 | 事故原因 |
| treatment_scheme | text | 0 | 否 | 否 | 處理方案 |
| recommend | int | 11 | 是 | 否 | 智能推薦 |
| create_time | datetime | 0 | 是 | 否 | 創建時間 |
| update_time | timestamp | 0 | 是 | 否 | 更新時間 |
系統的登錄窗口是用戶的入口,用戶只有在登錄成功后才可以進入訪問。通過在登錄提交表單,后臺處理判斷是否為合法用戶,進行頁面跳轉,進入系統中去。
登錄合法性判斷過程:用戶輸入賬號和密碼后,系統首先確定輸入輸入數據合法性,然后在login.jsp頁面發送登錄請求,調用src下的mainctrl類的dopost方法來驗證。
用戶登錄模塊的IPO如下所示:
輸入:用戶名和密碼。
處理:
1)檢測用戶輸入的賬號、密碼是否正確及在數據庫已對應存在。
2)從數據庫中提取記錄,并儲存在本地的session中(timeout默認=30min)。
3)根據用戶名,將其顯示在系統首頁上。
輸出:是否成功的信息。
登錄流程圖如下所示。
?
圖5-1登錄流程圖
系統登錄界面如下所示。
?
圖5-2系統登錄界面
用戶登錄的邏輯代碼如下。
??/**
?????* 登錄
?????* @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-3系統首頁界面
其中載入首頁頁面的主要代碼如下。
package com.project.demo.constant;
/**
?*/
public class FindConfig {
????public static String PAGE = "page";
????public static String SIZE = "size";
????public static String LIKE = "like";
????public static String ORDER_BY = "orderby";
????public static String FIELD = "field";
????public static String GROUP_BY = "groupby";
????public static String MIN_ = "_min";
????public static String MAX_ = "_max";
}
此頁面實現普通用戶的注冊,必須注冊登錄后才能使用系統大部分功能,用戶名不允許重復如果重復將會注冊失敗,并彈出相應的提示,通過js實現對輸入的驗證。
用戶注冊流程圖如下所示。
?
圖5-4用戶注冊流程圖
用戶注冊界面如下圖所示。
?
圖5-5用戶注冊界面
用戶注冊關鍵代碼如下所示。
/**
?????* 注冊
?????* @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);
}
社區新聞過程中,首先使用getmap(id,"xinxi"),通過社區ID得到社區新聞數據,將社區新聞數據賦值給社區,調用CommDAO的insert方法將新聞數據表中,最后查看個人歷史社區新聞記錄,可以銷毀歷史社區新聞數據。
社區新聞流程圖如下所示。
?
圖5-6社區新聞程圖
社區新聞管理界面如圖所示。
?
圖5-7社區新聞管理界面
社區新聞關鍵代碼如下所示。
@PostMapping("/add")
????@Transactional
????public Map<String, Object> add(HttpServletRequest request) throws IOException {
????????service.insert(service.readBody(request.getReader()));
????????return success(1);
????}
????@Transactional
????public Map<String, Object> addMap(Map<String,Object> map){
????????service.insert(map);
????????return success(1);
}
護工介紹過程中,首先使用getmap(id,"xinxi"),通過護工ID得到介紹信息數據,將護工數據賦值給護工介紹,調用CommDAO的insert方法將護工介紹數據插入表中,最后查看個人歷史護工介紹記錄,可以銷毀歷史護工介紹數據。
護工介紹流程圖如下所示。
?
圖5-8護工介紹流程圖
護工介紹管理界面如圖所示。
?
圖5-9護工介紹管理界面
護工介紹管理關鍵代碼如下所示。
@RequestMapping(value = "/del")
????@Transactional
????public Map<String, Object> del(HttpServletRequest request) {
????????service.delete(service.readQuery(request), service.readConfig(request));
????????return success(1);
}
護工人員在yhzhgl查看護工信息,先使用sql語句查詢出所有護工人員表的數據,然后調用PageManager.getPages(url,4,sql, request ),返回一個ArrayList的對象,在for循環里,使用jsp得到每個ArrayList對象的數據,在jsp頁面中解析ArrayList對象,得到其各個鍵值對的值。
護工人員管理界面如下圖所示。
?
圖5-10護工人員管理界面
護工人員管理關鍵代碼如下所示。
??@PostMapping("/set")
@Transactional
????public Map<String, Object> set(HttpServletRequest request) throws IOException {
????????service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
????????return success(1);
}
用戶點擊登錄填寫賬號信息登錄后,會切換內容為“某某用戶歡迎您”和歷史訂單,并給出注銷鏈接。當用戶登錄成功后會將個人信息保存在session作用域中,點擊自己的用戶名時,會跳轉到個人詳細信息頁面,由后臺通過Freemarker取出session作用域中的用戶信息進行動態渲染,例如,郵箱、電話號碼、用戶名等等。同時頁面上會顯示修改個人信息和修改密碼的按鈕,這時客戶可以修改自己的登錄密碼以保障賬號的安全性,防止被人竊取賬號,通過UserController.java的updatePassword()實現,同時也可以根據自己的個人信息是否變動做出相應的修改,通過updateUserInfo()實現。
密碼修改流程圖如下所示。
?
圖5-11密碼修改流程圖
密碼修改關鍵代碼如下所示。
public String encryption(String plainText) {
????????String re_md5 = new String();
????????try {
????????????MessageDigest md = MessageDigest.getInstance("MD5");
????????????md.update(plainText.getBytes());
????????????byte b[] = md.digest();
????????????int i;
????????????StringBuffer buf = new StringBuffer("");
????????????for (int offset = 0; offset < b.length; offset++) {
????????????????i = b[offset];
????????????????if (i < 0)
????????????????????i += 256;
????????????????if (i < 16)
????????????????????buf.append("0");
????????????????buf.append(Integer.toHexString(i));
????????????}
????????????re_md5 = buf.toString();
????????} catch (Exception e) {
????????????e.printStackTrace();
????????}
????????return re_md5;
}
添加菜品信息時,輸入必填字段后,表現層的ShequController接受傳過來的菜品中心信息參數,再調用ShequController類的addShequ方法,經過ShequService業務層到ShequMapper持久層的處理,完成對整個添加菜品信息的操作。addShequ方法也和用戶管理中的addUser方法類似,同時做添加和修改工作。
修改菜品中心信息時,選擇需要修改的菜品信息進行修改,調用ShequController控制器的editShequ方法,拿到該菜品原本的信息并顯示到頁面,管理員再對需要修改的菜品信息字段進行修改,完成后調用addShequ方法,調用業務層的updateByKey方法,更新數據庫的菜品中心信息表的數據。
菜品中心管理流程圖如下所示。
?
圖5-12菜品中心管理流程圖
菜品中心管理界面如下圖所示。
?
圖5-13菜品中心管理界面
菜品中心管理關鍵代碼如下所示。
??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;
}
管理員在后臺管理界面點擊到所有訂單界面dingdan_list.php,向控制層dingdanAction發送請求,搜索當前所有訂單信息,dingdanAction向訂單數據訪問層調用搜索全部訂單的請求,向數據庫的訂單表搜索當前所有訂單并將訂單信息以對象的形式層層返回到dingdan_list.php界面,顯示出當前所有訂單信息。同時可以刪除過期訂單,確認已有訂單,進行發貨處理。
訂單列表管理流程圖如下所示。
?
圖5-14訂單列表管理流程圖
訂單列表添加界面如下圖所示。
?
圖5-15訂單列表添加界面
訂單列表信息添加關鍵代碼如下所示。
<mapper namespace="com.project.demo.dao.base.BaseMapper">
????<select id="selectBaseList" resultType="java.util.LinkedHashMap">
????????${select}
????</select>
????<select id="selectBaseCount" resultType="Integer">
????????${count}
????</select>
????<select id="selectBaseOne" resultType="Object">
????????${select}
????</select>
????<update id="updateBaseSql">
????????${sql}
????</update>
????<delete id="deleteBaseSql">
????????${sql}
????</delete>
</mapper>
在對該系統進行完詳細設計和編碼之后,就要對老年人社區服務平臺系統的程序進行測試,檢測程序是否運行無誤,反復進行測試和修改,使之最后成為完整的軟件,滿足用戶的需求,實現預期的功能。
在軟件的測試過程中,通常測試人員需要針對不同的功能模塊設計多種測試用例。通過測試用例能夠及時發現代碼業務邏輯上是否與真實的業務邏輯相對應,及時發現代碼上或邏輯上的缺陷,以此來來完善系統,提高軟件產品的質量,使軟件具有良好的用戶體驗。
注冊測試用例表如下所示。
表6-1注冊測試用例
| 測試性能 | 新用戶注冊 | ||
| 用例目的 | 測試系統新用戶個人信息注冊功能的功能和安全性 | ||
| 前提條件 | 進入注冊頁面填寫個人信息 | ||
| 輸入條件 | 預期輸出 | 實際情況 | |
| 各項基本信息輸入不完整 | 不允許注冊,無法點擊注冊按鈕 | 一致 | |
| 填寫已存在的用戶名 | 系統顯示出提示信息,要求重新填寫 | 一致 | |
| 兩次密碼輸入不一致 | 系統顯示出提示信息,要求重新填寫 | 一致 | |
| 填寫的各項信息沒有符合提示的長度和字符要求 | 系統顯示出提示信息,要求重新填寫 | 一致 | |
| 胡亂填寫電話號碼 | 收不到驗證碼 | 一致 | |
| 填寫驗證碼與收到的不一致 | 系統顯示提示信息告知用戶驗證碼錯誤,不予注冊 | 一致 | |
登錄測試用例表如下所示。
表6-2登錄測試用例
| 測試性能 | 用戶或操作員登錄系統 | ||
| 用例目的 | 測試用戶或操作員登錄系統時功能是否正常 | ||
| 前提條件 | 進入用戶登錄頁面或操作員登錄頁面 | ||
| 輸入條件 | 預期輸出 | 實際情況 | |
| 各項信息不予填寫,直接點擊登陸按鈕 | 不允許登錄,提示填寫賬號相關信息 | 一致 | |
| 填寫錯誤的登錄名或密碼后點擊登錄系統 | 提示用戶名或密碼錯誤,要求重新填寫進行登錄 | 一致 | |
| 填寫與驗證碼信息不一致的信息 | 系統顯示出提示信息,表明驗證碼錯誤,要求重新填寫 | 一致 | |
社區新聞測試用例表如下所示。
表6-3社區新聞測試用例
| 測試性能 | 用戶進行社區新聞的操作 | ||
| 用例目的 | 測試用戶進行社區新聞操作時,該功能是否正常 | ||
| 前提條件 | 用戶進入社區詳情頁,該社區能夠被新聞 | ||
| 輸入條件 | 預期輸出 | 實際情況 | |
| 對著某社區點擊“新聞”按鈕 | 界面跳轉至新聞界面 | 一致 | |
| 在新聞界面,輸入必填項,點擊“提交”按鈕 | 提示“新聞成功”,并返回上一級界面 | 一致 | |
| 在新聞界面,填寫新聞表單的時候未輸入完整,點擊“提交”按鈕 | 提示“新聞提醒失敗” | 一致 | |
護工請假測試用例表如下所示。
表6-4護工請假測試用例
| 測試性能 | 護工請假相關信息管理功能 | ||
| 用例目的 | 測試系統操作者對社區相關信息進行管理的功能是否正常 | ||
| 前提條件 | 登錄系統進入相關管理頁面 | ||
| 輸入條件 | 預期輸出 | 實際情況 | |
| 進入護工請假界面,點擊“錄入”按鈕,填寫所有必填項,點擊提交 | 提示“錄入成功”,并返回查詢界面 | 一致 | |
| 進入護工請假界面,點擊“錄入”按鈕,未填寫一個或者多個必填項,點擊提交 | 提示“錄入失敗”,請填寫必填項 | 一致 | |
| 進入護工請假界面,選擇要修改的一條數據,點擊該條數據后面的“修改”按鈕? | 節目跳轉至修改界面 | 一致 | |
| 在修改界面,修改可修改項后,點擊“提交”按鈕 | 提示“修改成功”,并返回查詢界面 | 一致 | |
| 進入護工請假界面,點擊某條數據后面的刪除按鈕 | 提示“是否要刪除該數據”,如果用戶點擊“確定”按鈕,則成功刪除該條數據,并提示“刪除成功”,之后返回查詢界面 | 一致 | |
經過對此系統的測試,得出該系統足以滿足用戶日常需求,在功能項目和操作等方面也能滿足操作員對于其他用戶的管理。但是,還有很多功能有待添加,這個系統僅能滿足大部分的需求,還需要對此系統的功能更進一步的完善,這樣使用起來才能更加的完美。
通過老年人社區服務平臺系統的開發,本人鞏固了之前學過的知識,如今將平時所學到的知識融合在設計中,在設計過程中,做了很多的準備,首先,在數據庫系統的設計過程中,尤其是在數據庫的工作原理、工作特點,對其深刻的討論,與此同時,對于小型站點來說,最好服務器的選擇,其次,利用所學的知識點分析所做的系統,并在此基礎上設計。
目前本系統已經上線,正在試運行階段,用戶反饋良好,基本完成用戶所需,試運行過程中沒有出現阻斷性問題,有一些不足和小問題也及時予以修正,系統上線后,為了保證數據的安全性,對系統進行了備份操作,系統備份是每兩個月備份一次,數據庫備份為每周備份一次,系統部署在租賃的云平臺服務器中。
本次系統上線成功后,得到了用戶的高度認可,但是在功能上和性能上還需做進一步的研究處理,使其有更高的性能和更好的用戶體驗。
系統在以后的升級過程中,需要解決一系列用戶所提出的問題,例如打印過程中如何避免瀏覽器的兼容性問題,大量用戶訪問時,如何保持較高的響應速度,在系統今后的升級過程中將著重解決這些安全性問題。
參考文獻
[1]嚴夢琴,羅清平,潘國慶.社區嵌入式養老機構老年人健康管理服務需求及對策研究[J].長沙民政職業技術學院學報,2021,28(03):28-29.
[2]王亦冬,張幸福.大力提升黑龍江省社區老年人健康管理服務水平[J].奮斗,2021(09):68-69.
[3]邵麗穎,權薇麗,高秀芹,浦佩佩,肖建彪,李佳,寧鋒.“在線醫生”模式在社區老年人健康管理服務中的應用效果評價[J].中國分子心臟病學雜志,2021,21(02):3804-3808.
[4]李繼源. 一種智慧社區模塊化管理系統及方法[P]. 山東省:CN112700874A,2021-04-23.
[5]裘奕嘉,曹梅娟,吳桐.杭州市流動老年人社區健康管理服務需求調查研究[J].中國初級衛生保健,2021,35(04):22-25.
[6]趙艷平.家庭醫生簽約服務在社區老年人高血壓患者中的管理效果觀察[J].繼續醫學教育,2021,35(02):167-168.
[7]鞏夢瑩.社區護理服務對社區老年人慢性病管理的效果分析[J].科學咨詢(科技·管理),2021(02):21-22.
[8]段秀紅,盧敏,胡文華.綜合醫療管理信息平臺在老年人居家醫護服務中的應用[J].中國藥物與臨床,2021,21(02):331-332.
[9]范琳. 中職老年人服務與管理專業實踐課教學現狀及對策研究[D].天津職業技術師范大學,2020.
[10]楊瑞婷,李亞軍.基于QFD的社區老年人慢性病管理產品服務系統設計研究[J].工業工程設計,2020,2(03):104-112.
[11]彭凌,潘莉.面向老年人的社區慢性病管理服務設計研究[J].包裝工程,2021,42(08):102-108.
[12]胡月.構建社區為平臺的老年人健康管理服務體系研究[J].中國農村衛生,2019,11(03):11-13.
[13]胡月.構建社區為平臺的老年人健康管理服務體系研究[J].產業與科技論壇,2019,18(04):212-213.
[14]劉長虹,楊莉萍,傅宏. 老年健康管理:現狀、問題與對策——以Q社區為例的質化研究[C]//2018第四屆健康,醫學與生命科學國際會議論文集(MEDLIFE2018).2018第四屆健康,2018:56-62.
[15]張嘉琳,韓娟美.老年人與青年共享居住模式的可行性研究——基于“互聯網+”背景下構建“云社區”和時間銀行養老新模式[J].現代交際,2018(11):49-50.
[16]紀志耿. 新中國成立以來黨領導農村公益事業發展的歷史進程與基本經驗研究[M].四川大學出版社:, 201705.345.
[17]倪晶晶, 寧波市社區老年人健康管理現狀調查和對策研究. 浙江省,寧波衛生職業技術學院,2016-05-28.
[18]Georg Gottschalk,Celeste Wilderom. Residential and community services for the elderly in the EC-countries with special reference to the Danish situation[J]. Housing, Theory and Society,2016,9(1):
[19]Whitby Paul,Rule Joan,Joomratty Jill. Support and stay: an innovative community service for the elderly confused[J]. Psychiatric Bulletin,2016,14(12):
致謝
伴隨著設計的完成,大學生涯也隨之即將結束。大學期間是我最珍惜的時光,大學時光中學會了很多,也成長了很多,這段時光中每一段回憶都刻在腦海中。感謝一起學習,一起成長同學們,和成長過程悉心教導的老師們,非常感激有你們的陪伴。
首先感謝我的指導老師,設計的完成離不開老師的一系列指導。在畢業設計的完成過程中,老師給出了很多中肯的建議,正是由于老師一絲不茍的工作態度,我的設計才能順利的完成。
最后,感謝在大學生涯中每一位教導我的老師,是你們教給了我豐富的知識,更教會了我遇到問題時,如何去應對并解決。謝謝你們的幫助與支持。
點贊+收藏+關注 ?→ ?私信領取本源代碼、數據庫
總結
以上是生活随笔為你收集整理的SSM+老年人社区服务平台 毕业设计-附源码211711的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python-借助有道在线翻译做的小的翻
- 下一篇: FlexboxLayout全攻略(Goo