|
@@ -123,10 +123,24 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void batchInsert(List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries) {
|
|
|
- courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
|
|
|
+// courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
|
|
|
+ List<Long> courseScheduleIds = courseScheduleTeacherSalaries.stream()
|
|
|
+ .map(CourseScheduleTeacherSalary::getCourseScheduleId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ List<TeacherAttendance> teacherIdByCourseSchedule = teacherAttendanceDao.findTeacherIdByCourseSchedule(courseScheduleIds);
|
|
|
+ Map<Long, List<TeacherAttendance>> courseScheduleTeacherAttendanceMap = teacherIdByCourseSchedule.stream()
|
|
|
+ .collect(Collectors.groupingBy(TeacherAttendance::getCourseScheduleId));
|
|
|
List<TeacherAttendance> teacherAttendances=new ArrayList<>();
|
|
|
courseScheduleTeacherSalaries.forEach(courseScheduleTeacherSalary -> {
|
|
|
- teacherAttendances.add(new TeacherAttendance(courseScheduleTeacherSalary.getUserId(),courseScheduleTeacherSalary.getCourseScheduleId()));
|
|
|
+ List<TeacherAttendance> teacherAttendancesTemp=courseScheduleTeacherAttendanceMap.get(courseScheduleTeacherSalary.getCourseScheduleId());
|
|
|
+
|
|
|
+ List<Integer> collect = new ArrayList<>();
|
|
|
+ if(!CollectionUtils.isEmpty(teacherAttendancesTemp)){
|
|
|
+ teacherAttendancesTemp.stream().map(TeacherAttendance::getTeacherId).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ if(CollectionUtils.isEmpty(collect)||!collect.contains(courseScheduleTeacherSalary.getUserId())){
|
|
|
+ teacherAttendances.add(new TeacherAttendance(courseScheduleTeacherSalary.getUserId(),courseScheduleTeacherSalary.getCourseScheduleId()));
|
|
|
+ }
|
|
|
});
|
|
|
teacherAttendanceDao.batchInsert(teacherAttendances);
|
|
|
}
|