💕💕JavaWeb项目
💕💕微信小程序项目
💕💕Python项目
💕💕Android项目

1、绪论

1.1 项目背景与意义

   随着现代企业的日益发展,会议作为信息沟通和决策的重要手段,在组织内部扮演着不可或缺的角色。然而,传统的会议室管理方式常常受限于繁琐的手动操作和信息不透明,导致会议室资源利用效率低下、预约冲突频繁发生。同时,全球化的办公环境使得跨地域、跨时区的会议安排变得复杂。为了有效解决这些挑战,"基于SpringCloud的会议室预约系统的设计与实现"成为迫切的需求。该系统的设计将通过现代化的信息技术手段,实现会议室的在线预约、实时查看和高效管理,从而为企业提供一个智能、便捷的会议室资源管理平台。
   基于SpringCloud的会议室预约系统的设计具有深远的意义。首先,系统的实施将提升会议室资源的利用效率,避免了预约冲突,降低了会议室的空置率,从而优化了企业内部资源分配。其次,系统支持远程会议预约和管理,为全球范围内的跨地域团队协作提供了可靠的工具。此外,系统的数据导出和分析功能将为企业决策提供有力支持,有助于优化会议安排,提升工作效率。总之,"基于SpringCloud的会议室预约系统的设计与实现"不仅是一个技术层面上的创新,更是企业管理效率和信息化水平提升的战略举措,将为企业内部协作和决策带来积极的影响。

2、核心功能模块

  会议室预约系统核心的功能应包括以下主要功能模块:
  1、会议室预约: 用户能够通过系统选择合适的日期、时间和会议室,进行预约,并提供会议主题和参与人信息。
  2、会议室管理: 管理员能够添加、修改和删除会议室信息,包括容纳人数、设备设施等。
  3、会议室维修申请: 用户可以提交维修申请,描述问题,并选择相关的会议室,以便及时维护。
  4、查看会议室使用情况: 用户和管理员可以查看特定日期范围内会议室的预约情况,避免冲突。
  5、导出会议室数据: 系统允许用户导出会议室使用数据和报告,支持数据分析和决策。
  6、用户管理: 系统应具备用户注册、登录、权限管理等功能,确保不同用户角色拥有适当的访问权限。

3、项目页面展示

基于SpringCloud的会议室预约系统Java基于微服务的会议室报修系统【源码+lw】-LMLPHP

3.1 登录页面

基于SpringCloud的会议室预约系统Java基于微服务的会议室报修系统【源码+lw】-LMLPHP

3.2 会议室报修页面基于SpringCloud的会议室预约系统Java基于微服务的会议室报修系统【源码+lw】-LMLPHP## 3.3 导出会议室信息页面

基于SpringCloud的会议室预约系统Java基于微服务的会议室报修系统【源码+lw】-LMLPHP

3.4 预约会议室页面基于SpringCloud的会议室预约系统Java基于微服务的会议室报修系统【源码+lw】-LMLPHP## 3.5 角色用户管理页面

基于SpringCloud的会议室预约系统Java基于微服务的会议室报修系统【源码+lw】-LMLPHP

3.6 查看会议室使用情况页面基于SpringCloud的会议室预约系统Java基于微服务的会议室报修系统【源码+lw】-LMLPHP

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));
    }
}
08-20 07:23