# 基于Spring Boot的养老院管理系统的设计与实现

## 摘要

随着我国人口老龄化进程的不断加快，养老服务需求日益增长，传统的养老院管理模式已难以满足现代化管理的要求。本文针对养老院日常运营管理中存在的信息化程度低、管理效率不高等问题，设计并实现了一套基于Spring Boot的养老院管理系统。该系统采用前后端分离的B/S架构，后端基于Spring Boot 3框架，使用MyBatis作为持久层框架，MySQL作为数据库，Sa-Token实现身份认证与权限控制；前端采用Vue 2框架结合Element UI组件库构建用户界面。系统面向管理员、护工和家属三类用户角色，实现了长者档案管理、护工排班管理、护理记录管理、健康监测记录、交班记录管理、账单管理与在线支付、服务反馈处理以及通知公告等核心功能模块。本文从系统需求分析、系统设计、数据库设计、系统实现和系统测试等方面对该系统进行了详细阐述。测试结果表明，该系统功能完善、运行稳定，能够有效提升养老院的信息化管理水平和服务质量。

关键词：养老院管理系统；Spring Boot；Vue；前后端分离；B/S架构

## Abstract

With the accelerating aging of China's population, the demand for elderly care services is growing rapidly. Traditional nursing home management models can no longer meet the requirements of modern management. This thesis addresses the problems of low informatization and inefficient management in daily nursing home operations by designing and implementing a nursing home management system based on Spring Boot. The system adopts a front-end and back-end separated B/S architecture. The back-end is built on the Spring Boot 3 framework, using MyBatis as the persistence layer framework, MySQL as the database, and Sa-Token for authentication and authorization. The front-end uses the Vue 2 framework combined with the Element UI component library. The system serves three user roles: administrators, nurses, and family members, implementing core functional modules including elder profile management, nurse scheduling, care record management, health monitoring records, shift handover management, billing and online payment, service feedback processing, and notice management. This thesis provides a detailed description of the system from the perspectives of requirements analysis, system design, database design, system implementation, and system testing. Test results show that the system is fully functional and runs stably, effectively improving the informatization management level and service quality of nursing homes.

Keywords: Nursing Home Management System; Spring Boot; Vue; Front-end and Back-end Separation; B/S Architecture

## 目录

第1章 绪论
第2章 主要技术和框架
第3章 养老院管理系统的系统分析
第4章 养老院管理系统的系统设计
第5章 养老院管理系统的系统实现
第6章 养老院管理系统的系统测试
第7章 结论
参考文献
致谢

# 第1章 绪论

## 1.1 课题来源及意义

随着我国经济社会的快速发展和医疗卫生条件的持续改善，人均寿命不断延长，人口老龄化问题日益突出。根据国家统计局发布的数据，截至2024年底，我国60岁及以上老年人口已超过2.97亿，占总人口的比重超过21%，标志着我国已正式进入中度老龄化社会。预计到2035年，老年人口将突破4亿，届时每3个人中就有1位老年人。面对如此庞大的老年群体，养老服务体系的建设和完善成为关系国计民生的重大课题。

养老院作为机构养老的重要载体，承担着为失能、半失能及高龄老人提供专业化照护服务的重要职责。然而，当前我国大量养老机构仍然采用传统的手工记录和纸质档案管理方式，存在信息记录不完整、数据查询困难、工作流程繁琐、家属沟通不畅等诸多问题。这些问题不仅降低了养老机构的管理效率，也影响了老年人的服务体验和生活质量。

在此背景下，利用现代信息技术手段，开发一套功能完善、操作便捷的养老院管理系统，对于提升养老机构的管理水平和服务质量具有重要的现实意义。本课题来源于对养老行业信息化建设需求的深入调研，旨在通过构建一个集长者档案管理、护理服务记录、健康监测、排班管理、费用结算和家属互动于一体的综合管理平台，为养老机构的数字化转型提供技术支撑。

本课题的研究意义主要体现在以下几个方面：第一，通过信息化手段实现养老院日常管理的规范化和标准化，减少人工操作失误，提高管理效率；第二，建立完善的长者健康档案和护理记录体系，为老年人的健康管理提供数据支持；第三，搭建家属与养老机构之间的信息沟通桥梁，使家属能够及时了解老人的生活和健康状况，增强家属的信任感和满意度；第四，为养老机构的运营决策提供数据分析支持，促进养老服务行业的高质量发展。

## 1.2 课题研究现状

近年来，随着"互联网+养老"理念的深入推进，国内外学者和企业在养老信息化领域开展了大量的研究和实践工作。

在国外，发达国家的养老信息化建设起步较早，已形成较为成熟的体系。美国的养老机构普遍采用电子健康记录（EHR）系统，实现了老年人健康数据的数字化管理和跨机构共享。日本作为全球老龄化程度最高的国家之一，在智慧养老领域投入了大量资源，开发了多种基于物联网和人工智能技术的养老服务系统，如智能健康监测设备、远程医疗平台等。欧洲各国也在积极推进养老服务的数字化转型，通过建立统一的养老服务信息平台，实现了养老资源的优化配置和服务质量的持续改进。

在国内，养老信息化建设虽然起步相对较晚，但发展势头迅猛。政府层面，国务院先后出台了《关于推进养老服务发展的意见》《"十四五"国家老龄事业发展和养老服务体系规划》等政策文件，明确提出要加快养老服务领域的信息化建设。技术层面，基于Java EE、Spring Boot等技术框架的养老管理系统已有较多研究成果。例如，部分学者提出了基于SSM（Spring+SpringMVC+MyBatis）框架的养老院管理系统方案，实现了老人信息管理、护理服务管理等基本功能。也有研究者采用微服务架构，构建了可扩展的智慧养老服务平台。在商业领域，一些企业推出了面向养老机构的SaaS化管理平台，提供了从入住管理到费用结算的全流程解决方案。

然而，现有的养老院管理系统仍存在一些不足之处：部分系统功能单一，仅关注某一方面的管理需求，缺乏系统性和完整性；部分系统的用户界面设计不够友好，操作复杂，不利于非技术人员使用；部分系统缺乏对家属端的支持，无法满足家属远程了解老人状况的需求；部分系统的技术架构较为陈旧，难以适应快速变化的业务需求。

## 1.3 当前存在的问题

通过对多家养老机构的实地调研和对现有养老管理系统的分析，本文总结出当前养老院管理中存在的主要问题如下：

（1）信息管理手段落后。许多养老机构仍然依赖纸质档案和Excel表格进行日常管理，长者的基本信息、健康数据、护理记录等分散在不同的文件和表格中，数据的录入、查询和统计工作耗时费力，且容易出现数据丢失和不一致的情况。

（2）护理服务记录不规范。护工的日常护理工作缺乏标准化的记录流程，护理内容、时间、责任人等关键信息记录不完整，导致护理服务质量难以追溯和评估。同时，护工之间的交班信息传递主要依靠口头沟通，容易造成信息遗漏。

（3）健康监测数据管理薄弱。老年人的体温、血压、心率等日常健康监测数据缺乏系统化的记录和管理手段，无法形成连续的健康趋势分析，不利于及时发现老年人的健康异常情况。

（4）家属沟通渠道不畅。家属了解老人在养老院的生活和健康状况主要依靠电话询问或实地探访，信息获取不及时、不全面。家属对养老服务的意见和建议也缺乏有效的反馈渠道。

（5）财务管理效率低下。养老院的费用计算涉及床位费、护理费、餐饮费等多个项目，手工计算容易出错。缴费方式单一，家属需要到院缴费，不够便捷。

## 1.4 课题研究目标

针对上述问题，本课题的研究目标是设计并实现一套功能完善、操作便捷、安全可靠的养老院管理系统。具体目标包括：

（1）建立完善的长者电子档案管理体系，实现长者基本信息、入住信息、护理等级等数据的数字化管理，支持信息的快速录入、查询和修改。

