/// <summary> /// 描述:根据学期获取老师及所属课程 /// <para>作 者:瞿琦</para> /// <para>创建时间:2018.9.25</para> /// </summary> /// <returns>学期下老师及所属课程列表</returns> public List <ClassCourseSearchTeacherResponse> GetTermIdByTeacherList(long termId) { TblDatClassRepository tblDatClassService = new TblDatClassRepository(); //获取所有的老师 var teacherList = TeachService.GetTeachers(); TermCourseTimetableAuditService auditService = new TermCourseTimetableAuditService(termId); //var termTeacherIdList = new List<string>(); var termTeacherIdList = new List <CourseInfo>(); var courseList = new List <CourseInfo>(); if (auditService.NoPass) //审核中 { //根据学期Id查询审核中的班级信息 TblAutClassRepository tblAutClassRepository = new TblAutClassRepository(); var auditId = auditService.TblAutAudit.AuditId; //获取审核中数据的审核Id courseList = tblAutClassRepository.GetByAuditId(auditId).Result.Select(x => new CourseInfo { TeacherId = x.TeacherId, CourseId = x.CourseId }).ToList(); termTeacherIdList = courseList.Distinct(new TeacherComparer()).ToList(); } else //已生效 { //根据学期Id查询已生效的班级信息 courseList = tblDatClassService.GetTermIdByClass(termId).Select(x => new CourseInfo { TeacherId = x.TeacherId, CourseId = x.CourseId }).ToList(); termTeacherIdList = courseList.Distinct(new TeacherComparer()).ToList(); } var classTeachList = (from x1 in termTeacherIdList join x2 in teacherList on x1.TeacherId equals x2.TeacherId select new ClassCourseSearchTeacherResponse { TeacherNo = x2.TeacherId, TeacherName = x2.TeacherName }).ToList(); //获取老师所属的课程 foreach (var courseItem in classTeachList) { courseItem.TeacherByCourse = courseList.Where(x => x.TeacherId == courseItem.TeacherNo).Select(x => new ClassCourseResponse { CourseId = x.CourseId }).Distinct(new CourseInfoComparer()).ToList(); } return(classTeachList); }
/// <summary> /// 获取已上课的上课时间段Id /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2018-11-23</para> /// </summary> /// <param name="auditId">审核Id</param> /// <param name="classRoomId">教室Id</param> /// <returns></returns> private static List <long> GetHasBeenClassTimeIds(long auditId, long classRoomId) { var autClasss = new TblAutClassRepository().GetByAuditId(auditId).Result; var autClassTimes = new TblAutClassTimeRepository().GetByAuditIdAsync(auditId).Result; var hasBeenClassTimeId = from a in autClasss //班级 join b in autClassTimes on a.ClassId equals b.ClassId //班级上课时间 where a.ClassRoomId == classRoomId select b.SchoolTimeId; return(hasBeenClassTimeId.ToList()); }
/// <summary> /// 添加班级排课 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2018-09-25</para> /// </summary> /// <param name="classRoomId">教室Id</param> /// <param name="schoolTimeId">时间段Id</param> /// <param name="request">班级排课数据源</param> /// <param name="createUserName">创建人用户名称</param> /// <returns></returns> public static void AddClass(long classRoomId, long schoolTimeId, ClassScheduleRequest request, string createUserName) { TblAutClass autClass = GetTblAutClass(request, classRoomId, schoolTimeId, createUserName); List <long> hasBeenClassTimeIds = GetHasBeenClassTimeIds(autClass.AuditId, classRoomId); List <TblAutClassTime> autClassTimes = GetTblAutClassTimes(request, autClass, hasBeenClassTimeIds, schoolTimeId); //校验老师是否重复 VerifyTeacherOccupy(autClassTimes.Select(x => x.SchoolTimeId), request.TeacherId, autClass.TermId); Task[] tasks = new Task[2]; tasks[0] = new TblAutClassRepository().AddTask(autClass); tasks[1] = new TblAutClassTimeRepository().SaveTask(autClassTimes); Task.WaitAll(tasks); }