|
@@ -29,6 +29,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.CollectionUtils;
|
|
|
|
|
|
+import java.math.BigDecimal;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -75,6 +76,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
private MusicGroupDao musicGroupDao;
|
|
|
@Autowired
|
|
|
private SubjectDao subjectDao;
|
|
|
+ @Autowired
|
|
|
+ private ClassGroupTeacherSalaryDao classGroupTeacherSalaryDao;
|
|
|
|
|
|
@Override
|
|
|
public BaseDAO<Long, CourseSchedule> getDAO() {
|
|
@@ -633,6 +636,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
if(oldCourseSchedule.getType()== CourseSchedule.CourseScheduleType.VIP){
|
|
|
boolean oldTeacherIsNull=Objects.isNull(oldCourseSchedule.getActualTeacherId());
|
|
|
boolean newTeacherIsNull=Objects.isNull(newCourseSchedule.getActualTeacherId());
|
|
|
+ if(newTeacherIsNull&&!oldTeacherIsNull){
|
|
|
+ newCourseSchedule.setActualTeacherId(oldCourseSchedule.getActualTeacherId());
|
|
|
+ newCourseSchedule.setTeachMode(oldCourseSchedule.getTeachMode());
|
|
|
+ }
|
|
|
boolean oldSchoolIsNull=Objects.isNull(oldCourseSchedule.getSchoolId());
|
|
|
boolean newSchoolIsNull=Objects.isNull(newCourseSchedule.getSchoolId());
|
|
|
boolean teacherIsChange=oldTeacherIsNull||(!newTeacherIsNull&&!oldCourseSchedule.getActualTeacherId().equals(newCourseSchedule.getActualTeacherId()));
|
|
@@ -640,13 +647,28 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
|
|
|
if(teacherIsChange||schoolIsChange){
|
|
|
VipGroup byCourseSchedule = vipGroupDao.findByCourseSchedule(newCourseSchedule.getId().intValue());
|
|
|
- TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(newCourseSchedule.getActualTeacherId(), byCourseSchedule.getVipGroupCategoryId());
|
|
|
+
|
|
|
+ BigDecimal onlineTeacherSalary=new BigDecimal(0),offlineTeacherSalary=new BigDecimal(0);
|
|
|
+
|
|
|
+ if(teacherIsChange){
|
|
|
+ TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(newCourseSchedule.getActualTeacherId(), byCourseSchedule.getVipGroupCategoryId());
|
|
|
+ if(Objects.nonNull(byTeacherAndCategory)){
|
|
|
+ onlineTeacherSalary=byTeacherAndCategory.getOnlineClassesSalary();
|
|
|
+ offlineTeacherSalary=byTeacherAndCategory.getOfflineClassesSalary();
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ ClassGroupTeacherSalary byClassGroupAndTeacher = classGroupTeacherSalaryDao.findByClassGroupAndTeacher(oldCourseSchedule.getClassGroupId(), newCourseSchedule.getActualTeacherId());
|
|
|
+ if(Objects.nonNull(byClassGroupAndTeacher)){
|
|
|
+ onlineTeacherSalary=byClassGroupAndTeacher.getOnlineClassesSalary();
|
|
|
+ offlineTeacherSalary=byClassGroupAndTeacher.getSalary();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
List<CourseSchedule> courseSchedules=new ArrayList<>();
|
|
|
courseSchedules.add(newCourseSchedule);
|
|
|
courseScheduleTeacherSalaryService.createCourseScheduleTeacherVipSalary(byCourseSchedule,
|
|
|
courseSchedules,
|
|
|
- byTeacherAndCategory.getOnlineClassesSalary(),
|
|
|
- byTeacherAndCategory.getOfflineClassesSalary());
|
|
|
+ onlineTeacherSalary,offlineTeacherSalary);
|
|
|
if(Objects.nonNull(oldCourseSchedule.getActualTeacherId())){
|
|
|
beReplaceTeacherIds.add(oldCourseSchedule.getActualTeacherId().intValue());
|
|
|
}
|
|
@@ -713,6 +735,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
}
|
|
|
teacherIds.addAll(oldCourseScheduleList.stream().map(e -> e.getActualTeacherId()).collect(Collectors.toSet()));
|
|
|
Map<Integer,String> map = new HashMap<>(teacherIds.size());
|
|
|
+ teacherIds.removeAll(Collections.singleton(null));
|
|
|
teacherIds.forEach(e->{
|
|
|
map.put(e,e.toString());
|
|
|
});
|
|
@@ -1013,6 +1036,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
|
|
|
if (courseScheduleIdList.size() > 0) {
|
|
|
// vip课自动签退
|
|
|
teacherAttendanceDao.updateViPSignOutStatus(courseScheduleIdList.stream().map(a -> a.toString()).collect(Collectors.joining(",")));
|
|
|
+ //教师考勤当前课时+1
|
|
|
+
|
|
|
}
|
|
|
|
|
|
return true;
|