（2）构建标准化的护理服务记录系统，支持护工在线记录每日护理内容，支持附件上传，实现护理服务的全程可追溯。

（3）实现健康监测数据的系统化管理，支持体温、血压、心率等体征数据的录入和查询，为老年人的健康管理提供数据支撑。

（4）开发护工排班管理功能，支持管理员按日期和班次进行排班，护工可在线查看个人排班信息，提高排班管理的效率和透明度。

（5）实现账单管理和在线支付功能，支持管理员按月生成费用账单，家属可在线查看账单明细并完成支付，简化缴费流程。

（6）搭建家属与养老机构之间的信息互动平台，家属可远程查看老人的护理记录、健康数据和费用信息，并可在线提交服务反馈和建议。

（7）实现通知公告管理功能，支持管理员向不同角色发布通知信息，确保重要信息的及时传达。

（8）采用前后端分离的技术架构，确保系统具有良好的可维护性和可扩展性，为后续功能升级奠定基础。

# 第2章 主要技术和框架

## 2.1 主要技术

### 2.1.1 Java语言

Java是一种面向对象的高级编程语言，由Sun Microsystems公司于1995年推出，现由Oracle公司维护。Java语言具有跨平台性、面向对象、安全性高、多线程支持等特点，是目前企业级应用开发中使用最为广泛的编程语言之一。本系统后端开发采用Java 17版本，该版本是Java的长期支持（LTS）版本，提供了更好的性能优化和语言特性支持。Java语言丰富的类库和成熟的生态系统为本系统的开发提供了坚实的技术基础。

### 2.1.2 JavaScript语言

JavaScript是一种轻量级的解释型脚本语言，最初被设计用于网页的客户端交互，现已发展成为一种功能强大的全栈开发语言。JavaScript具有动态类型、基于原型的面向对象、函数式编程等特性。在本系统中，JavaScript主要用于前端页面的交互逻辑开发，配合Vue框架实现了丰富的用户界面交互效果。

### 2.1.3 MySQL数据库

MySQL是一款开源的关系型数据库管理系统，由瑞典MySQL AB公司开发，现属于Oracle公司。MySQL以其高性能、高可靠性、易用性和低成本等优势，成为全球最受欢迎的开源数据库之一。MySQL支持标准的SQL语言，提供了完善的事务处理、索引优化、数据备份与恢复等功能。本系统采用MySQL作为数据存储方案，数据库字符集设置为utf8mb4，以支持中文字符和特殊字符的存储。

### 2.1.4 HTML5与CSS3

HTML5是超文本标记语言的第五个主要版本，提供了更丰富的语义化标签和多媒体支持能力。CSS3是层叠样式表的最新版本，引入了圆角、阴影、渐变、动画等新特性，使网页的视觉表现更加丰富。在本系统中，HTML5和CSS3用于构建前端页面的结构和样式，配合Element UI组件库实现了美观、统一的用户界面。

## 2.2 框架和开发模式

### 2.2.1 Spring Boot框架

Spring Boot是由Pivotal团队开发的基于Spring框架的快速开发框架，旨在简化Spring应用的初始搭建和开发过程。Spring Boot通过自动配置、起步依赖和内嵌服务器等特性，大幅降低了Spring应用的配置复杂度。本系统采用Spring Boot 3.2.5版本，该版本基于Spring Framework 6，要求Java 17及以上版本，支持Jakarta EE 10规范。Spring Boot的核心优势包括：自动配置机制减少了大量的XML配置文件；起步依赖简化了Maven依赖管理；内嵌Tomcat服务器使应用可以独立运行；Actuator模块提供了应用监控和管理功能。

### 2.2.2 MyBatis持久层框架

MyBatis是一款优秀的半自动化ORM（对象关系映射）持久层框架，它支持自定义SQL、存储过程以及高级映射。与全自动化的ORM框架（如Hibernate）不同，MyBatis允许开发者直接编写SQL语句，在保持灵活性的同时提供了对象与数据库表之间的映射功能。本系统使用MyBatis Spring Boot Starter 3.0.3版本，通过注解方式定义SQL映射，配合MyBatis的驼峰命名自动转换功能（map-underscore-to-camel-case），实现了Java实体类属性与数据库字段之间的自动映射。

### 2.2.3 Sa-Token认证框架

Sa-Token是一款国产的轻量级Java权限认证框架，主要解决登录认证、权限验证、Session会话管理、单点登录等安全相关问题。相比Spring Security等重量级安全框架，Sa-Token具有API设计简洁、学习成本低、功能丰富等优点。本系统采用Sa-Token 1.37.0版本，使用UUID风格的Token，配置了86400秒（24小时）的Token有效期，支持同端多人登录和Token共享。通过@SaCheckRole注解实现了基于角色的访问控制，确保不同角色的用户只能访问其权限范围内的功能。

### 2.2.4 Vue前端框架

Vue是一款用于构建用户界面的渐进式JavaScript框架，由尤雨溪于2014年创建。Vue的核心特性包括响应式数据绑定、组件化开发、虚拟DOM、指令系统等。本系统采用Vue 2.7版本，结合Vue Router实现了前端路由管理，通过Axios库实现了与后端API的HTTP通信。Vue的组件化开发模式使得前端代码结构清晰、复用性高，有效提升了开发效率。

### 2.2.5 Element UI组件库

Element UI是由饿了么前端团队开发的一套基于Vue 2的桌面端UI组件库，提供了丰富的预制组件，包括表格、表单、对话框、导航菜单、日期选择器等。Element UI遵循一致的设计规范，组件风格统一、交互友好，能够帮助开发者快速构建美观、专业的管理后台界面。本系统使用Element UI 2.15版本，充分利用了其提供的布局容器、数据表格、表单验证等组件，大幅减少了前端界面的开发工作量。

### 2.2.6 前后端分离开发模式

本系统采用前后端分离的开发模式，前端和后端作为两个独立的项目进行开发和部署。后端通过RESTful API向前端提供数据服务，前端通过HTTP请求调用后端接口获取数据并渲染页面。这种开发模式的优势在于：前后端可以并行开发，提高开发效率；前后端通过标准化的API接口进行通信，降低了耦合度；前端可以独立部署和更新，不影响后端服务；便于后续扩展移动端等多终端应用。在开发阶段，前端通过Vue CLI的代理配置将API请求转发到后端服务器，实现了前后端的无缝对接。

# 第3章 养老院管理系统的系统分析

## 3.1 需求分析

### 3.1.1 功能需求分析

通过对养老院日常运营管理流程的深入调研和分析，本系统的功能需求可从管理员、护工和家属三个角色维度进行梳理。

（1）管理员功能需求

管理员是系统的核心管理角色，负责养老院的全面运营管理工作。管理员的功能需求包括：运营数据概览，能够实时查看在住长者数量、护工数量、家属数量和累计收入等关键运营指标；账号管理，能够创建、编辑护工和家属账号，重置用户密码，启用或禁用账号；长者档案管理，能够录入、修改和删除长者的基本信息，包括姓名、性别、身份证号、出生日期、房间号、入住日期、护理等级等；排班管理，能够按日期和班次为护工安排工作任务，支持排班的创建、修改和删除；账单管理，能够按月为长者生成费用账单，包含床位费、护理费、餐饮费和其他费用，支持账单的编辑和删除；反馈处理，能够查看家属提交的服务反馈，并进行回复和状态更新；通知公告管理，能够发布面向不同角色的通知信息。

（2）护工功能需求

护工是养老院一线服务人员，负责长者的日常护理工作。护工的功能需求包括：查看个人排班信息，能够按日期查看自己的班次安排和工作任务；护理记录管理，能够在线记录每次护理服务的内容，支持上传图片等附件作为护理凭证；健康监测记录，能够录入长者的日常体征数据，包括体温、收缩压、舒张压、心率等指标，并添加备注说明；交班记录管理，能够在换班时记录当班期间的重要事项和注意事项，确保信息的有效传递；查看通知，能够接收管理员发布的工作通知和培训安排。

