| | |
| | | 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; |
| | |
| | | |
| | | @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()); |
| | |
| | | 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); // 创建人id |
| | | a.setUpdateUser(userId); // 修改人id |
| | | 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); // 创建人id |
| | | a.setUpdateUser(userId); // 修改人id |
| | | 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); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |