소스 검색

Merge branch 'online1'

Joburgess 4 년 전
부모
커밋
9741aea852

+ 11 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -3333,6 +3333,13 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				// 删除课酬
 				List<Long> courseScheduleIdList = new ArrayList<Long>();
 				courseScheduleIdList.add(courseScheduleId);
+
+				List<CourseScheduleTeacherSalary> oldCourseScheduleTeacherSalaryList = courseScheduleTeacherSalaryDao.findByCourseSchedules(courseScheduleIds);
+				Map<Long, List<CourseScheduleTeacherSalary>> courseSalaryListMap = new HashMap<>();
+				if(!CollectionUtils.isEmpty(oldCourseScheduleTeacherSalaryList)){
+					courseSalaryListMap = oldCourseScheduleTeacherSalaryList.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId));
+				}
+
 				courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIdList);
 
 				for (Integer teacherId : newTeacherIdList) {
@@ -3370,7 +3377,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 						List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaryList = teacherDefaultPracticeGroupSalaryDao
 								.queryByUserId(teacherId);
-						if(freeTeacherSalary.compareTo(ts.getExpectSalary())!=0){
+						List<CourseScheduleTeacherSalary> teacherSalaries = courseSalaryListMap.get(ts.getCourseScheduleId());
+						if(!CollectionUtils.isEmpty(teacherSalaries)&&freeTeacherSalary.compareTo(teacherSalaries.get(0).getExpectSalary())==0){
+							ts.setExpectSalary(freeTeacherSalary);
+						}else{
 							if (teacherDefaultPracticeGroupSalaryList != null && teacherDefaultPracticeGroupSalaryList.size() > 0) {
 								ts.setExpectSalary(teacherDefaultPracticeGroupSalaryList.get(0).getMainTeacherSalary());
 							} else {

+ 2 - 1
mec-biz/src/main/resources/config/mybatis/IndexBaseMonthDataMapper.xml

@@ -740,7 +740,8 @@
     <select id="getAttendanceError" resultType="int">
 		SELECT COUNT(DISTINCT c.id_) FROM (SELECT cs.id_ FROM course_schedule cs
 		LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
-		LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cs.id_
+		LEFT JOIN course_schedule_student_payment cssp ON cssp.course_schedule_id_ = cs.id_
+		LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cssp.course_schedule_id_ AND cssp.user_id_ = sa.user_id_
 		WHERE ta.teacher_id_ = cs.actual_teacher_id_
 		AND cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND cs.class_date_ >= '2021-02-01'
 		AND ta.sign_in_status_ IS NOT NULL AND ta.sign_out_status_ IS NOT NULL