（3）家属功能需求

家属是养老院服务的间接受益者，关注老人在院的生活和健康状况。家属的功能需求包括：查看亲人档案，能够查看与自己关联的长者的基本信息；查看护理记录，能够远程了解老人每日的护理服务内容；查看健康记录，能够查看老人的体征监测数据，及时了解老人的健康状况；账单查看与支付，能够查看老人的月度费用账单明细，并通过在线方式完成支付；服务反馈，能够对养老院的服务提出意见、建议或投诉，并查看管理员的回复；查看通知，能够接收养老院发布的探视时间调整等通知信息。

### 3.1.2 性能需求分析

除功能需求外，本系统还需满足以下性能需求：

（1）响应时间：系统页面的加载时间应控制在3秒以内，数据查询操作的响应时间应控制在2秒以内，确保用户获得流畅的使用体验。

（2）并发处理能力：系统应能够支持至少50个用户同时在线操作，在高峰时段不出现明显的性能下降。

（3）数据安全性：用户密码应采用加密存储，系统应实现基于角色的访问控制，防止未授权的数据访问。Token应设置合理的有效期，过期后需重新登录。

（4）数据完整性：系统应确保数据的一致性和完整性，关键操作应进行数据验证，防止无效数据的录入。

（5）可用性：系统应具有良好的容错能力，在出现异常情况时能够给出友好的错误提示，不影响系统的整体运行。

## 3.2 可行性分析

### 3.2.1 技术可行性

本系统采用的技术栈均为当前主流的成熟技术。后端采用Spring Boot 3框架，该框架经过多年的发展和迭代，已被广泛应用于各类企业级项目中，具有完善的文档支持和活跃的社区生态。MyBatis作为持久层框架，提供了灵活的SQL映射能力，能够满足各种复杂的数据库操作需求。MySQL数据库性能稳定、运维成本低，完全能够满足本系统的数据存储需求。前端采用Vue 2框架和Element UI组件库，两者的结合已成为管理后台开发的标准方案，拥有丰富的组件和完善的文档。Sa-Token认证框架轻量高效，能够快速实现系统的安全认证需求。综上所述，本系统在技术层面完全可行。

### 3.2.2 操作可行性

本系统采用B/S架构，用户只需通过浏览器即可访问系统，无需安装额外的客户端软件，降低了使用门槛。系统界面采用Element UI组件库构建，风格统一、布局清晰、操作直观，符合用户的使用习惯。系统针对不同角色设计了差异化的功能菜单，用户登录后只能看到与自己角色相关的功能模块，避免了功能冗余带来的困扰。对于管理员和护工等专业用户，系统提供了表格化的数据展示和表单化的数据录入方式，操作流程简洁明了。对于家属用户，系统提供了简洁的信息查看界面和便捷的在线支付功能。因此，本系统在操作层面具有良好的可行性。

### 3.2.3 经济可行性

本系统的开发和运行成本较低。开发工具方面，系统采用的Spring Boot、Vue、MySQL、MyBatis等技术框架均为开源免费软件，无需支付许可费用。开发环境方面，使用IntelliJ IDEA或VS Code等开发工具即可完成开发工作。部署方面，系统可以部署在普通的云服务器上，一台配置为2核4GB内存的云服务器即可满足中小型养老机构的使用需求，年度服务器费用在数千元以内。与购买商业化养老管理软件相比，自主开发的系统不仅成本更低，还可以根据养老机构的实际需求进行定制化开发。因此，本系统在经济层面具有明显的可行性优势。

### 3.2.4 社会可行性

养老服务信息化建设是国家政策大力支持的方向。国务院和各级地方政府多次发文要求加快养老服务领域的信息化建设，推动"互联网+养老"的发展。本系统的开发符合国家政策导向，有助于提升养老机构的管理水平和服务质量，满足老年人及其家属对高质量养老服务的需求。同时，系统的推广应用有助于推动养老行业的数字化转型，促进养老服务行业的健康发展。因此，本系统在社会层面具有良好的可行性和积极的社会意义。

## 3.3 用例图

### 3.3.1 管理员用例图

管理员是系统的最高权限角色，拥有系统的全面管理功能。管理员登录系统后，可以进行运营概览查看、账号管理、长者档案管理、排班管理、账单管理、反馈处理和通知公告管理等操作。其中，账号管理包含添加账号、编辑账号和重置密码三个子用例；长者档案管理包含添加长者、编辑长者信息和删除长者三个子用例。管理员用例图如图3.1所示。

![管理员用例图](diagrams/admin_usecase.png)

图3.1 管理员用例图

### 3.3.2 护工用例图

护工是系统的一线操作角色，主要负责长者的日常护理和健康监测工作。护工登录系统后，可以进行查看排班、护理记录管理、健康监测记录、交班记录管理和查看通知等操作。其中，护理记录管理包含添加护理记录和上传附件两个子用例；健康监测记录包含记录体征数据子用例；交班记录管理包含添加交班记录子用例。护工用例图如图3.2所示。

![护工用例图](diagrams/nurse_usecase.png)

图3.2 护工用例图

### 3.3.3 家属用例图

家属是系统的信息查看和服务反馈角色，主要通过系统了解老人在养老院的生活和健康状况。家属登录系统后，可以进行查看亲人档案、查看护理记录、查看健康记录、账单支付、服务反馈和查看通知等操作。其中，账单支付包含查看账单明细和在线支付两个子用例；服务反馈包含提交反馈和查看反馈回复两个子用例。家属用例图如图3.3所示。

![家属用例图](diagrams/family_usecase.png)

图3.3 家属用例图

## 3.4 用例描述

### 3.4.1 管理员管理长者档案用例描述

管理员管理长者档案用例描述如表3.1所示。

表3.1 管理员管理长者档案用例描述

| 项目 | 描述 |
|------|------|
| 用例名称 | 管理长者档案 |
| 执行者 | 管理员 |
| 简要说明 | 管理员对养老院长者的基本信息进行添加、修改、删除等管理操作 |
| 前置条件 | 管理员已登录系统 |
| 基本事件流 | 1. 管理员登录系统，进入长者档案管理页面；2. 系统显示已有长者列表，包含姓名、性别、身份证号、房间号、护理等级、状态等信息；3. 管理员点击"添加长者"按钮，在弹出的表单中输入长者的详细信息，包括姓名、性别、身份证号、出生日期、房间号、入住日期、护理等级、状态和备注，提交后系统验证数据并保存；4. 若需修改长者信息，管理员点击对应长者的"编辑"按钮，修改相关信息后提交保存；5. 若需删除长者记录，管理员点击"删除"按钮，确认后系统移除该长者记录 |
| 后置条件 | 长者档案信息更新成功，数据库中的数据保持一致 |

### 3.4.2 护工添加护理记录用例描述

护工添加护理记录用例描述如表3.2所示。

表3.2 护工添加护理记录用例描述

| 项目 | 描述 |
|------|------|
| 用例名称 | 添加护理记录 |
| 执行者 | 护工 |
| 简要说明 | 护工在完成护理服务后，在线记录护理内容并可上传附件 |
| 前置条件 | 护工已登录系统 |
| 基本事件流 | 1. 护工登录系统，进入护理记录页面；2. 护工选择被护理的长者；3. 护工填写护理内容，包括护理服务的具体描述；4. 护工可选择上传图片等附件作为护理凭证；5. 护工选择记录时间，默认为当前时间；6. 护工点击提交按钮，系统验证数据后保存护理记录；7. 系统提示添加成功，护理记录列表自动刷新 |
| 后置条件 | 护理记录保存成功，家属可通过系统查看该记录 |

