|  | @@ -106,6 +106,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |      private MusicGroupService musicGroupService;
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private SysConfigService sysConfigService;
 | 
	
		
			
				|  |  | +    @Autowired
 | 
	
		
			
				|  |  | +    private SchoolDao schoolDao;
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  |      @Autowired
 | 
	
		
			
				|  |  |      private CourseHomeworkService courseHomeworkService;
 | 
	
	
		
			
				|  | @@ -245,84 +247,128 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  | -    @Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  | -	public boolean batchAddCourseSchedule(Integer classGroupId, int coursesTimes, Date startDate, String teachingArrangement, TeachModeEnum teachMode,
 | 
	
		
			
				|  |  | -			CourseScheduleType type, Integer schoolId) {
 | 
	
		
			
				|  |  | -    	ClassGroup classGroup = classGroupService.get(classGroupId);
 | 
	
		
			
				|  |  | -    	if(classGroup == null){
 | 
	
		
			
				|  |  | -    		throw new BizException("排课失败,班级信息不存在");
 | 
	
		
			
				|  |  | -    	}
 | 
	
		
			
				|  |  | -    	
 | 
	
		
			
				|  |  | -    	if(teachMode == TeachModeEnum.OFFLINE && schoolId == null){
 | 
	
		
			
				|  |  | -    		throw new BizException("线下课请指定教学点");
 | 
	
		
			
				|  |  | -    	}
 | 
	
		
			
				|  |  | -    	
 | 
	
		
			
				|  |  | -    	if(type == null){
 | 
	
		
			
				|  |  | -    		throw new BizException("请指定课程类型");
 | 
	
		
			
				|  |  | -    	}
 | 
	
		
			
				|  |  | -    	
 | 
	
		
			
				|  |  | -    	if (type == CourseScheduleType.VIP){
 | 
	
		
			
				|  |  | -    		throw new BizException("暂不支持vip课加课");
 | 
	
		
			
				|  |  | -    	}
 | 
	
		
			
				|  |  | -    	
 | 
	
		
			
				|  |  | -    	List<CourseTimeDto> teachingArrangementList = JsonUtil.parseArray(teachingArrangement, CourseTimeDto.class);
 | 
	
		
			
				|  |  | -    	if(teachingArrangementList == null || teachingArrangementList.size() == 0){
 | 
	
		
			
				|  |  | -    		throw new BizException("请设置课时安排");
 | 
	
		
			
				|  |  | -    	}
 | 
	
		
			
				|  |  | -    	
 | 
	
		
			
				|  |  | -    	//查询班级老师信息
 | 
	
		
			
				|  |  | -    	List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroupTeacherMapperService.getClassGroupTeachers(classGroupId);
 | 
	
		
			
				|  |  | -    	
 | 
	
		
			
				|  |  | -    	//查询主教老师
 | 
	
		
			
				|  |  | -    	Integer teacherId = null;
 | 
	
		
			
				|  |  | -    	for(ClassGroupTeacherMapper cgtm : classGroupTeacherMapperList){
 | 
	
		
			
				|  |  | -    		if(cgtm.getTeacherRole() == TeachTypeEnum.BISHOP){
 | 
	
		
			
				|  |  | -    			teacherId = cgtm.getUserId();
 | 
	
		
			
				|  |  | -    			break;
 | 
	
		
			
				|  |  | -    		}
 | 
	
		
			
				|  |  | -    	}
 | 
	
		
			
				|  |  | -    	
 | 
	
		
			
				|  |  | -    	if(teacherId == null){
 | 
	
		
			
				|  |  | -    		throw new BizException("班级缺少主教老师");
 | 
	
		
			
				|  |  | -    	}
 | 
	
		
			
				|  |  | -    	
 | 
	
		
			
				|  |  | -    	//查询老师默认课酬
 | 
	
		
			
				|  |  | +	@Transactional(rollbackFor = Exception.class)
 | 
	
		
			
				|  |  | +	public boolean batchAddCourseSchedule(Integer classGroupId, int coursesTimes, Date startDate, List<CourseTimeDto> teachingArrangementList,
 | 
	
		
			
				|  |  | +			TeachModeEnum teachMode, CourseScheduleType type, Integer schoolId, boolean isJumpHoliday) {
 | 
	
		
			
				|  |  | +		ClassGroup classGroup = classGroupService.get(classGroupId);
 | 
	
		
			
				|  |  | +		if (classGroup == null) {
 | 
	
		
			
				|  |  | +			throw new BizException("排课失败,班级信息不存在");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		if (teachMode == TeachModeEnum.OFFLINE && schoolId == null) {
 | 
	
		
			
				|  |  | +			throw new BizException("线下课请指定教学点");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		if (type == null) {
 | 
	
		
			
				|  |  | +			throw new BizException("请指定课程类型");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		if (type == CourseScheduleType.VIP) {
 | 
	
		
			
				|  |  | +			throw new BizException("暂不支持vip课加课");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		if (teachingArrangementList == null || teachingArrangementList.size() == 0) {
 | 
	
		
			
				|  |  | +			throw new BizException("请设置课时安排");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		BigDecimal subSidy = new BigDecimal(0);
 | 
	
		
			
				|  |  | +		// 查询教学点补贴
 | 
	
		
			
				|  |  | +		if (schoolId != null) {
 | 
	
		
			
				|  |  | +			School school = schoolDao.get(schoolId);
 | 
	
		
			
				|  |  | +			if (school == null) {
 | 
	
		
			
				|  |  | +				throw new BizException("指定的教学点不存在");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			subSidy = school.getSubsidy();
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		// 查询班级老师信息
 | 
	
		
			
				|  |  | +		List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroupTeacherMapperService.getClassGroupTeachers(classGroupId);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		// 查询主教老师
 | 
	
		
			
				|  |  | +		Integer teacherId = null;
 | 
	
		
			
				|  |  | +		for (ClassGroupTeacherMapper cgtm : classGroupTeacherMapperList) {
 | 
	
		
			
				|  |  | +			if (cgtm.getTeacherRole() == TeachTypeEnum.BISHOP) {
 | 
	
		
			
				|  |  | +				teacherId = cgtm.getUserId();
 | 
	
		
			
				|  |  | +				break;
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		if (teacherId == null) {
 | 
	
		
			
				|  |  | +			throw new BizException("班级缺少主教老师");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		List<Integer> teacherIdList = classGroupTeacherMapperList.stream().map(ClassGroupTeacherMapper::getUserId).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		// 查询老师列表
 | 
	
		
			
				|  |  | +		List<Teacher> teacherList = teacherDao.findByTeacherIds(teacherIdList);
 | 
	
		
			
				|  |  | +		Map<Integer, Teacher> teacherMap = teacherList.stream().collect(Collectors.toMap(Teacher::getId, t -> t));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		Map<Integer, BigDecimal> teacherPracticeSalaryMap = new HashMap<Integer, BigDecimal>();
 | 
	
		
			
				|  |  | +		Map<Integer, TeacherDefaultMusicGroupSalary> teacherMusicSalaryMap = new HashMap<Integer, TeacherDefaultMusicGroupSalary>();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		Date entryDate = null;
 | 
	
		
			
				|  |  | +		String settlementType = null;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		// 查询老师默认课酬
 | 
	
		
			
				|  |  |  		if (type == CourseScheduleType.PRACTICE) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  			List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaryList = teacherDefaultPracticeGroupSalaryDao
 | 
	
		
			
				|  |  | -					.queryByUserId(teacherId);
 | 
	
		
			
				|  |  | -			
 | 
	
		
			
				|  |  | +					.queryByUserIdList(teacherIdList);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			teacherPracticeSalaryMap = teacherDefaultPracticeGroupSalaryList.stream().collect(
 | 
	
		
			
				|  |  | +					Collectors.toMap(TeacherDefaultPracticeGroupSalary::getUserId, TeacherDefaultPracticeGroupSalary::getMainTeacherSalary));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		} else {
 | 
	
		
			
				|  |  | +			MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
 | 
	
		
			
				|  |  | +			if (musicGroup == null) {
 | 
	
		
			
				|  |  | +				throw new BizException("找不到乐团信息");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			// 乐团结算方式
 | 
	
		
			
				|  |  | +			settlementType = musicGroup.getSettlementType().getCode();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			// 老师入职的分界线
 | 
	
		
			
				|  |  | +			entryDate = DateUtil.stringToDate(sysConfigDao.findByParamName(SysConfigService.TEACHER_ENTRY_DATE).getParanValue(), "yyyy-MM-dd");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  			// 所有老师默认乐团课酬
 | 
	
		
			
				|  |  | -			/*List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaries = teacherDefaultMusicGroupSalaryDao.findByTeacher(newTeacherIdList);
 | 
	
		
			
				|  |  | +			List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaries = teacherDefaultMusicGroupSalaryDao.findByTeacher(teacherIdList);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  			for (TeacherDefaultMusicGroupSalary tdms : teacherDefaultMusicGroupSalaries) {
 | 
	
		
			
				|  |  | -				Map<CourseScheduleType, TeacherDefaultMusicGroupSalary> map = musicGroupSalaryMap.get(tdms.getUserId());
 | 
	
		
			
				|  |  | -				if (map == null) {
 | 
	
		
			
				|  |  | -					map = new HashMap<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary>();
 | 
	
		
			
				|  |  | +				if (tdms.getCourseScheduleType() == type) {
 | 
	
		
			
				|  |  | +					teacherMusicSalaryMap.put(tdms.getUserId(), tdms);
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  | -				map.put(tdms.getCourseScheduleType(), tdms);
 | 
	
		
			
				|  |  | -				musicGroupSalaryMap.put(tdms.getUserId(), map);
 | 
	
		
			
				|  |  | -			}*/
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		// 查询班级学生信息
 | 
	
		
			
				|  |  | +		List<ClassGroupStudentMapper> classGroupStudentMapperList = classGroupStudentMapperDao.findByClassGroup(classGroupId);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		Map<Integer, CourseTimeDto> dayOfWeekMap = teachingArrangementList.stream().collect(Collectors.toMap(CourseTimeDto::getDayOfWeek, ct -> ct));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		Calendar calendar = Calendar.getInstance();
 | 
	
		
			
				|  |  | +		Date now = new Date();
 | 
	
		
			
				|  |  | +		CourseTimeDto courseTimeDto = null;
 | 
	
		
			
				|  |  | +		List<CourseSchedule> courseScheduleList = new ArrayList<CourseSchedule>();
 | 
	
		
			
				|  |  | +		List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = new ArrayList<CourseScheduleTeacherSalary>();
 | 
	
		
			
				|  |  | +		List<CourseScheduleStudentPayment> courseScheduleStudentPayments = new ArrayList<CourseScheduleStudentPayment>();
 | 
	
		
			
				|  |  | +		List<TeacherAttendance> teacherAttendances = new ArrayList<TeacherAttendance>();
 | 
	
		
			
				|  |  | +		Map<String, Integer> holidayDays = new HashMap<>();
 | 
	
		
			
				|  |  | +		if (isJumpHoliday) {
 | 
	
		
			
				|  |  | +			try {
 | 
	
		
			
				|  |  | +		        Map<Integer, Map<String, Integer>> holiday = new HashMap<>();
 | 
	
		
			
				|  |  | +				holiday = jiaRiFeignService.query(calendar.get(Calendar.YEAR));
 | 
	
		
			
				|  |  | +				holidayDays = holiday.get(calendar.get(Calendar.YEAR));
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			} catch (Exception e) {
 | 
	
		
			
				|  |  | +				throw new BizException("获取节假日失败",e);
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -    	
 | 
	
		
			
				|  |  | -    	//查询班级学生信息
 | 
	
		
			
				|  |  | -    	List<ClassGroupStudentMapper> classGroupStudentMapperList = classGroupStudentMapperDao.findByClassGroup(classGroupId);
 | 
	
		
			
				|  |  | -    	
 | 
	
		
			
				|  |  | -    	//查询教学点补贴
 | 
	
		
			
				|  |  | -    	
 | 
	
		
			
				|  |  | -    	Map<Integer,CourseTimeDto> dayOfWeekMap = teachingArrangementList.stream().collect(Collectors.toMap(CourseTimeDto :: getDayOfWeek, ct -> ct));
 | 
	
		
			
				|  |  | -    	
 | 
	
		
			
				|  |  | -    	Calendar calendar = Calendar.getInstance();
 | 
	
		
			
				|  |  | -    	Date now = new Date();
 | 
	
		
			
				|  |  | -    	CourseTimeDto courseTimeDto = null;
 | 
	
		
			
				|  |  | -    	List<CourseSchedule> courseScheduleList = new ArrayList<CourseSchedule>();
 | 
	
		
			
				|  |  | -    	List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = new ArrayList<CourseScheduleTeacherSalary>();
 | 
	
		
			
				|  |  | -        List<CourseScheduleStudentPayment> courseScheduleStudentPayments = new ArrayList<CourseScheduleStudentPayment>();
 | 
	
		
			
				|  |  | -        List<TeacherAttendance> teacherAttendances = new ArrayList<TeacherAttendance>();
 | 
	
		
			
				|  |  | +		calendar.setTime(startDate);
 | 
	
		
			
				|  |  |  		for (int i = 0; i < coursesTimes; i++) {
 | 
	
		
			
				|  |  |  			while (true) {
 | 
	
		
			
				|  |  | -				startDate = DateUtil.addDays1(startDate, 1);
 | 
	
		
			
				|  |  | -				calendar.setTime(startDate);
 | 
	
		
			
				|  |  | +	            if (holidayDays.containsKey(DateUtil.format(calendar.getTime(), "MMdd"))) {
 | 
	
		
			
				|  |  | +	                calendar.add(Calendar.DATE, 1);
 | 
	
		
			
				|  |  | +	                continue;
 | 
	
		
			
				|  |  | +	            }
 | 
	
		
			
				|  |  |  				// 查询当前日期是周几
 | 
	
		
			
				|  |  |  				int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
 | 
	
		
			
				|  |  |  				if (dayOfWeek == 1) {
 | 
	
	
		
			
				|  | @@ -337,7 +383,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |  					courseSchedule.setMusicGroupId(classGroup.getMusicGroupId());
 | 
	
		
			
				|  |  |  					courseSchedule.setClassGroupId(classGroup.getId());
 | 
	
		
			
				|  |  |  					courseSchedule.setStatus(CourseStatusEnum.NOT_START);
 | 
	
		
			
				|  |  | -					courseSchedule.setClassDate(startDate);
 | 
	
		
			
				|  |  | +					courseSchedule.setClassDate(calendar.getTime());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  					String dateYmdStr = DateUtil.dateToString(calendar.getTime(), DateUtil.ISO_EXPANDED_DATE_FORMAT);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -348,11 +394,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |  					dateYmdStr = dateYmdStr + " " + courseTimeDto.getEndClassTime();
 | 
	
		
			
				|  |  |  					Date courseEndTime = DateUtil.stringToDate(dateYmdStr, "yyyy-MM-dd HH:mm");
 | 
	
		
			
				|  |  |  					courseSchedule.setEndClassTime(courseEndTime);
 | 
	
		
			
				|  |  | -					
 | 
	
		
			
				|  |  | -					if(courseEndTime.before(courseStartTime)){
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +					if (courseEndTime.before(courseStartTime)) {
 | 
	
		
			
				|  |  |  						throw new BizException("课时上课时间安排错误");
 | 
	
		
			
				|  |  |  					}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +					
 | 
	
		
			
				|  |  |  					courseSchedule.setTeacherId(teacherId);
 | 
	
		
			
				|  |  |  					courseSchedule.setActualTeacherId(teacherId);
 | 
	
		
			
				|  |  |  					courseSchedule.setCreateTime(now);
 | 
	
	
		
			
				|  | @@ -362,6 +408,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |  					courseSchedule.setGroupType(classGroup.getGroupType());
 | 
	
		
			
				|  |  |  					courseSchedule.setName(classGroup.getName());
 | 
	
		
			
				|  |  |  					courseSchedule.setSchoolId(schoolId);
 | 
	
		
			
				|  |  | +					courseSchedule.setSubsidy(subSidy);
 | 
	
		
			
				|  |  |  					courseScheduleList.add(courseSchedule);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  					// 课程与老师薪水表
 | 
	
	
		
			
				|  | @@ -372,10 +419,58 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |  						courseScheduleTeacherSalary.setMusicGroupId(classGroup.getMusicGroupId());
 | 
	
		
			
				|  |  |  						courseScheduleTeacherSalary.setTeacherRole(cgtm.getTeacherRole());
 | 
	
		
			
				|  |  |  						courseScheduleTeacherSalary.setUserId(cgtm.getUserId());
 | 
	
		
			
				|  |  | -						//courseScheduleTeacherSalary.setExpectSalary(new BigDecimal(practiceCourseSalaryConfig.getParanValue()));
 | 
	
		
			
				|  |  | +						if (type == CourseScheduleType.PRACTICE) {
 | 
	
		
			
				|  |  | +							courseScheduleTeacherSalary.setExpectSalary(teacherPracticeSalaryMap.get(cgtm.getUserId()));
 | 
	
		
			
				|  |  | +						} else if (type == CourseScheduleType.VIP) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +						} else {
 | 
	
		
			
				|  |  | +							TeacherDefaultMusicGroupSalary tdms = teacherMusicSalaryMap.get(cgtm.getUserId());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +							int newMinutes = DateUtil.minutesBetween(courseSchedule.getStartClassTime(), courseSchedule.getEndClassTime());
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +							int unitMinutes = 30;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +							// 如果当前教师是在指定日期之后入职的,则按照3.0的方式结算
 | 
	
		
			
				|  |  | +							if (type != CourseScheduleType.CLASSROOM) {
 | 
	
		
			
				|  |  | +								Teacher teacher = teacherMap.get(teacherId);
 | 
	
		
			
				|  |  | +								if (Objects.nonNull(teacher.getEntryDate())
 | 
	
		
			
				|  |  | +										&& (teacher.getEntryDate().after(entryDate) || teacher.getEntryDate().getTime() == entryDate.getTime())) {
 | 
	
		
			
				|  |  | +									settlementType = SalarySettlementTypeEnum.GRADIENT_SALARY.getCode();
 | 
	
		
			
				|  |  | +								}
 | 
	
		
			
				|  |  | +							}
 | 
	
		
			
				|  |  | +							if (StringUtils.equals(settlementType, "TEACHER_DEFAULT")) {
 | 
	
		
			
				|  |  | +								if (type == CourseScheduleType.CLASSROOM) {
 | 
	
		
			
				|  |  | +									unitMinutes = 40;
 | 
	
		
			
				|  |  | +								} else if (type == CourseScheduleType.HIGH) {
 | 
	
		
			
				|  |  | +									unitMinutes = 45;
 | 
	
		
			
				|  |  | +								}
 | 
	
		
			
				|  |  | +								if (courseScheduleTeacherSalary.getTeacherRole() == TeachTypeEnum.BISHOP) {
 | 
	
		
			
				|  |  | +									courseScheduleTeacherSalary.setExpectSalary(new BigDecimal(tdms.getMainTeacher30MinSalary().doubleValue() * newMinutes
 | 
	
		
			
				|  |  | +											/ unitMinutes));
 | 
	
		
			
				|  |  | +								} else {
 | 
	
		
			
				|  |  | +									courseScheduleTeacherSalary.setExpectSalary(new BigDecimal(tdms.getAssistantTeacher30MinSalary().doubleValue() * newMinutes
 | 
	
		
			
				|  |  | +											/ unitMinutes));
 | 
	
		
			
				|  |  | +								}
 | 
	
		
			
				|  |  | +							} else if (StringUtils.equals(settlementType, "GRADIENT_SALARY")) {
 | 
	
		
			
				|  |  | +								unitMinutes = 90;
 | 
	
		
			
				|  |  | +								if (type == CourseScheduleType.CLASSROOM) {
 | 
	
		
			
				|  |  | +									unitMinutes = 40;
 | 
	
		
			
				|  |  | +								} else if (type == CourseScheduleType.HIGH) {
 | 
	
		
			
				|  |  | +									unitMinutes = 45;
 | 
	
		
			
				|  |  | +								}
 | 
	
		
			
				|  |  | +								if (courseScheduleTeacherSalary.getTeacherRole() == TeachTypeEnum.BISHOP) {
 | 
	
		
			
				|  |  | +									courseScheduleTeacherSalary.setExpectSalary(new BigDecimal(tdms.getMainTeacher90MinSalary().doubleValue() * newMinutes
 | 
	
		
			
				|  |  | +											/ unitMinutes));
 | 
	
		
			
				|  |  | +								} else {
 | 
	
		
			
				|  |  | +									courseScheduleTeacherSalary.setExpectSalary(new BigDecimal(tdms.getAssistantTeacher90MinSalary().doubleValue() * newMinutes
 | 
	
		
			
				|  |  | +											/ unitMinutes));
 | 
	
		
			
				|  |  | +								}
 | 
	
		
			
				|  |  | +							}
 | 
	
		
			
				|  |  | +						}
 | 
	
		
			
				|  |  |  						courseScheduleTeacherSalary.setCreateTime(now);
 | 
	
		
			
				|  |  |  						courseScheduleTeacherSalary.setUpdateTime(now);
 | 
	
		
			
				|  |  |  						courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
 | 
	
		
			
				|  |  | +						courseScheduleTeacherSalary.setSubsidy(subSidy);
 | 
	
		
			
				|  |  |  						courseScheduleTeacherSalaries.add(courseScheduleTeacherSalary);
 | 
	
		
			
				|  |  |  					}
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -406,28 +501,33 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |  					}
 | 
	
		
			
				|  |  |  					break;
 | 
	
		
			
				|  |  |  				}
 | 
	
		
			
				|  |  | +                calendar.add(Calendar.DATE, 1);
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		
 | 
	
		
			
				|  |  | -		if(courseScheduleList.size() > 0){
 | 
	
		
			
				|  |  | +		//检查冲突
 | 
	
		
			
				|  |  | +		checkNewCourseSchedules(courseScheduleList, false);
 | 
	
		
			
				|  |  | +        createCourseScheduleName(courseScheduleList);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		if (courseScheduleList.size() > 0) {
 | 
	
		
			
				|  |  |  			courseScheduleDao.batchAddCourseSchedules(courseScheduleList);
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		
 | 
	
		
			
				|  |  | -		if(courseScheduleTeacherSalaries.size() > 0){
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		if (courseScheduleTeacherSalaries.size() > 0) {
 | 
	
		
			
				|  |  |  			courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		
 | 
	
		
			
				|  |  | -		if(courseScheduleStudentPayments.size() > 0){
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		if (courseScheduleStudentPayments.size() > 0) {
 | 
	
		
			
				|  |  |  			courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		
 | 
	
		
			
				|  |  | -		if(teacherAttendances.size() > 0){
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		if (teacherAttendances.size() > 0) {
 | 
	
		
			
				|  |  |  			teacherAttendanceDao.batchInsert(teacherAttendances);
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		
 | 
	
		
			
				|  |  | -		//更新班级信息
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		// 更新班级信息
 | 
	
		
			
				|  |  |  		classGroupService.updateClassGroupInfo(classGroupId);
 | 
	
		
			
				|  |  | -		
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		return true;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 |