Browse Source

Merge branch 'usky-zyj' of uskycloud/usky-modules into server-165

James 1 year ago
parent
commit
fcad0b6702

+ 17 - 8
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/repository/MeetingRoomRepository.java

@@ -25,6 +25,7 @@ import org.springframework.data.repository.query.Param;
 import javax.transaction.Transactional;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 /**
 * @website https://el-admin.vip
@@ -95,14 +96,22 @@ public interface MeetingRoomRepository extends JpaRepository<MeetingRoom, Long>,
 //            "r.is_approve as isApprove " +
 //            "from dm_meeting_room as r where if(:floorId IS NOT NULL,r.floor_id = :floorId,1=1)" ,nativeQuery = true)
 //    List<Map<String,String>> getAllMeetingRoom(@Param("floorId") Long floorId);
-//
-//    /**
-//     * 根据会议室id更改会议室状态
-//     */
-//    @Transactional
-//    @Modifying
-//    @Query(value = "update dm_meeting_room set room_status = :roomStatus where room_id = :roomId  ",nativeQuery = true)
-//    void updateMeetingRoomStatus(@Param("roomId") Long roomId,@Param("roomStatus") Long roomStatus);
+
+    /**
+     * 根据会议室id更改会议室状态为 1-使用中
+     */
+    @Transactional
+    @Modifying
+    @Query(value = "update meeting_room set room_status = 1 where room_id in ?1  ",nativeQuery = true)
+    void updateMeetingRoomStatusOnUse(Set<Long> ids);
+
+    /**
+     * 根据会议室id更改会议室状态为 0-未使用
+     */
+    @Transactional
+    @Modifying
+    @Query(value = "update meeting_room set room_status = 0 where room_id in ?1  ",nativeQuery = true)
+    void updateMeetingRoomStatusFreeUse(Set<Long> ids);
 //
 //    /**
 //     * 会议室列表(运营)

+ 3 - 0
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/dto/DmMeetingDto.java

@@ -19,9 +19,11 @@ import com.alibaba.fastjson.annotation.JSONField;
 import com.alibaba.fastjson.serializer.ToStringSerializer;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.usky.meeting.domain.MeetingDevice;
+import com.usky.meeting.domain.MeetingFile;
 import com.usky.meeting.service.dto.DmMeetingRoomDto;
 import com.usky.meeting.domain.SysUser;
 import lombok.Data;
+import org.apache.catalina.LifecycleState;
 
 import java.io.Serializable;
 import java.sql.Timestamp;
@@ -127,4 +129,5 @@ public class DmMeetingDto implements Serializable {
 
     private Set<DmUserDto> userList;
 
+    private Set<MeetingFile> meetingFileList;
 }

+ 49 - 4
service-meeting/service-meeting-biz/src/main/java/com/usky/meeting/service/impl/MeetingInfoServiceImpl.java

@@ -27,11 +27,9 @@ 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;
-import com.usky.meeting.repository.UserRepository;
+import com.usky.meeting.repository.*;
 import com.usky.meeting.service.MeetingAttendeeService;
+import com.usky.meeting.service.MeetingFileService;
 import com.usky.meeting.service.MeetingInfoService;
 import com.usky.common.mybatis.core.AbstractCrudService;
 import com.usky.meeting.service.SysUserService;
@@ -80,6 +78,8 @@ public class MeetingInfoServiceImpl extends AbstractCrudService<MeetingInfoMappe
     @Autowired
     private MeetingAttendeeRepository meetingAttendeeRepository;
     @Autowired
+    private MeetingRoomRepository meetingRoomRepository;
+    @Autowired
     private SysUserService sysUserService;
     @Autowired
     private UserRepository userRepository;
@@ -89,6 +89,8 @@ public class MeetingInfoServiceImpl extends AbstractCrudService<MeetingInfoMappe
     private MeetingRoomMapper meetingRoomMapper;
     @Autowired
     private MeetingFloorMapper meetingFloorMapper;
+    @Autowired
+    private MeetingFileService meetingFileService;
 
     @Override
     public Map<String, Object> meetingSummary(Integer tenantId) {
@@ -275,6 +277,19 @@ public class MeetingInfoServiceImpl extends AbstractCrudService<MeetingInfoMappe
         resources.setMeetingStatus(0);
         MeetingInfo meeting = this.toEntity(resources);
         this.save(meeting);
+
+        //循环保存会议id和会议文件记录到会议文件表中
+        Long meetingId = meeting.getMeetingId();
+        if(!ObjectUtils.isEmpty(resources.getMeetingFileList())){
+            for (MeetingFile meetingFile : resources.getMeetingFileList()) {
+                meetingFile.setMeetingId(meetingId);
+                meetingFile.setUploadUser(SecurityUtils.getUsername());
+                meetingFile.setUploadTime(LocalDateTime.now());
+                meetingFile.setTenantId(SecurityUtils.getTenantId());
+                meetingFileService.save(meetingFile);
+            }
+        }
+
         if (!ObjectUtils.isEmpty(resources.getUsers())) {
             for(SysUser dmUser : resources.getUsers()){
                 MeetingAttendee meetingAttendee = new MeetingAttendee();
@@ -486,6 +501,36 @@ public class MeetingInfoServiceImpl extends AbstractCrudService<MeetingInfoMappe
     //UPDATE meeting_info SET meeting_status = 2 WHERE is_cancel = 0 AND meeting_status != 2 AND end_date < SYSDATE;
     @Override
     public void updateMeetingInfoStatus(){
+        //根据使用中的会议id去更新对应会议室的状态
+        //更新会议室使用状态为 1-使用中
+        LambdaQueryWrapper<MeetingInfo> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(MeetingInfo::getIsCancel,0)
+                .ne(MeetingInfo::getMeetingStatus,2)
+                .le(MeetingInfo::getStartDate,LocalDateTime.now())
+                .ge(MeetingInfo::getEndDate,LocalDateTime.now());
+        List<MeetingInfo> list = this.list(queryWrapper);
+        Set<Long> roomIdList = new HashSet<>();
+        if(list.size() > 0){
+            for (int i = 0; i < list.size(); i++) {
+                roomIdList.add(list.get(i).getRoomId());
+            }
+        }
+        meetingRoomRepository.updateMeetingRoomStatusOnUse(roomIdList);
+        //更新将会议室使用状态恢复为 0-未使用
+        LambdaQueryWrapper<MeetingInfo> queryWrapper1 = Wrappers.lambdaQuery();
+        queryWrapper1.eq(MeetingInfo::getIsCancel,0)
+                .ne(MeetingInfo::getMeetingStatus,2)
+                .lt(MeetingInfo::getEndDate,LocalDateTime.now());
+        List<MeetingInfo> list1 = this.list(queryWrapper1);
+        Set<Long> roomIdList1 = new HashSet<>();
+        if(list1.size() > 0){
+            for (int i = 0; i < list1.size(); i++) {
+                roomIdList1.add(list1.get(i).getRoomId());
+            }
+        }
+        meetingRoomRepository.updateMeetingRoomStatusFreeUse(roomIdList1);
+
+
         UpdateWrapper<MeetingInfo> updateWrapper = Wrappers.update();
         updateWrapper.set("meeting_status",1)
                 .eq("is_cancel",0)