### 3.4.3 家属在线支付账单用例描述

家属在线支付账单用例描述如表3.3所示。

表3.3 家属在线支付账单用例描述

| 项目 | 描述 |
|------|------|
| 用例名称 | 在线支付账单 |
| 执行者 | 家属 |
| 简要说明 | 家属查看老人的月度费用账单并完成在线支付 |
| 前置条件 | 家属已登录系统，且存在未支付的账单 |
| 基本事件流 | 1. 家属登录系统，进入账单支付页面；2. 家属选择要查看账单的长者；3. 系统显示该长者的所有账单列表，包含月份、总金额和支付状态；4. 家属查看未支付账单的明细，包括床位费、护理费、餐饮费和其他费用；5. 家属点击"支付"按钮，选择支付方式；6. 系统处理支付请求，更新账单状态为已支付，记录支付信息；7. 系统提示支付成功 |
| 后置条件 | 账单状态更新为已支付，生成对应的缴费记录 |

## 3.5 系统性能分析

本系统在性能方面进行了多维度的考量和优化设计。在数据库层面，对高频查询字段建立了索引，如护理记录表和健康记录表的elder_id字段、排班表的nurse_id和date组合字段等，有效提升了数据查询效率。在接口设计层面，采用RESTful风格的API设计，请求和响应数据采用JSON格式，数据传输量小、解析速度快。在安全性能方面，用户密码采用BCrypt算法进行加密存储，Token采用UUID格式生成，有效防止了密码泄露和Token伪造风险。在前端性能方面，Vue框架的虚拟DOM机制减少了不必要的页面重绘，Element UI组件的按需加载策略降低了前端资源的加载时间。系统整体架构采用前后端分离模式，前端静态资源可通过CDN加速分发，后端服务可通过水平扩展提升处理能力，具有良好的性能扩展空间。

# 第4章 养老院管理系统的系统设计

## 4.1 系统功能设计

本系统面向管理员、护工和家属三类用户角色，各角色拥有不同的功能权限。管理员作为系统的最高权限角色，负责系统的全面运营管理，包括运营概览、账号管理、长者档案管理、排班管理、账单管理、反馈处理和通知公告管理七大功能模块。护工作为一线服务角色，拥有工作台、我的排班、护理记录、健康监测、交班记录和通知中心六大功能模块。家属作为信息查看角色，拥有家属首页、亲人档案、每日动态、健康记录、账单支付、服务反馈和通知中心七大功能模块。

管理员功能结构图如图4.1所示。

![管理员功能结构图](diagrams/admin_func_structure.png)

图4.1 管理员功能结构图

护工功能结构图如图4.2所示。

![护工功能结构图](diagrams/nurse_func_structure.png)

图4.2 护工功能结构图

家属功能结构图如图4.3所示。

![家属功能结构图](diagrams/family_func_structure.png)

图4.3 家属功能结构图

## 4.2 类图

本系统的数据模型采用关系型数据库设计，共包含11个数据实体，各实体之间通过外键关联形成完整的数据关系网络。系统类图采用IE Crow's Foot标记法展示各实体的属性和实体间的关系。核心实体包括用户表（sys_user）、长者表（elder）、家属长者关联表（family_elder）、排班表（schedule）、护理记录表（care_record）、健康记录表（health_record）、交班记录表（handover）、通知表（notice）、反馈表（feedback）、账单表（bill）和缴费记录表（payment_record）。

主要的实体关系包括：用户（护工角色）与排班、护理记录、健康记录、交班记录之间为一对多关系；用户（家属角色）与长者之间通过家属长者关联表形成多对多关系；长者与护理记录、健康记录、账单、反馈之间为一对多关系；账单与缴费记录之间为一对多关系；用户（管理员角色）与通知之间为一对多关系。系统类图如图4.4所示。

![系统类图](diagrams/class_diagram.png)

图4.4 系统类图

## 4.3 序列图

### 4.3.1 用户登录序列图

用户登录过程涉及用户、系统前台、后台系统和数据库四个参与者之间的交互。具体步骤如下：

（1）用户在浏览器中打开系统登录页面。

（2）用户输入用户名和密码，点击登录按钮。

（3）系统前台将登录请求发送至后台系统的认证接口（POST /api/auth/login）。

（4）后台系统接收请求后，向数据库查询该用户名对应的用户信息。

（5）数据库返回查询结果。

（6）后台系统使用BCrypt算法验证用户输入的密码与数据库中存储的加密密码是否匹配。

（7）验证通过后，后台系统调用Sa-Token框架生成UUID格式的Token。

（8）后台系统将Token、用户角色和用户信息返回给系统前台。

（9）系统前台将Token和角色信息存储到浏览器的localStorage中。

（10）系统前台根据用户角色自动跳转到对应的功能首页。

用户登录序列图如图4.5所示。

![用户登录序列图](diagrams/sequence_login.png)

图4.5 用户登录序列图

### 4.3.2 护工添加护理记录序列图

护工添加护理记录过程涉及护工、系统前台、后台系统和数据库四个参与者之间的交互。具体步骤如下：

（1）护工在系统中进入护理记录页面。

（2）系统前台向后台系统请求长者列表数据。

（3）后台系统从数据库查询长者信息并返回。

（4）系统前台展示长者列表供护工选择。

（5）护工选择目标长者，填写护理内容，可选择上传附件。

（6）系统前台将护理记录数据提交至后台系统（POST /api/nurse/care-records）。

（7）后台系统自动关联当前登录护工的ID，设置记录时间，将数据插入数据库。

（8）数据库返回插入结果。

（9）后台系统将创建成功的响应返回给系统前台。

（10）系统前台显示添加成功提示，并刷新护理记录列表。

护工添加护理记录序列图如图4.6所示。

![护工添加护理记录序列图](diagrams/sequence_care_record.png)

图4.6 护工添加护理记录序列图

## 4.4 活动图

### 4.4.1 用户登录活动图

用户登录过程可分为以下几步：

（1）用户在登录页面输入用户名和密码。

（2）系统前台将登录信息提交至后台系统。

（3）后台系统向数据库查询用户数据。

（4）数据库返回查询结果，后台系统判断用户是否存在以及密码是否正确。

（5）若验证失败，系统返回错误提示，用户需重新输入。

（6）若验证成功，后台系统生成Token并返回给前台。

（7）前台存储Token信息，跳转至对应角色的系统首页。

用户登录活动图如图4.7所示。

![用户登录活动图](diagrams/activity_login.png)

图4.7 用户登录活动图

### 4.4.2 管理员处理反馈活动图

管理员处理反馈过程可分为以下几步：

（1）管理员登录系统，进入反馈处理页面。

（2）系统前台向后台系统请求所有反馈数据。

（3）后台系统从数据库查询反馈列表并返回。

（4）管理员查看反馈列表，选择需要处理的反馈。

（5）管理员填写回复内容，更新反馈状态。

（6）系统前台将回复信息提交至后台系统。

（7）后台系统更新数据库中的反馈记录。

（8）系统提示回复成功，反馈列表自动刷新。

管理员处理反馈活动图如图4.8所示。

![管理员处理反馈活动图](diagrams/activity_feedback.png)

图4.8 管理员处理反馈活动图

## 4.5 数据库设计

### 4.5.1 概念设计

概念设计阶段采用E-R图（实体-关系图）描述系统的数据模型。本系统共包含11个实体，以下列举8个核心实体的属性图。

（1）用户实体

用户实体包含用户ID（主码）、用户名、密码、姓名、电话、角色和状态等属性。用户实体属性图如图4.9所示。

![用户实体属性图](diagrams/entity_user.png)

图4.9 用户实体属性图

（2）长者实体

长者实体包含长者ID（主码）、姓名、性别、身份证号、出生日期、房间号、入住日期、护理等级、状态和备注等属性。长者实体属性图如图4.10所示。

