springboot养老院管理系统-毕业设计源码42672

摘 要

基于Spring Boot框架的养老院管理系统旨在提高养老院管理效率和服务质量。系统包括用户管理、入住信息、缴费信息、日程信息、意见反馈、老人护理、用药信息、房间号码、健康监测、床位号码等功能模块。通过浏览器与服务器交互,实现数据管理和信息交流。系统以数据安全为重点,操作简单便捷,提高工作效率,减少错误和遗漏。采用Java语言开发,结合SpringBoot技术,使用MySQL数据库存储数据,该系统将为养老院提供更高效的管理方式,提升服务水平,实现便捷的数据交流管理,符合现代养老服务的需求。

关键词:Java开发语言;SpringBoot框架;养老院管理系统

Abstract

The management system for nursing homes based on the Spring Boot framework aims to improve the efficiency and service quality of nursing home management. The system includes functional modules such as user management, check-in information, payment information, schedule information, feedback, elderly care, medication information, room number, health monitoring, and bed number. By interacting with the server through a browser, data management and information exchange can be achieved. The system focuses on data security, with simple and convenient operation, improving work efficiency, and reducing errors and omissions. Developed using Java language, combined with SpringBoot technology, and using MySQL database to store data, this system will provide more efficient management methods for nursing homes, improve service levels, achieve convenient data exchange and management, and meet the needs of modern elderly care services.

Key words:Java development language; SpringBoot framework; Nursing Home Management System

目  录

第1章 绪论

1.1 研究背景

1.2 研究意义

1.3 本文结构

第2章 相关技术介绍

2.1Java编程语言

2.2 SpringBoot框架

2.3Vue.js 主要功能

第3章 系统分析

3.1 可行性分析

3.1.1 操作可行性

3.1.2 技术可行性

3.2 系统功能需求

3.3 系统性能需求

第4章 系统设计

4.1 总体结构设计

4.2 功能模块设计

4.3 数据库设计

4.3.1 概念设计

4.3.2 逻辑设计

第5章 系统实现

5.1 登录模块的实现

5.2 用户模块的实现

5.2.1 注册模块的实现

5.2.2 入住信息管理模块的实现

5.2.3 缴费信息管理模块的实现

5.2.3 意见反馈管理模块的实现

5.3 后台模块的实现

5.3.1 用户管理模块的实现

5.3.2 入住信息管理模块的实现

5.3.3 缴费信息管理模块的实现

5.3.4 意见反馈管理模块的实现

第6章 系统测试

6.1 测试方法

6.2 测试用例

6.3 测试结果

第7章 总结与展望

参考文献

致谢 37

  1. 绪论

    1. 研究背景

随着社会老龄化程度不断加深,养老服务的需求逐渐增长,养老院作为提供专业养老服务的机构承担着越来越重要的社会责任。然而,传统的养老院管理方式存在着信息管理繁琐、服务流程不畅、数据管理不规范等问题,亟需引入现代化技术手段来提升管理效率和服务质量。

在这一背景下,养老院管理系统的研究和开发变得尤为重要。借助现代信息技术,如Spring Boot框架等,可以实现养老院信息的集中管理、服务流程的优化、数据管理的规范化,为养老院提供更智能、高效的管理模式。

    1. 研究意义

养老院管理系统的研究可以提升养老服务的质量和水平,通过优化管理流程、加强数据管理和规范服务标准,提供更专业、个性化的养老服务,满足老年人的多样化需求。引入现代化的管理系统能够提高养老院的管理效率,减少繁琐的手工操作,实现信息快速传递和实时监控,提升工作效率,降低管理成本。系统化的养老院管理系统有助于数据的安全管理和隐私保护,确保老人和员工的个人信息得到有效保护,避免信息泄露和安全风险。引入现代化管理系统展现了养老院的科技化管理水平和服务理念,有助于提升养老院的品牌形象和竞争力,在激烈的养老服务市场中脱颖而出。通过养老院管理系统的研究和应用,能够促进整个养老服务行业的发展,推动行业标准化和规范化,为养老服务行业的可持续发展提供支持。养老院管理系统的研究意义在于提升养老服务质量、提高管理效率、加强数据安全保护、提升形象竞争力,同时也有助于推动养老服务行业的发展与进步,为社会老龄化问题提供更有效的解决方案。

    1. 本文结构

