/// <summary> /// 获取学期排课表 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2018-09-21</para> /// </summary> /// <returns>学期排课表数据</returns> private TermTimetableResponse GetTermCourseTimetable() { TermTimetableResponse res = new TermTimetableResponse { CourseTimetableSixty = this.GetTermCourseTimetable(TimeType.Sixty), CourseTimetableNinety = this.GetTermCourseTimetable(TimeType.Ninety), TermTimetableAuditResponse = new TermTimetableAuditResponse { AuditStatus = (AuditStatus)base.TblAutAudit.AuditStatus, Auditime = base.TblAutAudit.AuditDate.ToString("yyyy-MM-dd HH:mm"), AuditName = base.TblAutAudit.AuditUserName, Remark = GetAuditRemark() } }; TblDatTerm term = TermService.GetTermByTermId(_termId); res.TermBeginDate = term.BeginDate.ToString("yyyy-MM-dd"); res.TermEndDate = term.EndDate.ToString("yyyy-MM-dd"); //如果被退回,退回原因应从DataExt中取 if (res.TermTimetableAuditResponse.AuditStatus == AuditStatus.Return) { res.TermTimetableAuditResponse.IsFirstSubmitUser = base.IsFlowSubmitUser; res.TermTimetableAuditResponse.CreateUserName = base.TblAutAudit.CreateUserName; res.TermTimetableAuditResponse.Remark = base.TblAutAudit.DataExt; } return(res); }
/// <summary> /// 根据学期获取停课日 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2018-11-08</para> /// </summary> /// <param name="term">学期信息</param> /// <returns>停课时间段数据列表</returns> internal static List <SchoolHolidayResponse> GetSchoolHoliday(TblDatTerm term) { SchoolHolidayService beginSchoolHoliday = new SchoolHolidayService(term.SchoolId, term.BeginDate.Year); SchoolHolidayService endSchoolHoliday = new SchoolHolidayService(term.SchoolId, term.EndDate.Year); List <SchoolHolidayResponse> beginSchoolHolidayResponses = beginSchoolHoliday.GetWeekDayHolidayList().Result; List <SchoolHolidayResponse> endSchoolHolidayResponses = endSchoolHoliday.GetWeekDayHolidayList().Result; List <SchoolHolidayResponse> schoolHoliday = beginSchoolHolidayResponses.Union(endSchoolHolidayResponses).ToList(); return(schoolHoliday); }
/// <summary> /// 待添加到审核中班级 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2019-02-19</para> /// </summary> /// <param name="input">待添加的班级信息</param> /// <param name="classRoomId">教室Id</param> /// <param name="schoolTimeId">上课时间段Id</param> /// <param name="createUserName">创建人</param> /// <returns>审核中的班级课表信息</returns> private static TblAutClass GetTblAutClass(ClassScheduleRequest input, long classRoomId, long schoolTimeId, string createUserName) { //教室信息 var classRoom = new ClassRoomService(classRoomId).ClassRoomInfo; ValidateObject(classRoom); //上课时间信息 var schoolTime = SchoolTimeService.GetBySchoolTimeId(schoolTimeId); ValidateObject(schoolTime); //根据学期编号获取学期信息 TblDatTerm term = TermService.GetTermByTermId(schoolTime.TermId); ValidateObject(term); //获取课程 TblDatRoomCourse roomCourse = new ClassRoomService(classRoomId).GetByCourseId(input.CourseId).Result; ValidateObject(roomCourse); //复制课表到审核中得到审核主表id long auditId = new TermCourseTimetableAuditService(schoolTime.TermId).VerifyGetAuditId(classRoom.SchoolId); TblAutClass autClass = new TblAutClass { AutClassId = IdGenerator.NextId(), SchoolId = classRoom.SchoolId, ClassId = IdGenerator.NextId(), AuditId = auditId, ClassNo = input.ClassNo, TermId = term.TermId, RoomCourseId = roomCourse.RoomCourseId, ClassRoomId = classRoomId, CourseId = roomCourse.CourseId, CourseLeveId = input.CourseLevelId, TeacherId = input.TeacherId, CourseNum = input.CourseNum, StudentsNum = input.StudentsNum, CreateTime = DateTime.Now, UpdateTime = DateTime.Now, DataStatus = 0 }; return(autClass); }
/// <summary> /// 获取未安排课表的班级课表信息 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2018-11-06</para> /// </summary> /// <param name="classRoomId">教室ID</param> /// <param name="schoolTimeId">时间段ID</param> /// <returns>课次表详情</returns> public static ClassTimetableResponse GetNoClassTimetable(long classRoomId, long schoolTimeId) { ClassTimetableResponse res = new ClassTimetableResponse { IsClassJoin = false }; SchoolTimeService service = SchoolTimeService.CreateSchoolTimeService(schoolTimeId); List <TblDatSchoolTime> allSchoolTimes = service.TblDatSchoolTime; TblDatTerm term = service.TblDatTerm; //获取当前时间段 var firstTime = allSchoolTimes.FirstOrDefault(x => x.SchoolTimeId == schoolTimeId); //第一节课时间段 res.Time1 = new List <string> { firstTime.BeginTime, firstTime.EndTime }; //上课老师 res.Teacher = TeachService.GetIncumbentTeachers(term.SchoolId); //当前教室门牌号 res.RoomNo = new SchoolClassRoomService(term.SchoolId).GetClassRoom(classRoomId)?.RoomNo; //课程与课程等级 res.ClassTimetableCourse = GetClassTimetableCourseResponse(term.SchoolId, classRoomId); ClassTimetableSchoolTimeResult classTimetableSchoolTimeResult = GetClassTimetableSchoolTimeResult(allSchoolTimes, classRoomId, schoolTimeId, term.TermId); //星期几与上课时间的数据 res.WeekDaySchoolTimes = classTimetableSchoolTimeResult .WeekDaySchoolTimes .OrderBy(m => m.WeekDay).ToList(); res.CanClassJoin = classTimetableSchoolTimeResult.CanClassJoin; //第二节课时间段 res.Time2 = classTimetableSchoolTimeResult.Time2; return(res); }
/// <summary> /// 获取已安排课表的班级课表信息 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2018-11-06</para> /// </summary> /// <remarks>课程表班级的详情信息</remarks> /// <exception cref="BussinessException"> /// 异常ID:1,异常描述:班级信息为空 /// </exception> private ClassTimetableResponse GetClassTimetable() { //获取班级 var classInfo = this.GetClass(); if (classInfo == null) { throw new BussinessException(ModelType.Default, 1); } //基础数据 ClassTimetableResponse res = new ClassTimetableResponse() { ClassNo = classInfo.ClassNo, CourseId = classInfo.CourseId, CourseLevelId = classInfo.CourseLeveId, CourseNum = classInfo.CourseNum, StudentsNum = classInfo.StudentsNum, TeaherId = classInfo.TeacherId, CanClassJoin = false, WeekDaySchoolTimes = new List <ClassTimetableSchoolTimeResponse>() }; SchoolTimeService schoolTimeService = new SchoolTimeService(classInfo.TermId); //获取学期信息 TblDatTerm term = schoolTimeService.TblDatTerm; //这个学期所有的上课时间 var allTermClassTime = schoolTimeService.TblDatSchoolTime.OrderBy(x => x.BeginTime).ToList(); //校区老师 res.Teacher = TeachService.GetIncumbentTeachers(term.SchoolId, classInfo.TeacherId); //课程信息与课程等级 res.ClassTimetableCourse = GetClassTimetableCourseResponse(term.SchoolId, classInfo.ClassRoomId, classInfo.CourseId); //当前教室门牌号 res.RoomNo = new SchoolClassRoomService(term.SchoolId).GetClassRoom(classInfo.ClassRoomId)?.RoomNo; var timClassTime = _classTimeRepository.Value.GetByClassId(classInfo.ClassId); //当前班级对应的上课时间段 var currentClassTimes = allTermClassTime .Where(m => timClassTime.Select(x => x.SchoolTimeId).Contains(m.SchoolTimeId)) .OrderBy(x => x.BeginTime).ToList(); //班级第一个时间段 var firstClassTime = currentClassTimes[0]; res.Time1 = new List <string> { firstClassTime.BeginTime, firstClassTime.EndTime }; res.Time2 = new List <string>(); var isJoinClass = currentClassTimes.Where(x => x.WeekDay == firstClassTime.WeekDay).OrderBy(x => x.BeginTime).ToList(); //班级第二个时间段 if (isJoinClass.Count > 1) { var secondClassTime = isJoinClass[1]; res.Time2 = new List <string> { secondClassTime.BeginTime, secondClassTime.EndTime }; res.IsClassJoin = true; } //星期几与上课时间的数据 for (int i = 1; i <= 7; i++) { var classTime = currentClassTimes.Where(x => x.WeekDay == i).ToList(); ClassTimetableSchoolTimeResponse ctst = new ClassTimetableSchoolTimeResponse { HasSchoolTime1 = false, SchoolTimeId1 = 0, HasSchoolTime2 = false, SchoolTimeId2 = 0, IsChecked = false, WeekDay = i }; if (classTime.Any()) { ctst.HasSchoolTime1 = true; ctst.SchoolTimeId1 = classTime[0].SchoolTimeId; ctst.IsChecked = true; if (classTime.Count > 1) { ctst.HasSchoolTime2 = true; ctst.SchoolTimeId2 = classTime[1].SchoolTimeId; } } res.WeekDaySchoolTimes.Add(ctst); } return(res); }