فهرست منبع

1、会议室预定信息列表

dongpo 1 سال پیش
والد
کامیت
d332ae55e9

+ 22 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/meeting/reserve/OaMeetingReserveController.java

@@ -1,5 +1,6 @@
 package cn.iocoder.yudao.module.bpm.controller.admin.meeting.reserve;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
@@ -30,6 +31,7 @@ import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.IOException;
+import java.text.ParseException;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
@@ -201,6 +203,26 @@ public class OaMeetingReserveController {
         return success(voPageResult);
     }
 
+    @GetMapping("/list")
+    @Operation(summary = "获得会议室预定管理信息列表")
+    @Parameter(name = "roomId", description = "会议室id", required = true, example = "2")
+    @Parameter(name = "month", description = "年月,格式:yyyy-MM", required = true, example = "2024-07")
+    // @PreAuthorize("@ss.hasPermission('bpm:oa-meeting-reserve:list')")
+    public CommonResult<List<OaMeetingReserveRespVO>> getOaMeetingReserveList(@RequestParam("roomId") Long roomId, @RequestParam("month") String month) throws ParseException {
+        List<OaMeetingReserveDO> doList = oaMeetingReserveService.getOaMeetingReserveList(roomId, month);
+        List<OaMeetingReserveRespVO> voList = BeanUtils.toBean(doList, OaMeetingReserveRespVO.class);
+        if (CollUtil.isNotEmpty(voList)) {
+            // 状态描述
+            Map<String, String> enumsMap = Arrays.stream(MeetingReserveStatusEnum.values())
+                    .collect(Collectors.toMap(MeetingReserveStatusEnum::getStatus, MeetingReserveStatusEnum::getDesc));
+            for (OaMeetingReserveRespVO oaMeetingReserveRespVO : voList) {
+                String status = oaMeetingReserveRespVO.getStatus();
+                oaMeetingReserveRespVO.setStatusDesc(enumsMap.get(status));
+            }
+        }
+        return success(voList);
+    }
+
     @GetMapping("/export-excel")
     @Operation(summary = "导出会议室预定管理信息 Excel")
     // @PreAuthorize("@ss.hasPermission('bpm:oa-meeting-reserve:export')")

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

@@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.bpm.controller.admin.meeting.reserve.vo.OaMeeting
 import cn.iocoder.yudao.module.bpm.dal.dataobject.meeting.reserve.OaMeetingReserveDO;
 
 import javax.validation.Valid;
+import java.text.ParseException;
 import java.util.List;
 
 /**
@@ -68,4 +69,13 @@ public interface OaMeetingReserveService {
     void endOaMeetingReserve(Long id);
 
     void updateOaMeetingReserveStatus(List<Long> ids, String status);
+
+    /**
+     * 根据会议室和月份查询会议室预定管理信息
+     *
+     * @param roomId 会议室id
+     * @param month  月份
+     * @return 预定管理信息
+     */
+    List<OaMeetingReserveDO> getOaMeetingReserveList(Long roomId, String month) throws ParseException;
 }

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

@@ -1,6 +1,9 @@
 package cn.iocoder.yudao.module.bpm.service.meeting.reserve;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.io.unit.DataUnit;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
@@ -15,13 +18,19 @@ import cn.iocoder.yudao.module.system.api.user.AdminUserApi;
 import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import org.jsoup.helper.DataUtil;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.time.temporal.ChronoUnit;
+import java.util.Calendar;
+import java.util.Date;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -211,4 +220,25 @@ public class OaMeetingReserveServiceImpl implements OaMeetingReserveService {
         oaMeetingReserveMapper.update(lambdaUpdateWrapper);
     }
 
+    @Override
+    public List<OaMeetingReserveDO> getOaMeetingReserveList(Long roomId, String month) throws ParseException {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
+        Date parse = sdf.parse(month);
+        Calendar c1 = Calendar.getInstance();
+        c1.setTime(parse);
+        Date monthStart = c1.getTime();
+        Calendar c2 = Calendar.getInstance();
+        c2.setTime(parse);
+        c2.add(Calendar.MONTH, 1);
+        Date monthEnd = c2.getTime();
+        String monthStartFormat = sdf.format(monthStart);
+        String monthEndFormat = sdf.format(monthEnd);
+
+        LambdaQueryWrapper<OaMeetingReserveDO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(OaMeetingReserveDO::getRoomId, roomId)
+                .gt(OaMeetingReserveDO::getStartTime, monthStartFormat)
+                .lt(OaMeetingReserveDO::getStartTime, monthEndFormat);
+        return oaMeetingReserveMapper.selectList(lambdaQueryWrapper);
+    }
+
 }