/// <summary> /// 描述:获取可预见的年份 /// <para>作 者:瞿琦</para> /// <para>创建时间:2018-11-7</para> /// </summary> /// <param name="schoolId">校区Id</param> /// <returns>年度列表</returns> public static List <int> GetPredictYears(string schoolId) { TblDatTermRepository tblDatTermRepository = new TblDatTermRepository(); //根据校区获取学期列表 var yearList = tblDatTermRepository.GetShoolNoByTblDatTerm(schoolId).Select(x => x.Year).OrderByDescending(x => x).ToList(); var yearArray = new List <int>(); int stratYear = yearList.LastOrDefault(); if (!yearList.Any()) //如果当前校区没有学期 { stratYear = DateTime.Now.Year; } else { if (stratYear > DateTime.Now.Year) { stratYear = DateTime.Now.Year; } } for (int i = stratYear; i <= DateTime.Now.Year + 5; i++) { yearArray.Add(i); } return(yearArray); }
/// <summary> /// 根据校区编号获取可预见的年份 /// <para>作 者:Huang GaoLiang </para> /// <para>创建时间:2018-09-07 </para> /// </summary> /// <param name="schoolId">校区编号</param> /// <returns>返回年度编号集合</returns> /// <exception cref="AMS.Core.BussinessException"> /// 异常ID:9,校区编号为空 /// </exception> public static List <int> GetPredictYears(string schoolId) { // 如果校区编号为空 if (string.IsNullOrWhiteSpace(schoolId)) { throw new BussinessException((byte)ModelType.Datum, 9); } //获取当前校区授权学期下的年份 TblDatTermRepository termRepository = new TblDatTermRepository(); List <int> yearList = termRepository.GetShoolNoByTblDatTerm(schoolId) .OrderByDescending(m => m.CreateTime) .Select(m => m.Year) .Distinct() .ToList(); return(PredictYear.Get(yearList)); }
/// <summary> /// 描述:获取排课列表的筛选条件数据 /// <para>作 者:瞿琦</para> /// <para>创建时间:2018.9.25</para> /// </summary> /// <param name="schoolId">校区Id</param> /// <param name="companyId">公司编号</param> /// <returns>校区年度下的学期数据</returns> /// <exception cref="AMS.Core.BussinessException"> ///异常ID:6, 异常描述:找不到授权校区 /// </exception> public ClassCourseSearchSchoolResponse GetSearchData(string schoolId, string companyId) { var searchResult = new ClassCourseSearchSchoolResponse(); //1、检查授权校区缓存是否存在 //2、授权自已拥有的授权校区(找平台) //获取授权校区 var currentSchoolRight = this.GetAuthorSchool(); var schoolInfo = currentSchoolRight.FirstOrDefault(x => x.SchoolId.Trim() == schoolId.Trim()); if (schoolInfo == null)//获取的校区不能为空 { throw new BussinessException(ModelType.Timetable, 6); } searchResult.SchoolId = schoolInfo.SchoolId; searchResult.SchoolName = schoolInfo.SchoolName; //3、加载所有学期及年份,并对数据进行处理 //3.1 实例化年度校区集合 var yearAndTermList = new List <ClassCourseearchYearResponse>(); TblDatTermRepository tblDatTermRepository = new TblDatTermRepository(); //3.2 获取有学期的年度 var yearList = tblDatTermRepository.GetShoolNoByTblDatTerm(schoolId).Select(x => x.Year).Distinct().OrderBy(x => x).ToList(); //3.3 根据校区+所有的年度获取所有年度的学期 var termList = tblDatTermRepository.GetTblDatTremList(schoolId, yearList); var schoolCourse = new SchoolCourseService(schoolId, companyId).GetCourseByType(null).Select(x => new ClassCourseResponse { CourseId = x.CourseId, ClassCnName = x.ClassCnName }).ToList(); foreach (var year in yearList) { // 3.4循环获取年度所属校区 var yearByTermList = termList.Where(x => x.SchoolId.Trim() == schoolId.Trim() && x.Year == year).Select(x => new ClassCourseSearchTermResponse { TermId = x.TermId, TermName = x.TermName, }).ToList(); foreach (var termItem in yearByTermList) { //学期下正式的所有班级 var termClassList = GetTermClassCourseInfo(termItem.TermId); //审核中的班级 var auditClassCourse = GetAuditClassCourse(termItem.TermId); schoolCourse.AddRange(termClassList); schoolCourse.AddRange(auditClassCourse); termItem.TermCourse = schoolCourse.Distinct(new CourseInfoComparer()).ToList(); } var model = new ClassCourseearchYearResponse() { Year = year, Terms = yearByTermList }; yearAndTermList.Add(model); } searchResult.Years = yearAndTermList; //5、将处理好的数据缓存到Redis //this.SetCache(result); return(searchResult); }