基于javaweb的大学生健康档案管理系统(java+jpa+swagger-ui+springboot+vue+mysql)

基于javaweb的大学生健康档案管理系统(java+jpa+swagger-ui+springboot+vue+mysql)

运行环境

Java≥8、MySQL≥5.7、Node.js≥10

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行

前端:WebStorm/VSCode/HBuilderX等均可

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

20220819215632

20220819215633

20220819215634

20220819215635

20220819215636

20220819215637

基于javaweb+mysql的大学生健康档案管理系统(java+jpa+swagger-ui+springboot+vue+mysql)

项目介绍

大学生健康档案管理系统,目前演示数据中主要包括三种角色:管理员、医生、学生;其中管理员包含最高权限;可对体检表,健康文档,体检数据图标展示等进行管理,以及权限管理,指定不同科室医生进行不同的操作。此项目为前后端分离项目,后端API接口为SpringBoot项目;前端为vue项目;

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 6.数据库:MySql 8.0版本;

软件架构说明

  • springboot - mysql 8.0及以上 - mybatis - jpa - swagger-ui

  • lombok 注:必须安装

安装教程

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 将项目中application.yml配置文件中的数据库配置改为自己的配置

  2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行后端项目;

配合前端项目

1.运行 npm install

2.在运行 npm run serve 即可 3.运行项目成功后,在浏览器中输入地址:http://localhost:8083 即可登录; 管理员账号:admin  密码:123456 外科医生账号:waike 密码:123 学生账号:631507030104  密码:123

医生管理控制层:

/**

  • @author:yy

*/

package vip.penint.dandp.controller;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.web.bind.annotation.*;

import vip.penint.dandp.entity.User;

import vip.penint.dandp.service.IUserService;

import vip.penint.dandp.utils.MD5Util;

import vip.penint.dandp.utils.QueryRequest;

import vip.penint.dandp.utils.ResultVo;

import javax.servlet.http.HttpServletRequest;

import java.util.Date;

@RestController

@RequestMapping(“/adminApi/doctor”)