(1)绪论

从开发系统的背景以及研究意义,详细描述了系统的在哪些方面能得到应用、然后对本文分结构。

(2)系统开发环境介绍

使用技术简介、数据库概念和特点、编码工具、建模工具等。

(3)系统分析

可行性分析概述、用户需求调研、系统性能需求、系统数据组成。

(4)系统设计

系统网络结构设计、系统总体设计、系统功能模块的划分、系统功能模块的需求,数据库设计概述、数据库概述结构设计、数据库逻辑结构设计。

(5)系统的实现

注册模块的实现、交流模块设计、竞赛报名模块的实现。

(6)系统测试

系统编码实现后,需要进行测试,测试包括黑盒测试和白盒测试,本系统采用黑盒测试,通过输入不同组的测试数据进行测试的功能模块测试。

  1. 相关技术介绍

    1. Java编程语言

Java语言是一种广泛应用于软件开发的高级编程语言。它以简单易学、面向对象、平台无关、安全可靠和强大的标准库等特点著称。Java摒弃了复杂的指针概念,提供了自动内存管理机制,使得程序员可以更专注于业务逻辑的实现。其面向对象的设计使得代码更易重用和维护。Java可以在不同操作系统和硬件平台上运行,实现了跨平台的特性。同时,Java具备丰富的安全性机制,防止恶意代码对系统造成危害。另外,Java拥有强大的标准库和API,提供了广泛的功能支持,让开发人员能够更高效地开发各种应用。总之,Java编程语言的优势使其成为一种被广泛应用于各个领域的优秀编程语言。

    1. SpringBoot框架

Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVC。

    1. Vue.js 主要功能

Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。

Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时,Vue.js 也能驱动复杂的单页应用。

  1. 系统分析

    1. 可行性分析

为了更好地适应现代社会的需求,并在市场竞争中获得一席之地,我们需要采取相应的策略;在大数据的背景下,所有的信息技术资源都是可以共享的,考虑到其长远的需求,我们需要思考如何促进整个系统开发的标准化进程。为了确保系统的成功运行,我们必须在效益和技术方面进行深入的可行性研究报告。

      1. 操作可行性

养老院管理系统的注册与登录页面设计简洁易用,可以通过常见的窗口形式实现登录功能,使用者只需熟悉计算机操作即可轻松登录。该平台基于Java技术开发,并采用B/S结构,使得系统功能更加完整,设计更具个性化,使用者体验更为简便。养老院管理系统具备易于运行、简单管理和良好的交互性等优点,在实际操作中也非常简单。因此,该平台也具备商业应用的潜力。

综上所述,该养老院管理系统的研发符合技术、工艺和技术要求,具有较高的可操作性。

      1. 技术可行性

所谓技术可行性,是指在特定的科学技术或决策流程中,涉及的技术资源已经被熟练掌握或相关专业人士所熟知。在进行技术研究时,有必要对系统研发阶段的核心技术问题进行全方位的调查,并在可能的情况下选择已经成熟的技术方案,借鉴先进的技术手段,以评估这些关键技术的实用性和有效性。在养老院管理系统的构建与执行过程中,Java技术发挥了至关重要的角色。基于B/S架构和MySQL数据库管理,Java技术在前端应用和后端数据库管理方面具有极高的重要性。为了保证该软件能够有效地运行,有必要维持其功能全面且易于理解和使用的特点。在建立数据库管理的过程中,我们必须确保数据分析的信息既完整又稳定。在早期阶段,我已经对Java的核心知识点有了初步的认识和了解,并对MySQL数据库也有了基本的熟悉和掌握。在早期阶段,我们已经对软件工程测试和UML语言等基础课程进行了深入的练习和掌握,这些训练让我们具备了进行信息系统开发、测试和评估的能力。

因此,结合Java和MySQL来开发养老院的管理系统是既合适又高效的方法。这种平台将为用户提供全方位的功能,并能满意地满足他们的各种需求。

    1. 系统功能需求

老人用户用例图如下所示。

图3-1 老人用户用例图

管理员用例图如下所示。

图3-2 管理员用例图

护工用户用例图如下所示。

