springboot002基于springboot的医护人员排班系统设计与实现(源码文档)

博主介绍:专注于Java(springboot ssm 等开发框架) vue  .net  php phython node.js    uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了2000+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
文末下方有源码获取地址

springboot002基于springboot的医护人员排班系统录像(源码文档)

4.2系统结构

本系统是基于B/S架构的网站系统,设计的功能结构图如下图所示:

图4-2功能结构图

4.3.数据库设计

4.3.1数据库实体

概念设计的目标是设计出反映某个组织部门信息需求的数据库系统概念模式,数据库系统的概念模式独立于数据库系统的逻辑结构、独立于数据库管理系统(DBMS)、独立于计算机系统。

概念模式的设计方法是在需求分析的基础上,用概念数据模型(例如E-R模型)表示数据及数据之间的相互联系,设计出反映用户信息需求和处理需求的数据库系统概念模式。概念设计的目标是准确描述应用领域的信息模式,支持用户的各种应用,这样既容易转换为数据库系统逻辑模式,又容易为用户理解。数据库系统概念模式是面向现实世界的数据模型,不能直接用于数据库系统的实现。在此阶段,用户可以参与和评价数据库系统的设计,从而有利于保证数据库系统的设计与用户的需求相吻合。在概念模式的设计中,E-R模型法是最常见的设计方法。本系统的E-R图如下图所示:

4.3.2数据库设计表

医护人员排班系统需要后台数据库,下面介绍数据库中的各个表的详细信息:

表4.1 科室信息评论表

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

refid

bigint(20)

关联表id

userid

bigint(20)

用户id

nickname

varchar(200)

NULL

用户名

content

longtext

评论内容

reply

longtext

NULL

回复内容

表4.2 医院信息评论表

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

refid

bigint(20)

关联表id

userid

bigint(20)

用户id

nickname

varchar(200)

NULL

用户名

content

longtext

评论内容

reply

longtext

NULL

回复内容

表4.3 论坛表

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

title

varchar(200)

NULL

帖子标题

content

longtext

帖子内容

parentid

bigint(20)

NULL

父节点id

userid

bigint(20)

用户id

username

varchar(200)

NULL

用户名

isdone

varchar(200)

NULL

状态

表4.4 科室信息

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

keshi

varchar(200)

科室

tupian

varchar(200)

图片

keshijieshao

longtext

NULL

科室介绍

keshiweizhi

varchar(200)

NULL

科室位置

keshiyisheng

varchar(200)

NULL

科室医生

lianxidianhua

varchar(200)

NULL

联系电话

表4.5 排班类型

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

banci

varchar(200)

NULL

班次

表4.6 排班信息

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

gonghao

varchar(200)

NULL

工号

xingming

varchar(200)

NULL

姓名

xingbie

varchar(200)

NULL

性别

keshi

varchar(200)

NULL

科室

zhicheng

varchar(200)

NULL

职称

yiling

varchar(200)

NULL

医龄

guahaofeiyong

int(11)

挂号费用

lianxidianhua

varchar(200)

NULL

联系电话

touxiang

varchar(200)

NULL

头像

banci

varchar(200)

NULL

班次

gerenjianjie

longtext

NULL

个人简介

表4.7 收藏表

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

userid

bigint(20)

用户id

refid

bigint(20)

NULL

收藏id

tablename

varchar(200)

NULL

表名

name

varchar(200)

收藏名称

picture

varchar(200)

收藏图片

表4.8 投诉信息

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

gonghao

varchar(200)

工号

xingming

varchar(200)

姓名

zhaopian

varchar(200)

NULL

照片

tousumingcheng

varchar(200)

NULL

投诉名称

tousuneirong

longtext

NULL

投诉内容

tousuriqi

date

NULL

投诉日期

表4.9 管理员表

字段

类型

默认

注释

id (主键)

bigint(20)

主键

username

varchar(100)

用户名

password

varchar(100)

密码

role

varchar(100)

管理员

角色

addtime

timestamp

CURRENT_TIMESTAMP

新增时间

表4.10 医护

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

gonghao

