src/main/java/com/ruoyi/collaborativeApproval/service/impl/MeetingServiceImpl.java
@@ -3,7 +3,10 @@
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.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
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;
@@ -23,6 +26,11 @@
import com.ruoyi.collaborativeApproval.vo.SearchMeetingRoomVo;
import com.ruoyi.collaborativeApproval.vo.SearchMeetingUseVo;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.project.system.domain.SysUser;
import com.ruoyi.project.system.mapper.SysUserMapper;
import com.ruoyi.project.system.service.ISysNoticeService;
import com.ruoyi.staff.mapper.StaffJoinLeaveRecordMapper;
import com.ruoyi.staff.pojo.StaffJoinLeaveRecord;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -33,14 +41,17 @@
@Service
@RequiredArgsConstructor
public class MeetingServiceImpl implements MeetingService {
public class MeetingServiceImpl extends ServiceImpl<MeetingRoomMapper, MeetingRoom> implements MeetingService {
    private final MeetingRoomMapper meetingRoomMapper;
    private final MeetDraftMapper meetDraftMapper;
    private final MeetApplicationMapper meetApplicationMapper;
    private final StaffJoinLeaveRecordMapper staffJoinLeaveRecordMapper;
    private final MeetingMinutesMapper meetingMinutesMapper;
    private final SysUserMapper userMapper;
    private final ISysNoticeService sysNoticeService;
    @Override
    public IPage<MeetingRoom> getMeetingRoomList(SearchMeetingRoomVo vo) {
@@ -121,6 +132,35 @@
        } else {
            meetApplicationMapper.insert(meetApplication);
        }
        if (ObjectUtils.isNotNull(meetApplication.getPublishStatus()) && meetApplication.getPublishStatus() == 1){
            MeetApplication application = meetApplicationMapper.selectById(meetApplication.getId());
            /*会议发布的消息通知*/
            //参会人员id(人员台账和用户表通过人员编号和用户名称(登录账号)做匹配)
            String cleanStr = application.getParticipants().trim()
                    .replaceAll("^\\[|\\]$", "")
                    .trim();
            List<Long> ids = Arrays.stream(cleanStr.split(","))
                    .map(String::trim)
                    .filter(s -> !s.isEmpty())
                    .map(s -> {
                        StaffJoinLeaveRecord staffJoinLeaveRecord = staffJoinLeaveRecordMapper.selectById(Long.valueOf(s));
                        List<SysUser> users = userMapper.selectList(Wrappers.<SysUser>lambdaQuery().eq(SysUser::getUserName,staffJoinLeaveRecord.getStaffNo()));
                        if (users.size() > 0){
                            return users.get(0).getUserId();
                        }else return null;
                    })
                    .filter(Objects::nonNull)
                    .collect(Collectors.toList());
            if (ids.size() > 0) {
                sysNoticeService.simpleNoticeByUser("会议通知",
                        "会议主题:" + application.getTitle() + "\n" +
                                "会议时间:" + application.getStartTime() + "-" + application.getEndTime() + "\n" +
                                "发起人:" + application.getApplicant(),
                        ids,
                        application.getTenantId(),
                        "");
            }
        }
    }
    @Override