本基于JAVASSH的在线会议租赁管理系统,采用面向对象思想,选用javaweb开发技术,后台选用JavaSSH轻量级开发框架,使用tomcat8.0作为开发服务器,使用nginx实现反向代理,支持多台tomcat之间的负债均衡,使用redis2.4.5作为缓存服务器,提升系统运行效率,前台使用ajax异步请求技术,采用HTTP协议与后台实现通信,获取需要的数据渲染系统界面,提升用户使用体验,系统通过nginx做跳转,将用户的请求向后台多台tomcat服务器按照权重进行分发,减轻单一服务器的负载压力,实现支持多用户并发式登录进行订单查询,商品购买下单等,极大的简化了用户线上租赁会议室的流程。

本会议室管理系统的实现,不但可以极大程度的减少人员的工作量,提高企业办公安排会议室的效率。而且避免了不同的人员安排同一会议室的尴尬,并且提供了各种开会材料 如录音笔、投影仪等会议工具的使用。极大方便了企业的会议管理而且提高了企业人员的工作效率。将人从繁琐的工作中解除出来,用计算机来代替人完成这一系列工作。

原文地址

一、程序设计

本次在线会议租赁管理系统主要内容涉及:

主要功能模块:用户管理、会议室管理、租赁审核
主要包含技术:spring,hibernate,mysql,javascript,html,css,Jsoup,httpclient
主要包含算法:遗传算法
本会议室管理系统由为三个子系统组成,分别为 不同权限的用户和管理员个人信息管理、会议室管理系统、会议室的申请管理和会议室的审核管理。
(1) 用户和管理员信息管理系统的简介
用户管理模块:主要对各个部门的用户基本信息进行管理。普通用户可以修改个人信息。管理员可以对用户基本信息(例如:用户名,密码,性别,职位,真实姓名,专业,员工号,民族,部门号,电话,电子邮件等)进行添加,修改,删除等。
(2) 会议室管理系统:会议室管理模块:此块是整个系统的核心。普通用户对其按照属性进行搜索查询。可以根据搜索情况进行对空闲会议室的申请和查询及修改会议室申请纪录,管理员可以对会议室基本信息(例如:会议室号,部门,楼层,类型等)进行添加,修改,删除等,并可以审批会议室申请情况。
(3)会议室的申请管理和会议室的审核管理:这一部分主要是用户通过账号登录会议室管理系统后查询可用的会议室然后根据自己的时间安排进行预订。同时管理员可以看到其申请并且根据实际情况进行审核,审核有两种情况 通过和不通过。

二、效果实现

会议室管理

会议室申请

我的申请

其他效果省略

三、核心代码

本次在线会议租赁系统,在会议室预定的时候,如果有的房间已经被预定则不能被再次预定,这涉及到一个算法,该算法也是本会议室管理系统的核心。它把时间分为两个部分,分别用两个数组装起来,当你申请时间时,将你申请的时间也用数组装起来来和已有的数组进行对比。进行判断 是否能申请。具体实现代码如下:

核心实现源码

   public static int compare_date(String DATE1, String DATE2) {DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");try {Date dt1 = df.parse(DATE1);Date dt2 = df.parse(DATE2);if (dt1.getTime() > dt2.getTime()) {return -1;} else if (dt1.getTime() < dt2.getTime()) {return 1;} else {return 0;}} catch (Exception exception) {exception.printStackTrace();}return 0;}public static boolean JudgmentSize(String[] date, String a, String b) {int count_a = 0, count_b = 0;if (compare_date(b, date[0]) == 1 || compare_date(b, date[0]) == 0|| compare_date(a, date[date.length - 1]) == -1|| compare_date(a, date[date.length - 1]) == 0) {return true;}for (int i = 1; i < date.length - 1; i = i + 2) {if ((compare_date(date[i], a) == 1 || compare_date(date[i], a) == 0)&& (compare_date(date[i + 1], a) == -1 || compare_date(date[i + 1], a) == 0)) {System.out.println("count_a=" + i);count_a = i;break;}}for (int i = 1; i < date.length - 1; i = i + 2) {if ((compare_date(date[i], b) == 1 || compare_date(date[i], b) == 0)&& (compare_date(date[i + 1], b) == -1 || compare_date(date[i + 1], b) == 0)) {System.out.println("count_b=" + i);count_b = i;break;}}if (count_a == count_b && count_a != 0 && count_b != 0) {return true;}return false;}

获取源码