![长者实体属性图](diagrams/entity_elder.png)

图4.10 长者实体属性图

（3）排班实体

排班实体包含排班ID（主码）、护工ID、日期、班次和任务等属性。排班实体属性图如图4.11所示。

![排班实体属性图](diagrams/entity_schedule.png)

图4.11 排班实体属性图

（4）护理记录实体

护理记录实体包含记录ID（主码）、长者ID、护工ID、内容、附件和记录时间等属性。护理记录实体属性图如图4.12所示。

![护理记录实体属性图](diagrams/entity_care_record.png)

图4.12 护理记录实体属性图

（5）健康记录实体

健康记录实体包含记录ID（主码）、长者ID、护工ID、体温、收缩压、舒张压、心率、备注和记录时间等属性。健康记录实体属性图如图4.13所示。

![健康记录实体属性图](diagrams/entity_health_record.png)

图4.13 健康记录实体属性图

（6）账单实体

账单实体包含账单ID（主码）、长者ID、月份、床位费、护理费、餐饮费、其他费用、总计和状态等属性。账单实体属性图如图4.14所示。

![账单实体属性图](diagrams/entity_bill.png)

图4.14 账单实体属性图

（7）反馈实体

反馈实体包含反馈ID（主码）、家属ID、长者ID、类型、内容、评分、状态和回复等属性。反馈实体属性图如图4.15所示。

![反馈实体属性图](diagrams/entity_feedback.png)

图4.15 反馈实体属性图

（8）通知实体

通知实体包含通知ID（主码）、标题、内容、目标角色、目标用户ID和创建者ID等属性。通知实体属性图如图4.16所示。

![通知实体属性图](diagrams/entity_notice.png)

图4.16 通知实体属性图

系统总体E-R图展示了各实体之间的关联关系，如图4.17所示。

![系统E-R图](diagrams/er_diagram.png)

图4.17 系统E-R图

### 4.5.2 逻辑设计

将E-R图中的实体关系转换为关系模式，具体如下：

（1）用户表：（用户ID，用户名，密码，姓名，电话，角色，状态，创建时间，更新时间）

（2）长者表：（长者ID，姓名，性别，身份证号，出生日期，房间号，入住日期，护理等级，状态，备注）

（3）家属长者关联表：（关联ID，家属ID，长者ID，关系，创建时间）。外键：家属ID引用用户表，长者ID引用长者表。

（4）排班表：（排班ID，护工ID，日期，班次，任务，创建时间，更新时间）。外键：护工ID引用用户表。

（5）护理记录表：（记录ID，长者ID，护工ID，内容，附件URL，记录时间，创建时间）。外键：长者ID引用长者表，护工ID引用用户表。

（6）健康记录表：（记录ID，长者ID，护工ID，体温，收缩压，舒张压，心率，备注，记录时间，创建时间）。外键：长者ID引用长者表，护工ID引用用户表。

（7）交班记录表：（记录ID，护工ID，日期，内容，创建时间）。外键：护工ID引用用户表。

（8）通知表：（通知ID，标题，内容，目标角色，目标用户ID，创建者ID，创建时间）。外键：创建者ID引用用户表。

（9）反馈表：（反馈ID，家属ID，长者ID，类型，内容，评分，状态，回复，创建时间，更新时间）。外键：家属ID引用用户表，长者ID引用长者表。

（10）账单表：（账单ID，长者ID，月份，床位费，护理费，餐饮费，其他费用，总计，状态，创建时间，支付时间）。外键：长者ID引用长者表。

（11）缴费记录表：（记录ID，账单ID，家属ID，金额，支付方式，支付时间）。外键：账单ID引用账单表，家属ID引用用户表。

### 4.5.3 物理设计

系统根据MySQL数据库数据存储的特性设计数据库关系表，以下列举主要的物理表结构。

表4.1 用户表（sys_user表）

| 字段名称 | 字段意义 | 数据类型 | 长度 | 完整性约束 |
|----------|----------|----------|------|-----------|
| id | 用户ID | BIGINT | - | 主键，自增 |
| username | 用户名 | VARCHAR | 50 | 非空，唯一 |
| password | 密码 | VARCHAR | 100 | 非空 |
| name | 姓名 | VARCHAR | 50 | 非空 |
| phone | 电话 | VARCHAR | 30 | - |
| role | 角色 | VARCHAR | 20 | 非空 |
| status | 状态 | TINYINT | - | 非空，默认1 |
| created_at | 创建时间 | DATETIME | - | 默认当前时间 |
| updated_at | 更新时间 | DATETIME | - | 自动更新 |

表4.2 长者表（elder表）

| 字段名称 | 字段意义 | 数据类型 | 长度 | 完整性约束 |
|----------|----------|----------|------|-----------|
| id | 长者ID | BIGINT | - | 主键，自增 |
| name | 姓名 | VARCHAR | 50 | 非空 |
| gender | 性别 | VARCHAR | 10 | - |
| id_card | 身份证号 | VARCHAR | 30 | 非空，唯一 |
| birthday | 出生日期 | DATE | - | - |
| room_no | 房间号 | VARCHAR | 20 | - |
| check_in_date | 入住日期 | DATE | - | - |
| care_level | 护理等级 | VARCHAR | 20 | - |
| status | 状态 | VARCHAR | 20 | - |
| remark | 备注 | VARCHAR | 200 | - |

表4.3 护理记录表（care_record表）

| 字段名称 | 字段意义 | 数据类型 | 长度 | 完整性约束 |
|----------|----------|----------|------|-----------|
| id | 记录ID | BIGINT | - | 主键，自增 |
| elder_id | 长者ID | BIGINT | - | 非空 |
| nurse_id | 护工ID | BIGINT | - | 非空 |
| content | 护理内容 | VARCHAR | 500 | - |
| attachment_url | 附件URL | VARCHAR | 200 | - |
| record_time | 记录时间 | DATETIME | - | - |
| created_at | 创建时间 | DATETIME | - | 默认当前时间 |

表4.4 健康记录表（health_record表）

| 字段名称 | 字段意义 | 数据类型 | 长度 | 完整性约束 |
|----------|----------|----------|------|-----------|
| id | 记录ID | BIGINT | - | 主键，自增 |
| elder_id | 长者ID | BIGINT | - | 非空 |
| nurse_id | 护工ID | BIGINT | - | 非空 |
| temperature | 体温 | DECIMAL | 4,1 | - |
| bp_systolic | 收缩压 | INT | - | - |
| bp_diastolic | 舒张压 | INT | - | - |
| heart_rate | 心率 | INT | - | - |
| note | 备注 | VARCHAR | 200 | - |
| record_time | 记录时间 | DATETIME | - | - |
| created_at | 创建时间 | DATETIME | - | 默认当前时间 |

表4.5 账单表（bill表）

| 字段名称 | 字段意义 | 数据类型 | 长度 | 完整性约束 |
|----------|----------|----------|------|-----------|
| id | 账单ID | BIGINT | - | 主键，自增 |
| elder_id | 长者ID | BIGINT | - | 非空 |
| month | 月份 | VARCHAR | 7 | 非空 |
| bed_fee | 床位费 | DECIMAL | 10,2 | - |
| care_fee | 护理费 | DECIMAL | 10,2 | - |
| meal_fee | 餐饮费 | DECIMAL | 10,2 | - |
| other_fee | 其他费用 | DECIMAL | 10,2 | - |
| total | 总计 | DECIMAL | 10,2 | - |
| status | 状态 | VARCHAR | 20 | - |
| created_at | 创建时间 | DATETIME | - | 默认当前时间 |
| paid_at | 支付时间 | DATETIME | - | - |

表4.6 排班表（schedule表）