public class DoctorController {

@Autowired

private IUserService userService;

@GetMapping(“/list”)

public ResultVo list(QueryRequest queryRequest, User user) {

return ResultVo.oK(userService.queryDoctorFuzz(queryRequest, user));

/**

  • 修改账户状态,禁用或者取消

  • @param user

  • @param request

  • @return

*/

@PutMapping(“/changeStatus”)

public ResultVo changeStatus(@RequestBody User user, HttpServletRequest request) {

userService.updateById(user);

return ResultVo.oK();

/**

  • 根据ID查询用户详情

  • @param userId

  • @return

*/

@GetMapping(“/{userId}”)

public ResultVo getUserInfo(@PathVariable Integer userId) {

User info = userService.getById(userId);

return ResultVo.oK(info);

/**

  • 新增用户

*/

@PostMapping

public ResultVo add(@RequestBody User user) {

// 查询用户名是否存在数据库中

LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();

lambdaQueryWrapper.eq(User::getUsername, user.getUsername());

User entity = userService.getOne(lambdaQueryWrapper);

if (entity == null) {

user.setCreateTime(new Date());

// 设置默认密码1234qwer

user.setPassword(MD5Util.md5(“1234qwer”));

user.setRoleId(1);

userService.save(user);

return ResultVo.oK(“用户:” + user.getUsername() + “新增成功,默认密码为:” + “1234qwer”);

} else {

return ResultVo.failed(201, “用户新增失败,用户名:” + user.getUsername() + “已存在”);

/**

  • 删除用户

*/

@DeleteMapping(“/{userIds}”)

public ResultVo remove(@PathVariable Integer[] userIds) {

for (Integer userId : userIds) {

userService.removeById(userId);

return ResultVo.oK();

return null;

/**

  • 修改用户

  • @return

*/

@PutMapping

public ResultVo edit(@RequestBody User user) {

user.setModifyTime(new Date());

userService.updateById(user);

return ResultVo.oK();

/**

  • 重置密码

*/

@PutMapping(“/resetPwd”)

public ResultVo reSetPwd(@RequestBody User user) {

user.setPassword(MD5Util.md5(user.getPassword()));

userService.updateById(user);

return ResultVo.oK();

登录用户控制层:

/**

  • @author: yy

*/

@RestController

@RequestMapping(“/adminApi/common”)

public class CommonController {

@Autowired

private IUserService userService;

@Autowired

private IDepartmentService departmentService;

@PostMapping(“/login”)

public Object adminLogin(String username, String password) {

User user = userService.selectByUsername(username);

if (user == null) {

return ResultVo.failed(201, “账号不存在,请检查账号是否正确或联系管理员”);

} else {

if (!MD5Util.md5(password).equals(user.getPassword())) {

return ResultVo.failed(201, “密码错误”);

} else {

JSONObject obj = new JSONObject();

obj.put(“userInfo”, user);

obj.put(“token”, TokenUtil.getAdminToken(user));

return ResultVo.oK(obj);

@ApiOperation(“根据Token获取用户信息”)

@GetMapping(“/getUserInfo”)

@AdminLoginToken

public Object getUserInfo(HttpServletRequest request) {

User user = userService.getById(TokenUtil.getAdminUserId(request.getHeader(“Authorization”)));

if (user == null) {

return ResultVo.failed(201, “账号不存在,请检查账号是否正确或联系管理员”);

} else {

JSONObject obj = new JSONObject();

obj.put(“userInfo”, user);

obj.put(“token”, TokenUtil.getAdminToken(user));

return ResultVo.oK(obj);

@ApiOperation(“退出登录”)

@GetMapping(“/outLogin”)

public Object outLogin() {

return ResultVo.oK();

@ApiOperation(“文件上传”)

@PostMapping(“/file”)

public ResultVo uploadFile(@RequestParam(“file”) MultipartFile file) {

String uploadUrl = FileUpload.uploadAccessory(file);

if (uploadUrl != null && uploadUrl != “”) {

return ResultVo.oK(uploadUrl);

return ResultVo.failed(500, “失败”);

@PostMapping(“/getMeInfo”)

@AdminLoginToken

public ResultVo getMeInfo(HttpServletRequest request) {

User user = userService.getById(TokenUtil.getAdminUserId(request.getHeader(“Authorization”)));

return ResultVo.oK(user);

/**

  • 判断库中用户名 有没有被使用

  • @param username

  • @return

*/

@GetMapping(“/checkUsername/{username}”)

public ResultVo checkUsername(@PathVariable String username) {

LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();

lambdaQueryWrapper.eq(User::getUsername, username);

if (userService.getOne(lambdaQueryWrapper) != null) {

return ResultVo.oK(true);

} else {

return ResultVo.oK(false);

/**

  • 判断请求方法的该用户原密码是否正确

  • @param password

  • @return

*/

@GetMapping(“/checkPassword/{password}”)

public ResultVo checkPassword(@PathVariable String password, HttpServletRequest request) {

Integer userId = TokenUtil.getAdminUserId(request.getHeader(“Authorization”));

String encrypt = MD5Util.md5(password);// 用户输入的密码加密字符串

if (userService.getById(userId).getPassword().equalsIgnoreCase(encrypt)) {

return ResultVo.oK(true);

} else {

return ResultVo.oK(false);

/**

  • 获取科室下拉框

*/

@GetMapping(“/getDepartment”)

public ResultVo getDepartment() {

LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();

lambdaQueryWrapper.select(Department::getId, Department::getDepName);

return ResultVo.oK(departmentService.list(lambdaQueryWrapper));

/**

  • 通过科室id查询医生

*/

@GetMapping(“/getDoctor/{id}”)

public ResultVo getDoctor(@PathVariable Integer id) {

LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();

lambdaQueryWrapper.select(User::getNickName, User::getUserId);

lambdaQueryWrapper.eq(User::getDepId, id);

return ResultVo.oK(userService.list(lambdaQueryWrapper));

@PostMapping(“/registerDoctor”)

public ResultVo registerStudent(User user) {

user.setPassword(MD5Util.md5(user.getPassword()));

user.setCreateTime(new Date());

user.setRoleId(1);

userService.save(user);

return ResultVo.oK();

@PostMapping(“/registerPatients”)

public ResultVo registerTeacher(User user) {

user.setPassword(MD5Util.md5(user.getPassword()));

user.setCreateTime(new Date());

user.setRoleId(2);

userService.save(user);

return ResultVo.oK();

/**

  • 忘记密码

*/

@PutMapping(“/forgotPassword”)

public ResultVo forgotPassword(User sysUser) {

LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();

lambdaQueryWrapper.eq(!StringUtils.isEmpty(sysUser.getUsername()), User::getUsername, sysUser.getUsername());

// 先判断用户名在不在库中

User user = userService.getOne(lambdaQueryWrapper);

if (user != null) {

sysUser.setPassword(MD5Util.md5(sysUser.getPassword()));

sysUser.setUserId(user.getUserId());

userService.updateById(sysUser);

return ResultVo.oK();

} else {

return ResultVo.failed(201, “请输入正确的用户名”);

/**

  • 通过用户名查询医生详情,科室

*/

@GetMapping(“/getDoctorInfoByUsername/{username}”)

public ResultVo getDoctorInfoByUsername(@PathVariable String username){

return ResultVo.oK(userService.getDoctorInfoByUsername(username));

用户管理控制层:

/**

  • 系统用户 前端控制器

  • @author yy

*/

@RestController

@RequestMapping(“/adminApi/user”)

public class UserController {

@Autowired

private IUserService userService;

@GetMapping(“/list”)

public ResultVo list(QueryRequest queryRequest, User user) {

return ResultVo.oK(userService.queryFuzz(queryRequest, user));

/**

  • 修改账户状态,禁用或者取消

  • @param user

  • @return

*/

@PutMapping(“/changeStatus”)

public ResultVo changeStatus(@RequestBody User user) {

userService.updateById(user);

return ResultVo.oK();

/**

  • 根据ID查询用户详情

  • @param userId

  • @return

*/

@GetMapping(“/{userId}”)

public ResultVo getUserInfo(@PathVariable Integer userId) {

User info = userService.getById(userId);

return ResultVo.oK(info);

/**

  • 新增用户

*/

@PostMapping

public ResultVo add(@RequestBody User entity) {

// 查询用户名是否存在数据库中

LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();

lambdaQueryWrapper.eq(User::getUsername, entity.getUsername());

User user = userService.getOne(lambdaQueryWrapper);

if (user == null) {

entity.setCreateTime(new Date());

// 设置默认密码1234qwer

entity.setPassword(MD5Util.md5(“1234qwer”));

entity.setRoleId(0);

userService.save(entity);

// 插入返回ID

return ResultVo.oK(“用户:” + entity.getUsername() + “新增成功,默认密码为:1234qwer”);

} else {

return ResultVo.failed(201, “用户新增失败,用户名:” + entity.getUsername() + “已存在”);

/**

  • 删除用户

*/

@DeleteMapping(“/{userIds}”)

public ResultVo remove(@PathVariable Integer[] userIds) {

boolean flag = false;

for (Integer userId : userIds) {

User entity = userService.getById(userId);

if (!entity.getUsername().equals(“admin”)) {

userService.removeById(userId);

} else {

flag = true;

if (flag) {

return ResultVo.failed(201, “admin用户不能删除”);

} else {

return ResultVo.oK();

/**

  • 修改用户

*/

@PutMapping

public ResultVo edit(@RequestBody User user) {

userService.updateById(user);

return ResultVo.oK();

/**

  • 重置密码

*/

@PutMapping(“/resetPwd”)

public ResultVo reSetPwd(@RequestBody User user) {

user.setPassword(MD5Util.md5(user.getPassword()));

userService.updateById(user);

return ResultVo.oK();

/**

  • 个人中心配置

*/

@GetMapping(“/profile”)

public ResultVo profile(HttpServletRequest request) {

Integer userId = TokenUtil.getAdminUserId(request.getHeader(“Authorization”));

return ResultVo.oK(userService.getById(userId));

/**

  • 个人中心配置

*/

@PutMapping(“/profile”)

public ResultVo updateProfile(@RequestBody User user) {

userService.updateById(user);

return ResultVo.oK();

@PutMapping(“/profile/updatePwd”)

public ResultVo profileUpdatePwd(QueryRequest queryRequest, HttpServletRequest request) {

Integer userId = TokenUtil.getAdminUserId(request.getHeader(“Authorization”));

User user = userService.getById(userId);

if (user.getPassword().equalsIgnoreCase(MD5Util.md5(queryRequest.getOldPassword()))) {

User u = new User();

u.setUserId(userId);

u.setPassword(MD5Util.md5(queryRequest.getNewPassword()));

userService.updateById(u);

return ResultVo.oK();

} else {

return ResultVo.failed(201, “原密码不正确”);

@PostMapping(“/profile/avatar”)

public ResultVo avatarUpload(@RequestParam(“avatarfile”) MultipartFile file, HttpServletRequest request) {

Integer userId = TokenUtil.getAdminUserId(request.getHeader(“Authorization”));

JSONObject result = UploadFileUtils.upload(file);

if (result.getInteger(“status”) == 200) {

if (result.getBoolean(“isImage”)) {

User user = new User();

user.setAvatar(result.getString(“requestUrl”));

user.setUserId(userId);

userService.updateById(user);

// 缓存

return ResultVo.oK(result.getString(“requestUrl”));

} else {

return ResultVo.failed(201, “不是图片文件”);

} else {

return ResultVo.failed(201, “文件上传失败,请联系管理员”);


  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
管理信息系统课程设计指导书 设计要求: 1. 学生必须修完课程设计的先修课程(即数据库原理及应用),才有资格做课程设计。 2. 每个学生从题目一、二中任选一个,同一个教学班选相同题目的不得再选相同项目,请各教学班在课程设计进行之前上报题目及项目名。 3. 开发工具和环境不限(可以是Visual C++.Net、Visual C#.Net、Java等),开发出的系统的形式不限(可以是Win界面,也可以是Web界面),使用的数据库不限(可以是SQL Server或Oracle)。 4. 设计报告正文字数不少于0.4万字(不包括附录) 5. 设计报告要求手写,层次清楚、整洁规范、不得相互抄袭,凡正文内容有整段相同者一律以作弊论处。 6. 明确课程设计的目的和重要性,认真领会课程设计的题目,读懂课程设计指导书的要求,学会设计的基本方法与步骤,积极认真地做好准备工作。 7. 课程设计中,学会如何运用先修知识与收集、归纳相关资料解决具体问题的方法。 严格要求自己,自信但不固执,独立完成课程设计任务,善于接受教师的指导和听取同学的意见,有意识地树立严谨的科学作风,要独立思考,刻苦钻研,勇于创新,按时完成课程设计任务。 步骤一:详细调查 根据附录一项目任选一个(也可以根据当地实际情况自选项目),针对待开发的项目,对各相关业务部门进行详细调查,写出详细调查报告。 详细调查的内容涉及到组织功能的多个方面,可大致归纳为9类问题: ① 组织机构和功能业务; ② 组织目标和发展战略; ③ 工艺流程和产品构成; ④ 数据与数据流程; ⑤ 业务流程与工作形式; ⑥ 管理方式和具体业务的管理方法; ⑦ 决策方式和决策过程; ⑧ 可用资源和限制条件; ⑨ 现存问题和改进意见。 注意事项: 1.必要时,需要印制调查表,附录二是设计问卷时常用的一些问题,在实际工作中可根据不同的行业及岗位特点参考使用。 2.在详细调查了解每个具体工作岗位业务的同时,还必须收集与该业务有关的所有报表、文件、技术文档等。可要求用户将其附在调查问卷之后,并询问用户对当前的报表及其它文档的满意程度,是否需要修改以及如何修改等问题。 步骤二:系统分析 根据一现有系统(可以参照附录一项目,最好根据当地实际情况自选项目),分析各系统的业务流程。 (1)写出详细分析过程 (2)画出数据流程图 (3)编写数据字典 附录一: (1) 建立一个“健康档案管理系统”,使用计算机实现对学校学生健康信息的管理。要求不仅可用于一般的健康情况查询,而且可以对这些健康信息进行各种必要的数学统计和分析。系统主要的健康信息来自病历和体检,系统主要功能有: ① 登录:录入学生的健康档案。如果该学生以前从未在本医院登记过,系统要告诉用户有关信息,经确认后再行登记注册; ② 修改:修改一个学生的健康档案记录; ③ 删除:删除学生的健康档案记录。删除前应先确认以防止误删; ④ 查询:可以组合各种条件进行查询,显示学生的健康信息并打印健康文件报表; ⑤ 统计:对学生的基本健康状况进行各种必要的统计和分析。 (2) 设计一个布告栏管理系统,主要功能有: ① 登录一个新的布告项目; ② 撤销一个已登记的布告项目; ③ 按多种方式查询布告项目,要求信息查询显示由粗及细逐层深入。 (3) 设计一个实用的教学事务管理系统,处理教学的各种日常事务,如学生注册、选课、成绩登录,并可打印各种类型的通知单和报表。 (4) 图书馆要设计一个图书借阅系统,其功能包括: ① 借书:读者填写借书单,查询库存后,返回有无此书信息给读者,如有书,则办理借阅手续; ② 还书:用光笔读入图书上条形码,办理还书手续; ③ 赔偿与罚款:发生丢失、损坏图书或过期等情况时,要赔偿与罚款。 (5) 设计一个实用的工资管理程序,模拟会计的活动,实施工资帐目的存储、查询和更改,系统要求有高度的可靠性和安全性,并能按规定的格式打印工资报表。 (6) 设计一个实用的小型商店销售管理系统,其功能包括: ① 登记收入支出。 ② 统计每日或每周的销售情况,按规定格式打印销售报表。 ③ 允许多种方式查询货物情况。 ④ 按货物销售情况,提前发出预报。 (7) 学生自己拟定题目,但至少应包括以下功能实现: ① 用户登录/退出。 ② 单表的插入、修改和删除功能实现。 ③ 多表的连接查询和统计。 ④ 更高级的可以提供查询结果的预览、打印、导出到Excel等功能。 附录二:设计问卷调查的参考问题 1.你的工作岗位是什么? 2.你的工作性质是什么? 3.你的工作任务是什么? 4.你每天是怎样安排工作时间的? 5.你的工作结果与前/后续工作如何联系? 6.你所接触的报表和数据有哪些?满意程度如何?(将报表样张附后)) 7.你所在的工作岗位是否恰当?工作量如何? 8.你的工作计划不能合理安排的原因是什么? 9.你所在的工作岗位存在什么问题? 10.你通常采用什么手段来提高工作效率? 11.如果增加激励(如新技术、培训等),部门的工作效率是否会提高? 12.从有效组织生产的角度出发,你的权限是否适当? 13.你认为影响本企业经营效率的关键问题是什么? 14.从全局利益出发,你认为现有的管理体制是否合理? 15.你认为提高生产产量的潜力在哪里? 16.你认为现存管理体制的问题在哪里? 17.有效降低生产成本的途径有哪些? 18.信息系统的开发在本单位是否有必要? 19.你认为新的信息系统应该重点解决哪些问题? 20.你所在的工作岗位和你所接触的管理岗位可用哪些定量化的管理方法来提高工作效率? 21.在你所从事或了解的管理和决策工作中,哪些可用计算机来处理?哪些不能? 22.在你所从事或了解的管理工作中,决策效益应从哪些方面去衡量? 23.如果建立计算机信息处理系统,你愿意学习操作并经常使用吗?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值