有关高校毕业生离校管理系统{技术栈:Spring Boot+Vue+MyBatis等}

开发背景

开发一个高校毕业生离校管理系统的原因主要有以下几点:

  1. 提高管理效率:传统的毕业生离校管理方式通常需要大量的人力物力,通过人工处理各种手续,效率低下。而通过信息化的管理系统,可以大大提高处理速度,减少人力资源的浪费。

  2. 提高服务质量:通过系统化管理,可以提供更加规范化、标准化的服务,避免了人为的错误和疏漏,提高了服务质量。

  3. 方便学生:学生可以通过系统查询自己的离校流程进度,了解自己还需要完成哪些手续,避免了因为不清楚流程而导致的困扰。

  4. 数据管理:系统可以记录每个学生的离校信息,方便学校进行数据统计和分析,为学校的决策提供依据。

  5. 安全性:通过系统管理,可以避免一些敏感信息的泄露,保证学生信息的安全。

  6. 环保:电子化的管理系统可以减少大量的纸质文件,有利于环保。

如何设计

设计一个高校毕业生离校管理系统需要考虑以下几个方面:

  1. 需求分析:首先,需要对高校的离校管理流程进行详细的需求分析,了解毕业生离校过程中涉及的各个部门、各个环节以及所需的信息和手续。这包括图书馆借阅记录清理、宿舍退宿、学费结算、证书发放等。

  2. 系统架构设计:根据需求分析的结果,设计系统的架构,包括前端用户界面、后端服务器、数据库等。系统应该具有良好的扩展性和稳定性。

  3. 功能模块划分:将系统划分为不同的功能模块,例如学生信息管理、离校流程管理、文件管理、数据统计分析等。

  4. 用户权限设计:根据不同用户角色(如学生、辅导员、管理员等)设计不同的权限,确保数据的安全性和系统的可用性。

  5. 界面设计:设计直观、易用的用户界面,确保用户可以方便地进行操作。

  6. 数据安全与备份:确保系统的数据安全性,设计数据备份和恢复机制,防止数据丢失或损坏。

  7. 测试与部署:在系统开发完成后,进行全面的测试,确保系统的稳定性和可靠性。然后进行系统部署和维护。

  8. 用户培训与支持:为用户提供培训,帮助他们熟悉系统的操作。同时,提供技术支持,解决用户在使用过程中遇到的问题。

通过以上步骤,可以设计并实现一个高效、稳定、安全的高校毕业生离校管理系统。

数据库设计表

数据库表的设计,如下表:

表4-1专业分类

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

leixing

varchar

200

类型

表4-2指导老师

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zhigongzhanghao

varchar

200

职工账号

mima

varchar

200

密码

zhigongxingming

varchar

200

职工姓名

xingbie

varchar

200

性别

zhiwu

varchar

200

职务

shouji

varchar

200

手机

youxiang

varchar

200

邮箱

表4-3学分信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xuehao

varchar

200

学号

xingming

varchar

200

姓名

yuanxi

varchar

200

院系

zhuanye

varchar

200

专业

xueqi

varchar

200

学期

xuefen

varchar

200

学分

shenheqingkuang

varchar

200

审核情况

shenheyijian

longtext

4294967295

审核意见

zhigongzhanghao

varchar

200

职工账号

zhigongxingming

varchar

200

职工姓名

表4-4用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表4-5图书馆沟通

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

  主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

biaoti

varchar

200

标题

goutongneirong

longtext

4294967295

沟通内容

goutongshijian

datetime

沟通时间

zhigongzhanghao

varchar

200

职工账号

zhigongxingming

varchar

200

职工姓名

xuehao

varchar

200

学号

xingming

varchar

200

姓名

sfsh

varchar

200

是否审核

shhf

longtext

4294967295

审核回复

系统功能

为了更好的去理清本系统整体思路,对该系统以结构图的形式表达出来,设计实现该高校毕业生离校管理系统的功能结构图如下所示:

 

系统展示图

核心代码

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.JiaowuchuEntity;
import com.entity.view.JiaowuchuView;

import com.service.JiaowuchuService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;
import java.io.InputStream;
import org.springframework.web.multipart.MultipartFile;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

/**
 * 教务处
 * 后端接口
 * @author 
 * @email 
 * @date 2022-02-23 15:48:42
 */
@RestController
@RequestMapping("/jiaowuchu")
public class JiaowuchuController {
    @Autowired
    private JiaowuchuService jiaowuchuService;


    
	@Autowired
	private TokenService tokenService;
	
	/**
	 * 登录
	 */
	@IgnoreAuth
	@RequestMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		JiaowuchuEntity user = jiaowuchuService.selectOne(new EntityWrapper<JiaowuchuEntity>().eq("zhigongzhanghao", username));
		if(user==null || !user.getMima().equals(password)) {
			return R.error("账号或密码不正确");
		}
		
