From 3647aa5008055528f075ee73002542a1399575ae Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 19 三月 2025 14:45:39 +0800
Subject: [PATCH] 单点登录调整

---
 cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java |  126 +++++++++++++++++++++++++-----------------
 1 files changed, 75 insertions(+), 51 deletions(-)

diff --git a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java
index 2148986..c5c29bc 100644
--- a/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java
+++ b/cnas-personnel/src/main/java/com/ruoyi/personnel/service/impl/PersonTrainingRecordServiceImpl.java
@@ -13,7 +13,7 @@
 import com.ruoyi.common.core.domain.entity.User;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.framework.exception.ErrorException;
-import com.ruoyi.inspect.util.HackLoopTableRenderPolicy;
+import com.ruoyi.framework.util.HackLoopTableRenderPolicy;
 import com.ruoyi.performance.mapper.AuxiliaryWorkingHoursDayMapper;
 import com.ruoyi.performance.mapper.PerformanceShiftMapper;
 import com.ruoyi.performance.pojo.AuxiliaryWorkingHoursDay;
@@ -27,6 +27,7 @@
 import com.ruoyi.personnel.service.PersonTrainingDetailedService;
 import com.ruoyi.personnel.service.PersonTrainingRecordService;
 import com.ruoyi.system.mapper.UserMapper;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -214,7 +215,7 @@
 
     @Override
     public void outOfFocusPreservation(PersonTrainingRecord personTrainingRecord) {
-        int userId = SecurityUtils.getUserId().intValue();
+        int userId = Integer.parseInt(SecurityUtils.getUserId().toString());
         // 鍩硅閫氳繃浜嗭紝鍩硅璇炬椂璁″叆鍒板綋澶╃殑杈呭姪宸ユ椂 (杈呭姪宸ユ椂 浠ュ強 鏍稿噯宸ユ椂閮芥坊鍔�)
         baseMapper.updateById(personTrainingRecord);
         PersonTrainingDetailed personTrainingDetailed = personTrainingDetailedMapper.selectById(personTrainingRecord.getCourseId());
@@ -224,71 +225,94 @@
             if(StringUtils.isEmpty(trainingDateTwo)) {
                 throw new ErrorException("娌℃湁璁剧疆鍩硅鏃ユ湡鏃犳硶娣诲姞杈呭姪宸ユ椂");
             }
+            AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay = auxiliaryWorkingHoursDayService.selectAuxiliaryWorkingHoursByNumber("401");
             // 鏄惁浠ュ強娣诲姞杩囦簡
             List<AuxiliaryWorkingHoursDay> auxiliaryWorkingHoursDays = auxiliaryWorkingHoursDayMapper.selectList(new LambdaQueryWrapper<AuxiliaryWorkingHoursDay>()
                     .eq(AuxiliaryWorkingHoursDay::getNameUser, personTrainingRecord.getUserId())
-                    .eq(AuxiliaryWorkingHoursDay::getAuxiliaryProject, personTrainingDetailed.getTrainingContent())
-                    .eq(AuxiliaryWorkingHoursDay::getCreateUser, userId)
+                    .eq(AuxiliaryWorkingHoursDay::getAuxiliaryProject,auxiliaryWorkingHoursDay.getAuxiliaryProject())
                     .eq(AuxiliaryWorkingHoursDay::getDateTime, trainingDateTwo + " 00:00:00"));
             // 濡傛灉鏈夋暟鎹� 鍚堟牸灏变笉鍋氬鐞�   涓嶅悎鏍煎氨鍒犻櫎
             if(CollectionUtils.isNotEmpty(auxiliaryWorkingHoursDays)) {
                 if(personTrainingRecord.getExaminationResults().equals("涓嶅悎鏍�")) {
                     auxiliaryWorkingHoursDayMapper.delete(new LambdaQueryWrapper<AuxiliaryWorkingHoursDay>()
                             .eq(AuxiliaryWorkingHoursDay::getNameUser, personTrainingRecord.getUserId())
-                            .eq(AuxiliaryWorkingHoursDay::getAuxiliaryProject, personTrainingDetailed.getTrainingContent())
-                            .eq(AuxiliaryWorkingHoursDay::getCreateUser, userId)
+                            .eq(AuxiliaryWorkingHoursDay::getAuxiliaryProject, auxiliaryWorkingHoursDay.getAuxiliaryProject())
                             .eq(AuxiliaryWorkingHoursDay::getDateTime, trainingDateTwo + " 00:00:00"));
                 }
             }
+            // 濡傛灉鏄娴嬪姙鐨勪汉灏变笉鐢ㄥ姞
+            User user = userMapper.selectById(personTrainingRecord.getUserId());
+            if(user.getDepartLimsId().contains("22")) {
+                return;
+            }
+            // 涓�鑺傝45鍒嗛挓 宸ユ椂60鍒嗛挓
+            BigDecimal minute = BigDecimal.valueOf(classHour).multiply(new BigDecimal("45")); // 鍏蜂綋鍒嗛挓
+            BigDecimal divide = minute.divide(new BigDecimal("60"),4, RoundingMode.HALF_UP); // 宸ユ椂
+            // 娣诲姞鏁版嵁
+            AuxiliaryWorkingHoursDay a = new AuxiliaryWorkingHoursDay();
+            a.setNameUser(personTrainingRecord.getUserId()); // 濮撳悕id
+            // 椤圭洰鍚嶇О
+            a.setRemarks(personTrainingDetailed.getTrainingContent()); //  杈呭姪璇存槑
+            a.setNumber("401"); // 缂栧彿
+
+            a.setAuxiliaryProject(auxiliaryWorkingHoursDay.getAuxiliaryProject()); // 杈呭姪椤圭洰鍚嶇О
+            a.setNonproductiveTime(Double.parseDouble(divide.toString())); // 杈呭姪宸ユ椂
+            a.setApprovedWorkingHour(auxiliaryWorkingHoursDay.getApprovedWorkingHour()); // 鏍稿噯宸ユ椂
+            a.setAmount(Double.parseDouble(divide.toString())); // 鏁伴噺
+            String year = trainingDateTwo.split("-")[0];
+            a.setYear(year); // 骞�
+            a.setCreateTime(LocalDateTime.now());
+            a.setUpdateTime(LocalDateTime.now());
+            a.setCreateUser(userId); // 鍒涘缓浜篿d
+            a.setUpdateUser(userId); // 淇敼浜篿d
+            a.setState("宸叉彁浜�"); // 鐘舵��
+            a.setDateTime(trainingDateTwo + " 00:00:00"); // 鏃ユ湡
+            // 鑾峰彇褰撳墠鏃ユ湡
+            LocalDate today = LocalDate.now();
+            // 鑾峰彇褰撳墠鏃ユ湡鐨勫懆娆★紙涓�骞翠腑鐨勭鍑犲懆锛�
+            TemporalField weekOfYear = WeekFields.of(Locale.getDefault()).weekOfYear();
+            int weekNumber = today.get(weekOfYear);
+            // 鑾峰彇褰撳墠鏃ユ湡鐨勬槦鏈燂紙涓�鍛ㄤ腑鐨勭鍑犲ぉ锛�
+            DayOfWeek dayOfWeek = today.getDayOfWeek();
+            int dayOfWeekNumber = dayOfWeek.getValue();
+            LocalDate now = LocalDate.now();
+            LocalTime parse = LocalTime.parse("00:00:00");
+            LocalDateTime of = LocalDateTime.of(now, parse);
+            PerformanceShift performanceShift = shiftMapper.selectOne(new LambdaQueryWrapper<PerformanceShift>().eq(PerformanceShift::getWorkTime, of)
+                    .eq(PerformanceShift::getUserId, personTrainingRecord.getUserId()));
+            if(Objects.nonNull(performanceShift)) {
+                a.setShift(performanceShift.getShift()); // 鐝
+            }
+            a.setWeek(weekNumber+""); // 鍛ㄦ
+            a.setWeekDay(dayOfWeekNumber == 7 ? 0+"" : dayOfWeekNumber+""); // 鏄熸湡
             // 鏄惁閫氳繃
             if(personTrainingRecord.getExaminationResults().equals("鍚堟牸") && CollectionUtils.isEmpty(auxiliaryWorkingHoursDays)) {
-                // 濡傛灉鏄娴嬪姙鐨勪汉灏变笉鐢ㄥ姞
-                User user = userMapper.selectById(personTrainingRecord.getUserId());
-                if(user.getDepartLimsId().contains("22")) {
-                    return;
-                }
-                // 涓�鑺傝45鍒嗛挓 宸ユ椂60鍒嗛挓
-                BigDecimal minute = BigDecimal.valueOf(classHour).multiply(new BigDecimal("45")); // 鍏蜂綋鍒嗛挓
-                BigDecimal divide = minute.divide(new BigDecimal("60"),4, RoundingMode.HALF_UP); // 宸ユ椂
-                // 娣诲姞鏁版嵁
-                AuxiliaryWorkingHoursDay a = new AuxiliaryWorkingHoursDay();
-                a.setNameUser(personTrainingRecord.getUserId()); // 濮撳悕id
-                // 椤圭洰鍚嶇О
-                a.setRemarks(personTrainingDetailed.getTrainingContent()); //  杈呭姪璇存槑
-                a.setNumber("401"); // 缂栧彿
-                AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay = auxiliaryWorkingHoursDayService.selectAuxiliaryWorkingHoursByNumber("401");
-                a.setAuxiliaryProject(auxiliaryWorkingHoursDay.getAuxiliaryProject()); // 杈呭姪椤圭洰鍚嶇О
-                a.setNonproductiveTime(Double.parseDouble(divide.toString())); // 杈呭姪宸ユ椂
-                a.setApprovedWorkingHour(auxiliaryWorkingHoursDay.getApprovedWorkingHour()); // 鏍稿噯宸ユ椂
-                a.setAmount(Double.parseDouble(divide.toString())); // 鏁伴噺
-                String year = trainingDateTwo.split("-")[0];
-                a.setYear(year); // 骞�
-                a.setCreateTime(LocalDateTime.now());
-                a.setUpdateTime(LocalDateTime.now());
-                a.setCreateUser(userId); // 鍒涘缓浜篿d
-                a.setUpdateUser(userId); // 淇敼浜篿d
-                a.setState("宸叉彁浜�"); // 鐘舵��
-                a.setDateTime(trainingDateTwo + " 00:00:00"); // 鏃ユ湡
-                // 鑾峰彇褰撳墠鏃ユ湡
-                LocalDate today = LocalDate.now();
-                // 鑾峰彇褰撳墠鏃ユ湡鐨勫懆娆★紙涓�骞翠腑鐨勭鍑犲懆锛�
-                TemporalField weekOfYear = WeekFields.of(Locale.getDefault()).weekOfYear();
-                int weekNumber = today.get(weekOfYear);
-                // 鑾峰彇褰撳墠鏃ユ湡鐨勬槦鏈燂紙涓�鍛ㄤ腑鐨勭鍑犲ぉ锛�
-                DayOfWeek dayOfWeek = today.getDayOfWeek();
-                int dayOfWeekNumber = dayOfWeek.getValue();
-                LocalDate now = LocalDate.now();
-                LocalTime parse = LocalTime.parse("00:00:00");
-                LocalDateTime of = LocalDateTime.of(now, parse);
-                PerformanceShift performanceShift = shiftMapper.selectOne(new LambdaQueryWrapper<PerformanceShift>().eq(PerformanceShift::getWorkTime, of)
-                        .eq(PerformanceShift::getUserId, personTrainingRecord.getUserId()));
-                if(Objects.nonNull(performanceShift)) {
-                    a.setShift(performanceShift.getShift()); // 鐝
-                }
-                a.setWeek(weekNumber+""); // 鍛ㄦ
-                a.setWeekDay(dayOfWeekNumber == 7 ? 0+"" : dayOfWeekNumber+""); // 鏄熸湡
                 auxiliaryWorkingHoursDayMapper.insert(a);
             }
+            // 鍩硅璁插笀涔熻鍔犱笂鐩稿簲鐨勫伐鏃�
+            String trainingLecturerId = personTrainingDetailed.getTrainingLecturerId();
+            String[] split = trainingLecturerId.split(",");
+            for (String name : split) {
+                if(StringUtils.isNotEmpty(name)) {
+                    User user1 = userMapper.selectList(new LambdaQueryWrapper<User>().like(User::getName, name)).get(0);
+                    if(user1.getDepartLimsId().contains("22")) {
+                        continue;
+                    }
+                    // 娣诲姞杩囦簡灏变笉鍐嶆坊鍔�
+                    List<AuxiliaryWorkingHoursDay> list = auxiliaryWorkingHoursDayMapper.selectList(new LambdaQueryWrapper<AuxiliaryWorkingHoursDay>()
+                            .eq(AuxiliaryWorkingHoursDay::getNameUser, user1.getId())
+                            .eq(AuxiliaryWorkingHoursDay::getAuxiliaryProject, auxiliaryWorkingHoursDay.getAuxiliaryProject())
+                            .eq(AuxiliaryWorkingHoursDay::getDateTime, trainingDateTwo + " 00:00:00"));
+                    if(CollectionUtils.isNotEmpty(list)) {
+                        continue;
+                    }
+                    AuxiliaryWorkingHoursDay auxiliaryWorkingHoursDay1 = new AuxiliaryWorkingHoursDay(); // 鐢ㄤ簬娣诲姞鍩硅璁插笀
+                    BeanUtils.copyProperties(a,auxiliaryWorkingHoursDay1);
+                    auxiliaryWorkingHoursDay1.setNameUser(user1.getId());
+                    auxiliaryWorkingHoursDay1.setId(null);
+                    auxiliaryWorkingHoursDayMapper.insert(auxiliaryWorkingHoursDay1);
+                }
+            }
         }
 
     }

--
Gitblit v1.9.3