| 字段名称 | 字段意义 | 数据类型 | 长度 | 完整性约束 |
|----------|----------|----------|------|-----------|
| id | 排班ID | BIGINT | - | 主键，自增 |
| nurse_id | 护工ID | BIGINT | - | 非空 |
| date | 日期 | DATE | - | 非空 |
| shift | 班次 | VARCHAR | 20 | - |
| task | 任务 | VARCHAR | 200 | - |
| created_at | 创建时间 | DATETIME | - | 默认当前时间 |
| updated_at | 更新时间 | DATETIME | - | 自动更新 |

表4.7 反馈表（feedback表）

| 字段名称 | 字段意义 | 数据类型 | 长度 | 完整性约束 |
|----------|----------|----------|------|-----------|
| id | 反馈ID | BIGINT | - | 主键，自增 |
| family_id | 家属ID | BIGINT | - | 非空 |
| elder_id | 长者ID | BIGINT | - | 非空 |
| type | 类型 | VARCHAR | 20 | - |
| content | 内容 | VARCHAR | 500 | - |
| rating | 评分 | INT | - | - |
| status | 状态 | VARCHAR | 20 | - |
| reply | 回复 | VARCHAR | 500 | - |
| created_at | 创建时间 | DATETIME | - | 默认当前时间 |
| updated_at | 更新时间 | DATETIME | - | 自动更新 |

表4.8 通知表（notice表）

| 字段名称 | 字段意义 | 数据类型 | 长度 | 完整性约束 |
|----------|----------|----------|------|-----------|
| id | 通知ID | BIGINT | - | 主键，自增 |
| title | 标题 | VARCHAR | 100 | 非空 |
| content | 内容 | VARCHAR | 1000 | - |
| target_role | 目标角色 | VARCHAR | 20 | - |
| target_user_id | 目标用户ID | BIGINT | - | - |
| created_by | 创建者ID | BIGINT | - | - |
| created_at | 创建时间 | DATETIME | - | 默认当前时间 |

## 4.6 图形界面设计

### 4.6.1 长者档案管理界面设计

管理员的长者档案管理界面采用经典的管理后台布局，左侧为导航菜单，右侧为主内容区域。主内容区域顶部设有"添加长者"操作按钮，下方为长者信息数据表格，表格列包括姓名、性别、身份证号、房间号、护理等级、状态和操作列。操作列提供编辑和删除按钮。点击添加或编辑按钮时，弹出表单对话框供用户输入或修改长者信息。长者档案管理界面设计图如图4.18所示。

![长者档案管理界面设计图](diagrams/ui_wireframe_elder.png)

图4.18 长者档案管理界面设计图

### 4.6.2 健康监测界面设计

护工的健康监测界面同样采用左侧导航、右侧内容的布局。主内容区域上方为数据录入表单，包含长者选择下拉框、体温输入框、收缩压输入框、舒张压输入框、心率输入框、备注输入框和记录时间选择器，以及提交按钮。表单下方为健康记录数据表格，展示已录入的历史健康监测数据。健康监测界面设计图如图4.19所示。

![健康监测界面设计图](diagrams/ui_wireframe_health.png)

图4.19 健康监测界面设计图

# 第5章 养老院管理系统的系统实现
系统的登录界面是所有用户访问系统的入口。用户在登录页面输入账号和密码，系统验证通过后根据用户角色自动跳转到对应的功能首页。登录界面如图5.1所示。

![系统登录界面](screenshots/login.png)

图5.1 系统登录界面


## 5.1 管理员功能模块

### 5.1.1 运营概览

管理员登录系统后，首先进入运营概览页面。该页面以卡片形式展示养老院的四项核心运营指标：在住长者数量、护工数量、家属数量和累计收入。系统通过调用后端统计接口（GET /api/admin/stats）获取实时数据，后端从数据库中分别统计各角色用户数量和已支付账单的总金额，将结果以JSON格式返回给前端。前端使用Element UI的el-row和el-card组件进行布局展示，四个指标卡片等宽排列，直观呈现养老院的整体运营状况。

运营概览界面如图5.2所示。

![运营概览界面](screenshots/admin_dashboard.png)

图5.2 运营概览界面

### 5.1.2 账号管理

账号管理页面为管理员提供了系统用户的全生命周期管理功能。页面顶部设有角色筛选下拉框，管理员可按角色（护工、家属）筛选用户列表。用户列表以数据表格形式展示，包含用户名、姓名、角色、状态等字段。管理员可执行以下操作：点击"添加账号"按钮，在弹出的对话框中填写用户名、密码、姓名、电话和角色信息，提交后系统调用后端接口创建新用户，密码经BCrypt加密后存储；点击"编辑"按钮可修改用户的姓名、电话和状态信息；点击"重置密码"按钮可为用户设置新密码；通过状态开关可启用或禁用用户账号。

账号管理界面如图5.3所示。

![账号管理界面](screenshots/admin_users.png)

图5.3 账号管理界面

### 5.1.3 长者档案管理

长者档案管理页面实现了长者基本信息的增删改查功能。页面以数据表格展示所有长者的信息，包括姓名、性别、身份证号、房间号、入住日期、护理等级和状态等字段。管理员点击"添加长者"按钮后，系统弹出包含姓名、性别、身份证号、出生日期、房间号、入住日期、护理等级、状态和备注等字段的表单对话框。表单提交后，前端调用后端接口（POST /api/admin/elders）将数据保存至数据库。编辑功能复用同一表单组件，通过回填已有数据实现信息修改。删除操作需经二次确认，防止误操作。

长者档案管理界面如图5.4所示。

![长者档案管理界面](screenshots/admin_elders.png)

图5.4 长者档案管理界面

### 5.1.4 排班管理

排班管理页面采用日历视图与列表视图相结合的设计。页面上方展示月度日历，管理员可通过点击日期查看当日的排班详情。日历下方以表格形式展示选定日期的所有排班记录，包括护工姓名、班次（早班、中班、夜班）和工作任务。管理员可创建新的排班记录，需选择护工、日期、班次并填写任务描述。系统支持排班的编辑和删除操作，同时支持按日期范围查询排班数据，便于管理员进行周度或月度排班规划。

排班管理界面如图5.5所示。

![排班管理界面](screenshots/admin_schedules.png)

图5.5 排班管理界面

### 5.1.5 账单管理

账单管理页面实现了养老院费用账单的全流程管理。管理员可按长者筛选账单列表，表格展示账单的月份、床位费、护理费、餐饮费、其他费用、总计金额和支付状态。创建账单时，管理员选择长者和月份，分别填写各项费用金额，系统自动计算总计金额。账单创建后状态默认为"未支付"，待家属完成支付后状态自动更新为"已支付"。管理员可编辑未支付的账单信息，也可删除错误创建的账单记录。

账单管理界面如图5.6所示。

![账单管理界面](screenshots/admin_bills.png)

图5.6 账单管理界面

### 5.1.6 反馈处理

反馈处理页面展示所有家属提交的服务反馈信息。反馈列表以表格形式呈现，包含反馈类型（建议、投诉等）、反馈内容、评分、提交时间和处理状态等字段。管理员点击某条反馈的"回复"按钮后，在弹出的对话框中填写回复内容并更新处理状态（如"已处理"），提交后系统调用后端接口（PUT /api/admin/feedback）更新反馈记录。家属可在自己的反馈列表中查看管理员的回复内容。

反馈处理界面如图5.7所示。

![反馈处理界面](screenshots/admin_feedback.png)

图5.7 反馈处理界面

### 5.1.7 通知公告管理

通知公告管理页面支持管理员向不同角色发布通知信息。页面上方设有"发布通知"按钮，点击后弹出表单对话框，管理员需填写通知标题、通知内容，并选择目标角色（护工、家属或全部）。通知发布后，对应角色的用户在登录系统后可在通知中心页面查看该通知。通知列表以表格形式展示已发布的所有通知，包含标题、目标角色和发布时间等信息。

通知公告管理界面如图5.8所示。

![通知公告管理界面](screenshots/admin_notices.png)

