| | |
| | | import com.ruoyi.collaborativeApproval.vo.SearchMeetingRoomVo; |
| | | import com.ruoyi.collaborativeApproval.vo.SearchMeetingUseVo; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.framework.web.domain.R; |
| | | 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 com.ruoyi.staff.mapper.StaffOnJobMapper; |
| | | import com.ruoyi.staff.pojo.StaffOnJob; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | |
| | | private final MeetDraftMapper meetDraftMapper; |
| | | |
| | | private final MeetApplicationMapper meetApplicationMapper; |
| | | private final StaffJoinLeaveRecordMapper staffJoinLeaveRecordMapper; |
| | | private final StaffOnJobMapper staffOnJobMapper; |
| | | |
| | | private final MeetingMinutesMapper meetingMinutesMapper; |
| | | private final SysUserMapper userMapper; |
| | | private final ISysNoticeService sysNoticeService; |
| | | |
| | | |
| | | @Override |
| | | public IPage<MeetingRoom> getMeetingRoomList(SearchMeetingRoomVo vo) { |
| | |
| | | } |
| | | |
| | | @Override |
| | | public void saveMeetApplication(MeetApplication meetApplication) { |
| | | public R<Void> saveMeetApplication(MeetApplication meetApplication) { |
| | | meetApplication.setApplicant(SecurityUtils.getUsername()); |
| | | |
| | | // 时间冲突校验 |
| | | LambdaQueryWrapper<MeetApplication> meetApplicationLambdaQueryWrapper = Wrappers.<MeetApplication>lambdaQuery() |
| | | .eq(MeetApplication::getRoomId, meetApplication.getRoomId()) |
| | | // 如果id不为null则排除自己 |
| | | .ne(meetApplication.getId() != null, MeetApplication::getId, meetApplication.getId()) |
| | | // 时间冲突判断 |
| | | .lt(MeetApplication::getStartTime, meetApplication.getEndTime()) |
| | | .gt(MeetApplication::getEndTime, meetApplication.getStartTime()); |
| | | |
| | | Long count = meetApplicationMapper.selectCount(meetApplicationLambdaQueryWrapper); |
| | | if (count > 0) { |
| | | return R.fail("所选会议室在该时间段已有其他会议,请调整时间或更换会议室"); |
| | | } |
| | | |
| | | if (meetApplication.getId() != null) { |
| | | // 更新 |
| | | meetApplicationMapper.updateById(meetApplication); |
| | | } else { |
| | | // 新增 |
| | | meetApplicationMapper.insert(meetApplication); |
| | | } |
| | | if (ObjectUtils.isNotNull(meetApplication.getPublishStatus()) && meetApplication.getPublishStatus() == 1){ |
| | | |
| | | /*会议发布的消息通知*/ |
| | | //参会人员id(人员台账和用户表通过人员编号和用户名称(登录账号)做匹配) |
| | | if (Integer.valueOf(1).equals(meetApplication.getPublishStatus())) { |
| | | MeetApplication application = meetApplicationMapper.selectById(meetApplication.getId()); |
| | | /*会议发布的消息通知*/ |
| | | //参会人员id(人员台账和用户表通过人员编号和用户名称(登录账号)做匹配) |
| | | String cleanStr = application.getParticipants().trim() |
| | | |
| | | String cleanStr = application.getParticipants() |
| | | .replaceAll("^\\[|\\]$", "") |
| | | .trim(); |
| | | List<Long> ids = Arrays.stream(cleanStr.split(",")) |
| | | |
| | | List<Long> userIds = 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; |
| | | .map(Long::valueOf) |
| | | .map(staffId -> { |
| | | StaffOnJob record = staffOnJobMapper.selectById(staffId); |
| | | if (record == null) { |
| | | return null; |
| | | } |
| | | return userMapper.selectOne( |
| | | Wrappers.<SysUser>lambdaQuery() |
| | | .eq(SysUser::getUserName, record.getStaffNo()) |
| | | ); |
| | | }) |
| | | .filter(Objects::nonNull) |
| | | .map(SysUser::getUserId) |
| | | .collect(Collectors.toList()); |
| | | if (ids.size() > 0) { |
| | | sysNoticeService.simpleNoticeByUser("会议通知", |
| | | |
| | | if (!userIds.isEmpty()) { |
| | | sysNoticeService.simpleNoticeByUser( |
| | | "会议通知", |
| | | "会议主题:" + application.getTitle() + "\n" + |
| | | "会议时间:" + application.getStartTime() + "-" + application.getEndTime() + "\n" + |
| | | "发起人:" + application.getApplicant(), |
| | | ids, |
| | | application.getTenantId(), |
| | | ""); |
| | | userIds, |
| | | "" |
| | | ); |
| | | } |
| | | } |
| | | |
| | | return R.ok(); |
| | | } |
| | | |
| | | @Override |