💕💕作者:计算机源码社
💕💕个人简介:本人七年开发经验,擅长Java、微信小程序、Python、Android、大数据等,大家有这一块的问题可以一起交流!
💕💕学习资料、程序开发、技术解答、文档报告
💕💕JavaWeb项目
💕💕微信小程序项目
💕💕Python项目
💕💕Android项目
文章目录
- 1、绪论
- 1.1 项目背景与意义
- 2、核心功能模块
- 3、项目页面展示
- 3.1 登录页面
- 3.2 会议室报修页面![在这里插入图片描述](https://img-blog.csdnimg.cn/2b18f50f90bd452fadc34a00f5c09d62.png#pic_center)## 3.3 导出会议室信息页面
- 3.4 预约会议室页面![在这里插入图片描述](https://img-blog.csdnimg.cn/41cc5ea42a7b4947a465c5467c11dc43.png#pic_center)## 3.5 角色用户管理页面
- 3.6 查看会议室使用情况页面![在这里插入图片描述](https://img-blog.csdnimg.cn/93e3b81ca51842218a7e69e11a24dd1a.png#pic_center)
- 4、 核心代码
1、绪论
1.1 项目背景与意义
随着现代企业的日益发展,会议作为信息沟通和决策的重要手段,在组织内部扮演着不可或缺的角色。然而,传统的会议室管理方式常常受限于繁琐的手动操作和信息不透明,导致会议室资源利用效率低下、预约冲突频繁发生。同时,全球化的办公环境使得跨地域、跨时区的会议安排变得复杂。为了有效解决这些挑战,"基于SpringCloud的会议室预约系统的设计与实现"成为迫切的需求。该系统的设计将通过现代化的信息技术手段,实现会议室的在线预约、实时查看和高效管理,从而为企业提供一个智能、便捷的会议室资源管理平台。
基于SpringCloud的会议室预约系统的设计具有深远的意义。首先,系统的实施将提升会议室资源的利用效率,避免了预约冲突,降低了会议室的空置率,从而优化了企业内部资源分配。其次,系统支持远程会议预约和管理,为全球范围内的跨地域团队协作提供了可靠的工具。此外,系统的数据导出和分析功能将为企业决策提供有力支持,有助于优化会议安排,提升工作效率。总之,"基于SpringCloud的会议室预约系统的设计与实现"不仅是一个技术层面上的创新,更是企业管理效率和信息化水平提升的战略举措,将为企业内部协作和决策带来积极的影响。
2、核心功能模块
会议室预约系统核心的功能应包括以下主要功能模块:
1、会议室预约: 用户能够通过系统选择合适的日期、时间和会议室,进行预约,并提供会议主题和参与人信息。
2、会议室管理: 管理员能够添加、修改和删除会议室信息,包括容纳人数、设备设施等。
3、会议室维修申请: 用户可以提交维修申请,描述问题,并选择相关的会议室,以便及时维护。
4、查看会议室使用情况: 用户和管理员可以查看特定日期范围内会议室的预约情况,避免冲突。
5、导出会议室数据: 系统允许用户导出会议室使用数据和报告,支持数据分析和决策。
6、用户管理: 系统应具备用户注册、登录、权限管理等功能,确保不同用户角色拥有适当的访问权限。
3、项目页面展示
3.1 登录页面
3.2 会议室报修页面## 3.3 导出会议室信息页面
3.4 预约会议室页面## 3.5 角色用户管理页面
3.6 查看会议室使用情况页面
4、 核心代码
/**
* 查询会议预约信息列表
*/
@RequiresPermissions("system:meeting_info:list")
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(MeetingInfo meetingInfo)
{
startPage();
List<MeetingInfo> list = meetingInfoService.selectMeetingInfoList(meetingInfo);
return getDataTable(list);
}
@PostMapping("/detail")
@ResponseBody
public TableDataInfo detail(MeetingInfo meetingInfo)
{
if (meetingInfo.getMeetingDate()==null){
meetingInfo.setMeetingDate(new Date());
}
startPage();
List<Meeting> meetingList = new ArrayList<Meeting>();
System.out.println(meetingInfo.getMeetingDate());
SimpleDateFormat formatter =new SimpleDateFormat("yyyy-MM-dd");
String originalDate = formatter.format(meetingInfo.getMeetingDate());
try {
meetingInfo.setMeetingDate(formatter.parse(originalDate));
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(meetingInfo.getMeetingDate());
List<MeetingInfo> list = meetingInfoService.selectMeetingInfoList(meetingInfo);
System.out.println(list.size()+">>>>>>");
if (list.size()>0){
for (MeetingInfo meetingInfo1 : list){
if (meetingInfo1.getAppointmentStatus().equals("审核中")||meetingInfo1.getAppointmentStatus().equals("已通过")){
Meeting meeting = new Meeting();
meeting.setRoom(meetingInfo1.getRoomId());
String s = meetingInfo1.getMeetingTime().split(":")[0];
int se = Integer.parseInt(meetingInfo1.getMeetingTime().split(":")[1]);
int e = Integer.parseInt(meetingInfo1.getMeetingEnd().split(":")[0]);
int ee = Integer.parseInt(meetingInfo1.getMeetingEnd().split(":")[1]);
System.out.println("S:"+s);
switch (s) {
case "08":
System.out.println(8);
meeting.setA2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
if (e>10){
meeting.setB2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
}
if (e>12){
meeting.setC2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
}
if (e>14){
meeting.setD2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
}
if (e>16){
meeting.setE2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
}
break;
case "09":
System.out.println(9);
meeting.setA2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
if (e>10){
meeting.setB2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
}
if (e>12){
meeting.setC2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
}
if (e>14){
meeting.setD2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
}
if (e>16){
meeting.setE2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
}
break;
case "10":
System.out.println(10);
meeting.setB2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
if (e>12){
meeting.setC2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
}
if (e>14){
meeting.setD2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
}
if (e>16){
meeting.setE2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
}
break;
case "11":
meeting.setB2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
if (e>12){
meeting.setC2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
}
if (e>14){
meeting.setD2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
}
if (e>16){
meeting.setE2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
}
break;
case "12":
meeting.setC2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
if (e>14){
meeting.setD2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
}
if (e>16){
meeting.setE2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
}
break;
case "13":
meeting.setC2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
if (e>14){
meeting.setD2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
}
if (e>16){
meeting.setE2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
}
break;
case "14":
meeting.setD2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
if (e>16){
meeting.setE2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
}
break;
case "15":
meeting.setD2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
if (e>16){
meeting.setE2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
}
break;
case "16":
meeting.setE2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
break;
case "17":
meeting.setE2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
break;
case "18":
meeting.setE2(meetingInfo1.getMeetingTime()+"-"+meetingInfo1.getMeetingEnd()+"不可用");
break;
}
System.out.println("meeting:"+meeting);
meetingList.add(meeting);
}
List<String> rname = new ArrayList<String>();
if (meetingList.size()>0){
for (Meeting meeting1 : meetingList){
rname.add(meeting1.getRoom());
}
}
for (MeetingRoom meetingRoom : meetingRoomService.selectMeetingRoomList(new MeetingRoom())){
if (!rname.contains(meetingRoom.getRoomName())){
Meeting meeting1 = new Meeting();
meeting1.setRoom(meetingRoom.getRoomName());
meeting1.setA2("");
meeting1.setB2("");
meeting1.setC2("");
meeting1.setD2("");
meeting1.setE2("");
meetingList.add(meeting1);
}
}
}
}else {
for (MeetingRoom meetingRoom : meetingRoomService.selectMeetingRoomList(new MeetingRoom())){
Meeting meeting1 = new Meeting();
meeting1.setRoom(meetingRoom.getRoomName());
meetingList.add(meeting1);
}
}
return getDataTable(meetingList);
}
/**
* 导出会议预约信息列表
*/
@RequiresPermissions("system:meeting_info:export")
@Log(title = "会议预约信息", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@ResponseBody
public AjaxResult export(MeetingInfo meetingInfo)
{
List<MeetingInfo> list = meetingInfoService.selectMeetingInfoList(meetingInfo);
ExcelUtil<MeetingInfo> util = new ExcelUtil<MeetingInfo>(MeetingInfo.class);
return util.exportExcel(list, "会议预约信息数据");
}
/**
* 新增会议预约信息
*/
@GetMapping("/add")
public String add()
{
return prefix + "/add";
}
/**
* 新增保存会议预约信息
*/
@RequiresPermissions("system:meeting_info:add")
@Log(title = "会议预约信息", businessType = BusinessType.INSERT)
@PostMapping("/add")
@ResponseBody
public AjaxResult addSave(MeetingInfo meetingInfo) throws ParseException {
int i = meetingInfoService.insertMeetingInfo(meetingInfo);
if (i==-1){
return error("会议时间存在冲突");
}else {
return toAjax(1);
}
}
/**
* 修改会议预约信息
*/
@RequiresPermissions("system:meeting_info:edit")
@GetMapping("/edit/{id}")
public String edit(@PathVariable("id") Long id, ModelMap mmap)
{
MeetingInfo meetingInfo = meetingInfoService.selectMeetingInfoById(id);
mmap.put("meetingInfo", meetingInfo);
if (meetingInfoService.selectMeetingInfoById(id).getCreateBy().equals(ShiroUtils.getLoginName())){
return prefix + "/edit";
}else {
for (SysRole role : roleService.selectRolesByUserId(ShiroUtils.getUserId())){
System.out.println(ShiroUtils.getLoginName()+"<><><><>");
if (role.getRoleName().equals("管理员")){
return prefix + "/edit";
}else {
return "/error/noautj";
}
}
}
return "/error/noautj";
// System.out.println(meetingInfoService.selectMeetingInfoById(id).getCreateBy()+"??????");
// System.out.println(ShiroUtils.getLoginName()+"<><><><>");
}
/**
* 修改保存会议预约信息
*/
@RequiresPermissions("system:meeting_info:edit")
@Log(title = "会议预约信息", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
@ResponseBody
public AjaxResult editSave(MeetingInfo meetingInfo) throws ParseException {
if (meetingInfoService.selectMeetingInfoById(meetingInfo.getId()).getCreateBy().equals(ShiroUtils.getLoginName())){
int i = meetingInfoService.updateMeetingInfo(meetingInfo);
if (i==-1){
return error("会议时间存在冲突");
}else {
return toAjax(1);
}
}else {
for (SysRole role : roleService.selectRolesByUserId(ShiroUtils.getUserId())){
if (role.getRoleName().equals("管理员")){
int i = meetingInfoService.updateMeetingInfo(meetingInfo);
if (i==-1){
return error("会议时间存在冲突");
}else {
return toAjax(1);
}
}else {
return error("您不是管理员,无权操作他人预约信息");
}
}
}
return error("您不是管理员,无权操作他人预约信息");
// return toAjax(meetingInfoService.updateMeetingInfo(meetingInfo));
}
/**
* 删除会议预约信息
*/
@RequiresPermissions("system:meeting_info:remove")
@Log(title = "会议预约信息", businessType = BusinessType.DELETE)
@PostMapping( "/remove")
@ResponseBody
public AjaxResult remove(String ids)
{
return toAjax(meetingInfoService.deleteMeetingInfoByIds(ids));
}
}