基于java+springmvc+mybatis+vue+mysql的大学校医院信息管理系统

news2024/12/26 23:16:35

项目介绍

本系统采用java语言开发,后端采用ssm框架,前端采用vue技术,数据库采用mysql进行数据存储。

前台:
首页、校医、药品信息、疫情公告、个人中心、后台管理

后台:
首页、个人中心、在线问诊管理、问诊回复管理、线上挂号管理、病例记录管理、健康上报管理、离校申请管理、药方登记管理

开发环境

开发语言:java
数据库 :mysql
系统架构:b/s
后端框架:ssm
前端框架:Vue
开发工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序/vue/爬虫/c#/asp.net

系统截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

部分代码

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
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.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.NewsEntity;
import com.entity.view.NewsView;

import com.service.NewsService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 疫情公告
 * 后端接口
 */
@RestController
@RequestMapping("/news")
public class NewsController {
    @Autowired
    private NewsService newsService;



    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,NewsEntity news,
		HttpServletRequest request){
        EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
		PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));

        return R.ok().put("data", page);
    }

    /**
     * 前端列表
     */
	@IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,NewsEntity news, HttpServletRequest request){
        EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
		PageUtils page = newsService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, news), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( NewsEntity news){
       	EntityWrapper<NewsEntity> ew = new EntityWrapper<NewsEntity>();
      	ew.allEq(MPUtil.allEQMapPre( news, "news"));
        return R.ok().put("data", newsService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(NewsEntity news){
        EntityWrapper< NewsEntity> ew = new EntityWrapper< NewsEntity>();
 		ew.allEq(MPUtil.allEQMapPre( news, "news"));
		NewsView newsView =  newsService.selectView(ew);
		return R.ok("查询汉服资讯成功").put("data", newsView);
    }

    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        NewsEntity news = newsService.selectById(id);
        return R.ok().put("data", news);
    }

    /**
     * 前端详情
     */
	@IgnoreAuth
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        NewsEntity news = newsService.selectById(id);
        return R.ok().put("data", news);
    }




    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody NewsEntity news, HttpServletRequest request){
    	news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(news);
        newsService.insert(news);
        return R.ok();
    }

    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody NewsEntity news, HttpServletRequest request){
    	news.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(news);
        newsService.insert(news);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody NewsEntity news, HttpServletRequest request){
        //ValidatorUtils.validateEntity(news);
        newsService.updateById(news);//全部更新
        return R.ok();
    }


    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        newsService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }

    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);

		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}

		Wrapper<NewsEntity> wrapper = new EntityWrapper<NewsEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


		int count = newsService.selectCount(wrapper);
		return R.ok().put("count", count);
	}



}

目录
第一章 绪论 5
1.1 研究背景 5
1.2 系统研究现状 5
1.3 系统实现的功能 6
1.4 系统实现的特点 6
1.5 本文的组织结构 6
第二章开发技术与环境配置 7
2.1 Java语言简介 7
2.2 JSP技术 8
2.3 MySQL环境配置 8
2.4 IDEA环境配置 9
2.5 Mysql数据库介绍 9
2.6 B/S架构 9
第三章系统分析与设计 11
3.1 可行性分析 11
3.1.1 技术可行性 11
3.1.2 操作可行性 11
3.1.3经济可行性 11
3.2 需求分析 12
3.3 总体设计 12
3.4 数据库设计与实现 13
3.4.1 数据库概念结构设计 13
3.4.2 数据库具体设计 14
第四章 系统功能的具体实现 22
4.1 系统功能模块 22
4.2 管理员功能模块 25
第五章 系统测试 29
总结 30
参考文献 31
致谢 32

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/95430.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕设Python+Vue校园新闻广播系统(程序+LW+部署)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

[附源码]Node.js计算机毕业设计个人人际关系管理软件Express

项目运行 环境配置&#xff1a; Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术&#xff1a; Express框架 Node.js Vue 等等组成&#xff0c;B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境&#xff1a;最好是Nodejs最新版&#xff0c;我…

Mysql 数据库时间与系统时间不一致问题排查

NO.1 产生问题 在我们学习中使用到sysdate这个函数时&#xff0c;发现查出来的日期时间与当前的正确时间不一致&#xff0c;相差8个小时左右&#xff0c;为什么会产生这个问题&#xff1f;又该如何解决&#xff1f; – 在数据库中使用sysdate()函数查询系统时间 select sysd…

【MAX7800与ESP8266mcu串口通讯点灯】

【MAX7800与ESP8266mcu通讯】1. 前言2. 实验条件2.1 硬件条件2.2 软件条件3. 程序编写3.1 ESP8266程序解剖3.2 MAX7800程序解剖4. 实验效果4.1 esp8266打印如下4.2 max7800打印如下5. 小结1. 前言 前期搭好MAX7800 的eclipse和ESP82666的Arduino开发环境&#xff0c;现在开始慢…

计算机毕设Python+Vue校园网上二手交易系统(程序+LW+部署)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

非零基础自学Golang 第8章 包管理 8.2 包的声明 8.3 包的导入

非零基础自学Golang 文章目录非零基础自学Golang第8章 包管理8.2 包的声明8.3 包的导入8.3.1 导入声明8.3.2 远程导入8.3.3 别名导入8.3.4 匿名导入第8章 包管理 8.2 包的声明 包是结构化代码的一种方式&#xff1a;每个程序都由包&#xff08;通常简称为pkg&#xff09;的概…

35岁程序员:被大厂裁员后,我赚到手的却是这样:

