From dee56ed8d52f1d8ee1f89b369561c49e9b3b7c2d Mon Sep 17 00:00:00 2001
From: liyong <18434998025@163.com>
Date: 星期五, 23 一月 2026 17:56:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_New' into dev_New

---
 src/main/java/com/ruoyi/collaborativeApproval/service/impl/MeetingServiceImpl.java |   71 +++++++++++++++++++++++++----------
 1 files changed, 51 insertions(+), 20 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 b57a4f1..9fa232a 100644
--- a/src/main/java/com/ruoyi/collaborativeApproval/service/impl/MeetingServiceImpl.java
+++ b/src/main/java/com/ruoyi/collaborativeApproval/service/impl/MeetingServiceImpl.java
@@ -26,11 +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.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;
 
@@ -47,11 +48,12 @@
     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) {
@@ -125,42 +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);
         }
-        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

--
Gitblit v1.9.3