基于微信小程序、Spring Boot与Vue3的智慧养老管理系统设计与实现

基于微信小程序、Spring Boot与Vue3的智慧养老管理系统设计与实现

**技术说明:**本文围绕智慧养老管理系统进行全栈开发复盘,重点整理微信小程序家属端、Vue3与TDesign后台界面、Spring Boot与MyBatis后端服务、MySQL和Redis数据存储、来访预约、入退住、床位、护理服务与合同管理等技术要点。内容用于多端应用、业务流程和权限管理系统设计方法交流,不涉及养老服务推广或商业宣传。

摘 要

随着人口老龄化加剧,养老院的需求越来越旺盛。传统养老院是通过线下开展业务,业务办理繁琐,非常浪费时间,本文设计并实现了一套智慧养老管理系统,旨在优化管理效率,增强老年人的生活质量,并推动智慧养老产业数字化转型。

该系统分为家属端和后台管理端,角色分为用户和不同权限的管理者,家属端主要为养老院的老人家属打造,可以预约来访,查看养老院信息,下单护理服务等,后台管理端主要是给养老院的不同员工使用,处理来访管理,办理入退住,床位管理,服务管理,合同管理等业务。家属端基于微信小程序开发,方便了家属使用手机线上操作。后台管理系统分为前端和后端,前端基于 Vue3 框架结合 TDesign 组件开发,增强了界面的美观性和灵活性,并且可以使网站快速成型。后端运用 Spring Boot 框架搭配 MyBatis,是当前主流的Java开发框架,有利于后端接口快速开发。数据库选用 MySQL 和 Redis,实践了相关数据库应用课程。

本系统的整体业务流程是线上预约参观,到院参观,办理入住,下单护理服务,办理退住。同时,老人家属可在微信小程序上绑定老人,查看老人的服务执行情况。这一举措大大提高了服务效率,满足了老年人对专业护理的需求。

关键词:微信小程序;智慧养老管理系统;Springboot框架;Vue3

ABSTRACT

With the intensification of population aging, the demand for nursing homes is becoming increasingly strong. Traditional nursing homes operate offline, which is cumbersome and time-consuming. This article designs and implements a smart elderly care management system aimed at optimizing management efficiency, enhancing the quality of life for the elderly, and promoting the digital transformation of the smart elderly care industry.

The system is divided into a family end and a backend management end, with roles divided into users and managers with different permissions. The family end is mainly designed for elderly family members in nursing homes, who can make appointments to visit, view nursing home information, order nursing services, etc. The backend management end is mainly used by different employees in nursing homes to handle visit management, check-in and check-out, bed management, service management, contract management, and other businesses. The family end is developed based on WeChat mini program, which makes it convenient for family members to use their mobile phones for online operations. The backend management system is divided into front-end and back-end. The front-end is developed based on the Vue3 framework combined with TDesign components, enhancing the aesthetics and flexibility of the interface, and enabling the website to quickly take shape. The backend application of Spring Boot framework combined with MyBatis is currently the mainstream Java development framework, which is conducive to rapid development of backend interfaces. MySQL and Redis were selected as the databases, and relevant database application courses were practiced.

The overall business process of this system is to make online appointments for visits, visit the hospital, check in, place orders for nursing services, and process refunds. At the same time, the elderly's family members can bind the elderly on the WeChat mini program to view their service execution status. This measure greatly improves service efficiency and meets the needs of elderly people for professional care.

Key words: Wechat mini program; Smart Elderly Care Management System; Springboot framework; Vue3

第1章 绪论

1.1 选题背景与意义

人口老龄化是当代社会面临的重大挑战之一,随着经济的发展和医疗卫生条件的提高,人们的寿命越来越长,老年人口比例持续升高。独居的老人越来越多,传统模式下的养老关系和代际关系受到较为强烈的撞击。年轻人和父母居住的比例持续缩减加上新一代丁克家庭进入老龄阶段,如何满足新时代独居老人的养老需求,从家庭以外的其他渠道引入养老资源,提供更全面更优秀的养老服务,从而更好地适应人口老龄化的趋势,已经成为一种迫切的愿望,极具广阔的发展前景。

随着互联网和物联网技术的不断发展,智慧养老慢慢的浮现在众人的视野中。数字化管理使得老年人的老年生活更加便利和安全,智慧养老的关键是快捷,方便,降低服务时间成本,为老人提供个性化服务,减轻了子女的照料负担1。养老院是传统产业但是融入互联网会焕发新的生机,智慧养老院可以推动相关产业线和产业链的融合与发展,促进了更多就业机会,且智慧养老院全包老人的衣食住行,实现线上线下养老服务一体化能够满足更多老人的需求,极具发展前景2。所以,我选择在智慧养老院方面进行深入探索,打造了智慧养老管理系统。智慧养老管理系统服务于老人及其家属以及养老院,为老人提供更加便捷、高效的养老服务体验。该系统具有线上下单护理服务、探访预约功能,便于养老服务资源的科学合理利用,可以使家属合理安排自身时间进行探望,非常方便家属线上为老人下单服务;后台管理端可以办理入退住业务,对床位,护理服务,员工权限等进行管理,还有合同跟踪,请假管理等特殊功能,提高业务办理效率的同时便于日后各种问题的排查。

随着科技快速发展,人们对健康养老的期望也在不断提高。他们不仅关注身体健康,还对家庭关系、生活品质提出了更多的要求,同时对幸福感、成就感和安全感的渴望也日益强烈3。使用该系统,老人的家属可以随时随地为老人预约护理服务,而无需每次都前往养老院,从而减少花费的时间、金钱和精力。家属还可以通过该系统了解养老院提供的各种优质服务项目,为不熟悉养老行业的家属减少许多不必要的麻烦,从而提高养老服务的效率和质量,更契合老人的养老需求4

1.2 国内外研究现状

