/// <summary> /// 校验审核班级记录表是否存在班级 /// 没有班级则删除主表审核记录 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2018-10-11</para> /// </summary> /// <param name="auditId">审核Id</param> private void VerifyDeleteClassFallback(long auditId) { //1、是否还存在班级 List <TblAutClass> autClasses = _tblAutClassRepository.Value.GetByAuditId(auditId).Result; if (autClasses.Any()) { return; } //2、是否存在正式数据 bool existClass = new TermCourseTimetableService(this._termId).ExistClassCourse(); if (existClass) { return; } //3、删除审核主表数据 var autAudit = _tblAutAuditRepository.Load(auditId); if (autAudit != null) { _tblAutAuditRepository.Delete(autAudit); } }
/// <summary> /// 描述:审核终审通过 /// <para>作者:瞿琦</para> /// <para>创建时间:2018-11-2</para> /// </summary> public override void ProcessAuditSuccess() { try { //3、将审核通过数据添加到已生效数据表 var autClassQuery = _tblAutClassRepository.Value.LoadList(x => x.AuditId == TblAutAudit.AuditId); //班级课表 var classTimQuery = _tblAutClassTimeRepository.Value.LoadList(x => x.AuditId == TblAutAudit.AuditId); //班级上课时间表 //3.1先删除原来学期的课表数据 TermCourseTimetableService termTimService = new TermCourseTimetableService(this._termId); termTimService.Remove(); var timeClassList = classTimQuery.Select(x => new TblTimClassTime { ClassTimeId = x.ClassTimeId, ClassId = x.ClassId, SchoolTimeId = x.SchoolTimeId, CreateTime = DateTime.Now, SchoolId = x.SchoolId }).ToList(); LogWriter.Write(this, "班级时间段表" + timeClassList.Count); if (timeClassList.Any()) { ClassCourseTimetableService.AddTimClassTime(timeClassList); //添加班级上课时间表数据 } var classList = autClassQuery.Select(x => new TblDatClass { ClassId = x.ClassId, ClassNo = x.ClassNo, ClassRoomId = x.ClassRoomId, TermId = x.TermId, RoomCourseId = x.RoomCourseId, CourseId = x.CourseId, CourseLeveId = x.CourseLeveId, TeacherId = x.TeacherId, CourseNum = x.CourseNum, StudentsNum = x.StudentsNum, CreateTime = DateTime.Now, UpdateTime = DateTime.Now, SchoolId = x.SchoolId, ClassType = (int)ClassType.Default }).ToList(); LogWriter.Write(this, "班级表" + classList.Count); if (classList.Any()) { ClassCourseTimetableService.AddDatClass(classList); //添加班级表数据 } } catch (Exception ex) { throw ex; } }
/// <summary> /// 获取学期课程表 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2018-11-06</para> /// </summary> /// <returns>校区课程总表数据</returns> public TermTimetableResponse GetCourseTimetable() { TermCourseTimetableService termCourseTimetableService = new TermCourseTimetableService(_termId); var res = termCourseTimetableService.TermTimetable; res.CourseTimetableSixty = TermCourseTimetableResponseFilter(res.CourseTimetableSixty); res.CourseTimetableNinety = TermCourseTimetableResponseFilter(res.CourseTimetableNinety); return(res); }
/// <summary> /// 获取教室查看课表 /// <para>作 者:zhiwei.Tang</para> /// <para>创建时间:2018-11-06</para> /// </summary> /// <returns>老师个人课表数据</returns> public async Task <List <TeacherCourseTimetableResponse> > GetCourseTimetable(string companyId) { List <TeacherCourseTimetableResponse> res = new List <TeacherCourseTimetableResponse>(); //1.获取老师上课班级 List <TblDatClass> classes = _classRepository.Value.GetClassByTermIdAsync(_termId) .Result .Where(x => x.TeacherId == _teacherId) .ToList(); //2.获取班级上课时间 List <TblTimClassTime> classTimes = await _classTimeRepository.Value.GetByClassId(classes.Select(x => x.ClassId)); //3.获取基础数据 //3.1 课程 List <TblDatCourse> courses = CourseService.GetAllAsync().Result; //3.2 课程等级 List <CourseLevelResponse> courseLevels = new CourseLevelService(companyId).GetList().Result; //3.3 获取教室 TermCourseTimetableService termCourseService = new TermCourseTimetableService(_termId); List <TblDatClassRoom> classRooms = new SchoolClassRoomService(termCourseService.TblDatTerm.SchoolId).ClassRoomList; //3.4.获取上课时间段基础数据 List <TblDatSchoolTime> schoolTimes = new SchoolTimeService(_termId).TblDatSchoolTime; int maxLength = 0; //4.整合数据 for (int i = 1; i <= 7; i++) { TeacherCourseTimetableResponse classRoom = new TeacherCourseTimetableResponse { Week = WeekDayConvert.IntToString(i), ClassTimes = new List <TeacherClassTime>() }; var cts = (from a in classTimes //教室下的班级上课时间段 join b in classes on a.ClassId equals b.ClassId //教室下的班级 join c in schoolTimes on a.SchoolTimeId equals c.SchoolTimeId //基础数据 学期下所有上课时间段 join d in courseLevels on b.CourseLeveId equals d.CourseLevelId //基础数据 课程等级 join e in courses on b.CourseId equals e.CourseId //基础数据 课程 join f in classRooms on b.ClassRoomId equals f.ClassRoomId //基础数据 教室 where c.WeekDay == i select new TeacherClassTime { BeginTime = c.BeginTime, EndTime = c.EndTime, CourseName = e.ShortName, LevelCnName = d.LevelCnName, RoomNo = f.RoomNo }).OrderBy(x => x.BeginTime); classRoom.ClassTimes.AddRange(cts); if (cts.Count() > maxLength) { maxLength = cts.Count(); } res.Add(classRoom); } //补齐 foreach (var item in res) { if (item.ClassTimes.Count >= maxLength) { continue; } while (item.ClassTimes.Count < maxLength) { item.ClassTimes.Add(new TeacherClassTime()); } } return(res); }