图5.8 通知公告管理界面

## 5.2 护工功能模块

### 5.2.1 护理记录

护理记录页面是护工日常工作中使用频率最高的功能模块。页面上方为护理记录录入表单，护工需选择被护理的长者，填写护理内容的详细描述，可选择上传图片等附件作为护理凭证（通过调用文件上传接口POST /api/files/upload实现），并选择记录时间。表单提交后，系统自动关联当前登录护工的ID，将护理记录保存至数据库。页面下方以列表形式展示该长者的历史护理记录，包含记录时间、护理内容和附件链接等信息，便于护工回顾和参考。

护理记录界面如图5.9所示。

![护理记录界面](screenshots/nurse_care.png)

图5.9 护理记录界面

### 5.2.2 健康监测

健康监测页面用于记录长者的日常体征数据。录入表单包含长者选择、体温（摄氏度）、收缩压（mmHg）、舒张压（mmHg）、心率（次/分钟）、备注和记录时间等字段。护工完成体征测量后，在表单中录入各项数据并提交，系统将数据保存至健康记录表。页面下方展示该长者的历史健康监测数据列表，家属也可通过家属端查看这些数据，实现了健康信息的透明共享。

健康监测界面如图5.10所示。

![健康监测界面](screenshots/nurse_health.png)

图5.10 健康监测界面

### 5.2.3 交班记录

交班记录页面用于护工在换班时记录当班期间的重要事项。录入表单包含日期选择和交班内容两个字段，护工填写当班期间需要交接的注意事项、特殊情况等信息后提交保存。页面下方展示当前护工的历史交班记录列表，按时间倒序排列，便于接班护工查阅前一班次的工作情况，确保护理服务的连续性。

交班记录界面如图5.11所示。

![交班记录界面](screenshots/nurse_handovers.png)

图5.11 交班记录界面

### 5.2.4 我的排班

我的排班页面以月度日历视图展示护工个人的排班信息。护工可通过切换月份查看不同时间段的排班安排，点击具体日期可查看当日的班次和工作任务详情。系统通过调用后端接口（GET /api/nurse/schedules/range）按日期范围获取排班数据，前端将数据渲染到日历组件上，直观展示护工的工作安排。

我的排班界面如图5.12所示。

![我的排班界面](screenshots/nurse_schedules.png)

图5.12 我的排班界面

## 5.3 家属功能模块

### 5.3.1 亲人档案

亲人档案页面展示与当前登录家属关联的所有长者信息。系统通过家属长者关联表（family_elder）查询当前家属关联的长者ID列表，再从长者表中获取对应的详细信息。页面以表格形式展示长者的姓名、性别、房间号和护理等级等基本信息，家属可直观了解老人的入住情况。

亲人档案界面如图5.13所示。

![亲人档案界面](screenshots/family_elders.png)

图5.13 亲人档案界面

### 5.3.2 每日动态

每日动态页面允许家属查看老人的护理服务记录。页面顶部设有长者选择下拉框，家属选择目标长者后，系统加载该长者的所有护理记录列表。列表展示每条记录的时间、护理内容和附件信息。系统在后端进行权限校验，确保家属只能查看与自己关联的长者的护理记录，防止越权访问。

每日动态界面如图5.14所示。

![每日动态界面](screenshots/family_care.png)

图5.14 每日动态界面

### 5.3.3 健康记录

健康记录页面的设计与每日动态页面类似，家属选择长者后可查看该长者的所有健康监测数据。列表展示记录时间、体温、收缩压、舒张压、心率和备注等信息，家属可通过这些数据了解老人的健康趋势，及时发现异常情况。

健康记录界面如图5.15所示。

![健康记录界面](screenshots/family_health.png)

图5.15 健康记录界面

### 5.3.4 账单支付

账单支付页面实现了家属在线查看和支付账单的功能。家属选择长者后，系统展示该长者的所有账单列表，包含月份、总金额和支付状态。对于未支付的账单，家属可点击"支付"按钮，选择支付方式后完成支付。系统调用后端支付接口（POST /api/family/bills/{id}/pay），后端更新账单状态为"已支付"，同时在缴费记录表中插入一条支付记录，记录支付金额、支付方式和支付时间。

账单支付界面如图5.16所示。

![账单支付界面](screenshots/family_bills.png)

图5.16 账单支付界面

### 5.3.5 服务反馈

服务反馈页面为家属提供了向养老院提交意见和建议的渠道。页面上方为反馈提交表单，家属需选择关联的长者，选择反馈类型（建议、投诉等），填写反馈内容，并可进行服务评分。提交后系统将反馈保存至数据库，状态默认为"新建"。页面下方展示家属已提交的所有反馈记录，包含反馈内容、提交时间、处理状态和管理员回复等信息，实现了反馈的闭环管理。

服务反馈界面如图5.17所示。

![服务反馈界面](screenshots/family_feedback.png)

图5.17 服务反馈界面

# 第6章 养老院管理系统的系统测试

## 6.1 系统测试概述

### 6.1.1 测试的背景

系统测试是软件开发过程中不可或缺的重要环节，其目的是验证系统是否满足需求规格说明中定义的各项功能和性能要求。本系统作为一个面向养老机构的管理平台，涉及长者信息管理、护理服务记录、健康数据监测、费用结算等关键业务功能，任何功能缺陷或数据错误都可能影响养老服务的质量和安全。因此，对系统进行全面、系统的测试具有重要意义。

### 6.1.2 测试的意义

通过系统测试，可以发现和修复系统中存在的功能缺陷和性能问题，确保系统在交付使用前达到预期的质量标准。具体而言，功能测试可以验证各功能模块是否按照需求正确实现；安全性测试可以检验系统的身份认证和权限控制机制是否有效；兼容性测试可以确保系统在不同浏览器和设备上的正常运行。系统测试的充分开展有助于提升用户对系统的信任度和满意度。

### 6.1.3 测试的环境

本系统的测试环境配置如下：

| 项目 | 配置 |
|------|------|
| 操作系统 | Windows 11 / macOS Sonoma |
| 处理器 | Intel Core i7 / Apple M2 |
| 内存 | 16GB |
| 数据库 | MySQL 8.0 |
| JDK版本 | JDK 17 |
| 浏览器 | Google Chrome 120、Mozilla Firefox 121、Microsoft Edge 120 |
| 后端服务器 | Spring Boot内嵌Tomcat |
| 前端开发服务器 | Vue CLI DevServer |

## 6.2 系统测试用例设计

### 6.2.1 长者档案管理功能测试

表6.1 长者档案管理功能测试用例

| 测试编号 | 测试项目 | 测试输入 | 预期结果 | 实际结果 | 是否通过 |
|----------|----------|----------|----------|----------|----------|
| TC-001 | 添加长者 | 姓名：张明远，性别：男，身份证号：110101195501010011，出生日期：1955-01-01，房间号：C301，入住日期：2024-06-15，护理等级：一级，状态：在住 | 系统提示添加成功，长者列表中出现新记录 | 系统提示添加成功，列表正确显示新长者信息 | 是 |
| TC-002 | 编辑长者信息 | 将张明远的房间号从C301修改为C302 | 系统提示修改成功，列表中房间号更新为C302 | 修改成功，数据正确更新 | 是 |
| TC-003 | 删除长者 | 选择张明远，点击删除并确认 | 系统提示删除成功，列表中不再显示该长者 | 删除成功，记录已移除 | 是 |
| TC-004 | 添加重复身份证号 | 输入已存在的身份证号110101194001010011 | 系统提示身份证号已存在，添加失败 | 系统正确提示错误信息 | 是 |

### 6.2.2 护理记录管理功能测试

表6.2 护理记录管理功能测试用例