图3-3 护工用户用例图

表3-1 用户管理用例描述

描述项

说明

用例名称

用户操作

用例描述

管理员正确登录后台管理的条件下,对用户进行管理

参与者

管理员

前置条件

管理员登录成功并跳转到后台主界面

后置条件

操作成功

主事件流

管理员跳转用户管理页面,查询用户详情的信息

管理员可以删除用户信息

异常事件流

e1.报500错误

e2.数据库连接异常

表3-1入住信息管理用例描述

描述项

说明

用例名称

入住信息操作

用例描述

管理员在正确登录后台管理系统后,对入住信息模块进行管理操作

参与者

管理员

前置条件

管理员成功登录

后置条件

操作成功

主事件流

(1)管理员进入入住信息管理页面,查询入住信息的信息

(2)管理员可以对入住信息进行增加、删除和编辑入住信息操作

(3)管理员新增入住信息,添加成功跳转到查询页面

异常事件流

e1.报500错误

e2.数据库连接异常

表3-1缴费信息管理用例描述

描述项

说明

用例名称

缴费信息操作

用例描述

管理员在正确登录后台管理系统后,对缴费信息模块进行管理操作

参与者

管理员

前置条件

管理员成功登录

后置条件

操作成功

主事件流

(1)管理员进入缴费信息管理页面,查询缴费信息的信息

(2)管理员可以对缴费信息进行增加、删除和编辑缴费信息操作

(3)管理员新增缴费信息,添加成功跳转到查询页面

异常事件流

e1.报500错误

e2.数据库连接异常

表3-1日程信息管理用例描述

描述项

说明

用例名称

日程信息操作

用例描述

管理员在正确登录后台管理系统后,对日程信息模块进行管理操作

参与者

管理员

前置条件

管理员成功登录

后置条件

操作成功

主事件流

(1)管理员进入日程信息管理页面,查询日程信息的信息

(2)管理员可以对日程信息进行增加、删除和编辑日程信息操作

(3)管理员新增日程信息,添加成功跳转到查询页面

异常事件流

e1.报500错误

e2.数据库连接异常

表3-1床位号码管理用例描述

描述项

说明

用例名称

床位号码操作

用例描述

管理员在正确登录后台管理系统后,对床位号码模块进行管理操作

参与者

管理员

前置条件

管理员成功登录

后置条件

操作成功

主事件流

(1)管理员进入床位号码管理页面,查询床位号码的信息

(2)管理员可以对床位号码进行增加、删除和编辑床位号码操作

(3)管理员新增床位号码,添加成功跳转到查询页面

异常事件流

e1.报500错误

e2.数据库连接异常

表3-1意见反馈管理用例描述

用例名称

意见反馈管理

参与者

管理者

描述

管理者提供新增、修改、删除、查阅等功能

前置条件

  1. 管理者成功登录系统
  2. 管理者只能对已存在的意见反馈进行修改和删除

后置条件

事件流

(1)管理者查看修改意见反馈

(2)管理者添加意见反馈

(3)管理者删除意见反馈

补充说明

(a)新添加的意见反馈不符合要求时会添加失败

(b)修改的意见反馈不符合要求时会修改失败

    1. 系统性能需求

(1)友好界面:系统需要具有用户友好的界面设计,使用户能够轻松地浏览和操作系统。清晰、直观的布局、易于理解的导航和操作流程,以及合适的字体、颜色和图标等元素都是创建友好界面的重要因素。

(2)稳定性要求:系统需要保持稳定运行,避免出现崩溃或数据丢失等问题。稳定性要求包括系统的可靠性、容错性和高可用性。系统应该能够处理并恢复各种异常情况,确保在任何时间点都能够正常运行。

(3)可扩展性:养老院管理系统需要具备良好的可扩展性,能够满足未来的发展需求。随着用户数量和数据量的增加,系统应该能够扩展以支持更多的用户和处理更大规模的数据。这可以通过合理的架构设计、模块化的组织和灵活的配置实现。

(4)满足需求:系统需要满足用户的需求,并提供所需的功能和服务。这包括对入住信息管理、老人护理管理、日程信息管理、意见反馈管理、用药信息管理、健康监测管理、缴费信息管理等功能。系统应该能够高效地处理用户的请求,并提供准确、实时的信息反馈。

  1. 系统设计

    1. 总体结构设计