英国、美国、德国、日本等西方国家已率先进行了有关智慧养老项目的实践,并取得了不小的成果。比如,使用智能机器人能够陪伴老人聊天并且做一些简单的家务;使用芯片家具能够远程提供医疗服务和老人生活远程监控5。尤其是日本比中国提前十多年进入老龄化社会,它在养老事业的发展值得我们去借鉴和反思,探索数字化养老的道路需融合各国的经验。中国对于智慧养老的概念起步较晚,在21世纪之后我国开始对智慧养老进一步研究和发展的进程迅速。党的十九届五中全会将积极老龄化理念纳入"十四五"规划,并把积极应对人口老龄化上升到国家战略的高度6。随着智慧养老相关的政策的密集出台,国家大力发展银发经济,促进银发消费,鼓励支持各地在银发经济领域创新先行,引导经营主体积极参与银发经济创新发展,为经济增长注入新动能7。现在智慧养老产业的参与者越来越多,产业链也在不断完善,发展前景很好。中国正在逐步构建一个多元化的"互联网+养老"服务模式,为提升养老服务水平,提高老年人获得感、幸福感提供了有力保障,智慧养老已经成为未来发展的必然趋势8。智慧养老作为一个新兴的养老模式,仍处于不断发展与完善的过程中,目前在服务标准化方面还存在诸多不足。8甚至很多养老院还是靠线下办理业务,需要家属亲自去养老院办理各种手续,这不仅浪费时间,还容易让养老院变得拥挤。而且,传统的养老方式缺乏专业性和个性化服务,很难满足老年人多样化的需求。

现在虽然有一些养老院开始尝试新的方式,比如电话预约或者网上预约,但这些方式要么存在电话打不通的问题,要么操作不够便捷,导致接受程度并不高。并且很多老年人或者家属不太会用电脑,导致这种方式也不够方便。

所以,智慧养老管理系统基于微信小程序开发9,在几乎人人都有微信的现代社会是一种非常方便的养老方式。家属可以通过微信小程序随时随地为老人预约护理服务、查看老人的信息,大大简化了家属线下入院了解老人现状、办理护理业务及察看业务进行等一系列流程。我在系统中注重平衡各个参与者之间的关系与利益,坚持以用户为中心,致力于为老年人提供更好地养老服务与体验10

1.3 论文结构安排

论文由五章组成,遵循系统开发的流程,从需求分析到功能设计到实际开发到系统测试,是对瀑布流模型11的实践。

第一章通过收集各种文献资料,介绍了论文选题的背景与现实意义,国内外对智慧养老的研究现状及发展水平,概括了论文的主要内容。

第二章是分析系统可行性阶段,选取了适合的前后端框架和编程工具,分析了系统中角色及对应的功能,编写了角色的用例图与功能用例表。

第三章是系统设计阶段,对系统的工作原理作出规定,设计了小程序端和家属端的功能模块,对数据库进行详细设计,分析实体属性及对应关系,编写实体属性图,绘制E-R图并设计数据库表12。以此为依据构建系统静态模型,包括系统边界类、系统控制类、系统实体类和用户功能顺序图。

第四章是系统实现阶段,对后端管理端和小程序端的运行效果进行展示,并着重强调了登录功能的逻辑实现,办理入住业务功能中activiti工作流的具体应用及代码实现并展示流程运转实例,此外,分析了家属探访预约功能和绑定老人功能的逻辑实现思路,对护理服务中如何拿到绑定老人信息进行详细代码说明。

第五章是系统测试阶段,主要包括对系统的整体测试。对用户密切相关的授权登录模块、家属探访预约模块进行功能测试。对绑定老人模块,划分等价类,编写覆盖等价类的测试用例。

第2章 系统分析

2.1 系统可行性分析

本系统分为微信小程序端和PC端,使用uni-app框架进行搭建微信小程序,使得开发过程简单并且用户上手快。PC端分为前端和后端,使用Vue3+TDesign搭建前端页面,使得界面更美观且与后端的交互更灵活,使用Java语言结合SpringBoot框架实现后端系统开发,主流框架相对发展先进且成熟,便于后端接口快速开发与维护13。系统经由微信开发者工具、IDEA、VSCode等编程软件进行相应的代码研发,通过Navicat管理MySQL数据库。

2.2 系统角色分析

智慧养老管理系统中包含管理员和用户两个不同角色,其中管理员是超级管理员,院长,财务部部长,会计,人事,前台接待,护理部部长等角色的统称,不同的角色会对操作系统有不同的功能权限,超级管理员拥有最高的权限。基于RBAC模型14,可以解决不同的人分管不同业务的需求,充分提高了系统的灵活性与安全性。以下是两种角色的功能表述,如表2.1所示。

表2.1 系统角色功能表

序号 角色 系统 功能简述
1 管理员 PC端 来访管理、入退管理、在住管理、服务管理、财务管理
2 用户 微信小程序端 预约来访、老人绑定、查看养老院介绍、服务下单

2.3 系统功能需求分析

2.3.1 用例图

(1)家属用例图

通过对系统角色分析中家属角色功能的梳理,能够明确家属角色的核心用例。家属用例图如图2.1所示。

(2)管理员用例图

管理员角色的功能主要是办理老人入退住的业务,对养老院的设施进行管理,对护理服务的开展有序推进,管理客户及合同数据等。管理员的用例图如图2.2所示。

2.3.2 用例文档说明

从表2.3到表2.6,详细阐述了核心用例,全面呈现了智慧养老管理系统核心功能的用例情况。

图2.1 家属用例图

图2.2 管理员用例图

表2.2 登录用例

用例名 登录 用例编号 1
简要描述 管理员登录到智慧养老管理系统后台管理端
参与者 管理员
涉众 管理员
相关用例
前置条件 管理员存在账号
后置条件 系统提示"登录成功",进入工作台
基本事件流 1)管理员输入账号密码进行登录(默认超级管理员登录) 2)系统对用户进行认证 3)认证成功,查询当前用户拥有的资源列表 4)查找当前用户所对应的角色列表 5)颁布Token令牌 6)系统跳转到首页界面
备选事件流 A-1 若是认证失败,提示账号或密码不正确,不允许登录
补充约束 用户表 资源表 角色表

表2.3 入住管理用例