这两年互联网行业一直不平静&#xff0c;都得都懂。认识一兄弟&#xff0c;技术不错&#xff0c;p7&#xff0c;干架构的&#xff0c;也在这场风波中“光荣毕业”了&#xff0c;前段时间找我出去小聚&#xff0c;聊起了这事儿&#xff1a; “比起惆怅&#xff0c;我更多的是感到…

04-Golang的一些基本变量

Golang的一些基本变量变量介绍概念变量使用注意事项变量的使用的基本步骤程序中 号的使用变量介绍 概念 变量相当于内存中一个数据存储空间的表示&#xff0c;你可以把变量看作是一个个房间的门牌号&#xff0c;通过门牌号我们可以找到房间&#xff0c;同样的道理&#xff0c…

Mycat(1):Mycat简介

1、什么是MyCat MyCat是目前最流行的分布式数据库中间插件&#xff0c;是一个开源的分布式数据库系统&#xff0c;是一个实现了MySQL协议的服务器&#xff0c;前端用户可以把它看作是一个数据库代理&#xff0c;用MySQL客户端工具和命令行访问&#xff0c;而其后端可以用MySQL…

ODN 2395丨艾美捷CpG ODN系列参数介绍

艾美捷CpG ODN系列——ODN 2006&#xff1a;具有硫代磷酸酯骨架的CpG寡脱氧核苷酸&#xff08;C型&#xff09;。人和小鼠TLR9&#xff08;Toll样受体9&#xff09;的特异性配体。 艾美捷CpG ODN 丨ODN 2395化学性质&#xff1a; 序列&#xff1a;5-tcgtcgtttttcggcgcgcgccgcg…

基于java+springmvc+mybatis+vue+mysql的班级事务管理系统

项目介绍 学校教务管理信息化是提高办公效率的主要途径&#xff0c;随着我国高等教育的快速发展&#xff0c;学校办学规模的不断扩大&#xff0c;在校学生人数不断增多&#xff0c;办学层次出现多元化&#xff0c;由一地办学发展到多地多点办学&#xff0c;同时进一步推行学分…

一文弄懂Java中线程池原理

在工作中&#xff0c;我们经常使用线程池&#xff0c;但是你真的了解线程池的原理吗&#xff1f;同时&#xff0c;线程池工作原理和底层实现原理也是面试经常问的考题&#xff0c;所以&#xff0c;今天我们一起聊聊线程池的原理吧。 为什么要用线程池 使用线程池主要有以下三…

44 有效括号序列 45滑动窗口的最大值

44 有效括号序列 很容易想到用栈&#xff0c;但是一开始还是写得有问题 import java.util.*;public class Solution {/*** * param s string字符串 * return bool布尔型*/public boolean isValid (String s) {// write code hereStack<Character> st new Stack<>…

详解 InnoDB ReplicaSet

详解 InnoDB ReplicaSetInnoDB ReplicaSet 是什么&#xff1f;InnoDB ReplicaSet 的优缺点InnoDB ReplicaSet 的限制部署 InnoDB ReplicaSet1. 准备两个 MySQL 实例添加新实例的配置选项到 /etc/my.cnf分别在两台主机上进行预配置2. 使用 MySQL Shell 连接到一个实例来配置两个…

海康安防平台对接

1.前置准备工作 1.1下载h5播放器 https://open.hikvision.com/download/5c67f1e2f05948198c909700?type10安装包解压 1.2配置nginx反向代理 将解压的h5放到nginx目录下 配置nginx配置文件,修改如下两个配置 server {listen 9051;server_name localhost;#charset …

Python密码锁屏窗体界面

程序示例精选 Python密码锁屏窗体界面 如需安装运行环境或远程调试&#xff0c;见文章底部微信名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对《Python密码锁屏窗体界面》编写代码&#xff0c; 原理上没有采用Windows自带锁屏模块&#xff0c;是通过软…

通过左旋和右旋来实现搜索二叉树的自平衡

首先左旋和右旋的概念都是在平衡二叉树的基础上提出的。并对AVL树 SB树 红黑树在原理层面进行了简单的介绍&#xff0c;无coding。 什么是左旋&#xff1f; 假设存在下述平衡二叉树&#xff08;某个结点的左子节点都小于该结点&#xff0c;右子结点右大于大结点&#xff09;&…

初识单链表/单链表头指针的创建

链表的概念及结构 概念&#xff1a;链表是一种物理存储结构上非连续、非顺序的存储结构。链表不像数组中的元素那样&#xff0c;每个数据的的地址是连续的。数组的物理存储结构&#xff1a;数组中上一个数据的地址和下一个数据的地址是连续的&#xff0c;正好差一个整型大小 链…

做副业找不到好项目?公众号依旧是最优选择

大家好&#xff0c;我是蝶衣王的小编&#xff0c;今天分享一下公众号还是否值得做呢 说到做自媒体账号赚钱&#xff0c;有些人可能会说是2022年谁看公众号&#xff0c;阅读量都不如以前了&#xff0c;大家都跑去刷短视频。其实不错&#xff0c;但是对于不想露脸的人来说&#…

深圳大学数学文化赏析MOOC第二次作业答案(满分)

一、单选题 (共 40.00 分) 1. 以下各数集中&#xff0c;不可数的一个是&#xff08; &#xff09; A. 自然数集 B. 整数集 C. 有理数集 D. 无理数集 满分&#xff1a;2.00 分 得分&#xff1a;2.00 分 你的答案&#xff1a; D 正确答案&#xff1a; D 教师评…