瀏覽代碼

1、修改课程冲突提示信息;
2、课程调整:删除原教师的课酬记录

Joburgess 5 年之前
父節點
當前提交
f88ee4839c

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleTeacherSalaryDao.java

@@ -94,6 +94,17 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 									   @Param("userIds") List<Integer> userIds);
 
 	/**
+	 * @describe 根据课程编号与老师编号删除对应教师课酬记录
+	 * @author Joburgess
+	 * @date 2019/12/2
+	 * @param courseScheduleId: 课程编号
+	 * @param userIds: 教师编号列表
+	 * @return int
+	 */
+	int batchDeleteByCourseAndTeacher(@Param("courseScheduleId") Long courseScheduleId,
+									  @Param("userIds") List<Integer> userIds);
+
+	/**
 	 * @param courseScheduleIds:
 	 * @param teacherRole:
 	 * @return java.util.List<com.ym.mec.biz.dal.dto.BasicUserDto>

+ 27 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -532,12 +532,26 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		errInfo.append("安排的课程存在冲突,");
 		errInfo.append("冲突课程为:");
 		if(Objects.nonNull(preCourseSchedule.getId())&&existCourseScheduleIds.contains(preCourseSchedule.getId())){
+			MusicGroup musicGroup = musicGroupDao.get(preCourseSchedule.getMusicGroupId());
+			if(Objects.nonNull(musicGroup)){
+				errInfo.append(musicGroup.getName());
+				errInfo.append("(");
+				errInfo.append(musicGroup.getId());
+				errInfo.append(")-");
+			}
 			errInfo.append(preCourseSchedule.getName());
 			errInfo.append("(");
 			errInfo.append(preCourseSchedule.getId());
 			errInfo.append(")");
 		}
 		if(Objects.nonNull(backCourseSchedule.getId())&&existCourseScheduleIds.contains(backCourseSchedule.getId())){
+			MusicGroup musicGroup = musicGroupDao.get(backCourseSchedule.getMusicGroupId());
+			if(Objects.nonNull(musicGroup)){
+				errInfo.append(musicGroup.getName());
+				errInfo.append("(");
+				errInfo.append(musicGroup.getId());
+				errInfo.append(")-");
+			}
 			errInfo.append(backCourseSchedule.getName());
 			errInfo.append("(");
 			errInfo.append(backCourseSchedule.getId());
@@ -689,10 +703,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		List<Long> newCourseScheduleIds = newCourseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
 		//获取对应未修改的课程列表
 		List<CourseSchedule> oldCourseScheduleList = courseScheduleDao.findByCourseScheduleIds(newCourseScheduleIds);
-		if(oldCourseScheduleList.size()!=newCourseSchedules.size()){
+//		if(oldCourseScheduleList.size()!=newCourseSchedules.size()){
+		if(oldCourseScheduleList.size()<=newCourseSchedules.size()){
 			throw new BizException("课程信息错误");
 		}
-		Integer courseScheduleId = null;
 
 		Date now=new Date();
 		//明天日期
@@ -705,14 +719,19 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		List<CourseScheduleTeacherSalary> teachingTeacherSalarys = courseScheduleDao.findTeachingTeachers(newCourseScheduleIds);
 		Map<Long,List<CourseScheduleTeacherSalary>> courseTeachingTeacherMaps = teachingTeacherSalarys.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId));
 
-		Map<Long, CourseSchedule> oldCourseSchedules = oldCourseScheduleList.stream().collect(Collectors.toMap(CourseSchedule::getId,courseSchedule -> courseSchedule));
+		Map<Long, List<CourseSchedule>> oldCourseScheduleMap = oldCourseScheduleList.stream().collect(Collectors.groupingBy(CourseSchedule::getId));
+
+		Map<Long, CourseSchedule> oldCourseSchedules = new HashMap<>();
+
 		newCourseSchedules.forEach(newCourseSchedule -> {
 
 			if(newCourseSchedule.getStartClassTime().before(tomorrow)&&sysUser.getUserType().equals(SysUserType.TEACHER)){
 			    throw new BizException("调整时间必须为明天及以后");
             }
 
-			CourseSchedule oldCourseSchedule = oldCourseSchedules.get(newCourseSchedule.getId());
+			CourseSchedule oldCourseSchedule = oldCourseScheduleMap.get(newCourseSchedule.getId()).get(0);
+
+			oldCourseSchedules.put(newCourseSchedule.getId(),oldCourseSchedule);
 
             if(oldCourseSchedule.getStartClassTime().before(now)&&sysUser.getUserType().equals(SysUserType.TEACHER)){
                 throw new BizException("不能调整今天及以前的课程");
@@ -818,9 +837,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 				oldCourseSchedule.setSchoolId(newCourseSchedule.getSchoolId());
 			}
 			courseScheduleDao.update(oldCourseSchedule);
-			//将被修改的教师预计薪水置零
+			//删除被修改的教师课酬记录
 			if(!CollectionUtils.isEmpty(beReplaceTeacherIds)){
-				courseScheduleTeacherSalaryDao.batchUpdateTeacherExpectSalary(newCourseSchedule.getId().intValue(),beReplaceTeacherIds);
+//				courseScheduleTeacherSalaryDao.batchUpdateTeacherExpectSalary(newCourseSchedule.getId().intValue(),beReplaceTeacherIds);
+				courseScheduleTeacherSalaryDao.batchDeleteByCourseAndTeacher(newCourseSchedule.getId(),beReplaceTeacherIds);
+
 			}
 		});
 		//生成修改后的教师课酬

+ 10 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml

@@ -329,6 +329,16 @@
 			</foreach>
 	</update>
 
+	<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>
+	</update>
+
 	<select id="findCourseScheduleTeacherSalaryByMusicGroupId" resultMap="CourseScheduleTeacherSalary">
 		SELECT * FROM course_schedule_teacher_salary WHERE music_group_id_=#{musicGroupId} AND group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
 	</select>