用例名 入住管理 用例编号 2
简要描述 管理员为老人办理入住业务。
参与者 养老顾问、护理组主管、副院长、法务部员工
涉众 养老顾问、护理组主管、副院长、法务部员工
相关用例 登录
前置条件 登录
后置条件 系统更新数据库并刷新后台界面。
基本事件流 1)养老顾问填写申请入住表单。 2)护理组主管完成入住评估息,审批方式为自动通过。 3)副院长完成入住审批,审批方式为人工审批。 4)审批通过,养老顾问选择入住配置,审批方式为自动通过。 5)法务部员工完成签约办理,审批方式为自动通过。
备选事件流 A-1 审批人拒绝,养老顾问重新填写申请入住表单并提交 A-2 审批人驳回,表单自动驳回给养老顾问,养老顾问修改申请入住表单再提交 A-3 发起人撤回申请,发起人修改入住表单内容 A-4 审批人撤回审批,审批人可修改审批内容
补充约束 数据需求 入住表单信息

表2.4 退住管理用例

用例名 退住管理 用例编号 3
简要描述 管理员为老人办理退住业务。
参与者 护理员、护理组部长、法务部员工、结算员、结算组组长、副院长、结算员
涉众 护理员、护理组部长、法务部员工、结算员、结算组组长、副院长、结算员
相关用例 登录
前置条件 管理员登录
后置条件 系统更新数据库。
基本事件流 1)护理员填写申请退住。 2)护理组部长完成申请单审批,审批方式为人工审批。 3)审批通过,法务部员工上传解除协议,审批方式为自动通过。 4)结算员调整费用账单,审批方式为自动通过。 5)结算组部长完成账单审批,审批方式为人工审批。 6)审批通过,副院长完成退住审批,审批方式为人工审批。 7)审批通过,结算员完成费用清算,审批方式为自动通过。
备选事件流 A-1 审批人拒绝,护理员重新填写申请入住表单并提交 A-2 审批人驳回,表单自动驳回给护理员,护理员修改申请入住表单再提交 A-3 发起人撤回申请,发起人修改入住表单内容 A-4 审批人撤回审批,审批人可修改审批内容
补充约束 数据需求 退住表单信息

表2.5 家属探访预约用例

用例名 探访预约 用例编号 4
简要描述 家属探访预约
参与者 家属
涉众 家属
相关用例 登录
前置条件 家属已成功登录到智慧养老管理系统小程序端
后置条件 系统更新数据库并刷新界面
基本事件流 1)家属登录到系统; 2)家属点击探访预约 3)家属填写探访预约表单信息,点击预约 4)系统对手机号是否预约过此时间及家人是否退住进行验证 5)验证通过,跳转到我的预约界面
备选事件流 A-1 验证不通过,提示相关错误信息
补充约束 数据需求 家属预约信息

表2.6 绑定家人用例

用例名 绑定家人 用例编号 5
简要描述 家属绑定家人
参与者 家属
涉众 家属
相关用例 登录
前置条件 家属已成功登录到智慧养老管理系统小程序端
后置条件 系统提示"绑定成功"
基本事件流 1)家属点击绑定家人 2)家属填写老人姓名,身份证号等表单信息,点击立即绑定 3)系统检查老人是否存在,如果已签订合同则继续 4)系统检查是否重复绑定,如果没有则继续 5)系统提示绑定成功。
备选事件流 A-1 若没有签订合同,系统提示"老人不存在" A-2 若是重复绑定,系统提示"已绑定过家人"
补充约束 数据需求 家属绑定家人信息

表2.7 下单护理服务用例

用例名 下单护理服务 用例编号 6
简要描述 家属下单护理服务
参与者 家属
涉众 家属,护理员
相关用例 登录,绑定老人
前置条件 家属已成功登录到智慧养老管理系统小程序端并绑定老人
后置条件 系统提示"下单成功"
基本事件流 1)家属点击服务,进入服务列表页,点击服务详情页 2)家属选择所需服务家人和期待服务时间 3)系统检查老人是否是退住中或者已退住,如果没有则继续 4)系统自动跳转到确认订单页面,家属点击提交订单 5)系统自动跳转到订单支付页面,家属点击确认支付 6)系统提示下单成功。
备选事件流 A-1 老人已退住或者正处于退住中,提示"不允许下单"
补充约束 数据需求 家属服务详情页信息,家属订单状态信息

第3章 系统设计

3.1 系统概要设计

在智慧养老管理系统的开发中,家属端采用了微信小程序的uni-app框架来构建用户界面,实现了用户交互功能。而对于后台管理端,我们选择了Vue3来搭建其前端页面,提高系统灵活性,代码更整洁直观。系统的核心业务逻辑主要由后端服务器负责处理,前端仅承担必要的交互展示和少量基础逻辑处理。这种分层架构设计不仅有效降低了开发成本,还提高了系统的可维护性和可扩展性,便于后续的代码更新和功能完善。下图直观呈现了系统的整体工作流程15

图3.1 系统工作原理图

3.2 系统功能设计

本系统的功能主要围绕老人入退住及提供护理服务展开,用户端主要功能是绑定老人及下单护理服务等,管理员端主要功能有入退住服务办理及护理服务管理等。图3.2为系统功能模块图。

智慧养老管理系统(管理员端)包括以下功能

(1)工作台

(2)权限配置

(3)预约来访登记

(4)入退住管理

(5)合同管理

(6)床位管理

(7)请假管理

(8)护理服务管理

(9)订单管理

(10)财务管理

(11)角色管理

(12)协同办公

(13)客户管理

智慧养老管理系统智慧养老管理系统微信小程序端智慧养老管理系统PC端工作台权限配置预约来访登记入退住管理合同管理床位管理请假管理护理服务管理订单管理财务管理角色管理协同办公客户管理参观/探访预约查看养老院介绍绑定家人下单服务我的合同我的预约我的订单我的账单智慧养老管理系统智慧养老管理系统微信小程序端智慧养老管理系统PC端工作台权限配置预约来访登记入退住管理合同管理床位管理请假管理护理服务管理订单管理财务管理角色管理协同办公客户管理参观/探访预约查看养老院介绍绑定家人下单服务我的合同我的预约我的订单我的账单

图3.2 系统功能模块图

智慧养老管理系统(家属端)包括以下功能

(1)参观/探访预约

(2)查看养老院介绍

(3)绑定家人

(4)下单服务

(5)我的合同

(6)我的预约

(7)我的订单

(8)我的账单

3.3 数据库设计

3.3.1 概念模型设计

