博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐进主页热门专栏推荐订阅⭐ 订阅收藏起来,防止下次找不到
🔎千套Java / PHP / nod.js / asp.net/ Python等项目实战更新中~
🔎百套小程序APP项目实战更新中~
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,给你参考意见,需要开题模板的可以私信留言告诉我❤️文末获取源码联系❤️ ⚠️一定要先收藏⚠️
4 系统设计
4.1 系统体系结构
管理员管理用例图4-1所示。
图4-1 管理员管理用例图
登录管理用例图4-2所示。
图4-2 登录管理用例图
图4-3 家属用例图
图4-4 护工用例图
图4-5 管理员用例图
4.2 系统总功能结构设计
系统按照用户的实际需求开发而来,贴近生活。从管理员通过正确的账号的密码进入系统,可以使用相关的系统应用。管理员总体负责整体系统的运行维护,统筹协调。
系统整体模块设计:系统分为管理员和家属、护工三大角色,系统管理员有最大的权限,总体功能展示如图;
图4-6 系统总体功能图
4.3开发流程设计
系统开发流程的分析是一个至关重要的过程,它是指通过系统的设计开发目的初衷、面向使用用户的范围、系统运行和操作的安全性、各种问题的处理以及后台数据的分析能力等各个角度,来对智慧养老院管理系统进行设计、开发、搭建和调节,以保证该系统能够顺利的完成,达到预期的工作状态。上述每个环节、每个步骤一开始就要下足功夫,从各个方面、各个角度进行调查研究,进行大量的测试和评估,来保证智慧养老院管理系统的正常和该系统的后台数据库的完整性以及安全性,从而把控系统所包含信息的安全性、确保信息进入、出口顺利过渡。然后,对系统和数据进行操作和分析,根据每一步的执行步骤,完成信息的流程图制作过程。
系统的开发对管理模型和系统应用中的数据库进行了分类,创建代码,以及系统测试,如图4-7所显示。
图4-7开发系统流程图
4.4 数据库设计原则
学习程序设计,如果要了解数据库管理系统或者是根据需求而制定的系统接口,就必须创建一种数据库管理系统的模式,用来保存数据资料,这样当在应用编程过程中时候,就不需要再向操作系统页面上加载信息,进而增加了整个系统的工作效率。信息库管理系统中保存着许多数据,应该说是一个管理信息系统建设的中心和基础,而信息库管理系统也为管理信息系统建设提出了新增、删除、更改和搜索的操作功能,使管理信息系统建设能够迅速地查询所需要的数据,而不会直接从程序代码中查找。信息库管理系统通过将信息表的各个组成部分按照特定的方法准确地合并,排序和组成信息库管理系统。
通过对智慧养老院管理系统的主要功能信息进行规划并分为若干功能实体信息,本系统的主要功能实体E-R图如图4-8、图4-9、图4-10、图4-11。
4.5 数据表
把按照数据库理念建立的E-R图,转换为国际关系信息库。在关联数据库中,统计关联主要由统计表所构成,但是表的构成主要体现在表格的数文字段上。如下表所示。
表4-1:关于我们
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 标题 | ||
subtitle | varchar | 200 | 副标题 | ||
content | longtext | 4294967295 | 内容 | ||
picture1 | longtext | 4294967295 | 图片1 | ||
picture2 | longtext | 4294967295 | 图片2 | ||
picture3 | longtext | 4294967295 | 图片3 |
表4-2:留言板
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 留言人id | |||
username | varchar | 200 | 用户名 | ||
avatarurl | longtext | 4294967295 | 头像 | ||
content | longtext | 4294967295 | 留言内容 | ||
cpicture | longtext | 4294967295 | 留言图片 | ||
reply | longtext | 4294967295 | 回复内容 | ||
rpicture | longtext | 4294967295 | 回复图片 |
表4-3:每月餐饮
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
riqi | date | 日期 | |||
caiyaoxiangqing | longtext | 4294967295 | 菜肴详情 | ||
qita | longtext | 4294967295 | 其他 | ||
jiashuzhanghao | varchar | 200 | 家属账号 | ||
jiashuxingming | varchar | 200 | 家属姓名 | ||
laorenxingming | varchar | 200 | 老人姓名 | ||
beizhu | varchar | 200 | 备注 | ||
hugonggonghao | varchar | 200 | 护工工号 | ||
hugongxingming | varchar | 200 | 护工姓名 | ||
feiyong | float | 费用 | |||
ispay | varchar | 200 | 是否支付 | 未支付 |
表4-4:老人入住
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
ruzhubianhao | varchar | 200 | 入住编号 | ||
fangjianhao | varchar | 200 | 房间号 | ||
loufangmingcheng | varchar | 200 | 楼房名称 | ||
chuangweihao | varchar | 200 | 床位号 | ||
laorenxingming | varchar | 200 | 老人姓名 | ||
laorenzhaopian | longtext | 4294967295 | 老人照片 | ||
laorenxingbie | varchar | 200 | 老人性别 | ||
laorennianling | varchar | 200 | 老人年龄 | ||
jiashuzhanghao | varchar | 200 | 家属账号 | ||
jiashuxingming | varchar | 200 | 家属姓名 | ||
jiashushouji | varchar | 200 | 家属手机 | ||
guanxi | varchar | 200 | 关系 | ||
hugonggonghao | varchar | 200 | 护工工号 | ||
hugongxingming | varchar | 200 | 护工姓名 | ||
hulijibie | varchar | 200 | 护理级别 | ||
ruzhushijian | date | 入住时间 | |||
tuifangzhuangtai | varchar | 200 | 退房状态 | ||
ruzhufeiyong | float | 入住费用 | |||
hulifeiyong | float | 护理费用 | |||
ispay | varchar | 200 | 是否支付 | 未支付 |
表4-5:药品信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
yaopinbianhao | varchar | 200 | 药品编号 | ||
yaopinmingcheng | varchar | 200 | 药品名称 | ||
jixing | varchar | 200 | 剂型 | ||
picihao | varchar | 200 | 批次号 | ||
shengchanriqi | date | 生产日期 | |||
yaopinshuoming | longtext | 4294967295 | 药品说明 | ||
shengchandanwei | varchar | 200 | 生产单位 | ||
yaopintupian | longtext | 4294967295 | 药品图片 | ||
yaopinjiage | float | 药品价格 |
表4-6:家属
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
jiashuzhanghao | varchar | 200 | 家属账号 | ||
mima | varchar | 200 | 密码 | ||
jiashuxingming | varchar | 200 | 家属姓名 | ||
xingbie | varchar | 200 | 性别 | ||
jiashushouji | varchar | 200 | 家属手机 | ||
shenfenzheng | varchar | 200 | 身份证 | ||
jiatingzhuzhi | varchar | 200 | 家庭住址 | ||
touxiang | longtext | 4294967295 | 头像 |
表4-7:外出报备
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
jiashuzhanghao | varchar | 200 | 家属账号 | ||
laorenxingming | varchar | 200 | 老人姓名 | ||
laorenzhaopian | longtext | 4294967295 | 老人照片 | ||
hugonggonghao | varchar | 200 | 护工工号 | ||
hugongxingming | varchar | 200 | 护工姓名 | ||
waichudidian | varchar | 200 | 外出地点 | ||
waichushijian | datetime | 外出时间 | |||
huilaishijian | datetime | 回来时间 |
表4-8:护工
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
hugonggonghao | varchar | 200 | 护工工号 | ||
mima | varchar | 200 | 密码 | ||
hugongxingming | varchar | 200 | 护工姓名 | ||
xingbie | varchar | 200 | 性别 | ||
hugongzhaopian | longtext | 4294967295 | 护工照片 | ||
nianling | int | 年龄 | |||
hugongdianhua | varchar | 200 | 护工电话 | ||
minzu | varchar | 200 | 民族 | ||
xueli | varchar | 200 | 学历 | ||
hunfou | varchar | 200 | 婚否 | ||
hulijibie | varchar | 200 | 护理级别 |
表4-9:用户表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
username | varchar | 100 | 用户名 | ||
password | varchar | 100 | 密码 | ||
role | varchar | 100 | 角色 | 管理员 | |
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
表4-10:访客记录
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
fangjianhao | varchar | 200 | 房间号 | ||
ruzhubianhao | varchar | 200 | 入住编号 | ||
loufangmingcheng | varchar | 200 | 楼房名称 | ||
laorenxingming | varchar | 200 | 老人姓名 | ||
jiashuzhanghao | varchar | 200 | 家属账号 | ||
jiashuxingming | varchar | 200 | 家属姓名 | ||
hugonggonghao | varchar | 200 | 护工工号 | ||
hugongxingming | varchar | 200 | 护工姓名 | ||
fangkexingming | varchar | 200 | 访客姓名 | ||
lianxifangshi | varchar | 200 | 联系方式 | ||
fangwenshijian | datetime | 访问时间 |
表4-11:退房登记
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
fangjianhao | varchar | 200 | 房间号 | ||
loufangmingcheng | varchar | 200 | 楼房名称 | ||
chuangweihao | varchar | 200 | 床位号 | ||
ruzhubianhao | varchar | 200 | 入住编号 | ||
laorenxingming | varchar | 200 | 老人姓名 | ||
laorenzhaopian | longtext | 4294967295 | 老人照片 | ||
jiashuzhanghao | varchar | 200 | 家属账号 | ||
jiashuxingming | varchar | 200 | 家属姓名 | ||
hugonggonghao | varchar | 200 | 护工工号 | ||
hugongxingming | varchar | 200 | 护工姓名 | ||
ruzhushijian | varchar | 200 | 入住时间 | ||
tuifangshijian | date | 退房时间 | |||
tuifangbeizhu | longtext | 4294967295 | 退房备注 |
表4-12:房间资料
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
fangjianhao | varchar | 200 | 房间号 | ||
loufangmingcheng | varchar | 200 | 楼房名称 | ||
fangjianmianji | varchar | 200 | 房间面积 | ||
fangjiansheshi | longtext | 4294967295 | 房间设施 | ||
fangjiantupian | longtext | 4294967295 | 房间图片 |
表4-13:token表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
userid | bigint | 用户id | |||
username | varchar | 100 | 用户名 | ||
tablename | varchar | 100 | 表名 | ||
role | varchar | 100 | 角色 | ||
token | varchar | 200 | 密码 | ||
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP | ||
expiratedtime | timestamp | 过期时间 | CURRENT_TIMESTAMP |
表4-14:配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
name | varchar | 100 | 配置参数名称 | ||
value | varchar | 100 | 配置参数值 |
表4-15:关于我们
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 标题 | ||
subtitle | varchar | 200 | 副标题 | ||
content | longtext | 4294967295 | 内容 | ||
picture1 | longtext | 4294967295 | 图片1 | ||
picture2 | longtext | 4294967295 | 图片2 | ||
picture3 | longtext | 4294967295 | 图片3 |
表4-16:事故记录
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
shigumingcheng | varchar | 200 | 事故名称 | ||
shigudidian | varchar | 200 | 事故地点 | ||
shiguyuanyin | varchar | 200 | 事故原因 | ||
yanzhongxing | varchar | 200 | 严重性 | ||
shigushijian | datetime | 事故时间 |
表4-17:床位
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
fangjianhao | varchar | 200 | 房间号 | ||
loufangmingcheng | varchar | 200 | 楼房名称 | ||
chuangweihao | varchar | 200 | 床位号 | ||
chuangweizhuangtai | varchar | 200 | 床位状态 |
表4-18:入院指南
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
biaoti | varchar | 200 | 标题 | ||
fengmiantupian | longtext | 4294967295 | 封面图片 | ||
fabushijian | date | 发布时间 | |||
zhuyishixiang | varchar | 200 | 注意事项 | ||
faburen | varchar | 200 | 发布人 | ||
neirong | longtext | 4294967295 | 内容 |
表4-19:病历档案
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
laorenxingming | varchar | 200 | 老人姓名 | ||
yaowuguominshi | longtext | 4294967295 | 药物过敏史 | ||
jiazuyichuanshi | longtext | 4294967295 | 家族遗传史 | ||
shentiqingkuang | longtext | 4294967295 | 身体情况 | ||
hugonggonghao | varchar | 200 | 护工工号 | ||
hugongxingming | varchar | 200 | 护工姓名 | ||
tianjiashijian | date | 添加时间 | |||
xianbingshi | longtext | 4294967295 | 现病史 | ||
jiwangshi | longtext | 4294967295 | 既往史 | ||
jiazushi | longtext | 4294967295 | 家族史 | ||
jiashuzhanghao | varchar | 200 | 家属账号 | ||
jiashuxingming | varchar | 200 | 家属姓名 |
表4-20:系统公告
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
title | varchar | 200 | 标题 | ||
introduction | longtext | 4294967295 | 简介 | ||
picture | longtext | 4294967295 | 图片 | ||
content | longtext | 4294967295 | 内容 |
5.1前台系统模块实现
当游客打开系统的网址后,首先看到的就是首页界面。在这里,游客能够看到智慧养老院管理系统的导航条显示首页、健身器材、租赁公告、后台管理、在线客服、个人中心等,系统首页界面如图5-1所示:
图5-1 系统首页界面
当用户进入系统进行相关操作前必须进行注册、登录,用户注册、用户登录界面如图5-2所示:
图5-2 用户注册、用户登录界面
用户点击入院指南,在入院指南页面的输入栏中填写标题,进行查询,还可以查看标题、发布时间、注意事项、发布人、封面等信息,如图5-3所示:
图5-3入院指南页面
在个人中心页面可以更新个人详细信息等操作,如图5-4所示:
图5-4个人中心页面
5.2后台管理员模块实现
管理员登录,在登录页面正确输入用户名和密码、角色后,进入操作系统进行操作;如图5-5所示。
图5-5管理员登录界面
管理员进入系统主页面,主要功能包括对系统首页、个人中心、护工管理、家属管理、房间资料管理、床位管理、老人入住管理、外出报备管理、退房登记管理、每月餐饮管理、事故记录管理、访客记录管理、病历档案管理、入院指南管理、药品信息管理、管理员管理、留言板、系统管理等进行操作。管理员主页面如图5-6所示:
图5-6 管理员主界面
JAVA后端代码实现
package com.controller;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
/**
* 登录相关
*/
@RequestMapping("users")
@RestController
public class UserController{
@Autowired
private UserService userService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@PostMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@PostMapping(value = "/register")
public R register(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 退出
*/
@GetMapping(value = "logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null) {
return R.error("账号不存在");
}
user.setPassword("123456");
userService.update(user,null);
return R.ok("密码已重置为:123456");
}
/**
* 列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/list")
public R list( UserEntity user){
EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
ew.allEq(MPUtil.allEQMapPre( user, "user"));
return R.ok().put("data", userService.selectListView(ew));
}
/**
* 信息
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") String id){
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
UserEntity user = userService.selectById(id);
return R.ok().put("data", user);
}
/**
* 保存
*/
@PostMapping("/save")
public R save(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody UserEntity user){
// ValidatorUtils.validateEntity(user);
UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
return R.error("用户名已存在。");
}
userService.updateById(user);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
userService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
}
源码获取
大家点赞、收藏、关注 ,让更多需要的同学看到
⭐进主页热门专栏推荐订阅⭐ 订阅收藏起来,防止下次找不到
🔎千套Java / PHP / nod.js / asp.net/ Python等项目实战更新中~
🔎百套小程序APP项目实战更新中~👇下方有我的微信名片👇