/// <summary> /// 获取补课信息 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2019-03-13</para> /// </summary> /// <param name="outReplenishLessonList">转出的补课信息列表</param> /// <param name="replenishLessonCreatorInfo">课次调整对象</param> /// <param name="lessonModel">新构建的课次信息</param> /// <returns>补课信息构建</returns> private TblTimReplenishLesson GetTblTimReplenishLesson( List <TblTimReplenishLesson> outReplenishLessonList, ReplenishLessonCreatorInfo replenishLessonCreatorInfo, TblTimLesson lessonModel) { var outReplenishLesson = outReplenishLessonList .FirstOrDefault(x => x.LessonId == replenishLessonCreatorInfo.OutLessonId); TblTimReplenishLesson replenishLessonModel = new TblTimReplenishLesson { AdjustType = (int)AdjustType.DEFAULT, AttendDate = null, AttendStatus = (int)AttendStatus.NotClockIn, AttendUserType = (int)AttendUserType.DEFAULT, CreateTime = DateTime.Now, LessonId = lessonModel.LessonId, ParentLessonId = replenishLessonCreatorInfo.OutLessonId, ReplenishCode = string.Empty, ReplenishLessonId = IdGenerator.NextId(), RootLessonId = outReplenishLesson == null ? replenishLessonCreatorInfo.OutLessonId : outReplenishLesson.RootLessonId, SchoolId = replenishLessonCreatorInfo.SchoolId, StudentId = replenishLessonCreatorInfo.StudentId, UpdateTime = DateTime.Now }; return(replenishLessonModel); }
/// <summary> /// 获取课次变更数据 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2019-03-13</para> /// </summary> /// <param name="lessonModel">新构建的课次信息</param> /// <returns>课次变更数据</returns> private TblTimLessonProcess GetTblTimLessonProcess(TblTimLesson lessonModel) { TblTimLessonProcess lessonProcessModel = new TblTimLessonProcess { SchoolId = lessonModel.SchoolId, BusinessId = lessonModel.BusinessId, BusinessType = lessonModel.BusinessType, LessonId = lessonModel.LessonId, LessonProcessId = IdGenerator.NextId(), ProcessStatus = (int)ProcessStatus.Create, Remark = string.Empty, ProcessTime = DateTime.Now, CreateTime = DateTime.Now }; return(lessonProcessModel); }
/// <summary> /// 获取课次信息数据 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2019-03-13</para> /// </summary> /// <param name="model">课次调整数据源</param> /// <returns>课次信息数据</returns> private TblTimLesson GetTblTimLesson(ReplenishLessonCreatorInfo model) { DateTime classBeginDate; //上课开始时间 DateTime classEndDate; //上课结束时间 if (model.LessonType == LessonType.RegularCourse) { classBeginDate = DateTime.Parse($"{model.ClassDate:yyyy-MM-dd} {model.ClassBeginTime}"); classEndDate = DateTime.Parse($"{model.ClassDate:yyyy-MM-dd} {model.ClassEndTime}"); } else { classBeginDate = DateTime.Parse(model.ClassBeginTime); classEndDate = DateTime.Parse(model.ClassEndTime); } TblTimLesson lessonModel = new TblTimLesson { LessonId = IdGenerator.NextId(), BusinessId = model.BusinessId, BusinessType = (int)model.BusinessType, ClassBeginTime = model.ClassBeginTime, ClassDate = model.ClassDate, ClassEndTime = model.ClassEndTime, ClassId = model.ClassId, ClassRoomId = model.ClassRoomId, CourseId = model.CourseId, CourseLevelId = model.CourseLevelId, EnrollOrderItemId = model.EnrollOrderItemId, SchoolId = model.SchoolId, StudentId = model.StudentId, TeacherId = model.TeacherId, TermId = model.TermId, LessonType = (int)model.LessonType, LessonCount = model.LessonCount, Status = (int)LessonUltimateStatus.Normal, CreateTime = DateTime.Now, UpdateTime = DateTime.Now, ClassBeginDate = classBeginDate, ClassEndDate = classEndDate }; return(lessonModel); }
/// <summary> /// 课次生产 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2018-11-08</para> /// </summary> /// <param name="creator">课次的产生者接口</param> /// <exception cref="BussinessException"> /// 异常ID:35 异常描述:创建的课次为空 /// </exception> public void Create(ILessonCreator creator) { List <LessonCreatorInfo> lessonCreatorInfos = creator.GetLessonCreatorInfo(); if (lessonCreatorInfos == null || !lessonCreatorInfos.Any()) { //创建的课次为空 throw new BussinessException(ModelType.Timetable, 35); } List <TblTimLesson> lessons = new List <TblTimLesson>(); //课次 List <TblTimLessonProcess> lessonProceses = new List <TblTimLessonProcess>(); //课次过程 List <TblTimLessonStudent> lessonStudents = new List <TblTimLessonStudent>(); //学生课次时间表 foreach (var m in lessonCreatorInfos) { DateTime classBeginDate; //上课开始时间 DateTime classEndDate; //上课结束时间 if (m.LessonType == LessonType.RegularCourse) { classBeginDate = DateTime.Parse($"{m.ClassDate:yyyy-MM-dd} {m.ClassBeginTime}"); classEndDate = DateTime.Parse($"{m.ClassDate:yyyy-MM-dd} {m.ClassEndTime}"); } else { classBeginDate = DateTime.Parse(m.ClassBeginTime); classEndDate = DateTime.Parse(m.ClassEndTime); } //课次 TblTimLesson lesson = new TblTimLesson { BusinessId = m.BusinessId, BusinessType = m.BusinessType, ClassBeginTime = m.ClassBeginTime, ClassDate = m.ClassDate, ClassEndTime = m.ClassEndTime, ClassId = m.ClassId, ClassRoomId = m.ClassRoomId, CourseId = m.CourseId, CourseLevelId = m.CourseLevelId, EnrollOrderItemId = m.EnrollOrderItemId, SchoolId = m.SchoolId, StudentId = m.StudentId, TeacherId = m.TeacherId, TermId = m.TermId, LessonId = IdGenerator.NextId(), LessonType = (int)m.LessonType, LessonCount = m.LessonCount, Status = (int)LessonUltimateStatus.Normal, CreateTime = DateTime.Now, UpdateTime = DateTime.Now, ClassBeginDate = classBeginDate, ClassEndDate = classEndDate }; //课次过程 TblTimLessonProcess lessonProcess = new TblTimLessonProcess { SchoolId = lesson.SchoolId, BusinessId = lesson.BusinessId, BusinessType = lesson.BusinessType, LessonId = lesson.LessonId, LessonProcessId = IdGenerator.NextId(), ProcessStatus = (int)ProcessStatus.Create, Remark = string.Empty, ProcessTime = DateTime.Now, CreateTime = DateTime.Now }; //学生课次时间 TblTimLessonStudent lessonStudent = new TblTimLessonStudent { LessonId = lesson.LessonId, LessonStudentId = IdGenerator.NextId(), StudentId = lesson.StudentId, SchoolId = lesson.SchoolId, AttendStatus = (int)AttendStatus.NotClockIn, CreateTime = DateTime.Now, AdjustType = (int)AdjustType.DEFAULT, AttendUserType = (int)AttendUserType.DEFAULT, ReplenishCode = string.Empty, }; lessons.Add(lesson); lessonProceses.Add(lessonProcess); lessonStudents.Add(lessonStudent); } var lessonCreatorInfo = lessonCreatorInfos.FirstOrDefault(); string schoolId = lessonCreatorInfo.SchoolId; string studentId = lessonCreatorInfo.StudentId.ToString(); lock (LocalThreadLock.GetLockKeyName(LockKeyNames.LOCK_AMSSCHOOLSTUDENT, schoolId, studentId)) { //校验排课时间是否冲突 base.VerifyClassTimeCross( schoolId, lessonCreatorInfo.StudentId, this.GetVerifyClassTimeList(lessonCreatorInfos), lessonCreatorInfo.LessonType); _lessonRepository.Value.Add(lessons); _lessonProcessRepository.Value.Add(lessonProceses); _lessonStudentRepository.Value.Add(lessonStudents); } //排课之后处理的业务 creator.AfterLessonCreate(); }