层次框图是由多个层级的矩形框架组成的树形结构,其中顶部表示整个数据结构,下方的长方形表示独立的数据单元。这种精简的架构可以清晰地描述数据结构,并满足需求分析的要求。首先对顶层信息进行分类,然后在每个路径上不断优化,直至确定完整的数据结构。

该系统由三个模块组成:管理员、老人用户和护工用户。尽管这些模块看起来是独立的,但实际上它们通过数据库连接在一起。每个模块都具有特定的权限,唯一的区别在于访问方式的不同。通过对调研资料进行分析,完成了各个模块的功能定义。基于对这些功能的分析,本系统提出了三个主要模块,每个模块可以进一步划分为若干个子模块。

系统的功能结构图如下图所示。

图4-2 系统功能结构图

    1. 功能模块设计

养老院管理系统在前端设计采用多种技术交互使用达到界面简洁大方,使用Java作为系统的编译语言,对于之前的分析所产生的问题进行解决,功能模块设计后进行编码实现具体功能:

登录模块: 用户必须输入正确的账号和密码才能成功登录系统,确保安全访问。

老人护理管理模块: 授权用户具有相关权限,可执行老人护理的添加、查询、修改、删除操作,同时对护工用户、健康状况等数据项进行独立操作,设置数据类型及其他参数。

缴费信息管理模块: 授权用户具备相关权限,可进行缴费信息的添加、查询、修改、删除操作,同时对老人姓名、老人用户等数据项进行单独操作,设置数据类型等参数。

    1. 数据库设计
      1. 概念设计

在需求分析中,我们用来分析的对象往往是抽象的概念,所以在这个环节应当避免过于细致的细节分析,而是通过这些抽象的概念来分析实体所具备的属性和实体之间的联系。养老院管理系统利用E-R图对上述实体和联系进行描述。

图4-3 老人用户信息E-R关系图

图4-4 缴费信息E-R关系图

图4-5入住信息E-R关系图

图4-6 护工用户信息E-R关系图

总体ER图如下图所示。

图4-8 总体ER图

      1. 逻辑设计

所有系统的应用数据相互区分。一旦在相应的系统中实现,它们将与自己相应的网络和服务器通信。所以这个系统可以连接这些数据。当我们选择桥梁截面时,以下将简要介绍如何建立系统。在单击上一个按键的时候,就会自动在对话框中弹出数据源的名字,之后再单击下一个按键时,就在填写相对应的身份验证和登录信息。按照系统功能设计的特点与职能模块的分类,养老院管理系统的总体设计和实施过程一共涉及到了几个资料表格。

以下就介绍了一些根据各类别主要数据库表的设计结构以及基本功能建立数据库表:

表bed_number (床位号码)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

bed_number_id

int

10

0

N

Y

床位号码ID

2

bed_number

varchar

64

0

Y

N

