Browse Source

1、自动开始/结束会议预定信息

dongpo 7 months ago
parent
commit
a1e955537b

+ 35 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/meeting/reserve/OaMeetingReserveServiceImpl.java

@@ -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();