本系统有以下实体类:管理员、部门信息、老人、家属、家属老人关联、预约信息、来访信息、入住信息、入住配置、审批流程记录、合同信息、账单信息、余额信息、资金流水信息、充值信息、房型信息、床位信息、护理项目、护理计划、护理等级、订单、退住信息、退住账单。以下列举核心实体类的属性图。

(1)管理员实体的实体属性如图3.3所示。

图3.3 管理员实体属性图

(2)老人实体对应的实体属性图如图3.4所示。

图3.4 老人实体属性图

(3)家属实体对应的实体属性图如图3.5所示。

图3.5 家属实体属性图

(4)预约信息实体对应的实体属性图如图3.6所示。

图3.6 预约信息实体属性图

(5)入住信息实体对应的实体属性如图3.7所示。

图3.7 入住信息实体属性图

(6)入住配置实体对应的实体属性图如图3.8所示。

图3.8 入住配置实体属性图

(7)合同信息实体对应的实体属性图如图3.9所示。

图3.9 合同信息实体属性图

(8)账单信息实体对应的实体属性图如图3.10所示。

图3.10 账单信息实体属性图

(9)床位信息实体对应的实体属性图如图3.11所示。

图3.11 床位信息实体属性图

(10)护理项目实体对应的实体属性图如图3.12所示。

图3.12 护理项目实体属性图

(11)资金流水信息实体对应的实体属性图如图3.13所示。

图3.13 资金流水信息实体属性图

(12)护理计划实体对应的实体属性图如图3.14所示。

图3.14 护理计划实体属性图

(13)订单实体对应的实体属性图如图3.15所示。

图3.15 订单实体属性图

(14)退住信息实体对应的实体属性图如图3.16所示。

图3.16 退住信息实体属性图

3.3.2 系统E-R图设计

我通过缜密的分析各实体之间1对1,1对多或多对多的关系,并向相关工作人员求证,系统E-R图16设计如图3.17所示。

图3.17 系统E-R图

3.3.3 数据库表设计

(1)管理员的表结构如表3.1所示。

表3.1 管理员表

字段名 数据类型 长度 约束 描述
id bigint -- 主键 管理员id
username varchar 30 非空 账号
password varchar 100 非空 密码
create_time datetime -- -- 创建时间
real-name varchar 30 -- 角色
dept_no varchar 22 -- 部门编号
is_leader int -- 默认:0 是否负责人

(2)老人表结构如表3.2所示。

表3.2 老人表

字段名 数据类型 长度 约束 描述
id bigint -- 主键 老人id
name varchar 255 非空 姓名
sex varchar 50 -- 性别
id_card_no varchar 20 非空 身份证号
phone varchar 50 -- 手机号
age varchar 50 -- 年龄
bed_id bigint -- -- 床位id
bed_number varchar 20 -- 床位编号
status int -- 非空 状态
create_time datetime -- -- 创建时间

(3)家属表结构如表3.3所示。

表3.3 家属信息表

字段名 数据类型 长度 约束 描述
id bigint -- 主键 家属id
avatar varchar 255 -- 头像
name varchar 100 -- 用户名
phone varchar 20 非空 手机号
open_id varchar 255 -- openId标识
create_time datetime -- -- 创建时间

(4)预约信息表结构如表3.4所示。

表3.4 预约信息表

字段名 数据类型 长度 约束 描述
id bigint -- 主键 预约信息id
name varchar 50 -- 姓名
mobile varchar 20 非空 手机号
vistor varchar 50 非空 探访人
time datetime -- -- 预约时间
type int -- 非空 预约类型
status int -- 非空 预约状态
create_time datetime -- -- 创建时间

(5)入住信息表结构如表3.5所示。

表3.5 入住信息表

字段名 数据类型 长度 约束 描述
id bigint -- 主键 入住信息id
check_in_code varchar 255 非空 入住单号
title varchar 255 非空 标题
elder_id bigint -- 非空 老人id
counselor varchar 255 -- 养老顾问
check_in_time timestamp -- -- 入住时间
reason varchar 255 -- 原因
applicat varchar 255 非空 申请人
dept_no varchar 255 非空 部门编号
applicat_id bigint -- 非空 申请人id
flow_status int -- 非空 流程状态
status int -- 非空 审核状态
review_info text -- -- 评估信息

(6)入住配置表结构如表3.6所示。

表3.6 入住配置表

字段名 数据类型 长度 约束 描述
id bigint -- 主键 入住配置id
elder_id bigint -- 非空 老人id
check_in_start_time datetime -- 非空 入住开始时间
check_in_end_time datetime -- 非空 入住结束时间
nursing_level_id bigint -- 非空 护理等级id
bed_no varchar -- 非空 床位号
cost_start_time datetime -- 非空 费用开始时间
cost_end_time datetime -- 非空 费用结束时间
bed_cost decimal -- 非空 床位费用
nursing_cost decimal -- 非空 护理费用

(7)合同信息表结构如表3.7所示。

表3.7 合同信息表

字段名 数据类型 长度 约束 描述
id bigint -- 主键 合同信息id
name varchar 255 非空 名称
contract_no varchar 255 非空 编号
pdf_url varchar 255 -- 协议地址
member_phone varchar 50 -- 丙方手机号
elder_id bigint -- -- 老人id
elder_name varchar 50 -- 老人姓名
member_name varchar 50 -- 丙方名称
start_time datetime -- 非空 开始时间
end_time datetime -- 非空 结束时间
status tinyint -- 非空 状态
check_in_no varchar 255 -- 入住单号
sign_date datetime -- 非空 签约时间
release_submitter varchar 255 -- 解除提交人
release_date datetime -- -- 解除日期
release_pdf_url varchar 255 -- 解除协议地址

(8)账单信息表结构如表3.8所示。

表3.8 账单信息表

字段名 数据类型 长度 约束 描述
id bigint -- 主键 账单信息id
bill_no varchar 50 非空 编号
bill_type tinyint -- 非空 账单类型
bill_month varchar 50 -- 账单月份
elder_id bigint -- 非空 老人id
bill_amount decimal -- 非空 账单金额
payable_amount decimal -- 非空 应付金额
payment_deadline datetime -- 非空 支付截止时间
transaction_status int -- 非空 账单状态
bill_start_time datetime -- -- 账单开始时间
bill_end_time datetime -- -- 账单结束时间
lname varchar 50 -- 护理等级
type_name varchar 50 -- 房间类型
create_time datetime -- -- 创建时间

