Commit 2c42e64f4f72d2b651290da09436f9650b69d00d

Authored by 陈杰
1 parent 037d605e
Exists in master

排课 一个老师对应多个课程 优化

src/main/java/com/jevon/controller/LearnStatController.java
@@ -579,6 +579,20 @@ public class LearnStatController { @@ -579,6 +579,20 @@ public class LearnStatController {
579 return repVO; 579 return repVO;
580 } 580 }
581 581
  582 + @ApiOperation("getForm2_2_5")
  583 + @RequestMapping(value = "getForm2_2_5", method = RequestMethod.POST)
  584 + public Map<String,Double> getForm2_2_5(@RequestBody GetLearnReqVo getLearnReqVo){
  585 + Analyse analyse = analyseService.selectById(getLearnReqVo.getAnalyseId());
  586 + //分数段
  587 + Double maxScore = analyse.getMaxScore();
  588 + Map<String,Double> segmentMap = new HashMap<>();
  589 + segmentMap.put("A",maxScore*0.85);
  590 + segmentMap.put("B",maxScore*0.7);
  591 + segmentMap.put("C",maxScore*0.6);
  592 + segmentMap.put("D",maxScore*0.6);
  593 + return segmentMap ;
  594 + }
  595 +
582 @ApiOperation("getForm3_1") 596 @ApiOperation("getForm3_1")
583 @RequestMapping(value = "getForm3_1", method = RequestMethod.POST) 597 @RequestMapping(value = "getForm3_1", method = RequestMethod.POST)
584 public Form6RepVO getForm3_1(@RequestBody GetLearnReqVo getLearnReqVo){ 598 public Form6RepVO getForm3_1(@RequestBody GetLearnReqVo getLearnReqVo){
src/main/java/com/jevon/controller/ScheduleController.java
@@ -236,13 +236,8 @@ public class ScheduleController { @@ -236,13 +236,8 @@ public class ScheduleController {
236 for(String msg : parallelClassReqVo.getIntervalList()){ 236 for(String msg : parallelClassReqVo.getIntervalList()){
237 String[] arrayMsg = msg.split("-"); 237 String[] arrayMsg = msg.split("-");
238 ClassCourse classCourse = new ClassCourse(); 238 ClassCourse classCourse = new ClassCourse();
239 - if(Integer.valueOf(arrayMsg[0]) > 5){  
240 - classCourse.setSingleOrDouble(2);  
241 - classCourse.setWeek(Integer.valueOf(arrayMsg[0])-5);  
242 - }else {  
243 - classCourse.setSingleOrDouble(1);  
244 - classCourse.setWeek(Integer.valueOf(arrayMsg[0]));  
245 - } 239 + classCourse.setSingleOrDouble(1);
  240 + classCourse.setWeek(Integer.valueOf(arrayMsg[0]));
246 classCourse.setCourseNumber(Integer.valueOf(arrayMsg[1])); 241 classCourse.setCourseNumber(Integer.valueOf(arrayMsg[1]));
247 limitList.add(classCourse); 242 limitList.add(classCourse);
248 } 243 }
@@ -291,10 +286,11 @@ public class ScheduleController { @@ -291,10 +286,11 @@ public class ScheduleController {
291 insertTeacherCourse(isDouble, teacherCourse); 286 insertTeacherCourse(isDouble, teacherCourse);
292 } 287 }
293 TeacherClass searchTeacher = new TeacherClass(); 288 TeacherClass searchTeacher = new TeacherClass();
294 - searchTeacher.setTeacherName(temp.getTeacherName());  
295 searchTeacher.setSchoolId(temp.getSchoolId()); 289 searchTeacher.setSchoolId(temp.getSchoolId());
296 - searchTeacher.setClassId(temp.getClassId());  
297 searchTeacher.setTeam(temp.getTeam()); 290 searchTeacher.setTeam(temp.getTeam());
  291 + searchTeacher.setClassId(temp.getClassId());
  292 + searchTeacher.setTeacherName(temp.getTeacherName());
  293 + searchTeacher.setCourseName(temp.getCourseName());
298 TeacherClass teacherClass = teacherClassService.selectByTeacher(searchTeacher); 294 TeacherClass teacherClass = teacherClassService.selectByTeacher(searchTeacher);
299 if(teacherClass.getStatus() == 1){ 295 if(teacherClass.getStatus() == 1){
300 //已经排课不再排课 296 //已经排课不再排课
@@ -302,47 +298,32 @@ public class ScheduleController { @@ -302,47 +298,32 @@ public class ScheduleController {
302 ClassCourse classCourse = new ClassCourse(); 298 ClassCourse classCourse = new ClassCourse();
303 classCourse.setClassId(temp.getClassId()); 299 classCourse.setClassId(temp.getClassId());
304 classCourse.setTeam(schedule.getTeam()); 300 classCourse.setTeam(schedule.getTeam());
305 - if(isDouble){  
306 -// //双周排课 先排第一周  
307 -// int times = teacherClass.getTimes();  
308 -// int joinTimes = teacherClass.getJoinTimes();  
309 -// classCourse.setSingleOrDouble(1);  
310 -// teacherClass.setJoinTimes(times/2);  
311 -// teacherClass.setJoinTimes(joinTimes/2);  
312 -// List<ClassCourse> classCourses = classCourseService.selectByClassIdAndSingleOrDouble(classCourse);  
313 -// initWeekCourse(joinList,teacherClass,teacherCourse,classCourses,limitList,0);  
314 -// //第二周  
315 -// classCourse.setSingleOrDouble(1);  
316 -// teacherClass.setJoinTimes(times/2+1);  
317 -// teacherClass.setJoinTimes(joinTimes/2+1);  
318 -// classCourses = classCourseService.selectByClassIdAndSingleOrDouble(classCourse);  
319 -// initWeekCourse(joinList,teacherClass,teacherCourse,classCourses,limitList,0);  
320 - }else {  
321 - classCourse.setSingleOrDouble(1);  
322 - List<ClassCourse> classCourses = classCourseService.selectByClassIdAndSingleOrDouble(classCourse);  
323 - initWeekCourse(joinList,teacherClass,teacherCourse,classCourses,limitList,0);  
324 - //排课结束,更新  
325 - //如果是合班的话,需要更新多个teacherClass  
326 - teacherClassService.updateSchedule(teacherClass.gettClassId());  
327 - JoinClass joinClass = new JoinClass();  
328 - joinClass.setSchoolId(schedule.getSchoolId());  
329 - joinClass.setTeam(schedule.getTeam());  
330 - joinClass.setCourseId(courseService.selectBySchoolIdAndCourseName(schedule.getSchoolId(),teacherClass.getCourseName()).getCourseId());  
331 - joinClass.setClassId(classCourse.getClassId());  
332 - List<JoinClass> joinClasses = joinClassService.selectByCourse(joinClass);  
333 - if(joinClasses != null && joinClasses.size() > 0){  
334 - List<JoinClass> resultList = joinClassService.selectByCourseGroup(joinClasses.get(0).getCourseGroup());  
335 - for(JoinClass joinClass1 :resultList){  
336 - TeacherClass searchTeacherClass = new TeacherClass();  
337 - searchTeacherClass.setSchoolId(schedule.getSchoolId());  
338 - searchTeacherClass.setTeam(schedule.getTeam());  
339 - searchTeacherClass.setCourseName(teacherClass.getCourseName());  
340 - searchTeacherClass.setClassId(joinClass1.getClassId());  
341 - TeacherClass resultTeacherClass = teacherClassService.selectByCourseAndClass(searchTeacherClass);  
342 - teacherClassService.updateSchedule(resultTeacherClass.gettClassId());  
343 - } 301 + classCourse.setSchoolId(schedule.getSchoolId());
  302 + classCourse.setSingleOrDouble(1);
  303 + List<ClassCourse> classCourses = classCourseService.selectByClassIdAndSingleOrDouble(classCourse);
  304 + initWeekCourse(parallelClassReqVo.getCourseType(),joinList,teacherClass,classCourses,limitList,0);
  305 + //排课结束,更新
  306 + //如果是合班的话,需要更新多个teacherClass
  307 + teacherClassService.updateSchedule(teacherClass.gettClassId());
  308 + JoinClass joinClass = new JoinClass();
  309 + joinClass.setSchoolId(schedule.getSchoolId());
  310 + joinClass.setTeam(schedule.getTeam());
  311 + joinClass.setCourseId(courseService.selectBySchoolIdAndCourseName(schedule.getSchoolId(),teacherClass.getCourseName()).getCourseId());
  312 + joinClass.setClassId(classCourse.getClassId());
  313 + List<JoinClass> joinClasses = joinClassService.selectByCourse(joinClass);
  314 + if(joinClasses != null && joinClasses.size() > 0){
  315 + List<JoinClass> resultList = joinClassService.selectByCourseGroup(joinClasses.get(0).getCourseGroup());
  316 + for(JoinClass joinClass1 :resultList){
  317 + TeacherClass searchTeacherClass = new TeacherClass();
  318 + searchTeacherClass.setSchoolId(schedule.getSchoolId());
  319 + searchTeacherClass.setTeam(schedule.getTeam());
  320 + searchTeacherClass.setCourseName(teacherClass.getCourseName());
  321 + searchTeacherClass.setClassId(joinClass1.getClassId());
  322 + TeacherClass resultTeacherClass = teacherClassService.selectByCourseAndClass(searchTeacherClass);
  323 + teacherClassService.updateSchedule(resultTeacherClass.gettClassId());
344 } 324 }
345 } 325 }
  326 +
346 } 327 }
347 } 328 }
348 return baseVo; 329 return baseVo;
@@ -422,7 +403,16 @@ public class ScheduleController { @@ -422,7 +403,16 @@ public class ScheduleController {
422 return classCourses; 403 return classCourses;
423 } 404 }
424 405
425 - private void initWeekCourse(List<Integer> joinList ,TeacherClass teacherClass , TeacherCourse teacherCourse , 406 + /**
  407 + *
  408 + * @param courseType 所排课的课程类型 // 1 主课 2 副课 3 公共课
  409 + * @param joinList 联课优先级
  410 + * @param teacherClass 老师授课信息
  411 + * @param list 班级课程
  412 + * @param limitList 单课优先级
  413 + * @param functionTimes 循环次数
  414 + */
  415 + private void initWeekCourse(int courseType ,List<Integer> joinList ,TeacherClass teacherClass ,
426 List<ClassCourse> list , List<ClassCourse> limitList ,int functionTimes){ 416 List<ClassCourse> list , List<ClassCourse> limitList ,int functionTimes){
427 List<Integer> sort = new ArrayList<>(); 417 List<Integer> sort = new ArrayList<>();
428 String team = teacherClass.getTeam(); 418 String team = teacherClass.getTeam();
@@ -448,19 +438,19 @@ public class ScheduleController { @@ -448,19 +438,19 @@ public class ScheduleController {
448 } 438 }
449 ClassCourse classCourseNext =getClassCourse(list, week, courseNumber+1); 439 ClassCourse classCourseNext =getClassCourse(list, week, courseNumber+1);
450 if (StringUtils.isBlank(classCourse.getCourseName()) && StringUtils.isBlank(classCourseNext.getCourseName())) { 440 if (StringUtils.isBlank(classCourse.getCourseName()) && StringUtils.isBlank(classCourseNext.getCourseName())) {
451 - Course course = courseService.selectBySchoolIdAndCourseName(teacherClass.getSchoolId(),teacherCourse.getCourseName()); 441 + Course course = courseService.selectBySchoolIdAndCourseName(teacherClass.getSchoolId(),teacherClass.getCourseName());
452 classCourse.setCourseOpenId(course.getCourseId()); 442 classCourse.setCourseOpenId(course.getCourseId());
453 classCourse.setCourseName(teacherClass.getCourseName()); 443 classCourse.setCourseName(teacherClass.getCourseName());
454 classCourseNext.setCourseOpenId(course.getCourseId()); 444 classCourseNext.setCourseOpenId(course.getCourseId());
455 classCourseNext.setCourseName(teacherClass.getCourseName()); 445 classCourseNext.setCourseName(teacherClass.getCourseName());
456 TeacherCourse searchTeacherCourse = new TeacherCourse(); 446 TeacherCourse searchTeacherCourse = new TeacherCourse();
457 searchTeacherCourse.setTeam(team); 447 searchTeacherCourse.setTeam(team);
458 - searchTeacherCourse.setSchoolId(teacherCourse.getSchoolId());  
459 - searchTeacherCourse.setGrade(teacherCourse.getGrade());  
460 - searchTeacherCourse.setTeacherName(teacherCourse.getTeacherName()); 448 + searchTeacherCourse.setSchoolId(teacherClass.getSchoolId());
  449 + searchTeacherCourse.setGrade(teacherClass.getGrade());
  450 + searchTeacherCourse.setTeacherName(teacherClass.getTeacherName());
461 searchTeacherCourse.setSingleOrDouble(singleOrDouble); 451 searchTeacherCourse.setSingleOrDouble(singleOrDouble);
462 searchTeacherCourse.setWeek(week); 452 searchTeacherCourse.setWeek(week);
463 - searchTeacherCourse.setCourseName(teacherCourse.getCourseName()); 453 + searchTeacherCourse.setCourseName(teacherClass.getCourseName());
464 //查询当天老师的课是否已经大于等于2 防止老师一天课程太多 454 //查询当天老师的课是否已经大于等于2 防止老师一天课程太多
465 int dayCourse = teacherCourseService.selectTeacherDayCourseNumber(searchTeacherCourse); 455 int dayCourse = teacherCourseService.selectTeacherDayCourseNumber(searchTeacherCourse);
466 if(dayCourse >= 2){ 456 if(dayCourse >= 2){
@@ -473,9 +463,9 @@ public class ScheduleController { @@ -473,9 +463,9 @@ public class ScheduleController {
473 if (StringUtils.isBlank(teacherFirst.getCourseName()) && StringUtils.isBlank(teacherSecond.getCourseName())) { 463 if (StringUtils.isBlank(teacherFirst.getCourseName()) && StringUtils.isBlank(teacherSecond.getCourseName())) {
474 classCourseService.updateByPrimaryKey(classCourse); 464 classCourseService.updateByPrimaryKey(classCourse);
475 classCourseService.updateByPrimaryKey(classCourseNext); 465 classCourseService.updateByPrimaryKey(classCourseNext);
476 - teacherFirst.setCourseName(teacherCourse.getCourseName()); 466 + teacherFirst.setCourseName(teacherClass.getCourseName());
477 teacherFirst.setClassId(classCourse.getClassId()+""); 467 teacherFirst.setClassId(classCourse.getClassId()+"");
478 - teacherSecond.setCourseName(teacherCourse.getCourseName()); 468 + teacherSecond.setCourseName(teacherClass.getCourseName());
479 teacherSecond.setClassId(classCourse.getClassId()+""); 469 teacherSecond.setClassId(classCourse.getClassId()+"");
480 teacherCourseService.updateTeacherCourse(teacherFirst); 470 teacherCourseService.updateTeacherCourse(teacherFirst);
481 teacherCourseService.updateTeacherCourse(teacherSecond); 471 teacherCourseService.updateTeacherCourse(teacherSecond);
@@ -515,118 +505,170 @@ public class ScheduleController { @@ -515,118 +505,170 @@ public class ScheduleController {
515 if(flag){ 505 if(flag){
516 if(StringUtils.isBlank(classCourse.getCourseName())){ 506 if(StringUtils.isBlank(classCourse.getCourseName())){
517 Course course = courseService.selectBySchoolIdAndCourseName(teacherClass.getSchoolId(),teacherClass.getCourseName()); 507 Course course = courseService.selectBySchoolIdAndCourseName(teacherClass.getSchoolId(),teacherClass.getCourseName());
518 - classCourse.setCourseOpenId(course.getCourseId());  
519 - classCourse.setCourseName(teacherClass.getCourseName());  
520 - //判断当天是否已经排该课程  
521 - if(classCourseService.selectCourseByClassIdAndWeek(classCourse) > 1){  
522 - break; 508 + //约束条件判断
  509 + TeacherCourse result = checkConstraint(courseType,classCourse,teacherClass,course,singleOrDouble,week,courseNumber);
  510 + if(result == null){
  511 + break;
523 } 512 }
524 - TeacherCourse searchTeacherCourse = new TeacherCourse();  
525 - searchTeacherCourse.setTeam(team);  
526 - searchTeacherCourse.setSchoolId(teacherCourse.getSchoolId());  
527 - searchTeacherCourse.setGrade(teacherCourse.getGrade());  
528 - searchTeacherCourse.setTeacherName(teacherCourse.getTeacherName());  
529 - searchTeacherCourse.setSingleOrDouble(singleOrDouble);  
530 - searchTeacherCourse.setWeek(week);  
531 - searchTeacherCourse.setCourseNumber(courseNumber);  
532 - searchTeacherCourse.setCourseName(teacherClass.getCourseName());  
533 - TeacherCourse result = teacherCourseService.selectTeacherCourse(searchTeacherCourse);  
534 - //老师当天课程不能多于2  
535 - if(teacherCourseService.selectTeacherDayCourseNumber(searchTeacherCourse) >= 2){ 513 + //设置课程
  514 + if(setCourse(classCourse,teacherClass,result,course)){
  515 + times++;
  516 + before = courseNumber;
536 break; 517 break;
537 - }  
538 - //合课 多做一层判断 另一个班级这节课也为空  
539 - JoinClass joinClass = new JoinClass();  
540 - joinClass.setSchoolId(classCourse.getSchoolId());  
541 - joinClass.setTeam(classCourse.getTeam());  
542 - joinClass.setCourseId(classCourse.getCourseOpenId());  
543 - joinClass.setClassId(classCourse.getClassId());  
544 - List<JoinClass> joinClasses = joinClassService.selectByCourse(joinClass);  
545 - if(joinClasses != null && joinClasses.size() > 0){  
546 - //说明是合班的课程  
547 - boolean isClash = false ;  
548 - List<ClassCourse> joinClassList = new ArrayList<>();  
549 - List<JoinClass> resultList = joinClassService.selectByCourseGroup(joinClasses.get(0).getCourseGroup());  
550 - for(JoinClass temp : resultList){  
551 - ClassCourse joinClassCourse = new ClassCourse();  
552 - joinClassCourse.setTeam(classCourse.getTeam());  
553 - joinClassCourse.setClassId(temp.getClassId());  
554 - joinClassCourse.setWeek(classCourse.getWeek());  
555 - joinClassCourse.setCourseNumber(classCourse.getCourseNumber());  
556 - joinClassCourse.setSingleOrDouble(classCourse.getSingleOrDouble());  
557 - ClassCourse joinResultClassCourse = classCourseService.selectClassCourse(joinClassCourse);  
558 - joinClassList.add(joinResultClassCourse);  
559 - if(StringUtils.isNotBlank(joinResultClassCourse.getCourseName())){  
560 - isClash = true ;  
561 - break;  
562 - }  
563 - }  
564 - if(isClash){  
565 - //合班的班级有 该节次的课 已经有老师上了  
566 - continue;  
567 - }else {  
568 - String classIdString = "";  
569 - for(ClassCourse temp : joinClassList){  
570 - classIdString = course.getCourseId() + "," ;  
571 - temp.setCourseOpenId(course.getCourseId());  
572 - temp.setCourseName(teacherClass.getCourseName());  
573 - classCourseService.updateByPrimaryKey(temp);  
574 - }  
575 - result.setGrade(classCourse.getGrade());  
576 - result.setClassId(classIdString);  
577 - result.setCourseName(classCourse.getCourseName());  
578 - teacherCourseService.updateTeacherCourse(result);  
579 - times++;  
580 - before = courseNumber;  
581 - break;  
582 - }  
583 }else { 518 }else {
584 - //普通课程  
585 - if(StringUtils.isBlank(result.getCourseName())){  
586 - classCourseService.updateByPrimaryKey(classCourse);  
587 - result.setGrade(classCourse.getGrade());  
588 - result.setClassId(classCourse.getClassId()+"");  
589 - result.setCourseName(classCourse.getCourseName());  
590 - teacherCourseService.updateTeacherCourse(result);  
591 - times++;  
592 - before = courseNumber;  
593 - break;  
594 - }else {  
595 - continue;  
596 - } 519 + continue;
597 } 520 }
598 } 521 }
599 } 522 }
600 } 523 }
601 } 524 }
602 - if(functionTimes > 1){ 525 + if(functionTimes > 2){
603 //递归次数限制,防止无限循环,内存溢出,手动优化课程 526 //递归次数限制,防止无限循环,内存溢出,手动优化课程
604 - optimizeCourse(teacherClass); 527 + optimizeCourse(teacherClass,courseType);
605 }else{ 528 }else{
606 if(times < teacherClass.getTimes()){ 529 if(times < teacherClass.getTimes()){
607 //优先时段中课程数 不够 530 //优先时段中课程数 不够
608 teacherClass.setTimes(teacherClass.getTimes()-times); 531 teacherClass.setTimes(teacherClass.getTimes()-times);
609 teacherClass.setJoinTimes(teacherClass.getJoinTimes()-joinTimes); 532 teacherClass.setJoinTimes(teacherClass.getJoinTimes()-joinTimes);
610 - //放大范围  
611 - limitList = new ArrayList<>(); 533 + //放大优先范围,上下一节,并去掉原来的优先范围
  534 + List<ClassCourse> newLimitList = new ArrayList<>();
612 int maxCourseNumber =classCourseService.selectMaxCourseNumber(teacherClass.getSchoolId(),team); 535 int maxCourseNumber =classCourseService.selectMaxCourseNumber(teacherClass.getSchoolId(),team);
613 - for(int i = 1 ; i<= 5 ; i++){  
614 - for(int j = 1 ; j <=maxCourseNumber ; j++) { 536 + for(ClassCourse classCourse : limitList){
  537 + if(classCourse.getCourseNumber() == 1){
615 ClassCourse temp = new ClassCourse(); 538 ClassCourse temp = new ClassCourse();
616 - temp.setWeek(i);  
617 - temp.setCourseNumber(j);  
618 - limitList.add(temp); 539 + temp.setWeek(classCourse.getWeek());
  540 + temp.setCourseNumber(2);
  541 + newLimitList.add(temp);
  542 + }else if(classCourse.getCourseNumber() == maxCourseNumber){
  543 + ClassCourse temp = new ClassCourse();
  544 + temp.setWeek(classCourse.getWeek());
  545 + temp.setCourseNumber(maxCourseNumber-1);
  546 + newLimitList.add(temp);
  547 + }else{
  548 + ClassCourse temp = new ClassCourse();
  549 + temp.setWeek(classCourse.getWeek());
  550 + temp.setCourseNumber(classCourse.getCourseNumber()-1);
  551 + newLimitList.add(temp);
  552 + ClassCourse temp2 = new ClassCourse();
  553 + temp2.setWeek(classCourse.getWeek());
  554 + temp2.setCourseNumber(classCourse.getCourseNumber()+1);
  555 + newLimitList.add(temp2);
  556 + }
  557 + }
  558 + List<ClassCourse> result = new ArrayList<>();
  559 + for (int i = 0; i < newLimitList.size() ; i++) {
  560 + boolean isExist = false ;
  561 + for(ClassCourse classCourse : limitList){
  562 + if(newLimitList.get(i).getWeek() == classCourse.getWeek() &&
  563 + newLimitList.get(i).getCourseNumber() == classCourse.getCourseNumber()){
  564 + isExist = true ;
  565 + }
  566 + }
  567 + if(!isExist){
  568 + result.add(newLimitList.get(i));
619 } 569 }
620 } 570 }
621 functionTimes ++ ; 571 functionTimes ++ ;
622 - initWeekCourse(joinList,teacherClass,teacherCourse,list,limitList,functionTimes); 572 + initWeekCourse(courseType,joinList,teacherClass,list,result,functionTimes);
  573 + }
  574 + }
  575 + }
  576 +
  577 + //设置课程
  578 + private boolean setCourse(ClassCourse classCourse ,TeacherClass teacherClass , TeacherCourse result , Course course){
  579 + //合课 多做一层判断 另一个班级这节课也为空
  580 + JoinClass joinClass = new JoinClass();
  581 + joinClass.setSchoolId(classCourse.getSchoolId());
  582 + joinClass.setTeam(classCourse.getTeam());
  583 + joinClass.setCourseId(classCourse.getCourseOpenId());
  584 + joinClass.setClassId(classCourse.getClassId());
  585 + List<JoinClass> joinClasses = joinClassService.selectByCourse(joinClass);
  586 + if(joinClasses != null && joinClasses.size() > 0){
  587 + //说明是合班的课程
  588 + boolean isClash = false ;
  589 + List<ClassCourse> joinClassList = new ArrayList<>();
  590 + List<JoinClass> resultList = joinClassService.selectByCourseGroup(joinClasses.get(0).getCourseGroup());
  591 + for(JoinClass temp : resultList){
  592 + ClassCourse joinClassCourse = new ClassCourse();
  593 + joinClassCourse.setTeam(classCourse.getTeam());
  594 + joinClassCourse.setClassId(temp.getClassId());
  595 + joinClassCourse.setWeek(classCourse.getWeek());
  596 + joinClassCourse.setCourseNumber(classCourse.getCourseNumber());
  597 + joinClassCourse.setSingleOrDouble(classCourse.getSingleOrDouble());
  598 + ClassCourse joinResultClassCourse = classCourseService.selectClassCourse(joinClassCourse);
  599 + joinClassList.add(joinResultClassCourse);
  600 + if(StringUtils.isNotBlank(joinResultClassCourse.getCourseName())){
  601 + isClash = true ;
  602 + break;
  603 + }
  604 + }
  605 + if(isClash){
  606 + //合班的班级有 该节次的课 已经有老师上了
  607 + return false;
  608 + }else {
  609 + String classIdString = "";
  610 + for(ClassCourse temp : joinClassList){
  611 + classIdString = course.getCourseId() + "," ;
  612 + temp.setCourseOpenId(course.getCourseId());
  613 + temp.setCourseName(teacherClass.getCourseName());
  614 + classCourseService.updateByPrimaryKey(temp);
  615 + }
  616 + result.setGrade(classCourse.getGrade());
  617 + result.setClassId(classIdString);
  618 + result.setCourseName(classCourse.getCourseName());
  619 + teacherCourseService.updateTeacherCourse(result);
  620 + return true;
623 } 621 }
  622 + }else {
  623 + //普通课程
  624 + if(StringUtils.isBlank(result.getCourseName())){
  625 + classCourseService.updateByPrimaryKey(classCourse);
  626 + result.setGrade(classCourse.getGrade());
  627 + result.setClassId(classCourse.getClassId()+"");
  628 + result.setCourseName(classCourse.getCourseName());
  629 + teacherCourseService.updateTeacherCourse(result);
  630 + return true;
  631 + }else {
  632 + return false ;
  633 + }
  634 + }
  635 + }
  636 +
  637 + //判断班级与老师的约束条件
  638 + private TeacherCourse checkConstraint(int courseType , ClassCourse classCourse , TeacherClass teacherClass ,
  639 + Course course , int singleOrDouble , int week , int courseNumber ){
  640 + classCourse.setCourseOpenId(course.getCourseId());
  641 + classCourse.setCourseName(teacherClass.getCourseName());
  642 + //判断当天是否已经排该课程 主课一天2节,其他课一天1节
  643 + if(courseType == 1 && classCourseService.selectCourseByClassIdAndWeek(classCourse) >= 2){
  644 + return null ;
  645 + }
  646 + if(courseType != 1 && classCourseService.selectCourseByClassIdAndWeek(classCourse) >= 1){
  647 + return null ;
624 } 648 }
  649 + TeacherCourse searchTeacherCourse = new TeacherCourse();
  650 + searchTeacherCourse.setTeam(teacherClass.getTeam());
  651 + searchTeacherCourse.setSchoolId(teacherClass.getSchoolId());
  652 + searchTeacherCourse.setGrade(teacherClass.getGrade());
  653 + searchTeacherCourse.setTeacherName(teacherClass.getTeacherName());
  654 + searchTeacherCourse.setSingleOrDouble(singleOrDouble);
  655 + searchTeacherCourse.setWeek(week);
  656 + searchTeacherCourse.setCourseNumber(courseNumber);
  657 + searchTeacherCourse.setCourseName(teacherClass.getCourseName());
  658 + TeacherCourse result = teacherCourseService.selectTeacherCourse(searchTeacherCourse);
  659 + //老师当天课程不能多于 该老师平均课程
  660 + if(teacherCourseService.selectTeacherDayCourseNumber(searchTeacherCourse)
  661 + >= teacherClassService.selectTeacherDayClass(teacherClass.getSchoolId(),teacherClass.getTeam(),teacherClass.getTeacherName())){
  662 + return null ;
  663 + }
  664 + return result ;
625 } 665 }
626 666
  667 +
627 //课程冲突 ,调优 668 //课程冲突 ,调优
628 - private void optimizeCourse(TeacherClass teacherClass){ 669 + private void optimizeCourse(TeacherClass teacherClass,int courseType){
629 int times = teacherClass.getTimes(); 670 int times = teacherClass.getTimes();
  671 + int maxCourseNumber = classCourseService.selectMaxCourseNumber(teacherClass.getSchoolId(),teacherClass.getTeam()) ;
630 while (times > 0){ 672 while (times > 0){
631 boolean flag = false ; 673 boolean flag = false ;
632 List<ClassCourse> noClassList = classCourseService.selectNoCourse(teacherClass.getClassId(),teacherClass.getTeam()); 674 List<ClassCourse> noClassList = classCourseService.selectNoCourse(teacherClass.getClassId(),teacherClass.getTeam());
@@ -646,7 +688,7 @@ public class ScheduleController { @@ -646,7 +688,7 @@ public class ScheduleController {
646 } 688 }
647 for(int j = -1 ; j<=1 ; j++){ 689 for(int j = -1 ; j<=1 ; j++){
648 int courseNumberChange = classCourse.getCourseNumber() + j ; 690 int courseNumberChange = classCourse.getCourseNumber() + j ;
649 - if(courseNumberChange > classCourseService.selectMaxCourseNumber(teacherClass.getSchoolId(),teacherClass.getTeam())){ 691 + if(courseNumberChange > maxCourseNumber){
650 continue; 692 continue;
651 } 693 }
652 if(courseNumberChange < 1){ 694 if(courseNumberChange < 1){
src/main/java/com/jevon/controller/ScheduleInitController.java
@@ -86,6 +86,12 @@ public class ScheduleInitController { @@ -86,6 +86,12 @@ public class ScheduleInitController {
86 return baseVo; 86 return baseVo;
87 } 87 }
88 88
  89 + @ApiOperation("tset ")
  90 + @RequestMapping(value = "test", method = RequestMethod.POST)
  91 + public void test(){
  92 + initMessage(1021);
  93 + }
  94 +
89 @ApiOperation("更新计划") 95 @ApiOperation("更新计划")
90 @RequestMapping(value = "updateSchedule", method = RequestMethod.POST) 96 @RequestMapping(value = "updateSchedule", method = RequestMethod.POST)
91 public BaseVo updateSchedule(@RequestBody UpdateScheduleReqVo updateScheduleReqVo){ 97 public BaseVo updateSchedule(@RequestBody UpdateScheduleReqVo updateScheduleReqVo){
@@ -210,7 +216,8 @@ public class ScheduleInitController { @@ -210,7 +216,8 @@ public class ScheduleInitController {
210 // 获得工作簿 216 // 获得工作簿
211 Workbook workbook = null; 217 Workbook workbook = null;
212 String file = excelFile.getName(); 218 String file = excelFile.getName();
213 - InputStream inputStream = HttpClientUtils.GetFileInputStream(initTeacherCourseReqVo.getUrl()); 219 + InputStream inputStream = new FileInputStream(excelFile) ;
  220 + //InputStream inputStream = HttpClientUtils.GetFileInputStream(initTeacherCourseReqVo.getUrl());
214 if(inputStream == null){ 221 if(inputStream == null){
215 baseVo.setMessage("路径不存在"); 222 baseVo.setMessage("路径不存在");
216 baseVo.setSuccess(false); 223 baseVo.setSuccess(false);
src/main/java/com/jevon/controller/ScheduleMessageController.java
@@ -122,9 +122,30 @@ public class ScheduleMessageController { @@ -122,9 +122,30 @@ public class ScheduleMessageController {
122 search.setSingleOrDouble(1); 122 search.setSingleOrDouble(1);
123 search.setTeam(schedule.getTeam()); 123 search.setTeam(schedule.getTeam());
124 classCourseRepVo.setData(classCourseService.selectByClassIdAndSingleOrDouble(search)); 124 classCourseRepVo.setData(classCourseService.selectByClassIdAndSingleOrDouble(search));
  125 + List<ClassCourse> list = classCourseService.selectByClassIdAndSingleOrDouble(search);
  126 + for(int i = 1 ; i < 6 ; i++){
  127 + System.out.print("周"+i+" ");
  128 + for(int j = 1 ; j < 7 ; j++){
  129 + System.out.print(getClassCourse(list,i,j).getCourseName() + " ");
  130 + }
  131 + System.out.println();
  132 + }
125 return classCourseRepVo; 133 return classCourseRepVo;
126 } 134 }
127 135
  136 + //查所在课表中 返回某天某节课
  137 + private ClassCourse getClassCourse(List<ClassCourse> list , int week , int courseNumber){
  138 + ClassCourse result = null ;
  139 + for(ClassCourse classCourse : list){
  140 + if(classCourse.getWeek() == week && classCourse.getCourseNumber() == courseNumber){
  141 + result = classCourse ;
  142 + break;
  143 + }
  144 + }
  145 + return result;
  146 + }
  147 +
  148 +
128 @ApiOperation("获取合班信息") 149 @ApiOperation("获取合班信息")
129 @RequestMapping(value = "getJoinList", method = RequestMethod.POST) 150 @RequestMapping(value = "getJoinList", method = RequestMethod.POST)
130 public JoinRepVo getJoinList(@RequestBody ScheduleIdReqVo scheduleIdReqVo){ 151 public JoinRepVo getJoinList(@RequestBody ScheduleIdReqVo scheduleIdReqVo){
src/main/java/com/jevon/mapper/TeacherClassMapper.java
1 package com.jevon.mapper; 1 package com.jevon.mapper;
2 2
3 -import com.jevon.model.Teacher;  
4 import com.jevon.model.TeacherClass; 3 import com.jevon.model.TeacherClass;
5 4
6 import java.util.List; 5 import java.util.List;
@@ -13,21 +12,14 @@ public interface TeacherClassMapper { @@ -13,21 +12,14 @@ public interface TeacherClassMapper {
13 12
14 int insertBatch(List<TeacherClass> teacherClasses); 13 int insertBatch(List<TeacherClass> teacherClasses);
15 14
16 - List<TeacherClass> selectByCourseName(TeacherClass teacherClass);  
17 -  
18 - TeacherClass selectByTeacher(TeacherClass teacherClass);  
19 -  
20 - TeacherClass selectByCourseAndClass(TeacherClass teacherClass);  
21 -  
22 - List<TeacherClass> selectBySchoolAndTeam(TeacherClass teacherClass);  
23 -  
24 int deleteBySchoolAndTeam(TeacherClass teacherClass); 15 int deleteBySchoolAndTeam(TeacherClass teacherClass);
25 16
26 - TeacherClass selectById(int tClassId);  
27 -  
28 int updateSchedule(int tClassId); 17 int updateSchedule(int tClassId);
29 18
30 int selectHasSchedule(TeacherClass teacherClass); 19 int selectHasSchedule(TeacherClass teacherClass);
31 20
32 int recallTeacherClass(int tClassId); 21 int recallTeacherClass(int tClassId);
  22 +
  23 +
  24 + List<TeacherClass> selectByTeacherClass(TeacherClass teacherClass);
33 } 25 }
34 \ No newline at end of file 26 \ No newline at end of file
src/main/java/com/jevon/service/TeacherClassService.java
@@ -35,4 +35,7 @@ public interface TeacherClassService { @@ -35,4 +35,7 @@ public interface TeacherClassService {
35 35
36 int recallTeacherClass(int tClassId); 36 int recallTeacherClass(int tClassId);
37 37
  38 + //查询该老师一周的课程,并计算平均每天最多课
  39 + int selectTeacherDayClass(int schoolId , String team , String teacherName);
  40 +
38 } 41 }
src/main/java/com/jevon/service/impl/TeacherClassServiceImpl.java
@@ -45,22 +45,41 @@ public class TeacherClassServiceImpl implements TeacherClassService { @@ -45,22 +45,41 @@ public class TeacherClassServiceImpl implements TeacherClassService {
45 45
46 @Override 46 @Override
47 public List<TeacherClass> selectByCourseName(TeacherClass teacherClass) { 47 public List<TeacherClass> selectByCourseName(TeacherClass teacherClass) {
48 - return teacherClassMapper.selectByCourseName(teacherClass); 48 + TeacherClass search = new TeacherClass();
  49 + search.setTeam(teacherClass.getTeam());
  50 + search.setSchoolId(teacherClass.getSchoolId());
  51 + search.setCourseName(teacherClass.getCourseName());
  52 + return teacherClassMapper.selectByTeacherClass(search);
49 } 53 }
50 54
51 @Override 55 @Override
52 public TeacherClass selectByTeacher(TeacherClass teacherClass) { 56 public TeacherClass selectByTeacher(TeacherClass teacherClass) {
53 - return teacherClassMapper.selectByTeacher(teacherClass); 57 + TeacherClass search = new TeacherClass();
  58 + search.setTeam(teacherClass.getTeam());
  59 + search.setSchoolId(teacherClass.getSchoolId());
  60 + search.setCourseName(teacherClass.getCourseName());
  61 + search.setTeacherName(teacherClass.getTeacherName());
  62 + search.setClassId(teacherClass.getClassId());
  63 + return teacherClassMapper.selectByTeacherClass(search).get(0);
54 } 64 }
55 65
56 @Override 66 @Override
57 public TeacherClass selectByCourseAndClass(TeacherClass teacherClass) { 67 public TeacherClass selectByCourseAndClass(TeacherClass teacherClass) {
58 - return teacherClassMapper.selectByCourseAndClass(teacherClass); 68 + TeacherClass search = new TeacherClass();
  69 + search.setTeam(teacherClass.getTeam());
  70 + search.setSchoolId(teacherClass.getSchoolId());
  71 + search.setCourseName(teacherClass.getCourseName());
  72 + search.setGrade(teacherClass.getGrade());
  73 + search.setClassId(teacherClass.getClassId());
  74 + return teacherClassMapper.selectByTeacherClass(search).get(0);
59 } 75 }
60 76
61 @Override 77 @Override
62 public List<TeacherClass> selectBySchoolAndTeam(TeacherClass teacherClass) { 78 public List<TeacherClass> selectBySchoolAndTeam(TeacherClass teacherClass) {
63 - return teacherClassMapper.selectBySchoolAndTeam(teacherClass); 79 + TeacherClass search = new TeacherClass();
  80 + search.setTeam(teacherClass.getTeam());
  81 + search.setSchoolId(teacherClass.getSchoolId());
  82 + return teacherClassMapper.selectByTeacherClass(search);
64 } 83 }
65 84
66 @Override 85 @Override
@@ -70,7 +89,9 @@ public class TeacherClassServiceImpl implements TeacherClassService { @@ -70,7 +89,9 @@ public class TeacherClassServiceImpl implements TeacherClassService {
70 89
71 @Override 90 @Override
72 public TeacherClass selectById(int tClassId) { 91 public TeacherClass selectById(int tClassId) {
73 - return teacherClassMapper.selectById(tClassId); 92 + TeacherClass search = new TeacherClass();
  93 + search.settClassId(tClassId);
  94 + return teacherClassMapper.selectByTeacherClass(search).get(0);
74 } 95 }
75 96
76 @Override 97 @Override
@@ -90,4 +111,18 @@ public class TeacherClassServiceImpl implements TeacherClassService { @@ -90,4 +111,18 @@ public class TeacherClassServiceImpl implements TeacherClassService {
90 public int recallTeacherClass(int tClassId) { 111 public int recallTeacherClass(int tClassId) {
91 return teacherClassMapper.recallTeacherClass(tClassId); 112 return teacherClassMapper.recallTeacherClass(tClassId);
92 } 113 }
  114 +
  115 + @Override
  116 + public int selectTeacherDayClass(int schoolId, String team, String teacherName) {
  117 + TeacherClass search = new TeacherClass() ;
  118 + search.setSchoolId(schoolId);
  119 + search.setTeam(team);
  120 + search.setTeacherName(teacherName);
  121 + List<TeacherClass> list = teacherClassMapper.selectByTeacherClass(search);
  122 + int sumClassNumber = 0 ;
  123 + for(TeacherClass teacherClass :list){
  124 + sumClassNumber += teacherClass.getTimes();
  125 + }
  126 + return (sumClassNumber/5) +1;
  127 + }
93 } 128 }
src/main/java/com/jevon/vo/req/ParallelClassReqVo.java
@@ -13,7 +13,7 @@ public class ParallelClassReqVo { @@ -13,7 +13,7 @@ public class ParallelClassReqVo {
13 private List<String> intervalList ; 13 private List<String> intervalList ;
14 private int courseType; 14 private int courseType;
15 15
16 - private int level ; 16 + private int level ; //1 班级不排 2 年级不排 3 学校不排
17 private String grade ; 17 private String grade ;
18 private int classId ; 18 private int classId ;
19 19
src/main/resources/application.yml
@@ -3,12 +3,12 @@ server: @@ -3,12 +3,12 @@ server:
3 3
4 spring: 4 spring:
5 datasource: 5 datasource:
6 -# username: SZJXTUSER  
7 -# password: xst200919  
8 -# url: jdbc:sqlserver://60.190.202.57:14333;database=SmartPaike  
9 - username: szjxtuser  
10 - password: RQminVCJota3H1u8bBYH  
11 - url: jdbc:sqlserver://116.62.241.27:33419;database=SmartCampus_java 6 + username: SZJXTUSER
  7 + password: xst200919
  8 + url: jdbc:sqlserver://60.190.202.57:14333;database=SmartPaike
  9 +# username: szjxtuser
  10 +# password: RQminVCJota3H1u8bBYH
  11 +# url: jdbc:sqlserver://116.62.241.27:33419;database=SmartCampus_java
12 driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver 12 driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
13 filters: stat 13 filters: stat
14 maxActive: 20 14 maxActive: 20
src/main/resources/mapping/TeacherClassMapper.xml
@@ -41,10 +41,6 @@ @@ -41,10 +41,6 @@
41 </foreach> 41 </foreach>
42 </insert> 42 </insert>
43 43
44 - <select id="selectById" parameterType="java.lang.Integer" resultMap="BaseResultMap">  
45 - select * from sz_sch_teacher_class where t_class_id =#{tClassId}  
46 - </select>  
47 -  
48 <select id="selectHasSchedule" parameterType="com.jevon.model.TeacherClass" resultType="java.lang.Integer"> 44 <select id="selectHasSchedule" parameterType="com.jevon.model.TeacherClass" resultType="java.lang.Integer">
49 select count(status) from sz_sch_teacher_class where school_id = #{schoolId} and team = #{team} and status=1 45 select count(status) from sz_sch_teacher_class where school_id = #{schoolId} and team = #{team} and status=1
50 </select> 46 </select>
@@ -56,30 +52,37 @@ @@ -56,30 +52,37 @@
56 update sz_sch_teacher_class set status = 0 where t_class_id =#{tClassId} 52 update sz_sch_teacher_class set status = 0 where t_class_id =#{tClassId}
57 </update> 53 </update>
58 54
59 - <select id="selectBySchoolAndTeam" parameterType="com.jevon.model.TeacherClass" resultMap="BaseResultMap">  
60 - select * from sz_sch_teacher_class where team =#{team} and school_id = #{schoolId}  
61 - </select>  
62 <delete id="deleteBySchoolAndTeam" parameterType="com.jevon.model.TeacherClass"> 55 <delete id="deleteBySchoolAndTeam" parameterType="com.jevon.model.TeacherClass">
63 delete from sz_sch_teacher_class where team =#{team} and school_id = #{schoolId} 56 delete from sz_sch_teacher_class where team =#{team} and school_id = #{schoolId}
64 </delete> 57 </delete>
65 58
66 - <select id="selectByCourseName" parameterType="com.jevon.model.TeacherClass" resultMap="BaseResultMap">  
67 - select * from sz_sch_teacher_class where team =#{team} and school_id = #{schoolId} and course_name = #{courseName} 59 + <select id="selectByTeacherClass" parameterType="java.lang.Integer" resultMap="BaseResultMap">
  60 + select * from sz_sch_teacher_class
  61 + <where>
  62 + <if test="tClassId != null and tClassId != 0">
  63 + and t_class_id =#{tClassId}
  64 + </if>
  65 + <if test="schoolId != null">
  66 + and school_id = #{schoolId}
  67 + </if>
  68 + <if test="team != null">
  69 + and team =#{team}
  70 + </if>
  71 + <if test="courseName != null">
  72 + and course_name = #{courseName}
  73 + </if>
  74 + <if test="teacherName != null">
  75 + and teacher_name = #{teacherName}
  76 + </if>
  77 + <if test="grade != null">
  78 + and grade = #{grade}
  79 + </if>
  80 + <if test="classId != null">
  81 + and class_id =#{classId}
  82 + </if>
  83 + </where>
68 </select> 84 </select>
69 85
70 - <select id="selectByCourseAndClass" parameterType="com.jevon.model.TeacherClass" resultMap="BaseResultMap">  
71 - select * from sz_sch_teacher_class where team =#{team} and school_id = #{schoolId} and course_name = #{courseName}  
72 - <if test="grade != null">  
73 - and grade = #{grade}  
74 - </if>  
75 - <if test="classId != 0">  
76 - and class_id =#{classId}  
77 - </if>  
78 - </select>  
79 -  
80 - <select id="selectByTeacher" parameterType="com.jevon.model.TeacherClass" resultMap="BaseResultMap">  
81 - select * from sz_sch_teacher_class where team =#{team} and school_id= #{schoolId} and teacher_name = #{teacherName} and class_id = #{classId}  
82 - </select>  
83 <update id="updateByPrimaryKey" parameterType="com.jevon.model.TeacherClass" > 86 <update id="updateByPrimaryKey" parameterType="com.jevon.model.TeacherClass" >
84 update sz_sch_teacher_class 87 update sz_sch_teacher_class
85 set teacher_id = #{teacherId,jdbcType=INTEGER}, 88 set teacher_id = #{teacherId,jdbcType=INTEGER},
@@ -94,115 +97,4 @@ @@ -94,115 +97,4 @@
94 where t_class_id = #{tClassId,jdbcType=INTEGER} 97 where t_class_id = #{tClassId,jdbcType=INTEGER}
95 </update> 98 </update>
96 99
97 - <!-- <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >-->  
98 - <!-- select -->  
99 - <!-- <include refid="Base_Column_List" />-->  
100 - <!-- from sz_sch_teacher_class-->  
101 - <!-- where t_class_id = #{tClassId,jdbcType=INTEGER}-->  
102 - <!-- </select>-->  
103 - <!-- <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >-->  
104 - <!-- delete from sz_sch_teacher_class-->  
105 - <!-- where t_class_id = #{tClassId,jdbcType=INTEGER}-->  
106 - <!-- </delete>-->  
107 -<!-- <insert id="insertSelective" parameterType="com.jevon.model.TeacherClass" >-->  
108 -<!-- insert into sz_sch_teacher_class-->  
109 -<!-- <trim prefix="(" suffix=")" suffixOverrides="," >-->  
110 -<!-- <if test="tClassId != null" >-->  
111 -<!-- t_class_id,-->  
112 -<!-- </if>-->  
113 -<!-- <if test="teacherId != null" >-->  
114 -<!-- teacher_id,-->  
115 -<!-- </if>-->  
116 -<!-- <if test="teacherName != null" >-->  
117 -<!-- teacher_name,-->  
118 -<!-- </if>-->  
119 -<!-- <if test="schoolId != null" >-->  
120 -<!-- school_id,-->  
121 -<!-- </if>-->  
122 -<!-- <if test="grade != null" >-->  
123 -<!-- grade,-->  
124 -<!-- </if>-->  
125 -<!-- <if test="classId != null" >-->  
126 -<!-- class_id,-->  
127 -<!-- </if>-->  
128 -<!-- <if test="courseName != null" >-->  
129 -<!-- course_name,-->  
130 -<!-- </if>-->  
131 -<!-- <if test="times != null" >-->  
132 -<!-- times,-->  
133 -<!-- </if>-->  
134 -<!-- <if test="joinTimes != null" >-->  
135 -<!-- join_times,-->  
136 -<!-- </if>-->  
137 -<!-- <if test="createTime != null" >-->  
138 -<!-- create_time,-->  
139 -<!-- </if>-->  
140 -<!-- </trim>-->  
141 -<!-- <trim prefix="values (" suffix=")" suffixOverrides="," >-->  
142 -<!-- <if test="tClassId != null" >-->  
143 -<!-- #{tClassId,jdbcType=INTEGER},-->  
144 -<!-- </if>-->  
145 -<!-- <if test="teacherId != null" >-->  
146 -<!-- #{teacherId,jdbcType=INTEGER},-->  
147 -<!-- </if>-->  
148 -<!-- <if test="teacherName != null" >-->  
149 -<!-- #{teacherName,jdbcType=VARCHAR},-->  
150 -<!-- </if>-->  
151 -<!-- <if test="schoolId != null" >-->  
152 -<!-- #{schoolId,jdbcType=INTEGER},-->  
153 -<!-- </if>-->  
154 -<!-- <if test="grade != null" >-->  
155 -<!-- #{grade,jdbcType=INTEGER},-->  
156 -<!-- </if>-->  
157 -<!-- <if test="classId != null" >-->  
158 -<!-- #{classId,jdbcType=INTEGER},-->  
159 -<!-- </if>-->  
160 -<!-- <if test="courseName != null" >-->  
161 -<!-- #{courseName,jdbcType=VARCHAR},-->  
162 -<!-- </if>-->  
163 -<!-- <if test="times != null" >-->  
164 -<!-- #{times,jdbcType=INTEGER},-->  
165 -<!-- </if>-->  
166 -<!-- <if test="joinTimes != null" >-->  
167 -<!-- #{joinTimes,jdbcType=INTEGER},-->  
168 -<!-- </if>-->  
169 -<!-- <if test="createTime != null" >-->  
170 -<!-- #{createTime,jdbcType=TIMESTAMP},-->  
171 -<!-- </if>-->  
172 -<!-- </trim>-->  
173 -<!-- </insert>-->  
174 -<!-- <update id="updateByPrimaryKeySelective" parameterType="com.jevon.model.TeacherClass" >-->  
175 -<!-- update sz_sch_teacher_class-->  
176 -<!-- <set >-->  
177 -<!-- <if test="teacherId != null" >-->  
178 -<!-- teacher_id = #{teacherId,jdbcType=INTEGER},-->  
179 -<!-- </if>-->  
180 -<!-- <if test="teacherName != null" >-->  
181 -<!-- teacher_name = #{teacherName,jdbcType=VARCHAR},-->  
182 -<!-- </if>-->  
183 -<!-- <if test="schoolId != null" >-->  
184 -<!-- school_id = #{schoolId,jdbcType=INTEGER},-->  
185 -<!-- </if>-->  
186 -<!-- <if test="grade != null" >-->  
187 -<!-- grade = #{grade,jdbcType=INTEGER},-->  
188 -<!-- </if>-->  
189 -<!-- <if test="classId != null" >-->  
190 -<!-- class_id = #{classId,jdbcType=INTEGER},-->  
191 -<!-- </if>-->  
192 -<!-- <if test="courseName != null" >-->  
193 -<!-- course_name = #{courseName,jdbcType=VARCHAR},-->  
194 -<!-- </if>-->  
195 -<!-- <if test="times != null" >-->  
196 -<!-- times = #{times,jdbcType=INTEGER},-->  
197 -<!-- </if>-->  
198 -<!-- <if test="joinTimes != null" >-->  
199 -<!-- join_times = #{joinTimes,jdbcType=INTEGER},-->  
200 -<!-- </if>-->  
201 -<!-- <if test="createTime != null" >-->  
202 -<!-- create_time = #{createTime,jdbcType=TIMESTAMP},-->  
203 -<!-- </if>-->  
204 -<!-- </set>-->  
205 -<!-- where t_class_id = #{tClassId,jdbcType=INTEGER}-->  
206 -<!-- </update>-->  
207 -  
208 </mapper> 100 </mapper>
209 \ No newline at end of file 101 \ No newline at end of file