Browse Source

合班拆班

zouxuan 4 years ago
parent
commit
ad902f7dc5

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -167,6 +167,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     @Autowired
     private MusicGroupPaymentCalenderService musicGroupPaymentCalenderService;
     @Autowired
+    private MusicGroupPaymentCalenderDetailService musicGroupPaymentCalenderDetailService;
+    @Autowired
     private IdGeneratorService idGeneratorService;
     @Autowired
     private MusicGroupStudentClassAdjustDao musicGroupStudentClassAdjustDao;
@@ -3403,6 +3405,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         checkMergeClassSplitClassAffirmParam(classGroup4MixDtos);
         //如果缴费项目不需要审核,那么生成班级以及课表
         if(status == null || status != AUDITING){
+
             ClassGroup4MixDto classGroup4MixDto = classGroup4MixDtos.get(0);
             classGroup4MixDto.setMusicGroupStudentClassAdjustId(musicGroupStudentClassAdjust.getId());
             //保存课程时长

+ 7 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleStudentPaymentServiceImpl.java

@@ -324,14 +324,15 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 		JSONObject jsonObject = JSON.parseObject(courseDefaultMinutes);
 
 		for (Integer studentId : studentIds) {
-			noPayment:for (int i = 0; i < courseSchedules.size(); i++) {
+			for (int i = 0; i < courseSchedules.size(); i++) {
 				CourseSchedule courseSchedule = courseSchedules.get(i);
 				//优先处理之前的剩余课程
 				//获取调班之前,学员剩余的课程列表
-				List<CourseScheduleStudentPayment> studentPayments = courseScheduleStudentPaymentDao.queryCourseByIdsAndStudentId(courseIds,studentId,courseSchedule.getType().getCode());
-				if(studentPayments != null && studentPayments.size() > 0 && i < studentPayments.size()){
-					for (int j = 0; j < studentPayments.size(); j++) {
-						CourseScheduleStudentPayment studentPayment = studentPayments.get(j);
+				if(courseIds != null && courseIds.size() > 0){
+					List<CourseScheduleStudentPayment> studentPayments = courseScheduleStudentPaymentDao.queryCourseByIdsAndStudentId(courseIds,studentId,courseSchedule.getType().getCode());
+					if(studentPayments != null && studentPayments.size() > 0){
+						CourseScheduleStudentPayment studentPayment = studentPayments.get(0);
+						courseIds.remove(studentPayment.getCourseScheduleId());
 						studentPayment.setCourseScheduleId(courseSchedule.getId());
 						studentPayment.setClassGroupId(courseSchedule.getClassGroupId());
 						studentPayment.setOpenPlayMidi(null);
@@ -339,9 +340,8 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 						studentPayment.setExamSongDownloadJson(null);
 						studentPayment.setId(null);
 						courseScheduleStudentPayments.add(studentPayment);
+						continue ;
 					}
-					i = studentPayments.size() - 1;
-					break noPayment;
 				}
 				//处理缴费的排课信息
 				List<MusicGroupPaymentStudentCourseDetail> musicGroupPaymentStudentCourseDetails = musicGroupPaymentStudentCourseDetailDao.getUnUseWithStudentAndCourseTypeAndCourseMinutes(batchNo, studentId,courseSchedule.getType());

+ 19 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -26,6 +26,7 @@ import com.alibaba.fastjson.JSON;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.service.*;
 import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -46,10 +47,6 @@ import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
 import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
 import com.ym.mec.biz.dal.page.MusicGroupPaymentCalenderQueryInfo;
-import com.ym.mec.biz.service.ClassGroupService;
-import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
-import com.ym.mec.biz.service.SysConfigService;
-import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.constant.CommonConstants;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
@@ -124,6 +121,8 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 	private CourseScheduleStudentPaymentServiceImpl courseScheduleStudentPaymentService;
 	@Autowired
 	private MusicGroupStudentClassAdjustDao musicGroupStudentClassAdjustDao;
+	@Autowired
+	private MusicGroupPaymentCalenderDetailService musicGroupPaymentCalenderDetailService;
 
 	@Override
 	public BaseDAO<Long, MusicGroupPaymentCalender> getDAO() {
@@ -357,6 +356,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 			musicGroupPaymentCalender.setBatchNo(batchNo);
 			musicGroupPaymentCalenderDao.insert(musicGroupPaymentCalender);
 
+
 			List<MusicGroupPaymentCalenderCourseSettings> currentMusicGroupPaymentCalenderCourseSettings = musicGroupPaymentCalender
 					.getMusicGroupPaymentCalenderCourseSettingsList();
 
@@ -365,6 +365,12 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 				if (musicGroupPaymentCalender.getPaymentType() == PaymentType.ADD_STUDENT) {
 					addStudent(musicGroupPaymentCalender, currentMusicGroupPaymentCalenderCourseSettings);
 				}
+				if(StringUtils.isEmpty(musicGroupPaymentCalenderDto.getBatchNo())){
+					//缴费项目添加学员
+					int[] ints = Arrays.stream(musicGroupPaymentCalenderDto.getStudentIds().split(",")).mapToInt(Integer::parseInt).toArray();
+					List<Integer> list2 = Arrays.stream(ints).boxed().collect(Collectors.toList());
+					musicGroupPaymentCalenderDetailService.batchAdd(musicGroupPaymentCalender.getId(),list2);
+				}
 			}
 
 			if (currentMusicGroupPaymentCalenderCourseSettings.size() > 0) {
@@ -886,6 +892,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		List<ClassGroup4MixDto> classGroup4MixDtos = JSON.parseArray(musicGroupStudentClassAdjust.getNewClassGroupJson(), ClassGroup4MixDto.class);
 		//开始排课
 		ClassGroup4MixDto classGroup4MixDto = classGroup4MixDtos.get(0);
+		classGroup4MixDto.setMusicGroupStudentClassAdjustId(musicGroupStudentClassAdjust.getId());
 		classGroup4MixDto.setClassCourseMinute(musicGroupStudentClassAdjust.getClassCourseMinute());
 		List<CourseTimeDto> courseTimeDtoList = classGroup4MixDto.getCourseTimeDtoList();
 		List<CourseTimeDto> courseTimeDtoListBackup = Arrays.asList(new CourseTimeDto[courseTimeDtoList.size()]);
@@ -894,6 +901,14 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
 		} catch (Exception e) {
 			throw new BizException("拷贝课程信息异常");
 		}
+
+		List<MusicGroupPaymentCalender> musicGroupPaymentCalenders = musicGroupPaymentCalenderDao.findByBatchNo(batchNo);
+		for (MusicGroupPaymentCalender calender : musicGroupPaymentCalenders) {
+			//缴费项目添加学员
+			int[] ints = Arrays.stream(calender.getStudentIds().split(",")).mapToInt(Integer::parseInt).toArray();
+			List<Integer> list2 = Arrays.stream(ints).boxed().collect(Collectors.toList());
+			musicGroupPaymentCalenderDetailService.batchAdd(calender.getId(),list2);
+		}
 		//每种课程类型单独排课
 		for (CourseTimeDto courseTimeDto : courseTimeDtoListBackup) {
 			List<CourseTimeDto> courseTimeDtos = new ArrayList<>();

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

@@ -1317,8 +1317,7 @@
           AND group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
           AND NOW() &lt; CONCAT(class_date_, " ", start_class_time_);
     </update>
-
-    <update id="batchUpdateLockByClassGroupIds">
+    <update id="batchUpdateLockByCourseIds">
         UPDATE course_schedule
         SET is_lock_ = #{isLock}, update_time_ = NOW()
         WHERE id_ IN