(9)床位信息表的表结构如表3.9所示。

表3.9 床位信息表

字段名 数据类型 长度 约束 描述
id bigint -- 主键 床位信息id
bed_number varchar 255 -- 编号
bed_status int -- -- 床位状态
room_id bigint -- -- 房间id

(10)护理项目表的表结构如表3.9所示。

表3.9 护理项目表

字段名 数据类型 长度 约束 描述
id bigint -- 主键 护理项目id
name varchar 100 -- 名称
unit varchar 50 -- 单位
price decimal -- -- 价格
image varchar 255 -- 图片
nursing_requirement varchar 255 -- 护理说明
create_time datetime -- -- 创建时间

(11)资金流水信息表的表结构如表3.9所示。

表3.9 资金流水信息表

字段名 数据类型 长度 约束 描述
id bigint -- 主键 资金流水信息id
Balance_type int -- -- 资金流向
related_bill_no bigint -- 非空 相关订单号
flow_reason varchar 255 -- 流水原因
amount decimal -- 非空 金额
elder_id bigint -- -- 老人id
bed_no varchar 255 -- 床位号
create_time datetime -- -- 创建时间

(12)护理计划表的表结构如表3.9所示。

表3.9 护理计划表

字段名 数据类型 长度 约束 描述
id bigint -- 主键 护理计划id
plan_name varchar 255 非空 计划名称
elder_id bigint -- -- 老人id
nurse_grade_id bigint -- -- 护理等级id
project_id int -- 非空 护理项目id
execute_time varchar 50 非空 计划执行时间
execute_cycle int -- 非空 执行周期
execute_frequency int -- 非空 执行频次

(13)订单表的表结构如表3.9所示。

表3.9 订单表

字段名 数据类型 长度 约束 描述
id bigint -- 主键 订单id
order_no varchar 50 -- 编号
payment_status tinyint -- -- 付款状态
amount decimal -- -- 金额
member_id bigint -- -- 家属id
project_id bigint -- -- 服务项目id
elder_id bigint -- -- 老人id
estimated_arrival_time datetime -- -- 预计服务时间
status int -- -- 订单状态

(14)退住信息表的表结构如表3.9所示。

表3.9退住信息表

字段名 数据类型 长度 约束 描述
id bigint -- 主键 退住信息id
retreat_code varchar 255 -- 编号
title varchar 255 -- 标题
elder_id bigint -- -- 老人id
check_in_start_time datetime -- -- 入住开始时间
check_in_end_time datetime -- -- 入住结束时间
status tinyint -- -- 状态
nursing_level_name varchar 50 -- 护理等级
bed_no varchar 200 -- 床位
contract_no varchar 100 -- 合同id
counselor varchar 20 -- 养老顾问
reason varchar 255 -- 退住原因
applicat_id bigint -- -- 申请人id
create_time datetime -- -- 创建时间
flow_status tinyint -- -- 流程状态
3.4 静态模型
3.4.1 边界类图

依据需求,分析系统的功能,推算出系统的边界类包含:客户登录、预约管理、绑定老人、客户房型、护理计划、护理等级、护理项目、客户账单、客户合同、客户订单。该系统的边界类如图3.18所示。

图3.18 系统边界类图

3.4.2 控制类图

根据需求功能分析,得到系统的控制类包括:客户登录类、预约管理类、绑定老人类、客户房型类、护理计划类、护理等级类、护理项目类、客户账单类、客户合同类、客户订单类。该系统的控制类如图3.19所示。

图3.19 系统控制类图

3.4.3 实体类图

本章的实体类对应第三章的数据库中的实体。包括:管理员类、部门信息类、老人类、家属类、家属老人关联类、预约信息类、来访信息类、入住信息类、入住配置类、审批流程记录类、合同信息类、账单信息类、余额信息类、资金流水信息类、充值信息类、房型信息类、床位信息类、护理项目类、护理计划类、护理等级类、订单类、退住信息类、退住账单类。该系统的实体类如图3.20所示。

图3.20 系统实体类图

3.4.4 顺序图

基于上述定义的三大类图,可以绘制出系统功能的顺序图。这些顺序图主要涵盖以下内容:客户登录顺序图、客户预约顺序图、绑定老人信息顺序图以及客户下单顺序图。

(1)客户登录顺序图如图3.21所示。

图3.21 客户登录顺序图

(2)客户预约顺序图如图3.22所示。

图3.22客户预约顺序图

(3)绑定老人顺序图如图3.23所示。

图3.23 绑定老人顺序图

(4)客户下单顺序图如图3.24所示。

图3.24客户下单顺序图

第4章 详细设计与实现

4.1 后台管理系统实现

4.1.1 登录

如图4.1显示的就是管理员登录界面。我使用了权限框架Spring Security结合JWT\[\],进行管理员身份验证和访问控制。要求管理员资源关联表可以使管理员拿到资源表中存放着菜单或操作的路径,从而看到相关菜单或者允许相关操作。具体实现方法是当管理员登录以后,携带了token访问后端登录接口,那么此时Spring Security框架就要对当前请求进行验证,验证包含了两部分,第一验证携带的token是否合法,这里我们对密码采用了BCrypt的加密方式17。第二验证当前用户是否拥有当前访问资源的权限。管理员必须登陆后才能对系统进行管理。

图4.1 登录界面图

4.1.2 预约来访信息管理

管理员能够对预约来访信息进行管理,图4.2展示的就是预约来访信息管理界面。

图4.2 预约来访信息管理界面图

4.1.3 入退管理

系统提供入退管理功能,管理员可以协同办理老人入住退住流程。完成各部门的协同办公,我们需要先梳理整个办理入住业务流程,看看涉及了哪些角色。办理入住流程图如图4.3所示。

图4.3 办理入住流程图

完成各部门之间的协同办公我采用了activiti工作流。Activiti 是一个开源的轻量级工作流和业务流程管理引擎,基于 BPMN 2.0 标准实现18。它提供了一套完整的工具集,用于设计、部署、执行和监控业务流程。activiti7内部提供的api如下:

RepositoryService:用于部署流程定义,可以添加、删除、查询和管理流程定义。

