基于java+ssm+vue的白云会议管理系统

项目介绍

当下,如果还依然使用纸质文档来记录并且管理相关信息,可能会出现很多问题,比如原始文件的丢失,因为采用纸质文档,很容易受潮或者怕火,不容易备份,需要花费大量的人员和资金来管理用纸质文档存储的信息,最重要的是数据出现问题寻找起来很麻烦,并且修改也困难,如果还这样操作会造成很大的资源浪费和经济损失。所以,对于本课题研究的会议信息的管理就需要有一款软件来代替手工操作,因此白云会议管理系统就应运而生。

白云会议管理系统运用的工具包括idea,Tomcat以及Navicat等。该系统可以实现会议室管理,会议室预约管理,会议文件管理,设备信息管理,使用记录管理,留言板管理等功能。

白云会议管理系统就是采用目前最流行的互联网应用思维,让信息处理变得更加高效,并且处理结果更加的符合预期,只要是关于数据管理方面,不管是添加还是修改,以及数据维护甚至是数据迁移,都可以达到更快更安全的要求。

4.2 功能结构设计
在基于系统功能分析的基础之上,开始对系统的详细功能进行设计,最终将使用结构图的形式对设计的结果进行展示。

管理员具备的详细功能将参照最终的设计结果,即图4.1所示的管理员功能结构图。其中管理员增删改查会议文件,设备信息,使用记录信息,会议室信息,可以审核用户预约的会议室信息,回复用户留言等。
在这里插入图片描述
用户具备的详细功能将参照最终的设计结果,即图4.2所示的用户功能结构图。其中用户预约会议室,查看公告,下载会议文件,查看会议室预约的审核结果信息。
在这里插入图片描述

开发环境

编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SSM
编译工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序/vue/爬虫/c#/asp.net

系统实现

5.1 管理员功能实现
5.1.1 会议室管理
实现会议室管理功能,其界面运行的效果图见图5.1。在该界面,管理员需要对会议室编号,会议室规模,会议室位置等信息进行登记,可以对具体会议室的使用记录进行登记,以及可以更改会议室部分数据等。
在这里插入图片描述

图5.1 会议室管理界面

5.1.2 会议室预约管理
实现会议室预约管理功能,其界面运行的效果图见图5.2。在该界面,用户预约会议室的信息,管理员在查看之后,需要审核,同时可以删除会议室预约信息,会议室预约信息包括预计人数,会议室位置,开始时间,结束时间,申请时间等信息。
在这里插入图片描述

图5.2 会议室预约管理界面

5.1.3 会议文件管理
实现会议文件管理功能,其界面运行的效果图见图5.3。在该界面,会议文件的信息需要管理员登记并上传会议文件,同时会议文件数据有错误,管理员也能更改。
在这里插入图片描述

图5.3 会议文件管理界面

5.1.4 设备信息管理
实现设备信息管理功能,其界面运行的效果图见图5.4。在该界面,设备位置,设备名称,设备编号,数量等信息需要管理员登记,设备信息存在错误数据,需要管理员更改。
在这里插入图片描述

图5.4 设备信息管理界面

5.1.5 使用记录管理
实现使用记录管理功能,其界面运行的效果图见图5.5。在该界面,使用记录信息有容纳人数,使用时间,会议室位置,会议室规模等信息,管理员能够修改使用记录信息。根据会议室名称可以对使用记录信息进行查询。
在这里插入图片描述

图5.5 使用记录管理界面

5.2 用户功能实现
5.2.1 会议室信息
实现会议室信息功能,其界面运行的效果图见图5.6。在该界面,用户查看可约时间,容纳人数,会议室规模,设备详情等信息,用户点击会议室预约按钮就可以预约会议室。
在这里插入图片描述

图5.6 会议室信息界面

5.2.2 预约会议室
实现预约会议室功能,其界面运行的效果图见图5.7。在该界面,用户只需要登记预计人数,会议开始与结束时间,然后登记会议说明信息即可提交。
在这里插入图片描述

图5.7 预约会议室界面

5.2.3 留言板
实现留言板功能,其界面运行的效果图见图5.8。在该界面,用户可以上传留言图片,输入留言内容,最后提交留言,在留言板界面的下方区域主要用于展示用户发布的留言,展示管理员的回复信息,因此用户可以在当前界面查看留言内容和回复的内容。
在这里插入图片描述

图5.8 留言板界面

5.2.4 会议室预约管理
实现会议室预约管理功能,其界面运行的效果图见图5.9。在该界面,用户查看预约会议室的信息,查看审核回复信息以及审核状态信息,可以通过会议室位置来实现对会议室预约信息的查询。
在这里插入图片描述

图5.9 会议室预约管理界面

5.2.5 会议文件管理
实现会议文件管理功能,其界面运行的效果图见图5.10。在该界面,用户根据会议名称查询会议文件,下载会议文件,查看会议文件的详情信息。
在这里插入图片描述

图5.10 会议文件管理界面

核心代码

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 java.io.IOException;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
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.HuiyishiEntity;
import com.entity.view.HuiyishiView;

import com.service.HuiyishiService;
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 
 */
@RestController
@RequestMapping("/huiyishi")
public class HuiyishiController {
    @Autowired
    private HuiyishiService huiyishiService;



    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,HuiyishiEntity huiyishi, 
		HttpServletRequest request){

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

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

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(HuiyishiEntity huiyishi){
        EntityWrapper< HuiyishiEntity> ew = new EntityWrapper< HuiyishiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( huiyishi, "huiyishi")); 
		HuiyishiView huiyishiView =  huiyishiService.selectView(ew);
		return R.ok("查询会议室成功").put("data", huiyishiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        HuiyishiEntity huiyishi = huiyishiService.selectById(id);
        return R.ok().put("data", huiyishi);
    }

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



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody HuiyishiEntity huiyishi, HttpServletRequest request){
    	huiyishi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(huiyishi);

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

        huiyishiService.insert(huiyishi);
        return R.ok();
    }

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

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


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







}

论文参考

在这里插入图片描述

目 录
第1章 绪论 1
1.1 选题动因 1
1.2 目的和意义 1
1.3 论文结构安排 2
第2章 开发环境与技术 3
2.1 Tomcat 简介 3
2.2 Eclipse简介 3
2.3 Navicat简介 4
第3章 系统分析 5
3.1 可行性分析 5
3.1.1 经济可行性 5
3.1.2 技术可行性 5
3.1.3 操作可行性 5
3.2 系统流程分析 6
3.3 系统性能分析 7
3.4 系统功能分析 8
第4章 系统设计 11
4.1 布局设计原则 11
4.2 功能结构设计 12
4.3 数据库设计 13
4.3.1 数据库E-R图设计 13
4.3.2 数据库表结构设计 16
第5章 系统实现 21
5.1 管理员功能实现 21
5.1.1 会议室管理 21
5.1.2 会议室预约管理 21
5.1.3 会议文件管理 22
5.1.4 设备信息管理 22
5.1.5 使用记录管理 23
5.2 用户功能实现 24
5.2.1 会议室信息 24
5.2.2 预约会议室 24
5.2.3 留言板 25
5.2.4 会议室预约管理 25
5.2.5 会议文件管理 26
第6章 系统测试 27
6.1 系统测试方法 27
6.2 功能测试 27
6.2.1 登录功能测试 27
6.2.2 会议室查询功能测试 28
6.3 测试结果分析 28
结 论 29
参考文献 30
致 谢 31

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值