浏览代码

拆班课酬计算

zouxuan 4 年之前
父节点
当前提交
830441da72

+ 15 - 14
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -3918,17 +3918,16 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             for (ClassGroup classGroup : byClassGroupIds) {
                 Long aLong = classGroupStudentNumMap.get(classGroup.getId());
                 classGroup.setStudentNum(aLong==null?0:aLong.intValue());
-                if(classGroup.getType() == HIGH_ONLINE || classGroup.getType() == HIGH){
-                    if(aLong != null && aLong > 0){
-                        List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroup.getId());
-                        if(courseScheduleList.size() > 0){
-                            //调整未上课课酬
-                            List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperService.getClassGroupTeachers(classGroup.getId());
-                            Date nowDate = new Date();
-                            List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
-                            List<Long> courseScheduleIds = courseScheduleList.stream().map(CourseSchedule::getId).collect(Collectors.toList());
-                            courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
-                            for (CourseSchedule courseSchedule : courseScheduleList) {
+                if(aLong != null && aLong > 0){
+                    List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroup.getId());
+                    if(courseScheduleList.size() > 0){
+                        //调整未上课课酬
+                        List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperService.getClassGroupTeachers(classGroup.getId());
+                        Date nowDate = new Date();
+                        List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
+                        for (CourseSchedule courseSchedule : courseScheduleList) {
+                            if(courseSchedule.getType() == CourseScheduleType.HIGH_ONLINE || courseSchedule.getType() == CourseScheduleType.HIGH){
+                                courseScheduleTeacherSalaryDao.batchDeleteByCourseAndTeacher(courseSchedule.getId(),null);
                                 for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
                                     List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacher.getUserId(), null, null);
                                     if (teacherSalaryList == null || teacherSalaryList.size() == 0) {
@@ -3937,13 +3936,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                                     Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary));
                                     TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(CourseSchedule.CourseScheduleType.HIGH_ONLINE);
 
-                                    if (classGroup.getType().equals(HIGH_ONLINE) && aLong > 5l) {
+                                    if (courseSchedule.getType() == CourseScheduleType.HIGH_ONLINE && aLong > 5l) {
                                         aLong = 5l;
                                     }
                                     BigDecimal salary = null;
-                                    if(classGroup.getType().equals(HIGH_ONLINE)){
+                                    if(courseSchedule.getType() == CourseScheduleType.HIGH_ONLINE){
                                         salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(aLong + "");
-                                    }else if(classGroup.getType().equals(HIGH)){
+                                    }else if(courseSchedule.getType() == CourseScheduleType.HIGH){
                                         MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
                                         TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
                                         if(Objects.isNull(teacherDefaultMusicGroupSalaryHigh)){
@@ -3974,6 +3973,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                                     courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
                                 }
                             }
+                        }
+                        if (courseScheduleTeacherSalaryList.size() > 0){
                             courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
                         }
                     }

+ 7 - 6
mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml

@@ -470,12 +470,13 @@
 
 	<update id="batchDeleteByCourseAndTeacher">
 		DELETE FROM course_schedule_teacher_salary
-		WHERE
-		course_schedule_id_ = #{courseScheduleId}
-		AND user_id_ IN
-		<foreach collection="userIds" item="userId" open="(" close=")" separator=",">
-			#{userId}
-		</foreach>
+		WHERE course_schedule_id_ = #{courseScheduleId}
+		<if test="userIds != null">
+		  AND user_id_ IN
+		  <foreach collection="userIds" item="userId" open="(" close=")" separator=",">
+			  #{userId}
+		  </foreach>
+		</if>
 	</update>
     <update id="batchUpdateTeacher">
 		UPDATE course_schedule_teacher_salary csts SET csts.user_id_ = #{teacherId},csts.update_time_ = NOW(),