RuntimeService:用于启动、查询和管理正在运行的流程实例。

TaskService:用于查询和管理当前用户可以操作的任务,以及完成任务。

HistoryService:用于查询历史数据,例如已完成的流程实例、已删除的流程实例、用户任务等。

Activiti工作过程如图4.4所示

图4.4 Activiti工作过程

依托办理入住流程图,我们得到了办理入住BPMN流程图,如图4.5所示。

图4.5 办理入住BPMN流程图

我以办理入住的第一个环节(养老顾问填写入住申请)为参照,讲解activiti工作流如何融入代码设计中进行角色间流转的。发起入住申请的实现思路为:

1.输入表单之后,根据老人姓名和身份证号查询老人信息

2.如果能查询到老人,并且在申请入住中,则不处理该老人

3.保存老人信息到老人表中

4.保存入住信息到入住表中

5.保存操作记录(需查询下一个审核人)

6.启动流程实例:(1)为流程图中的assignee设置流程变量,需要按照部门找到对应的办理人。(2)在流程实例启动之前,则需要设计bussinessKey-->checkIn:入住id(3)判断第一个任务是否是当前登录人,如果是,则直接完成任务。主要通过startProcessInstanceByKey函数启动流程实例,为任务设置首节点,以便之后任务的流转,具体代码实现如下:

list = list.stream().filter(t->"0".equals(t.getFormKey())).collect(Collectors.toList());

if(!CollectionUtils.isEmpty(list) && autoFinished){

for (Task task: list) {

Map<String, Object> variables2 = new HashMap<>();

variables2.put("processStatus",1);

variables2.put("ops",1);

taskService.complete(task.getId(),variables2);

}

}

申请入住界面如图4.6所示。

图4.6 申请入住界面图

提交之后的页面如图4.7所示。

图4.7 申请入住提交后界面图

然后,我们切换护理组组长角色,对老人进行入住评估,界面如图4.8所示。

图4.8 入住评估界面图

审批通过接下来,我们切换副院长角色,对老人进行入住审批,副院长的主要职责就是审核单子,有三种情况,分别是:同意、拒绝、驳回,界面如图4.9所示。

图4.9 入住审批界面图

副院长审批通过之后,我们切换超级管理员角色,为老人选择入住配置,界面如图4.10所示。

图4.10 入住配置界面图

接下来,签约办理步骤自动通过。到此,老人入住成功。

4.1.4 在住信息管理

在住信息管理下的合同管理页面如图4.11显示,管理员可以查看合同信息。

图4.11合同跟踪界面图

如图4.12显示的就是在住信息管理下的床位房型页面,管理员可以新增房间,编辑房间。

图4.12 床位房型界面图

如图4.13显示的就是在住信息管理下的房型设置页面,管理员可以新增房型、禁用房型。

图4.13 房型设置界面图

4.1.5 服务信息管理

如图4.14显示的就是护理计划下的护理等级页面,可以新增、编辑、禁用、删除护理等级。

图4.14护理等级界面图

如图4.15显示的就是护理计划下的护理项目页面,可以新增、编辑、禁用、删除护理项目。

图4.15 护理项目界面图

如图4.16显示的就是护理计划下的护理计划页面,可以查看、新增、编辑、禁用、删除护理计划。

图4.16 护理计划界面图

如图4.17显示的就是护理任务下的任务安排页面,可以查看、执行、改期、取消护理计划。

图4.17 任务安排界面图

如图4.18显示的就是护理任务下的负责老人页面,可以为老人设置护理员。具体如图。

图4.18 负责老人界面图

4.1.6 财务信息管理

财务信息管理主要是记录公司的账单与老人的欠费及余额,如图4.19是入账列表页面。

图4.19 入账列表界面图

4.1.7 客户信息管理

管理员可以查看客户信息。如图4.20所示。

图4.20 客户信息界面图

4.2 微信小程序用户端实现

4.2.1 用户授权登录

游客可以通过微信授权实现快速登录。在微信授权登录过程中,用户会通过小程序向微信发送小程序的appid和secretKey,发送请求获取openId。一旦获取到openId,系统就会提取微信用户的相关信息,并且将授权用户的信息存储到数据库表中,从而完成登录操作。如图4.21所示就是用户授权登录的界面。

图4.21 用户授权登录界面图

4.2.2首页

用户登录成功后进入小程序首页,小程序首页几乎囊括了所有功能,如探访预约,参观预约,养老院介绍,绑定家人,我的订单,我的账单等功能,如图4.22所示。

图4.22 用户授权登录界面图

4.2.3探访预约

用户进行探访预约的流程图如图4.23所示。

图4.23 探访预约流程图

可以发现重点是需要提前绑定老人,绑定老人功能需要注意老人是否存在,在这里,我通过检查家属所填老人的姓名是否存在且与身份证号符合进行验证,绑定老人的流程图如图4.24所示。

图4.24 绑定老人流程图

运行界面如图4.25所示。

图4.25 小程序首页界面图

绑定成功跳转到家人页面,如图4.26所示。

图4.26 家人界面图

之后,我们就可以进行探访预约,如图4.27所示。

图4.27 探访预约界面

预约成功,界面如图4.28所示。

图4.28 预约成功界面

4.2.4护理服务

护理服务是小程序的核心功能模块,用户下单护理服务,管理员收到消息安排护理员进行服务。服务页面如图4.29所示。

图4.29 服务界面

我们点进服务查看详情选择服务家人和期望服务时间后就可以进行购买操作。选择服务家人会自动弹出已绑定的老人。如图4.30所示,这是由于我们向后端发起请求,请求路径为/customer/memberElder/my,我们后端在家属登录时,已经通过ThreadLocal保存家属id,在我们完成绑定老人时,已经把相关数据存入家属老人关联表,因此可以通过家属id查找家属老人关联表,轻松获取相关老人信息。具体实现代码如下。

@GetMapping("/my")@ApiOperation(value = "我的家人列表")public ResponseResult my() { List<MemberElderVo> memberElders = memberElderService.my(); return ResponseResult.success(memberElders);}

public List<MemberElderVo> my() {

Long userId = UserThreadLocal.getUserId();

return listByMemberId(userId);

}

图4.30 服务详情界面

最终效果如图4.31所示。

图4.31 服务详情界面(已完成)