床位号码

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表check_in_information (入住信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

check_in_information_id

int

10

0

N

Y

入住信息ID

2

elderly_users

int

10

0

Y

N

0

老人用户

3

old_persons_name

varchar

64

0

Y

N

老人姓名

4

room_number

varchar

64

0

Y

N

房间号码

5

bed_number

varchar

64

0

Y

N

床位号码

6

check_in_date

date

10

0

Y

N

入住日期

7

remarks

text

65535

0

Y

N

备注信息

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表elderly_care (老人护理)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

elderly_care_id

int

10

0

N

Y

老人护理ID

2

caregiver_users

int

10

0

Y

N

0

护工用户

3

name_of_caregiver

varchar

64

0

Y

N

护工姓名

4

old_persons_name

varchar

64

0

Y

N

老人姓名

5

health_condition

text

65535

0

Y

N

健康状况

6

nursing_date

date

10

0

Y

N

护理日期

7

nursing_records

text

65535

0

Y

N

护理记录

8

other_remarks

text

65535

0

Y

N

其他备注

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表elderly_users (老人用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

elderly_users_id

int

10

0

N

Y

老人用户ID

2

old_persons_name

varchar

64

0

Y

N

老人姓名

3

gender_of_the_elderly

varchar

64

0

Y

N

老人性别

4

emergency_contact

varchar

64

0

Y

N

紧急联系人

5

contact_information

varchar

64

0

Y

N

联系方式

6

examine_state

varchar

16

0

N

N

已通过

审核状态

7

user_id

int

10

0

N

N

0

用户ID

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表feedback (意见反馈)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

feedback_id

int

10

0

N

Y

意见反馈ID

2

elderly_users

int

10

0

Y

N

0

老人用户

3

old_persons_name

varchar

64

0

Y

N

老人姓名

4

feedback_title

varchar

64

0

Y

N

反馈标题

5

feedback_time

date

10

0

Y

N

反馈时间

6

feedback_content

text

65535

0

Y

N

反馈内容

7

examine_state

varchar

16

0

N

N

未审核

审核状态

8

examine_reply

varchar

16

0

Y

N

审核回复

9

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

10

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表health_monitoring (健康监测)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

health_monitoring_id

int

10

0

N

Y

健康监测ID

2

caregiver_users

int

10

0

Y

N

0

护工用户

3

name_of_caregiver

varchar

64

0

Y

N

护工姓名

4

old_persons_name

varchar

64

0

Y

N

老人姓名

5

blood_pressure_recording

varchar

64

0

Y

N

血压记录

6

blood_glucose_recording

varchar

64

0

Y

N

血糖记录

7

temperature_record

varchar

64

0

Y

N

体温记录

8

record_date

date

10

0

Y

N

记录日期

9

remarks

text

65535

0

Y

N

备注信息

10

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

11

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表medication_information (用药信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

medication_information_id

int

10

0

N

Y

用药信息ID

2

caregiver_users

int

10

0

Y

N

0

护工用户

3

name_of_caregiver

varchar

64

0

Y

N

护工姓名

4

old_persons_name

varchar

64

0

Y

N

老人姓名

5

medication_date

date

10

0

Y

N

用药日期

6

medication_situation

text

65535

0

Y

N

用药情况

7

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

8

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表payment_information (缴费信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

payment_information_id

int

10

0

N

Y

缴费信息ID

2

elderly_users

int

10

0

Y

N

0

老人用户

3

old_persons_name

varchar

64

0

Y

N

老人姓名

4

drug_costs

int

10

0

Y

N

0

药物费用

5

hospitalization_expenses

int

10

0

Y

N

0

住院费用

6

other_expenses

int

10

0

Y

N

0

其他费用

7

total_expenses

varchar

64

0

Y

N

费用总计

8

payment_month

varchar

64

0

Y

N

缴费月份

9

pay_state

varchar

16

0

N

N

未支付

支付状态

10

pay_type

varchar

16

0

Y

N

支付类型: 微信、支付宝、网银

11

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

12

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表room_number (房间号码)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

room_number_id

int

10

0

N

Y

房间号码ID

2

room_number

varchar

64

0

Y

N

房间号码

3

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

4

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表schedule (护工用户)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

schedule_id

int

10

0

N

Y

护工用户ID

2

name_of_caregiver

varchar

64

0

Y

N

护工姓名

3

gender_of_caregiver

varchar

64

0

Y

N

护工性别

4

contact_information

varchar

64

0

Y

N

联系方式

5

practicing_certificate

varchar

255

0

Y

N

执业证书

6

examine_state

varchar

16

0

N

N

未审核

审核状态

7

user_id

int

10

0

N

N

0

用户ID

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

表schedule_information (日程信息)

编号

名称

数据类型

长度

小数位

允许空值

主键

默认值

说明

1

schedule_information_id

int

10

0

N

Y

日程信息ID

2

elderly_users

int

10

0

Y

N

0

老人用户

3

old_persons_name

varchar

64

0

Y

N

老人姓名

4

schedule_date

date

10

0

Y

N

安排日期

5

medication_time

varchar

64

0

Y

N

用药时间

6

activity_plan

text

65535

0

Y

N

活动计划

7

remarks

text

65535

0

Y

N

备注信息

8

create_time

datetime

19

0

N

N

CURRENT_TIMESTAMP

创建时间

9

update_time

timestamp

19

0

N

N

CURRENT_TIMESTAMP

更新时间

  1. 系统实现

    1. 登录模块的实现

用户登录验证不再仅限于匹配登录信息和权限,而是引入验证码作为额外验证要素,只有在界面上所有编辑框的数据准确无误的情况下才能成功登录。管理员和前台用户的登录流程是相同的,主要依靠权限字段来识别用户或管理员的角色。

用户登录流程图如下所示。

图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;

        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());

            Duration duration = Duration.ofSeconds(7200L);

            redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);

            // 返回用户信息

            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, "账号或密码不正确");

        }

    }

    1. 用户模块的实现
      1. 注册模块的实现

