# 第5章 养老院管理系统的系统实现

## 5.1 管理员功能模块

### 5.1.1 运营概览

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

### 5.1.2 账号管理

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

### 5.1.3 长者档案管理

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

### 5.1.4 排班管理

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

### 5.1.5 账单管理

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

### 5.1.6 反馈处理

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

### 5.1.7 通知公告管理

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

## 5.2 护工功能模块

### 5.2.1 护理记录

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

### 5.2.2 健康监测

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

### 5.2.3 交班记录

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

### 5.2.4 我的排班

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

## 5.3 家属功能模块

### 5.3.1 亲人档案

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

### 5.3.2 每日动态

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

### 5.3.3 健康记录

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

### 5.3.4 账单支付

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

### 5.3.5 服务反馈

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

# 第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.

## 致谢

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

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

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

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

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

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