点击立即购买后,跳转到订单页面如图4.32所示。

图4.32 订单界面

点击提交订单后,跳转到我的订单页面,等待管理员进行服务执行。如图4.33所示。

图4.33 我的订单界面

4.2.5 养老院介绍

养老院介绍主要功能是向用户介绍养老院,主要包括养老院的地址,占地面积,收住老人,床位数量等重要信息,并可通过点击致电咨询按钮查看联系电话。如图4.34所示。

图4.34 养老院介绍界面

第5章 系统测试

本章的内容是在系统功能已基本落地后对本系统的系统测试及功能性测试,详细说明了对用户密切相关的授权登录模块、家属探访预约模块以及绑定老人模块所开展的测试工作。

5.1 测试简介

本系统完成后,进行了完整的测试,本系统中包含了家属和管理员角色,管理员多种角色都具备多种功能。我将对系统的不同功能进行多次测试及整体系统测试19

管理员有以下方面的功能测试:来访管理,入退管理,合同跟踪,床位管理,服务管理,订单管理,财务管理,客户管理,权限管理;家属有以下方面的功能测试:参观/探访预约、绑定老人、下单服务。在系统测试阶段,我们将重点测试模块之间的关联,确保各功能模块之间的逻辑关系并且流程正常运转,实现有效的数据存储与数据传递。

5.2 授权登录模块测试

用户能够通过微信账号授权在小程序端完成登录操作,系统授权登录功能测试用例详见表5.1。

表5.1 系统授权登录测试用例

测试功能 测试输入 预期结果 实际结果 是否通过
用户授权 用户授权 授权成功 成功 通过
用户登录 输入合法账号信息 登录成功 成功 通过

5.3 家属探访预约模块测试

用户在网上进行探访预约,测试用例如表5.2所示。

表5.2 用户预约测试用例表

测试功能 测试输入 预期结果 实际结果 是否通过
用户在线预约 选中老人,选中期望服务时间 测试成功 成功 通过
用户在线预约 选中老人,不选中期望服务时间 测试失败 失败 通过

5.4 绑定老人功能测试

家属登录小程序端后,可以绑定养老院已存在的老人,必须输对已存在老人的姓名和对应的身份证号。对于输入的姓名的格式要求为:不为空,身份证号要求为:18位数字(可以包含英文字母),对于您称呼他的格式要求为:不为空。且后端对老人是否存在进行验证。

表5.3 绑定老人等价类划分

输入数据 数据的具体划分 有效等价类 无效等价类
姓名 姓名组成 (1)姓名不为空 (2)姓名为空
姓名存在 (3)姓名存在 (4)姓名不存在
身份证号 身份证号长度 (5)18位 (6)长度>18 (7)长度<18
身份证号组成 (8)全为数字 (9)第18位为英文字母'X',其余为数字 (10)含特殊符号 (11)前17位含英文字母 (12)第18位为非'X'的英文字母 (13)身份证号为空
身份证号存在 (14)身份证号符合姓名对应的身份证号 (15)身份证号不存在 (16)身份证存在,但不对应姓名
您称呼他 您称呼他组成 (17)您称呼他不为空 (18)您称呼他为空

基于上述划分的等价类,可以设计相应的测试用例来对绑定老人功能进行测试,具体的测试用例如表5.5。

表5.5 绑定老人测试用例

测试用例 覆盖等价类 预期结果 实际结果
姓名:仁和 身份证号:132123196612091234 您称呼他:父亲 (1)、(3)、(5)、(8)、(14)、(17) 绑定成功 绑定成功
姓名: 身份证号:132123196612091234 您称呼他:父亲 (2)、(5)、(8)、(17) 绑定失败 绑定失败
姓名:仁和 身份证号: 您称呼他:父亲 (1)、(3)、(13)、(17) 绑定失败 绑定失败

续表5.5 绑定老人测试用例

测试用例 覆盖等价类 预期结果 实际结果
姓名:仁和 身份证号:132123196612091234 您称呼他: (1)、(3)、(5)、(8)、(14)、(18) 绑定失败 绑定失败
姓名:仁一 身份证号:132123196612091234 您称呼他:父亲 (1)、(4)、(5)、(8)、(17) 绑定失败 绑定失败
姓名:仁和 身份证号: 13212319661209 您称呼他:父亲 (1)、(3)、(7)、(17) 绑定失败 绑定失败
姓名:仁和 身份证号: 132123196612091234223 您称呼他:父亲 (1)、(3)、(6)、(17) 绑定失败 绑定失败
姓名:托马斯 身份证号: 13212319661209113x 您称呼他:父亲 (1)、(3)、(5)、(9)、(14)、(17) 绑定成功 绑定成功
姓名:托马斯 身份证号: 13212x196612091132 您称呼他:父亲 (1)、(3)、(5)、(11)、(17) 绑定失败 绑定失败
姓名:托马斯 身份证号: 13212@196612091132 您称呼他:父亲 (1)、(3)、(5)、(10)、(17) 绑定失败 绑定失败
姓名:托马斯 身份证号: 13212196612091132k 您称呼他:父亲 (1)、(3)、(5)、(12)、(17) 绑定失败 绑定失败
姓名:托马斯 身份证号: 132123196612091138 您称呼他:父亲 (1)、(3)、(5)、(8)、(15) 绑定失败 绑定失败
姓名:托马斯 身份证号: 132123196612091234 您称呼他:父亲 (1)、(3)、(5)、(8)、(16) 绑定失败 绑定失败

5.5 测试结果分析

经过对智慧养老管理系统进行全面的功能测试和系统测试,得出以下结论:该系统的核心功能模块均能稳定运行,满足了管理员实际运营需求;系统界面设计简洁又有条理,操作流程直观易懂;此外,微信小程序端智慧养老系统在功能性及实用性方面均达到了开发预期标准。

结论

通过参与智慧养老管理系统的开发,我深入体会到了软件开发全流程的复杂与精细。整个开发旅程始于用户需求的细致调研与可行性分析,这一步骤为后续开发奠定了坚实基础。在明确用户需求之后,我们依次展开了软件功能的框架搭建、用户界面(UI)设计以及数据库架构规划。这些前期工作完成后,便进入了核心的代码编写阶段。而在编写代码的过程中,模块测试同步推进,确保每个功能模块都能稳定运行。待系统整体开发完毕,又经过了全面的系统测试与功能测试,以验证系统是否完全符合设计要求。尽管在开发过程中遭遇了不少难题,但凭借查阅大量资料、整理相关文档以及向导师和同学积极寻求帮助,我成功攻克了这些难关,让系统得以顺利上线,其功能也符合用户的实际需求。