注册的本质是后台拿到前台的数据,使用的方法是request.getParameter方法,然后拿到的数据再封装到会员实体类中,保存到数据库中。值得注意的是,注册的时候是需要输入合法的字符的,不合法那么则会进行红色报错,这个功能的实现是通过validate框架实现的,本质是封装好了的正则表达式。

用户注册流程图如下所示。

5-3 用户注册流程

用户注册界面如下图所示。

图5-4注册界面

注册关键代码如下:

   /**

     * 注册

     * @param user

     * @return

     */

    @PostMapping("register")

    public Map<String, Object> signUp(@RequestBody User user) {

        // 查询用户

        Map<String, String> query = new HashMap<>();

        Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));

        query.put("username",user.getUsername());

        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);

}     

      1. 入住信息管理模块的实现

老人用户点击“入住信息”按钮,可以对老人用户、老人姓名、房间号码、床位号码、入住日期、备注信息等信息进行查询、修改等操作。

入住信息管理界面如下图所示。

图5-5 入住信息管理界面

      1. 缴费信息管理模块的实现

老人用户在“缴费信息”界面能够对缴费信息进行管理,可以进行查询、修改、支付等操作。

缴费信息管理界面如图所示。

图5-6 缴费信息管理界面

      1. 意见反馈管理模块的实现

护工用户在“意见反馈”界面能够对意见反馈进行管理,可以进行查询、修改等操作。

意见反馈管理界面如图所示。

图5-7 意见反馈管理界面

    1. 后台模块的实现
      1. 用户管理模块的实现

管理员点击“系统用户”界面能够对管理员、老人用户、护工用户进行管理,可以进行添加、删除、查询、修改等操作。

用户管理界面如下图所示。

图5-8用户管理界面

用户管理关键代码如下所示。

@PostMapping("/add")

    @Transactional

    public Map<String, Object> add(HttpServletRequest request) throws IOException {

        service.insert(service.readBody(request.getReader()));

        return success(1);

    }

public Map<String, Object> addMap(Map<String,Object> map){

    service.insert(map);

     return success(1);

 }

      1. 入住信息管理模块的实现

管理员点击“入住信息”界面能够对入住信息进行管理,可以进行添加、删除、查询、修改等操作。

入住信息管理界面如下图所示。

图5-9 入住信息管理界面

入住信息管理关键代码如下:

  @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);

    }

      1. 缴费信息管理模块的实现

管理员点击“缴费信息”界面能够对缴费信息进行管理,可以进行添加、删除、查询、修改以及支付等操作。

缴费信息管理界面如所示。

图5-10 缴费信息管理界面

缴费信息管理关键代码如下所示。

@RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

    }

    public void delete(Map<String,String> query,Map<String,String> config){

        QueryWrapper wrapper = new QueryWrapper<E>();

        toWhereWrapper(query, "0".equals(config.get(FindConfig.GROUP_BY)),wrapper);

        baseMapper.delete(wrapper);

        log.info("[{}] - 删除操作:{}",wrapper.getSqlSelect());

    }

      1. 意见反馈管理模块的实现

管理员点击“意见反馈”界面能够对意见反馈进行管理,可以进行添加、删除、查询、修改以及审核回复等操作。

意见反馈管理界面如所示。

图5-1 意见反馈管理界面

意见反馈管理关键代码如下:

@RequestMapping("/get_list")

    public Map<String, Object> getList(HttpServletRequest request) {

        Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));

        return success(map);

    }

  1. 系统测试

    1. 测试方法

