소스 검색

'开发会议表(预约成功)-查询会议记录接口'

james 1 년 전
부모
커밋
b4bab75781

+ 13 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/controller/web/MeetingInfoController.java

@@ -2,9 +2,12 @@ package com.usky.meeting.controller.web;
 
 
 import com.usky.common.core.bean.ApiResult;
+import com.usky.common.core.bean.CommonPage;
 import com.usky.common.security.annotation.InnerAuth;
+import com.usky.meeting.domain.MeetingInfo;
 import com.usky.meeting.service.MeetingInfoService;
 import com.usky.meeting.service.dto.DmMeetingDto;
+import com.usky.meeting.service.vo.MeetingInfoRequestVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -38,5 +41,15 @@ public class MeetingInfoController {
         return ApiResult.success(meetingInfoService.add(resources));
     }
 
+    /**
+     * 查询会议记录
+     * @param requestVO
+     * @return
+     */
+    @PostMapping("meetingInfoList")
+    public ApiResult<CommonPage<MeetingInfo>> meetingInfoList(@RequestBody MeetingInfoRequestVO requestVO){
+        return ApiResult.success(meetingInfoService.meetingInfoList(requestVO));
+    }
+
 }
 

+ 8 - 1
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/domain/MeetingInfo.java

@@ -8,6 +8,7 @@ import java.util.Set;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.usky.meeting.service.dto.DmMeetingRoomDto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -43,9 +44,15 @@ public class MeetingInfo implements Serializable {
     private String meetingName;
 
     /**
-     * 会议室id
+     * 会议室房间
      */
+    @ManyToOne
+    @TableField(exist = false)
+    private MeetingRoom roomInfo;
 
+    /**
+     * 会议室id
+     */
     @JsonFormat(shape = JsonFormat.Shape.STRING)
     private Long roomId;
 

+ 2 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/mapper/MeetingFloorMapper.java

@@ -2,6 +2,7 @@ package com.usky.meeting.mapper;
 
 import com.usky.meeting.domain.MeetingFloor;
 import com.usky.common.mybatis.core.CrudMapper;
+import org.springframework.stereotype.Repository;
 
 /**
  * <p>
@@ -11,6 +12,7 @@ import com.usky.common.mybatis.core.CrudMapper;
  * @author zyj
  * @since 2024-03-08
  */
+@Repository
 public interface MeetingFloorMapper extends CrudMapper<MeetingFloor> {
 
 }

+ 4 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/MeetingInfoService.java

@@ -1,9 +1,11 @@
 package com.usky.meeting.service;
 
 import com.alibaba.fastjson.JSONObject;
+import com.usky.common.core.bean.CommonPage;
 import com.usky.meeting.domain.MeetingInfo;
 import com.usky.common.mybatis.core.CrudService;
 import com.usky.meeting.service.dto.DmMeetingDto;
+import com.usky.meeting.service.vo.MeetingInfoRequestVO;
 import org.springframework.data.repository.query.Param;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -46,4 +48,6 @@ public interface MeetingInfoService extends CrudService<MeetingInfo> {
     List<Integer> getMeetingRoomUsageByMonth(Long roomId, String monthTime) throws ParseException;
 
     DmMeetingDto add(DmMeetingDto resources);
+
+    CommonPage<MeetingInfo> meetingInfoList(MeetingInfoRequestVO requestVO);
 }

+ 109 - 3
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/impl/MeetingInfoServiceImpl.java

@@ -12,16 +12,19 @@ import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
 import com.aliyuncs.exceptions.ClientException;
 import com.aliyuncs.profile.DefaultProfile;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.google.common.base.Joiner;
+import com.usky.common.core.bean.CommonPage;
 import com.usky.common.core.exception.BusinessException;
 import com.usky.common.core.util.DateUtils;
 import com.usky.common.security.utils.SecurityUtils;
-import com.usky.meeting.domain.MeetingAttendee;
-import com.usky.meeting.domain.MeetingInfo;
-import com.usky.meeting.domain.SysUser;
+import com.usky.meeting.domain.*;
+import com.usky.meeting.mapper.MeetingFloorMapper;
 import com.usky.meeting.mapper.MeetingInfoMapper;
+import com.usky.meeting.mapper.MeetingRoomMapper;
 import com.usky.meeting.repository.DmUserRepository;
 import com.usky.meeting.repository.MeetingAttendeeRepository;
 import com.usky.meeting.repository.MeetingInfoRepository;
@@ -32,8 +35,10 @@ import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.meeting.service.SysUserService;
 import com.usky.meeting.service.dto.DmMeetingDto;
 import com.usky.meeting.service.dto.DmUserDto;
+import com.usky.meeting.service.vo.MeetingInfoRequestVO;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import net.bytebuddy.dynamic.scaffold.MethodRegistry;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -74,6 +79,10 @@ public class MeetingInfoServiceImpl extends AbstractCrudService<MeetingInfoMappe
     private UserRepository userRepository;
     @Autowired
     private MeetingAttendeeService meetingAttendeeService;
+    @Autowired
+    private MeetingRoomMapper meetingRoomMapper;
+    @Autowired
+    private MeetingFloorMapper meetingFloorMapper;
 
     @Override
     public Map<String, Object> meetingSummary(Integer tenantId) {
@@ -273,6 +282,103 @@ public class MeetingInfoServiceImpl extends AbstractCrudService<MeetingInfoMappe
         return resources;
     }
 
+    @Override
+    public CommonPage<MeetingInfo> meetingInfoList(MeetingInfoRequestVO requestVO){
+        Page<MeetingInfo> page = new Page<>(requestVO.getCurrent(),requestVO.getSize());
+
+        List<String> initiatorIdList = new ArrayList<>();
+        if(StringUtils.isNotBlank(requestVO.getName())){
+            LambdaQueryWrapper<SysUser> sysUserQuery = Wrappers.lambdaQuery();
+            sysUserQuery.like(SysUser::getNickName,requestVO.getName())
+                        .eq(SysUser::getTenantId,SecurityUtils.getTenantId());
+            List<SysUser> userList = sysUserService.list(sysUserQuery);
+            if(userList.size() > 0){
+                for (int i = 0; i < userList.size(); i++) {
+                    initiatorIdList.add(userList.get(i).getUserId().toString());
+                }
+            }
+        }
+
+        LambdaQueryWrapper<MeetingInfo> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.like(StringUtils.isNotBlank(requestVO.getRoomName()),MeetingInfo::getRoomName,requestVO.getRoomName())
+                .in(CollectionUtils.isNotEmpty(initiatorIdList),MeetingInfo::getInitiatorId,initiatorIdList)
+                .eq(null != requestVO.getMeetingStatus(),MeetingInfo::getMeetingStatus,requestVO.getMeetingStatus())
+                .eq(null != requestVO.getApproveStatus(),MeetingInfo::getApproveStatus,requestVO.getApproveStatus())
+                .between(StringUtils.isNotBlank(requestVO.getStartDate()) && StringUtils.isNotBlank(requestVO.getEndDate()),MeetingInfo::getStartDate,requestVO.getStartDate(),requestVO.getEndDate())
+                .between(StringUtils.isNotBlank(requestVO.getStartDate()) && StringUtils.isNotBlank(requestVO.getEndDate()),MeetingInfo::getEndDate,requestVO.getStartDate(),requestVO.getEndDate())
+                .eq(MeetingInfo::getTenantId,SecurityUtils.getTenantId())
+                .orderByDesc(MeetingInfo::getMeetingId);
+        page = this.page(page,queryWrapper);
+        if(page.getRecords().size() > 0){
+            List<Long> roomIdList = new ArrayList<>();
+            List<Long> initIdList = new ArrayList<>();
+            for (int i = 0; i < page.getRecords().size(); i++) {
+                if(!roomIdList.contains(page.getRecords().get(i).getRoomId())){
+                    roomIdList.add(page.getRecords().get(i).getRoomId());
+                }
+                if(!initIdList.contains(page.getRecords().get(i).getInitiatorId())){
+                    initIdList.add(Long.valueOf(page.getRecords().get(i).getInitiatorId()));
+                }
+            }
+            //房间以及对应楼层信息
+            if(roomIdList.size() > 0){
+                LambdaQueryWrapper<MeetingRoom> meetingRoomQuery = Wrappers.lambdaQuery();
+                meetingRoomQuery.in(MeetingRoom::getRoomId,roomIdList)
+                        .eq(MeetingRoom::getTenantId,SecurityUtils.getTenantId())
+                        .eq(MeetingRoom::getStatus,0);
+                List<MeetingRoom> meetingRoomList = meetingRoomMapper.selectList(meetingRoomQuery);
+
+                List<Long> floorIdList = new ArrayList<>();
+                if(meetingRoomList.size() > 0){
+                    for (int i = 0; i < meetingRoomList.size(); i++) {
+                        if(!floorIdList.contains(meetingRoomList.get(i).getFloorId())){
+                            floorIdList.add(meetingRoomList.get(i).getFloorId());
+                        }
+                    }
+                    LambdaQueryWrapper<MeetingFloor> floorWrapper = Wrappers.lambdaQuery();
+                    floorWrapper.in(MeetingFloor::getFloorId,floorIdList)
+                            .eq(MeetingFloor::getTenantId,SecurityUtils.getTenantId());
+                    List<MeetingFloor> meetingFloorList = meetingFloorMapper.selectList(floorWrapper);
+                    for (int i = 0; i < page.getRecords().size(); i++) {
+                        for (int j = 0; j < meetingRoomList.size(); j++) {
+                            if(page.getRecords().get(i).getRoomId().equals(meetingRoomList.get(j).getRoomId())){
+                                page.getRecords().get(i).setRoomInfo(meetingRoomList.get(j));
+                                break;
+                            }
+                        }
+                        for (int j = 0; j < meetingFloorList.size(); j++) {
+                            if(page.getRecords().get(i).getRoomInfo().getFloorId().equals(meetingFloorList.get(j).getFloorId())){
+                                page.getRecords().get(i).getRoomInfo().setMeetingFloor(meetingFloorList.get(j));
+                                break;
+                            }
+                        }
+                    }
+                }
+            }
+            //发起人信息
+            if(initIdList.size() > 0){
+                LambdaQueryWrapper<SysUser> initIdQuery = Wrappers.lambdaQuery();
+                initIdQuery.in(SysUser::getUserId,initIdList)
+                        .eq(SysUser::getTenantId,SecurityUtils.getTenantId());
+                List<SysUser> userList = sysUserService.list(initIdQuery);
+                if(userList.size() > 0){
+                    for (int i = 0; i < page.getRecords().size(); i++) {
+                        for (int j = 0; j < userList.size(); j++) {
+                            if(page.getRecords().get(i).getInitiatorId().equals(userList.get(j).getUserId().toString())){
+                                page.getRecords().get(i).setInitiatorUser(userList.get(j));
+                                break;
+                            }
+                        }
+                    }
+                }
+            }
+
+
+        }
+
+        return new CommonPage<>(page.getRecords(),page.getTotal(),requestVO.getSize(),requestVO.getCurrent());
+    }
+
     public void send(DmMeetingDto resources) throws ClientException {
         if (StringUtils.isNotBlank(resources.getSendType())) {
             if (resources.getSendType().equals("短信")) {

+ 6 - 3
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/impl/MeetingRoomServiceImpl.java

@@ -15,6 +15,7 @@ import com.usky.common.core.exception.BusinessException;
 import com.usky.common.security.utils.SecurityUtils;
 import com.usky.meeting.domain.MeetingAttendee;
 import com.usky.meeting.domain.MeetingFloor;
+import com.usky.meeting.domain.MeetingInfo;
 import com.usky.meeting.domain.MeetingRoom;
 import com.usky.meeting.mapper.MeetingRoomMapper;
 import com.usky.meeting.repository.MeetingAttendeeRepository;
@@ -91,7 +92,7 @@ public class MeetingRoomServiceImpl extends AbstractCrudService<MeetingRoomMappe
         LambdaQueryWrapper<MeetingRoom> queryWrapper = Wrappers.lambdaQuery();
         queryWrapper.like(StringUtils.isNotBlank(requestVO.getRoomName()),MeetingRoom::getRoomName,requestVO.getRoomName())
                 .eq(StringUtils.isNotBlank(floorId),MeetingRoom::getFloorId,floorId)
-                .eq(StringUtils.isNotBlank(requestVO.getStatus()),MeetingRoom::getStatus,requestVO.getStatus())
+                .eq(null != requestVO.getStatus(),MeetingRoom::getStatus,requestVO.getStatus())
                 .eq(null != requestVO.getRoomStatus(),MeetingRoom::getRoomStatus,requestVO.getRoomStatus())
                 .eq(MeetingRoom::getTenantId, SecurityUtils.getTenantId())
                 .orderByDesc(MeetingRoom::getRoomId);
@@ -189,7 +190,8 @@ public class MeetingRoomServiceImpl extends AbstractCrudService<MeetingRoomMappe
         List<DmMeetingRoomDto> newDmMeetingRoomDtoList = new ArrayList<>();
         String meetingRoomName = reservationVO.getMeetingRoomName();
         LambdaQueryWrapper<MeetingRoom> queryWrapper = Wrappers.lambdaQuery();
-        queryWrapper.like(StringUtils.isNotBlank(meetingRoomName),MeetingRoom::getRoomName,meetingRoomName);
+        queryWrapper.like(StringUtils.isNotBlank(meetingRoomName),MeetingRoom::getRoomName,meetingRoomName)
+                .eq(MeetingRoom::getTenantId,SecurityUtils.getTenantId());
         List<MeetingRoom> list1 = this.list(queryWrapper);
         List<Long> floorIdList = new ArrayList<>();
         if(CollectionUtils.isNotEmpty(list1)){
@@ -199,7 +201,8 @@ public class MeetingRoomServiceImpl extends AbstractCrudService<MeetingRoomMappe
                 }
             }
             LambdaQueryWrapper<MeetingFloor> floorWrapper = Wrappers.lambdaQuery();
-            floorWrapper.in(MeetingFloor::getFloorId,floorIdList);
+            floorWrapper.in(MeetingFloor::getFloorId,floorIdList)
+                    .eq(MeetingFloor::getTenantId,SecurityUtils.getTenantId());
             List<MeetingFloor> meetingFloorList = dmFloorService.list(floorWrapper);
             if(CollectionUtils.isNotEmpty(meetingFloorList)){
                 for (int i = 0; i < list1.size(); i++) {

+ 45 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/vo/MeetingInfoRequestVO.java

@@ -0,0 +1,45 @@
+package com.usky.meeting.service.vo;
+
+import lombok.Data;
+
+@Data
+public class MeetingInfoRequestVO {
+    /**
+     * 页数
+     */
+    private Integer current;
+    /**
+     * 条数
+     */
+    private Integer size;
+
+    /**
+     * 会议室名称
+     */
+    private String roomName;
+
+    /**
+     * 发起人名称
+     */
+    private String name;
+
+    /**
+     * 会议状态(0-未开始 1-进行中 2-已结束)
+     */
+    private Integer meetingStatus;
+
+    /**
+     * 审批状态(0-审批中 1-审批通过 2-审批驳回)
+     */
+    private Integer approveStatus;
+
+    /**
+     * 会议开始时间
+     */
+    private String startDate;
+
+    /**
+     * 会议结束时间
+     */
+    private String endDate;
+}

+ 2 - 2
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/vo/MeetingRoomRequestVO.java

@@ -25,9 +25,9 @@ public class MeetingRoomRequestVO {
     private String floorName;
 
     /**
-     * 会议室启用状态(00.启用 01.停用)
+     * 会议室状态(0.启用 1.停用)
      */
-    private String status;
+    private Integer status;
 
     /**
      * 会议室使用状态(0-未使用 1-使用中)