|
@@ -1,6 +1,7 @@
|
|
|
package cn.iocoder.yudao.module.bpm.service.meeting.reserve;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.IdUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
|
@@ -181,6 +182,9 @@ public class OaMeetingReserveServiceImpl implements OaMeetingReserveService {
|
|
|
|
|
|
@Override
|
|
|
public PageResult<OaMeetingReserveDO> getOaMeetingReservePage(OaMeetingReservePageReqVO pageReqVO) {
|
|
|
+ startMeetingList();
|
|
|
+ endMeetingList();
|
|
|
+
|
|
|
return oaMeetingReserveMapper.selectPage(pageReqVO);
|
|
|
}
|
|
|
|
|
@@ -225,8 +229,39 @@ public class OaMeetingReserveServiceImpl implements OaMeetingReserveService {
|
|
|
oaMeetingReserveMapper.update(lambdaUpdateWrapper);
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ // 自动启动会议
|
|
|
+ private void startMeetingList() {
|
|
|
+ LambdaQueryWrapper<OaMeetingReserveDO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ Date date = new Date();
|
|
|
+ // 格式化为 yyyy-MM-dd HH:mm
|
|
|
+ String dateStr = DateUtil.format(date, "yyyy-MM-dd HH:mm");
|
|
|
+ lambdaQueryWrapper.eq(OaMeetingReserveDO::getStatus, MeetingReserveStatusEnum.WAITING.getStatus())
|
|
|
+ .le(OaMeetingReserveDO::getStartTime, dateStr);
|
|
|
+ List<OaMeetingReserveDO> reserveDOList = oaMeetingReserveMapper.selectList(lambdaQueryWrapper);
|
|
|
+ List<Long> reserveIdList = reserveDOList.stream().map(OaMeetingReserveDO::getId).collect(Collectors.toList());
|
|
|
+ updateOaMeetingReserveStatus(reserveIdList, MeetingReserveStatusEnum.IN_PROGRESS.getStatus());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 自动结束会议
|
|
|
+ private void endMeetingList() {
|
|
|
+ LambdaQueryWrapper<OaMeetingReserveDO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ Date date = new Date();
|
|
|
+ // 格式化为 yyyy-MM-dd HH:mm
|
|
|
+ String dateStr = DateUtil.format(date, "yyyy-MM-dd HH:mm");
|
|
|
+ lambdaQueryWrapper.eq(OaMeetingReserveDO::getStatus, MeetingReserveStatusEnum.IN_PROGRESS.getStatus())
|
|
|
+ .lt(OaMeetingReserveDO::getEndTime, dateStr);
|
|
|
+ List<OaMeetingReserveDO> reserveDOList = oaMeetingReserveMapper.selectList(lambdaQueryWrapper);
|
|
|
+ List<Long> reserveIdList = reserveDOList.stream().map(OaMeetingReserveDO::getId).collect(Collectors.toList());
|
|
|
+ updateOaMeetingReserveStatus(reserveIdList, MeetingReserveStatusEnum.ENDED.getStatus());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public List<OaMeetingReserveDO> getOaMeetingReserveList(Long roomId, String month) throws ParseException {
|
|
|
+ startMeetingList();
|
|
|
+ endMeetingList();
|
|
|
+
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
|
|
Date parse = sdf.parse(month);
|
|
|
Calendar c1 = Calendar.getInstance();
|