		String token = tokenService.generateToken(user.getId(), username,"jiaowuchu",  "教务处" );
		return R.ok().put("token", token);
	}
	
	/**
     * 注册
     */
	@IgnoreAuth
    @RequestMapping("/register")
    public R register(@RequestBody JiaowuchuEntity jiaowuchu){
    	//ValidatorUtils.validateEntity(jiaowuchu);
    	JiaowuchuEntity user = jiaowuchuService.selectOne(new EntityWrapper<JiaowuchuEntity>().eq("zhigongzhanghao", jiaowuchu.getZhigongzhanghao()));
		if(user!=null) {
			return R.error("注册用户已存在");
		}
		Long uId = new Date().getTime();
		jiaowuchu.setId(uId);
        jiaowuchuService.insert(jiaowuchu);
        return R.ok();
    }

	
	/**
	 * 退出
	 */
	@RequestMapping("/logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        JiaowuchuEntity user = jiaowuchuService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	JiaowuchuEntity user = jiaowuchuService.selectOne(new EntityWrapper<JiaowuchuEntity>().eq("zhigongzhanghao", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
        user.setMima("123456");
        jiaowuchuService.updateById(user);
        return R.ok("密码已重置为:123456");
    }


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

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

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

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(JiaowuchuEntity jiaowuchu){
        EntityWrapper< JiaowuchuEntity> ew = new EntityWrapper< JiaowuchuEntity>();
 		ew.allEq(MPUtil.allEQMapPre( jiaowuchu, "jiaowuchu")); 
		JiaowuchuView jiaowuchuView =  jiaowuchuService.selectView(ew);
		return R.ok("查询教务处成功").put("data", jiaowuchuView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        JiaowuchuEntity jiaowuchu = jiaowuchuService.selectById(id);
        return R.ok().put("data", jiaowuchu);
    }

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



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody JiaowuchuEntity jiaowuchu, HttpServletRequest request){
    	jiaowuchu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(jiaowuchu);
    	JiaowuchuEntity user = jiaowuchuService.selectOne(new EntityWrapper<JiaowuchuEntity>().eq("zhigongzhanghao", jiaowuchu.getZhigongzhanghao()));
		if(user!=null) {
			return R.error("用户已存在");
		}
		jiaowuchu.setId(new Date().getTime());
        jiaowuchuService.insert(jiaowuchu);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody JiaowuchuEntity jiaowuchu, HttpServletRequest request){
    	jiaowuchu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(jiaowuchu);
    	JiaowuchuEntity user = jiaowuchuService.selectOne(new EntityWrapper<JiaowuchuEntity>().eq("zhigongzhanghao", jiaowuchu.getZhigongzhanghao()));
		if(user!=null) {
			return R.error("用户已存在");
		}
		jiaowuchu.setId(new Date().getTime());
        jiaowuchuService.insert(jiaowuchu);
        return R.ok();
    }

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

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


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





    @RequestMapping("/importExcel")
    public R importExcel(@RequestParam("file") MultipartFile file){
        try {
            //获取输入流
            InputStream inputStream = file.getInputStream();
            //创建读取工作簿
            Workbook workbook = WorkbookFactory.create(inputStream);
            //获取工作表
            Sheet sheet = workbook.getSheetAt(0);
            //获取总行
            int rows=sheet.getPhysicalNumberOfRows();
            if(rows>1){
                //获取单元格
                for (int i = 1; i < rows; i++) {
                    Row row = sheet.getRow(i);
                    JiaowuchuEntity jiaowuchuEntity =new JiaowuchuEntity();
                    jiaowuchuEntity.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
                    String zhigongzhanghao = CommonUtil.getCellValue(row.getCell(0));
                    jiaowuchuEntity.setZhigongzhanghao(zhigongzhanghao);
                    String mima = CommonUtil.getCellValue(row.getCell(1));
                    jiaowuchuEntity.setMima(mima);
                    String zhigongxingming = CommonUtil.getCellValue(row.getCell(2));
                    jiaowuchuEntity.setZhigongxingming(zhigongxingming);
                    String xingbie = CommonUtil.getCellValue(row.getCell(3));
                    jiaowuchuEntity.setXingbie(xingbie);
                    String zhiwu = CommonUtil.getCellValue(row.getCell(4));
                    jiaowuchuEntity.setZhiwu(zhiwu);
                    String shouji = CommonUtil.getCellValue(row.getCell(5));
                    jiaowuchuEntity.setShouji(shouji);
                    String youxiang = CommonUtil.getCellValue(row.getCell(6));
                    jiaowuchuEntity.setYouxiang(youxiang);
                     
                    //想数据库中添加新对象
                    jiaowuchuService.insert(jiaowuchuEntity);//方法
                }
            }
            inputStream.close();
        } catch (InvalidFormatException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return R.ok("导入成功");
    }


}

文章目录

第一章 概述

1.1 研究背景

1.2开发意义

1.3 研究现状

1.4 研究内容

1.5论文结构

第二章 开发技术介绍 3

2.1 系统开发平台 3

2.2 平台开发相关技术 3

2.2.1  java语言 3

2.2.2  Mysql数据库介绍 3

2.2.3  B/S架构 3

2.2.4  Springboot框架 3

第三章 系统分析 5

3.1 可行性分析 5

3.1.1 技术可行性 5

3.1.2 操作可行性 5

3.1.3经济可行性 5

3.2性能需求分析 5

第四章 系统设计 5

4.1功能结构 7

4.2 数据库设计 7

4.2.1 数据库E/R 7

4.2.2 数据库表 9

第五章 系统功能实现 13

5.1管理员功能模块 13

5.2毕业生功能模块 16

5.3部门审核员功能模块 16

第六章 系统测试 21

第七章 总结与心得体会 22

7.1总结 22

7.2心得体会 22

   23

参考文献 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值