系统的测试方面有两种,一种是黑盒测试,另一种则为白盒测试,黑盒测试通俗来说就是功能方面的测试,我们也称之为需求测试,在黑盒测试的过程中,我们是不知道其开发原理的,只是作为一名使用者对系统进行测试,我们主要是凭借之前的测试经验,取一些临界值,然后通过测试用例来对其进行测试,这种测试方法是最快的查找问题方法,其次我们可以找一些具有代表性的数据,对系统进行用例测试,在黑盒测试的过程中常用的测试工具是winrunner和AutoRunner;白盒测试我们称之为结果测试,也就是逻辑驱动测试,在白盒测试的过程中,我们主要是根据系统开发的原理进行测试的,主要是以开发者的身份去测试这个代码是不是完成了其具体的功能,实现的具体路径对不对,当然这种测试方法是费时费力的,因为每个功能,他的运行路径不止一条,通过对程序当中运行的路径进行测试,检测开发的代码是不是存在bug,有没有实现预期,在白盒测试的过程中常用的测试工具为Jcontract、C++ Test以及CodeWizard等。

    1. 测试用例

登录模块的功能测试:

6.1 登录模块功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

登录模块测试

登录成功的情况

使用者可以通过浏览器进入到养老院管理系统登录界面,输入用户名:admin和密码admin,完成滑动拼图验证后,点击“登录”按钮。

成功登录到管理员管理的界面

正确

登录模块测试

登录失败的情况

使用者可以通过浏览器进入到养老院管理系统登录界面,输入用户名:admin和密码111,完成滑动拼图验证后,点击“登录”按钮。

系统提示“用户名和密码不匹配”

正确

老人信息添加功能测试:

6.2 老人信息添加功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

 学生添加模块测试

学生添加成功的情况

管理员在“系统用户”菜单中点击“老人用户”会显示出所有的老人信息,点击“添加”按钮,输入账号、密码、昵称、手机号码、邮箱等,输入正确的信息后,点击“提交”按钮。

提示添加成功

正确

学生添加模块测试

学生添加失败的情况

管理员在“系统用户”菜单中点击“老人用户”会显示出所有的老人信息,点击“添加”按钮,不输入账号,其他信息正常填写后,点击“提交”按钮。

提示“添加失败,账号不能为空”

正确

查询意见反馈功能模块测试:

6.3 查询意见反馈功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

查询意见反馈功能测试

查询成功的情况

老人用户在菜单栏中点击“意见反馈”,然后互出现自己的意见反馈

查询成功

正确

入住信息添加功能模块测试:

6.4 添加入住信息功能测试表

测试名称

测试功能

操作过程

预期结果

测试结果

 入住信息添加模块测试

入住信息添加成功的情况

管理员点击“入住信息”会显示出所有的护工用户的入住信息,点击“添加”按钮,选择入住信息,输入入住日期,输入正确的信息后,点击“提交”按钮。

提示添加成功

正确

入住信息添加模块测试

入住信息添加失败的情况

管理员点击“入住信息”会显示出所有用户的入住信息,点击“添加”按钮,不选择入住日期,其他信息正常填写后,点击“提交”按钮。

提示“添加失败,护工用户不能为空”

正确

    1. 测试结果

在本章节对养老院管理系统进行了黑白盒测试,并对系统中的部分功能进行了用例分析,能够发现系统还是比较稳定的,系统的所有功能基本可以实现,能够满足管理员和用户对意见反馈的查询、管理的需求。通过测试可以看出在系统的运行过程中,其功能完整,对于输入的错误信息,能够把错误信息提示出来,方便用户操作的时候发现自己输入的信息哪里有错误,进而进行改正,而且系统界面都设有导航栏,操作非常便捷,不需要对使用者进行任何培训,对于企业来说是一个很有价值的系统。

总结与展望

养老院管理系统采用SpringBoot框架开发,系统集成了成熟、强大且易于理解和使用的优点,降低了开发难度。该系统实现了基于SpringBoot的养老院管理系统,将数据操作维护过程转化为电脑操作流程,包括系统用户、健康监测数据、意见反馈数据、入住信息数据和老人护理数据的维护。这帮助用户简化数据操作流程,提高工作效率和盈利能力。