varchar(200)

工号

mima

varchar(200)

密码

xingming

varchar(200)

姓名

xingbie

varchar(200)

NULL

性别

nianling

int(11)

NULL

年龄

shoujihao

varchar(200)

NULL

手机号

youxiang

varchar(200)

NULL

邮箱

shenfenzheng

varchar(200)

NULL

身份证

zhaopian

varchar(200)

NULL

照片

表4.11 医护类型

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

yihuleixing

varchar(200)

NULL

医护类型

表4.12 医护信息

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

gonghao

varchar(200)

NULL

工号

xingming

varchar(200)

NULL

姓名

zhaopian

varchar(200)

NULL

照片

yihuleixing

varchar(200)

NULL

医护类型

yiyuan

varchar(200)

NULL

医院

keshi

varchar(200)

NULL

科室

shanzhang

varchar(200)

NULL

擅长

jianjie

varchar(200)

NULL

简介

表4.13 医院信息

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

yiyuanmingcheng

varchar(200)

医院名称

yiyuandizhi

varchar(200)

NULL

医院地址

lianxidianhua

varchar(200)

NULL

联系电话

yiyuantupian

varchar(200)

NULL

医院图片

yiyuanjianjie

longtext

NULL

医院简介

thumbsupnum

int(11)

0

crazilynum

int(11)

0

5系统详细实现

5.1 医护类型管理

医护人员排班系统的系统管理员可以对医护类型添加修改删除以及查询操作。具体界面的展示如图5.1所示。

图5.1 医护类型管理界面

5.2 排班类型管理

管理员可以对排班类型进行添加修改删除操作。具体界面如图5.2所示。

图5.2 排班类型界面

5.3 科室信息管理

管理员可以对科室信息添加修改删除操作。界面如下图所示:

图5.3 科室信息界面

5.4 医院信息管理

管理员可以对医院信息进行添加修改删除。界面如下图所示:

图5.4 医院信息界面

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.YiyuanxinxiEntity;
import com.entity.view.YiyuanxinxiView;

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


/**
 * 医院信息
 * 后端接口
 * @author 
 * @email 
 * @date 2021-05-08 16:41:19
 */
@RestController
@RequestMapping("/yiyuanxinxi")
public class YiyuanxinxiController {
    @Autowired
    private YiyuanxinxiService yiyuanxinxiService;
    


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

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

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

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(YiyuanxinxiEntity yiyuanxinxi){
        EntityWrapper< YiyuanxinxiEntity> ew = new EntityWrapper< YiyuanxinxiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( yiyuanxinxi, "yiyuanxinxi")); 
		YiyuanxinxiView yiyuanxinxiView =  yiyuanxinxiService.selectView(ew);
		return R.ok("查询医院信息成功").put("data", yiyuanxinxiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        YiyuanxinxiEntity yiyuanxinxi = yiyuanxinxiService.selectById(id);
        return R.ok().put("data", yiyuanxinxi);
    }

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


    /**
     * 赞或踩
     */
    @RequestMapping("/thumbsup/{id}")
    public R vote(@PathVariable("id") String id,String type){
        YiyuanxinxiEntity yiyuanxinxi = yiyuanxinxiService.selectById(id);
        if(type.equals("1")) {
        	yiyuanxinxi.setThumbsupnum(yiyuanxinxi.getThumbsupnum()+1);
        } else {
        	yiyuanxinxi.setCrazilynum(yiyuanxinxi.getCrazilynum()+1);
        }
        yiyuanxinxiService.updateById(yiyuanxinxi);
        return R.ok("投票成功");
    }

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

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

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        yiyuanxinxiService.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<YiyuanxinxiEntity> wrapper = new EntityWrapper<YiyuanxinxiEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}


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


}

5.5 医护信息管理

管理员可以对医护信息进行添加,修改,删除操作。界面如下图所示:

图5.5 医护信息界面


大家点赞、收藏、关注、评论啦  其他的定制服务 商务合作  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者

猜你喜欢

转载自blog.csdn.net/qq_41221322/article/details/146798541
今日推荐