/// <summary> /// 获取写生课的课次信息 /// <para>作 者:郭伟佳</para> /// <para>创建时间:2018-11-10</para> /// </summary> /// <returns>课程信息列表</returns> /// <exception cref="AMS.Core.BussinessException"> /// 异常ID: /// 1. 未找到数据 /// </exception> public List <LessonCreatorInfo> GetLessonCreatorInfo() { List <LessonCreatorInfo> result = new List <LessonCreatorInfo>(); // 1.获取学期信息 var termInfo = TermService.GetTermByTermId(_entity.TermId); if (termInfo == null) { throw new BussinessException(ModelType.Default, 1); } // 2.添加课程信息 foreach (var item in _data) { LessonCreatorInfo lesson = new LessonCreatorInfo { BusinessId = _entity.LifeClassId, BusinessType = base.BusinessType, ClassId = item.ClassId, ClassDate = _entity.ClassBeginTime.Value, ClassBeginTime = _entity.ClassBeginTime.Value.ToString("yyyy.MM.dd HH:mm"), ClassEndTime = _entity.ClassEndTime.Value.ToString("yyyy.MM.dd HH:mm"), EnrollOrderItemId = item.EnrollOrderItemId, SchoolId = _entity.SchoolId, StudentId = item.StudentId, TeacherId = _entity.TeacherId, TermId = _entity.TermId, LessonCount = _entity.UseLessonCount, LessonType = LessonType.SketchCourse }; result.Add(lesson); } return(result); }
/// <summary> /// 获取创建课次信息 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2019-03-19</para> /// </summary> /// <param name="classDate">上课日期</param> /// <param name="beginTime">上课开始时间</param> /// <param name="endTime">上课结束时间</param> /// <param name="schoolId">校区Id</param> /// <param name="studentId">学生Id</param> /// <param name="termId">学期Id</param> /// <returns>创建的课次信息</returns> private LessonCreatorInfo GetCreatorInfo( DateTime classDate, string beginTime, string endTime, string schoolId, long studentId, long termId) { //生成新课次需注意老师代课调整、全校上课日期调整、班级上课日期调整 LessonCreatorInfo lesson = new LessonCreatorInfo { BusinessId = _makeLesson.MakeLessonId, ClassId = _makeLesson.ClassId, EnrollOrderItemId = _makeLesson.EnrollOrderItemId, ClassRoomId = _classService.TblDatClass.ClassRoomId, CourseId = _classService.TblDatClass.CourseId, CourseLevelId = _classService.TblDatClass.CourseLeveId, TeacherId = _classService.TblDatClass.TeacherId, ClassDate = classDate, ClassBeginTime = beginTime, ClassEndTime = endTime, SchoolId = schoolId, StudentId = studentId, TermId = termId, BusinessType = base.BusinessType, LessonCount = 1, LessonType = LessonType.RegularCourse }; //处理某些上课日期有老师代课的情况 var temp = _viewClassTeacherDates .FirstOrDefault(x => x.ClassDate == classDate && x.ClassId == lesson.ClassId); if (temp != null && temp.TeacherId != lesson.TeacherId) { lesson.TeacherId = temp.TeacherId; } return(lesson); }
/// <summary> /// 描述:获取可转入的课次信息 /// <para>作 者:瞿琦</para> /// <para>创建时间:2018-11-7</para> /// </summary> /// <exception cref="AMS.Core.BussinessException"> /// 异常Id:1,异常描述:未找到数据 /// 异常Id:71,异常描述:转入班级时间段和课次信息调整时间段不一致 /// </exception> /// <returns>可转入课次信息列表</returns> public List <LessonCreatorInfo> GetLessonCreatorInfo() { var result = new List <LessonCreatorInfo>(); //获取转入班级信息 var classService = new DefaultClassService(base._entity.InClassId); var firstTime = base._entity.InDate; //1.获取学期信息 var termInfo = TermService.GetTermByTermId(classService.TblDatClass.TermId); if (termInfo == null) { throw new BussinessException(ModelType.Default, 1); } //2.获取停课日 var schoolHoliday = TermService.GetSchoolHoliday(termInfo); //首次上课时间大于学期结束时间则没有课次 if (firstTime > termInfo.EndDate) { return(result); } //首次上课时间小于学期开始时间,则首次上课时间等于学期开始时间 if (firstTime < termInfo.BeginDate) { firstTime = termInfo.BeginDate; } while (firstTime <= termInfo.EndDate) { //上课时间大于学期结束时间或者预计排课课次等于实际排课课次,则停止排课 if (firstTime > termInfo.EndDate || _entity.ClassTimes == _actualLesson) { break; } var isClosed = SchoolHolidayService.TodayIsSuspendClasses(schoolHoliday, firstTime); //当前时间是否是停课日,如果是则加1 if (isClosed) { firstTime = firstTime.AddDays(1); continue; } //星期转换 var week = WeekDayConvert.DayOfWeekToInt(firstTime); //获取与当前时间匹配的班级上课时间 var schoolTimes = classService.ClassSchoolTimes.Where(x => x.WeekDay == week).OrderBy(x => x.BeginTime).ToList(); //获取班级是否有课程信息调整(上课日期和上课时间段 修改) var classDateChangeList = _viewChangeClassTimeDates.Where(x => x.OldClassDate == firstTime).OrderBy(x => x.NewClassBeginTime).ToList(); if (classDateChangeList.Count > 0 && classDateChangeList.Count != schoolTimes.Count) //如果班级设置的上课时间段和课程调整的时间段不一致则抛出异常 { throw new BussinessException(ModelType.Timetable, 71); } var lessonCount = 0; foreach (var time in schoolTimes) { var lesson = new LessonCreatorInfo { BusinessId = base._entity.ChangeClassId, BusinessType = base.BusinessType, ClassId = base._entity.InClassId, ClassDate = firstTime, ClassBeginTime = time.BeginTime, ClassEndTime = time.EndTime, ClassRoomId = classService.TblDatClass.ClassRoomId, CourseId = classService.TblDatClass.CourseId, CourseLevelId = classService.TblDatClass.CourseLeveId, EnrollOrderItemId = _enrollOrderItemId, SchoolId = termInfo.SchoolId, StudentId = base._entity.StudentId, TeacherId = classService.TblDatClass.TeacherId, TermId = termInfo.TermId }; //获取是否有老师调课 var teacherLessonChangeInfo = _viewClassTeacherDates.FirstOrDefault(x => x.ClassId == lesson.ClassId && x.ClassDate == lesson.ClassDate); if (teacherLessonChangeInfo != null && teacherLessonChangeInfo.TeacherId.Trim() != lesson.TeacherId.Trim()) { lesson.TeacherId = teacherLessonChangeInfo.TeacherId; } //获取班级是否有修改上课日期和上课时间段,并赋值 if (classDateChangeList.Any()) { lesson.ClassDate = classDateChangeList[lessonCount].NewClassDate; lesson.ClassBeginTime = classDateChangeList[lessonCount].NewClassBeginTime; lesson.ClassEndTime = classDateChangeList[lessonCount].NewClassEndTime; } result.Add(lesson); lessonCount++; //实际排课课次+1 _actualLesson++; } firstTime = firstTime.AddDays(1); } return(result); }