智慧养老管理系统仍存在一些不足之处,我将依次列举:

系统的安全性需要继续改进,本系统的数据库加密功能需要优化,保护管理员信息,客户信息,老人信息等。

系统程序的代码优化,减少冗余代码,优化算法逻辑,提高代码的可读性和可维护性。

系统的智能性不高,可以考虑将物联网融入系统中,老人绑定智能监测设备从而采集老年人生理健康及行为活动状态数据并将数据传到系统中,做到实时监测老人状态,风险预警,增加养老院的竞争力20

对微信小程序智慧养老管理系统的开发使我将理论知识与实践相结合,掌握了将理论运用于软件开发的方法。我还会依托试运行收集用户的反馈,持续优化和改进系统,提升用户体验,确保系统的稳定性和安全性,为智慧养老事业贡献更多力量21

参考文献

龚娜,董潘敏,刘芬. "互联网+"时代下智慧养老的创新发展J. 经济研究导刊,2018(36).

郑碧丽,花文苍. 健康老龄化背景下智慧养老服务体系优化研究J. 石家庄铁道大学学报(社会科学版),2024(02).

杨波. 智慧居家养老服务质量评价研究:以广州市居家养老产业为例M. 北京:新华出版社,2019.

中共焦作市民政局党组. 构建智慧型养老服务体系提高养老服务质量和效率N. 焦作日报,2020-10-16.

白玫,朱庆华. 智慧养老现状分析及发展对策J. 现代管理科学,2016(09).

庞庆泉,赵云,潘炳华,刘芳. "十四五"养老服务发展规划政策分析J. 合作经济与科技,2024(14).

路建英. 走好中国特色积极应对人口老龄化之路N. 中国社会报,2025-03-11.

张茜. "互联网+"智慧养老J. 文化产业,2025(06).

孙程新,赵德雷. 智慧养老与传统文化的结合------养老方式的融合与创新J. 国际公关,2025(02).

高凤,邹礼见. 小程序上门养老服务系统的设计与实现J. 信息与电脑,2024(22).

Dr. Rais Abdul Hamid Khan, Patil Raj Gopal, et al. The Waterfall Model-Software Engineering J. International Journal of Research Publication and Reviews, 2024, 5(4): 7825-7830

李向洲,谭玉珍. 积极老龄化背景下智慧养老服务系统设计研究J. 工业设计,2023(10).

董二帅. 智慧养老系统的设计 ------以呼和浩特市为例.J. 硕士电子期刊,2024(11).

魏勋华. 基于RBAC安全模型的系统用户权限设计J. 软件,2025(01).

杨志俊,侯江华. 基于SpringBoot的智慧养老系统设计J. 无线互联科技,2023(17).

Restackio. Entity-Relationship Diagram Applications In Software Design J. Restackio,2024.

Bruce Schneier. 应用密码学M. 北京:电子工业出版社,2015.

吕梁. Activiti实战M. 北京:电子工业出版社,2017.

彭敏学,程琨,张海旭.基于微信小程序的社区智慧助老信息服务系统设计J. 工业设计,2023(09).

杨先花. 基于物联网技术的智慧养老系统数据整合与实时监测改进策略研究J. 华东科技,2025(01).

郭媛媛. 基于人工智能的智慧养老系统设计与实施J. 科学咨询,2024(13).

致谢

在大学这段美好而短暂的时光里,我结识了许多可爱的同学和敬业的老师。如今,我的毕业论文即将画上句号,我满心感激那些在我求学路上给予我支持、帮助与鼓励的人们。

首先,我要向我的论文指导老师霍峥致以深深的谢意。从开题报告的撰写,到任务书、论文大纲的拟定,再到系统功能框架的设计,直至最终毕业论文的完成,全程都离不开指导老师的督促与关心。正是在老师的精心引导下,我的毕业论文才得以符合学院的严格要求。老师严谨的治学态度和一丝不苟的工作精神,是我今后学习的榜样,激励着我不断前行。

其次,感谢我的大学同学。在独立完成毕业论文的过程中,多亏了他们的加油打气,帮我开导生活中遇到的难题,从而让我能将更多的精力投入到系统的完善之中,他们的支持是我不断进步的动力。

最后,我要感谢我的家人。他们的包容与关爱,为我提供了安心学习的港湾。家人们无微不至的照顾,让我得以顺利完成大学学业。这份温暖的后盾,是我不断前行的坚实基础。

临近毕业,我深知这段经历的珍贵。在未来的工作与生活中,我会铭记老师们的谆谆教诲,以不懈的努力和执着的追求,去实现自我成长与蜕变。我将用实际行动来回报那些曾经给予我支持与帮助的人,不辜负他们的期望。

相关推荐
L-影8 小时前
springboot启动流程
java·spring boot·spring
蚰蜒螟8 小时前
从 Jedis 到内核:深入剖析 Redis BRPOP 的阻塞与唤醒机制
数据库·redis·缓存
糖果店的幽灵9 小时前
【langgraph 从入门到精通graphApi 篇】节点与边 —— 图的骨架
java·数据库·人工智能·redis·langgraph
后端观测站9 小时前
第八篇:Redis 为什么不会每次修改都写磁盘?
数据库·redis·缓存
我是唐青枫10 小时前
Java Neo4j 实战指南:从图模型、Cypher 到 Spring Boot 关系查询
java·spring boot·neo4j
大阳光男孩19 小时前
Spring Boot 整合 Debezium 实现 MySQL 增量数据监听(嵌入式版)
spring boot·后端·mysql
辞旧 lekkk19 小时前
【Redis初阶】常见数据类型
开发语言·数据库·c++·redis·学习·缓存·bootstrap
吴声子夜歌19 小时前
Redis 3.x——集群节点通信
redis·缓存·集群
X-⃢_⃢-X20 小时前
一、第一阶段:认识 Spring Boot
java·spring boot·后端