From 113cd73922b9b67c261c19c744e46eb2822d7b41 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期五, 14 十一月 2025 14:54:11 +0800
Subject: [PATCH] Merge branch 'prod' into dev_tide
---
src/main/java/com/ruoyi/collaborativeApproval/service/impl/MeetingServiceImpl.java | 244 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 244 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ruoyi/collaborativeApproval/service/impl/MeetingServiceImpl.java b/src/main/java/com/ruoyi/collaborativeApproval/service/impl/MeetingServiceImpl.java
new file mode 100644
index 0000000..c269b1a
--- /dev/null
+++ b/src/main/java/com/ruoyi/collaborativeApproval/service/impl/MeetingServiceImpl.java
@@ -0,0 +1,244 @@
+package com.ruoyi.collaborativeApproval.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.xiaoymin.knife4j.core.util.StrUtil;
+import com.ruoyi.collaborativeApproval.dto.MeetSummaryDto;
+import com.ruoyi.collaborativeApproval.dto.MeetUseDto;
+import com.ruoyi.collaborativeApproval.dto.MeetingItem;
+import com.ruoyi.collaborativeApproval.dto.MeetingSimpleDto;
+import com.ruoyi.collaborativeApproval.mapper.MeetApplicationMapper;
+import com.ruoyi.collaborativeApproval.mapper.MeetDraftMapper;
+import com.ruoyi.collaborativeApproval.mapper.MeetingMinutesMapper;
+import com.ruoyi.collaborativeApproval.mapper.MeetingRoomMapper;
+import com.ruoyi.collaborativeApproval.pojo.MeetApplication;
+import com.ruoyi.collaborativeApproval.pojo.MeetDraft;
+import com.ruoyi.collaborativeApproval.pojo.MeetingMinutes;
+import com.ruoyi.collaborativeApproval.pojo.MeetingRoom;
+import com.ruoyi.collaborativeApproval.service.MeetingService;
+import com.ruoyi.collaborativeApproval.vo.SearchMeetingApplicationVo;
+import com.ruoyi.collaborativeApproval.vo.SearchMeetingDraftVo;
+import com.ruoyi.collaborativeApproval.vo.SearchMeetingRoomVo;
+import com.ruoyi.collaborativeApproval.vo.SearchMeetingUseVo;
+import com.ruoyi.common.utils.SecurityUtils;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.time.format.DateTimeFormatter;
+import java.util.*;
+import java.util.stream.Collectors;
+
+
+@Service
+@RequiredArgsConstructor
+public class MeetingServiceImpl extends ServiceImpl<MeetingRoomMapper, MeetingRoom> implements MeetingService {
+ private final MeetingRoomMapper meetingRoomMapper;
+
+ private final MeetDraftMapper meetDraftMapper;
+
+ private final MeetApplicationMapper meetApplicationMapper;
+
+ private final MeetingMinutesMapper meetingMinutesMapper;
+
+ @Override
+ public IPage<MeetingRoom> getMeetingRoomList(SearchMeetingRoomVo vo) {
+ LambdaQueryWrapper<MeetingRoom> queryWrapper = new LambdaQueryWrapper<>();
+ if (StrUtil.isNotBlank(vo.getName())) {
+ queryWrapper.like(MeetingRoom::getName, vo.getName());
+ }
+ if (StrUtil.isNotBlank(vo.getLocation())) {
+ queryWrapper.like(MeetingRoom::getLocation, vo.getLocation());
+ }
+ queryWrapper.orderByDesc(MeetingRoom::getId);
+ return meetingRoomMapper.selectPage(new Page<MeetingRoom>(vo.getCurrent(), vo.getSize()), queryWrapper);
+ }
+
+ @Override
+ public void saveMeetRoom(MeetingRoom meetingRoom) {
+ if (meetingRoom.getId() != null) {
+ meetingRoomMapper.updateById(meetingRoom);
+ } else {
+ meetingRoomMapper.insert(meetingRoom);
+ }
+ }
+
+ @Override
+ public MeetingRoom findMeetRoomById(Long id) {
+ return meetingRoomMapper.selectById(id);
+ }
+
+ @Override
+ public void deleteMeetingRoom(Long id) {
+ meetingRoomMapper.deleteById(id);
+ }
+
+ @Override
+ public List<MeetingRoom> getRoomEnum() {
+ LambdaQueryWrapper<MeetingRoom> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.select(MeetingRoom::getName, MeetingRoom::getId, MeetingRoom::getLocation);
+ queryWrapper.eq(MeetingRoom::getStatus, 1);
+ queryWrapper.orderByDesc(MeetingRoom::getId);
+ return meetingRoomMapper.selectList(queryWrapper);
+ }
+
+ @Override
+ public IPage<MeetDraft> getMeetingDraftList(SearchMeetingDraftVo vo) {
+
+ LambdaQueryWrapper<MeetDraft> queryWrapper = new LambdaQueryWrapper<>();
+ if (StrUtil.isNotBlank(vo.getTitle())) {
+ queryWrapper.like(MeetDraft::getTitle, vo.getTitle());
+ }
+ if (Objects.nonNull(vo.getMeetingDate())) {
+ queryWrapper.eq(MeetDraft::getMeetingDate, vo.getMeetingDate());
+ }
+
+ queryWrapper.orderByDesc(MeetDraft::getId);
+
+ return meetDraftMapper.selectPage(new Page<>(vo.getCurrent(), vo.getSize()), queryWrapper);
+ }
+
+ @Override
+ public void saveMeetDraft(MeetDraft meetDraft) {
+ if (meetDraft.getId() != null) {
+ meetDraftMapper.updateById(meetDraft);
+ } else {
+ meetDraftMapper.insert(meetDraft);
+ }
+ }
+
+ @Override
+ public void deleteMeetingDraft(Long id) {
+ meetDraftMapper.deleteById(id);
+ }
+
+ @Override
+ public void saveMeetApplication(MeetApplication meetApplication) {
+ meetApplication.setApplicant(SecurityUtils.getUsername());
+ if (meetApplication.getId() != null) {
+ meetApplicationMapper.updateById(meetApplication);
+ } else {
+ meetApplicationMapper.insert(meetApplication);
+ }
+ }
+
+ @Override
+ public IPage<MeetApplication> getMeetingApplicationList(SearchMeetingApplicationVo vo) {
+ LambdaQueryWrapper<MeetApplication> queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.in(MeetApplication::getApplicationType, "approval", "department");
+ if (StrUtil.isNotBlank(vo.getTitle())) {
+ queryWrapper.like(MeetApplication::getTitle, vo.getTitle());
+ }
+ if (StrUtil.isNotBlank(vo.getApplicant())) {
+ queryWrapper.like(MeetApplication::getApplicant, vo.getApplicant());
+ }
+ if (StrUtil.isNotBlank(vo.getStatus())) {
+ queryWrapper.eq(MeetApplication::getStatus, vo.getStatus());
+ }
+ queryWrapper.orderByDesc(MeetApplication::getId);
+ return meetApplicationMapper.selectPage(new Page<>(vo.getCurrent(), vo.getSize()), queryWrapper);
+ }
+
+
+ @Override
+ public List<MeetUseDto> meetingUseList(SearchMeetingUseVo vo) {
+ // 鏌ヨ浼氳鍒楄〃
+ LambdaQueryWrapper<MeetApplication> alWrapper = new LambdaQueryWrapper<>();
+ alWrapper.and(wrapper -> {
+ wrapper.eq(MeetApplication::getStatus, 1)
+ .or()
+ .eq(MeetApplication::getApplicationType, "notification");
+ });
+ if (Objects.nonNull(vo.getMeetingDate())) {
+ alWrapper.and(wrapper -> {
+ wrapper.eq(MeetApplication::getMeetingDate, vo.getMeetingDate());
+ });
+ }
+ alWrapper.orderByAsc(MeetApplication::getStartTime);
+ List<MeetApplication> meetApplicationList = meetApplicationMapper.selectList(alWrapper);
+
+ // 鏍规嵁 roomId 杩涜鍒嗙粍
+ Map<Long, List<MeetApplication>> roomGroup = meetApplicationList.stream().collect(Collectors.groupingBy(MeetApplication::getRoomId));
+ // 鏌ヨroom淇℃伅
+ List<MeetingRoom> roomList = meetingRoomMapper.selectList(new LambdaUpdateWrapper<MeetingRoom>().orderByAsc(MeetingRoom::getId));
+
+ List<MeetUseDto> meetUseDtoList = new ArrayList<>();
+
+ roomList.forEach(r -> {
+ MeetUseDto dto = new MeetUseDto();
+ MeetingRoom meetingRoom = roomList.stream().filter(room -> room.getId().equals(r.getId())).findFirst().orElse(new MeetingRoom());
+ dto.setId(meetingRoom.getId());
+ dto.setName(meetingRoom.getName());
+ List<MeetingItem> collect = roomGroup.getOrDefault(r.getId(), new ArrayList<>()).stream().map(it -> {
+ MeetingItem item = new MeetingItem();
+ item.setId(it.getId());
+ item.setHost(it.getHost());
+ item.setStatus(1);
+ item.setTitle(it.getTitle());
+ item.setStartTime(it.getStartTime().format(DateTimeFormatter.ofPattern("HH:mm")));
+ item.setEndTime(it.getEndTime().format(DateTimeFormatter.ofPattern("HH:mm")));
+ item.setTime(item.getStartTime() + "锝�" + item.getEndTime());
+ item.setParticipants(it.getParticipants().split(",").length);
+ item.setDescription(it.getDescription());
+ item.setRoom(meetingRoom.getName() + "(" + meetingRoom.getLocation() + ")");
+ return item;
+ }).collect(Collectors.toList());
+ dto.setMeetings(collect);
+ meetUseDtoList.add(dto);
+ });
+ return meetUseDtoList;
+
+ }
+
+ @Override
+ public IPage<MeetApplication> getMeetingPublishList(SearchMeetingApplicationVo vo) {
+ LambdaQueryWrapper<MeetApplication> queryWrapper = new LambdaQueryWrapper<>();
+ if (StrUtil.isNotBlank(vo.getTitle())) {
+ queryWrapper.like(MeetApplication::getTitle, vo.getTitle());
+ }
+ if (StrUtil.isNotBlank(vo.getApplicant())) {
+ queryWrapper.like(MeetApplication::getApplicant, vo.getApplicant());
+ }
+ if (StrUtil.isNotBlank(vo.getStatus())) {
+ queryWrapper.eq(MeetApplication::getPublishStatus, vo.getStatus());
+ }
+ queryWrapper.and(wrapper -> {
+ wrapper.eq(MeetApplication::getStatus, 1)
+ .or()
+ .eq(MeetApplication::getApplicationType, "notification");
+ });
+ queryWrapper.orderByDesc(MeetApplication::getId);
+ return meetApplicationMapper.selectPage(new Page<>(vo.getCurrent(), vo.getSize()), queryWrapper);
+ }
+
+ @Override
+ public MeetingMinutes getMeetingMinutesById(Long id) {
+ return meetingMinutesMapper.selectOne(new LambdaUpdateWrapper<MeetingMinutes>().eq(MeetingMinutes::getMeetingId,id));
+ }
+
+ @Override
+ public void saveMeetingMinutes(MeetingMinutes meetingMinutes) {
+ if (meetingMinutes.getId() != null){
+ meetingMinutesMapper.updateById(meetingMinutes);
+ }else {
+ meetingMinutesMapper.insert(meetingMinutes);
+ }
+ }
+
+
+ @Override
+ public MeetSummaryDto getMeetSummary() {
+ return meetApplicationMapper.getMeetSummary();
+ }
+
+ @Override
+ public List<MeetingSimpleDto> getMeetSummaryItems() {
+ return meetApplicationMapper.getMeetSummaryItems();
+ }
+}
+
+
+
+
--
Gitblit v1.9.3