MrShi
2025-05-09 ffa54cddadb29a265869573abb0c1067fcd74b96
server/meeting/meeting_service/src/main/java/com/doumee/service/business/impl/BookingsServiceImpl.java
@@ -539,6 +539,7 @@
        IPage<Bookings> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
        MPJLambdaWrapper<Bookings> queryWrapper = new MPJLambdaWrapper<>();
        Utils.MP.blankToNull(pageWrap.getModel());
        Integer minute =getNearStartMinut();
        queryWrapper.selectAll(Bookings.class);
        queryWrapper.selectAs(Rooms::getName, Bookings::getRoomName);
@@ -576,22 +577,25 @@
        queryWrapper.eq(pageWrap.getModel().getStatus() != null, Bookings::getStatus, pageWrap.getModel().getStatus());
        queryWrapper.like(StringUtils.isNotBlank(pageWrap.getModel().getRealName()), SystemUser::getRealname, pageWrap.getModel().getRealName());
        queryWrapper.eq(pageWrap.getModel().getDepartmentId() != null, Company::getId, pageWrap.getModel().getDepartmentId());
        //status 状态 0已预约 1已撤销 2已结束
        //会议状态: 1=未开始;2=进行中;3=已结束 ; 4=即将开始; 5=已撤销
        queryWrapper.apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
                        &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.ONE),
                " ( now() < t.START_TIME and t.status = 0 ) "
                " ( now() < t.START_TIME and t.status = 0  AND SUBDATE( now(), INTERVAL -"+minute+" MINUTE ) <  t.START_TIME ) "
        )
        .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
                        &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.TWO),
                " ( now() >= t.START_TIME and t.END_TIME >= now() and t.status = 0 ) "
                " ( t.status = 0 and t.START_TIME_REAL is not null  ) "
        )
        .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
                        &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.THREE),
                " ( ( now() > t.END_TIME  and  t.`STATUS` = 0  ) or   t.`STATUS` = 2  )  "
                " (   t.`STATUS` = 2  )  "
                //" ( ( now() > t.END_TIME  and  t.`STATUS` = 0  ) or   t.`STATUS` = 2  )  "
        )
        .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
                        &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.FOUR),
                " now() < t.START_TIME  AND SUBDATE( t.START_TIME, INTERVAL 120 MINUTE ) < NOW() "
                " (t.status = 0  AND SUBDATE( now(), INTERVAL -"+minute+" MINUTE ) >  t.START_TIME and t.START_TIME_REAL is null ) "
                //" now() < t.START_TIME  AND SUBDATE( t.START_TIME, INTERVAL "+minute+" MINUTE ) < NOW() "
        )
        .apply(Objects.nonNull(pageWrap.getModel().getMeetingStatus())
                        &&Constants.equalsInteger(pageWrap.getModel().getMeetingStatus(),Constants.FIVE),
@@ -612,7 +616,6 @@
        SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm");
        SimpleDateFormat format1 = new SimpleDateFormat("HH:mm");
        IPage<Bookings> result = bookingsJoinMapper.selectJoinPage(page, Bookings.class, queryWrapper);
        Integer minute =getNearStartMinut();
        result.getRecords().stream().forEach(s -> {
            dealMeetingStatusByModel(s,minute);
            MPJLambdaWrapper<Multifile> bookquery = new MPJLambdaWrapper<>();
@@ -1313,21 +1316,24 @@
        for (Rooms rooms:roomList) {
            //查询当前会议室是否存在进行中的会议
            if(bookingsMapper.selectCount(new QueryWrapper<Bookings>().lambda().eq(Bookings::getIsdeleted,Constants.ZERO)
                    .eq(Bookings::getStatus,Constants.ZERO).isNotNull(Bookings::getStartTimeReal)
                    .eq(Bookings::getStatus,Constants.ZERO).eq(Bookings::getRoomId,rooms.getId()).isNotNull(Bookings::getStartTimeReal).
                    apply(" DATE_FORMAT(NOW(), '%Y-%m-%d') = DATE_FORMAT(START_TIME, '%Y-%m-%d') ")
            )<=Constants.ZERO){
                //根据会议室获取可以开启的会议记录(第一条记录)
                Bookings bookings = bookingsMapper.selectOne(new QueryWrapper<Bookings>().lambda()
                        .eq(Bookings::getIsdeleted,Constants.ZERO)
                        .eq(Bookings::getStatus,Constants.ZERO)
                        .eq(Bookings::getRoomId,rooms.getId())
                        .apply(" now() > START_TIME and now < END_TIME ")
                        .apply(" now() > START_TIME and now() < END_TIME ")
                        .isNull(Bookings::getStartTimeReal)
                        .orderByAsc(Bookings::getStartTime)
                        .last(" limit 1 ")
                );
                bookings.setStartTimeReal(new Date());
                bookings.setEditDate(new Date());
                bookingsMapper.updateById(bookings);
                if(Objects.nonNull(bookings)){
                    bookings.setStartTimeReal(new Date());
                    bookings.setEditDate(bookings.getStartTimeReal());
                    bookingsMapper.updateById(bookings);
                }
            }
        }
    }
@@ -1463,7 +1469,10 @@
                 .eq(Bookings::getIsdeleted, MeetConstants.ZERO)
                 .eq(Bookings::getStatus, MeetConstants.ZERO)
                 .eq(Rooms::getId, rooms.getId())
                 .apply("to_days(t.start_time) = to_days(now()) and t.end_time > now()")//子查询当天的
                 .apply(" (  " +
                         " to_days(t.start_time) = to_days(now()) " +
                         " and ( t.START_TIME_REAL is not null or ( t.end_time > now()  and  t.START_TIME_REAL is  null ) ) " +
                         " ) ")//子查询当天的
                 .orderByAsc(Bookings::getStartTime);
        Integer minute =getNearStartMinut();
        List<Bookings> meetingList =bookingsMapper.selectJoinList(Bookings.class,queryWrapper);