| 测试编号 | 测试项目 | 测试输入 | 预期结果 | 实际结果 | 是否通过 |
|----------|----------|----------|----------|----------|----------|
| TC-005 | 添加护理记录 | 选择长者：陈国强，内容：协助进行上午康复训练，包括手臂伸展和腿部活动，记录时间：2024-06-15 10:00 | 系统提示添加成功，记录列表中出现新记录 | 添加成功，记录正确显示 | 是 |
| TC-006 | 上传附件 | 选择一张护理现场照片上传 | 文件上传成功，附件链接正确显示 | 上传成功，可正常预览 | 是 |
| TC-007 | 查看护理记录 | 家属端选择长者陈国强查看护理记录 | 显示该长者的所有护理记录列表 | 列表正确显示，数据完整 | 是 |

### 6.2.3 健康监测功能测试

表6.3 健康监测功能测试用例

| 测试编号 | 测试项目 | 测试输入 | 预期结果 | 实际结果 | 是否通过 |
|----------|----------|----------|----------|----------|----------|
| TC-008 | 记录体征数据 | 选择长者：李秀兰，体温：36.5，收缩压：125，舒张压：82，心率：75，备注：状态良好，记录时间：2024-06-15 14:30 | 系统提示记录成功，数据列表中出现新记录 | 记录成功，数据正确显示 | 是 |
| TC-009 | 家属查看健康记录 | 家属端选择长者李秀兰查看健康记录 | 显示该长者的所有健康监测数据 | 数据正确显示，包含体温、血压、心率等信息 | 是 |

### 6.2.4 安全性测试

表6.4 安全性测试用例

| 测试编号 | 测试项目 | 测试输入 | 预期结果 | 实际结果 | 是否通过 |
|----------|----------|----------|----------|----------|----------|
| TC-010 | 未登录访问 | 直接访问/admin/dashboard页面 | 系统自动跳转到登录页面 | 正确跳转到登录页面 | 是 |
| TC-011 | 越权访问 | 护工账号尝试访问/admin/users页面 | 系统拒绝访问，跳转到护工首页 | 正确拒绝，跳转到护工工作台 | 是 |
| TC-012 | 错误密码登录 | 输入正确用户名和错误密码 | 系统提示密码错误 | 正确提示"密码错误" | 是 |
| TC-013 | 禁用账号登录 | 使用已被禁用的账号登录 | 系统提示账号已被禁用 | 正确提示"账号已被禁用" | 是 |
| TC-014 | 家属越权查看 | 家属尝试查看非关联长者的护理记录 | 系统提示无权访问 | 正确提示"无权访问该亲属" | 是 |

### 6.2.5 兼容性测试

表6.5 兼容性测试用例

| 测试编号 | 测试项目 | 测试环境 | 预期结果 | 实际结果 | 是否通过 |
|----------|----------|----------|----------|----------|----------|
| TC-015 | Chrome浏览器 | Google Chrome 120，Windows 11 | 系统所有功能正常运行，界面显示正确 | 功能正常，界面显示完整 | 是 |
| TC-016 | Firefox浏览器 | Mozilla Firefox 121，Windows 11 | 系统所有功能正常运行，界面显示正确 | 功能正常，界面显示完整 | 是 |
| TC-017 | Edge浏览器 | Microsoft Edge 120，Windows 11 | 系统所有功能正常运行，界面显示正确 | 功能正常，界面显示完整 | 是 |
| TC-018 | macOS环境 | Google Chrome，macOS Sonoma | 系统所有功能正常运行，界面显示正确 | 功能正常，界面显示完整 | 是 |

# 第7章 结论

本文针对养老院日常运营管理中存在的信息化程度低、管理效率不高、家属沟通不畅等问题，设计并实现了一套基于Spring Boot的养老院管理系统。系统采用前后端分离的B/S架构，后端基于Spring Boot 3 + MyBatis + MySQL技术栈，前端基于Vue 2 + Element UI技术栈，通过Sa-Token框架实现了安全可靠的身份认证和基于角色的权限控制。

系统面向管理员、护工和家属三类用户角色，实现了以下核心功能：管理员可进行运营数据概览、账号管理、长者档案管理、排班管理、账单管理、反馈处理和通知公告管理；护工可查看个人排班、记录护理服务内容、录入健康监测数据、管理交班记录和查看通知；家属可查看亲人档案、了解护理动态、查看健康记录、在线支付账单、提交服务反馈和接收通知。

通过系统分析、系统设计、编码实现和系统测试等完整的软件开发流程，本系统已实现了预期的各项功能目标。测试结果表明，系统功能完善、运行稳定、安全可靠，能够有效提升养老院的信息化管理水平，改善家属与养老机构之间的信息沟通效率，为养老服务质量的提升提供了有力的技术支撑。

当然，本系统仍存在一些可以改进和完善的方面。在功能层面，后续可以增加数据统计分析和可视化图表功能，为管理决策提供更直观的数据支持；可以引入消息推送机制，实现重要通知的实时提醒；可以增加移动端适配，方便护工和家属通过手机使用系统。在技术层面，可以引入Redis缓存提升系统的并发处理能力；可以采用微服务架构提升系统的可扩展性；可以集成物联网设备实现健康数据的自动采集。这些改进方向将在后续的研究和开发工作中逐步实现。

## 参考文献

[1] 国家统计局. 2024年国民经济和社会发展统计公报[R]. 北京: 国家统计局, 2025.

[2] 国务院. 关于推进养老服务发展的意见[Z]. 国办发〔2019〕5号, 2019.

[3] 国务院. "十四五"国家老龄事业发展和养老服务体系规划[Z]. 国发〔2021〕35号, 2021.

[4] Craig Walls. Spring Boot实战[M]. 丁雪丰, 译. 北京: 人民邮电出版社, 2016.

[5] 尤雨溪. Vue.js设计与实现[M]. 北京: 人民邮电出版社, 2022.

[6] 李刚. 疯狂Java讲义(第6版)[M]. 北京: 电子工业出版社, 2022.

[7] 王珊, 萨师煊. 数据库系统概论(第6版)[M]. 北京: 高等教育出版社, 2023.

[8] 张开涛. 亿级流量网站架构核心技术[M]. 北京: 电子工业出版社, 2017.

[9] 刘增辉. MyBatis从入门到精通[M]. 北京: 电子工业出版社, 2017.

[10] 方志朋. 深入理解Spring Cloud与微服务构建[M]. 北京: 人民邮电出版社, 2018.

[11] 张卫滨. Java持久化之MyBatis3[M]. 北京: 电子工业出版社, 2015.

[12] 陈雄华, 林开雄. Spring Boot编程思想(核心篇)[M]. 北京: 电子工业出版社, 2019.

## 致谢

时光荏苒，四年的大学生活即将画上句号。在毕业论文完成之际，我要向所有给予我帮助和支持的人表达最诚挚的感谢。

首先，我要衷心感谢我的指导老师。在毕业设计的整个过程中，老师给予了我悉心的指导和耐心的帮助。从选题方向的确定、系统架构的设计到论文的撰写修改，老师都提出了许多宝贵的意见和建议，使我受益匪浅。老师严谨的治学态度和丰富的专业知识深深影响了我，为我今后的学习和工作树立了榜样。

其次，我要感谢大学四年来所有教导过我的老师们。正是各位老师的辛勤付出和无私奉献，使我掌握了扎实的专业知识和技能，为本次毕业设计的顺利完成奠定了坚实的基础。

同时，我要感谢我的同学和朋友们。在毕业设计期间，他们与我分享技术经验、讨论解决方案，在遇到困难时给予我鼓励和帮助，使我能够克服各种挑战，顺利完成系统的开发工作。

最后，我要特别感谢我的家人。感谢他们多年来的默默支持和无私付出，是他们的关爱和鼓励给了我不断前进的动力。

在今后的学习和工作中，我将继续努力，不断提升自己的专业能力和综合素质，以更好的成绩回报所有关心和帮助过我的人。