目前完成的养老院管理系统还有许多改进空间。首先是功能方面,用户应具备修改个人信息的功能,因此应增加个人中心功能。另外,增加更多功能将使系统更加丰富多样,如数据分析和未来预测等功能。其次是技术方面的改进,由于对开发框架不够熟悉,系统采用Java页面来管理权限部分,这种方式相对不够灵活。将URL路径记录到数据库并实现增删查改会更好。另外,需要提高对EasyUI的熟练程度,改善视觉效果和用户界面体验。希望未来能对系统进行改进并提升用户体验。

参考文献

[1]Xiao Z ,Ali Y ,Xin W , et al. Sports Work Strategy of College Counselors Based on MySQL Database Big Data Analysis [J]. International Journal of Information Technology and Web Engineering (IJITWE), 2023, 18 (1): 1-14.

[2]尹应荆. JAVA编程语言在计算机软件开发中的应用 [J]. 石河子科技, 2023, (05): 45-47.

[3]Karthik G ,Debashish M ,Jagoda C , et al. Developing a MySQL Database for the Provenance of Black Tiger Prawns (Penaeus monodon). [J]. Foods (Basel, Switzerland), 2023, 12 (14):

[4]岳峰,段政伟. 基于SpringBoot框架的营区手机管控平台设计与实现 [J]. 无线互联科技, 2023, 20 (11): 49-52.

[5]谷建鹏. 基于SpringBoot框架的即时通信系统开发 [J]. 信息与电脑(理论版), 2023, 35 (11): 134-136.

[6]付恩狄,姚明亮,梁宇柔等. 基于JAVA技术的设备绝缘状态自动化监控方法 [J]. 电气自动化, 2023, 45 (02): 36-38+41.

[7]赵将. Java语言在计算机软件开发中的应用 [J]. 数字技术与应用, 2023, 41 (03): 160-162.

[8]卢玉敏. 基于AI智能判别的养老院管理系统[P]. 上海市: CN115662631A, 2023-01-31.

[9]张琴. 养老院智能管理系统的设计与实现 [J]. 信息与电脑(理论版), 2022, 34 (13): 158-160.

[10]高志平. 基于SpringBoot框架与ITIL方法的运维管理系统的设计与实现[D]. 华东师范大学, 2021.

[11]肖新华, 金中养老机构管理系统V5.0. 广西壮族自治区, 广西金中软件集团有限公司, 2021-09-23.

[12]刘欣,李亮亮,牛聪. 基于Vue和SpringBoot框架的流域监管平台的研究和应用[C]// 《中国防汛抗旱》杂志社,中国水利学会减灾专业委员会,水利部防洪抗旱减灾工程技术研究中心(中国水利水电科学研究院防洪抗旱减灾研究中心). 第十一届防汛抗旱信息化论坛论文集. 黄河水利委员会信息中心;郑州黄河河务局;, 2021: 5.

[13]商无冬. 基于蓝牙Mesh的物联网养老院管理系统[D]. 南京邮电大学, 2020.

[14]Yu L ,Li C ,Wei L , et al. Marine biological monitoring and managing system based on Java technology [J]. MIPPR 2019: REMOTE SENSING IMAGE PROCESSING, GEOGRAPHIC INFORMATION SYSTEMS, AND OTHER APPLICATIONS, 2020, 11432

[15]马瑞. 大数据背景下养老院生活设施和环境的信息管理 [J]. 计算机产品与流通, 2019, (09): 164.

[16]沈梦琦. 基于物联网技术的养老院管理系统 [J]. 计算机产品与流通, 2019, (08): 122.

致  谢

在完成本论文之际,我要衷心感谢我的指导老师。在指导老师的网页设计课上,我学到了许多知识,这不仅对我的实习经历打下了良好基础,也在我的设计过程中提供了宝贵的帮助。指导老师给予我许多设计建议,并耐心指导我改进设计细节,分享了写论文的心得,时刻鼓励我前行。同时,我要感谢教导我完善项目前端的同学。在学习过程中,我边学边做,在开始阶段遇到许多困惑,但前端开发同学给予了我耐心的指导,帮助我顺利完成项目。在后端开发过程中,我也得到了同学们的帮助和技术讲解,使我能更好地完成论文。衷心感谢那些帮助过我的同学和一直指导教导我的老师们,祝愿大家事业蒸蒸日上。

请关注点赞+私信博主,免费领取项目源码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值