From 41b6d0c9c00b24534a90bbd4cdeb0537cb889c67 Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 23 一月 2026 09:49:52 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New
---
src/main/java/com/ruoyi/collaborativeApproval/service/impl/MeetingServiceImpl.java | 72 +++++++++++++++++++++++++++++++++++
1 files changed, 71 insertions(+), 1 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
index c269b1a..9fa232a 100644
--- a/src/main/java/com/ruoyi/collaborativeApproval/service/impl/MeetingServiceImpl.java
+++ b/src/main/java/com/ruoyi/collaborativeApproval/service/impl/MeetingServiceImpl.java
@@ -3,6 +3,8 @@
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;
@@ -24,6 +26,12 @@
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.StaffOnJobMapper;
+import com.ruoyi.staff.pojo.StaffOnJob;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -40,8 +48,12 @@
private final MeetDraftMapper meetDraftMapper;
private final MeetApplicationMapper meetApplicationMapper;
+ private final StaffOnJobMapper staffOnJobMapper;
private final MeetingMinutesMapper meetingMinutesMapper;
+ private final SysUserMapper userMapper;
+ private final ISysNoticeService sysNoticeService;
+
@Override
public IPage<MeetingRoom> getMeetingRoomList(SearchMeetingRoomVo vo) {
@@ -115,13 +127,71 @@
}
@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);
}
+
+ /*浼氳鍙戝竷鐨勬秷鎭�氱煡*/
+ //鍙備細浜哄憳id(浜哄憳鍙拌处鍜岀敤鎴疯〃閫氳繃浜哄憳缂栧彿鍜岀敤鎴峰悕绉�(鐧诲綍璐﹀彿)鍋氬尮閰�)
+ if (Integer.valueOf(1).equals(meetApplication.getPublishStatus())) {
+ MeetApplication application = meetApplicationMapper.selectById(meetApplication.getId());
+
+ String cleanStr = application.getParticipants()
+ .replaceAll("^\\[|\\]$", "")
+ .trim();
+
+ List<Long> userIds = Arrays.stream(cleanStr.split(","))
+ .map(String::trim)
+ .filter(s -> !s.isEmpty())
+ .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 (!userIds.isEmpty()) {
+ sysNoticeService.simpleNoticeByUser(
+ "浼氳閫氱煡",
+ "浼氳涓婚锛�" + application.getTitle() + "\n" +
+ "浼氳鏃堕棿锛�" + application.getStartTime() + "-" + application.getEndTime() + "\n" +
+ "鍙戣捣浜猴細" + application.getApplicant(),
+ userIds,
+ ""
+ );
+ }
+ }
+
+ return R.ok();
}
@Override
--
Gitblit v1.9.3