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 | 124 ++++++++++++++++++++++++---------------- 1 files changed, 74 insertions(+), 50 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 ec097a3..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 @@ -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