/// <summary> /// 批量添加上课时间段 /// <para>作 者:Huang GaoLiang </para> /// <para>创建时间:2018-09-26 </para> /// </summary> /// <param name="list">上课时间段集合</param> /// <param name="toTermId">学期编号</param> /// <returns>返回受影响的行数</returns> internal async Task <int> AddTaskDatSchoolTime(List <TblDatSchoolTime> list, long toTermId) { TblDatSchoolTimeRepository schoolTimeRepository = new TblDatSchoolTimeRepository(); await schoolTimeRepository.DeleteTask(toTermId); //先删除,后添加 return(await schoolTimeRepository.AddTask(list)); }
/// <summary> /// <para>作 者: Huang GaoLiang </para> /// <para>创建时间: 2019-02-19</para> /// </summary> /// <param name="schoolTimeId">上课时间段编号</param> /// <returns>返回上课时间段信息</returns> public static SchoolTimeService CreateSchoolTimeService(long schoolTimeId) { TblDatSchoolTimeRepository repository = new TblDatSchoolTimeRepository(); TblDatSchoolTime entity = repository.Load(schoolTimeId); return(new SchoolTimeService(entity.TermId)); }
/// <summary> /// 重新构造上课时间段编号 /// <para>作 者:Huang GaoLiang </para> /// <para>创建时间:2018-09-07 </para> /// </summary> /// <param name="schoolTimeRepository">上课时间段仓储</param> /// <param name="schoolTime">上课时间段实体</param> /// <param name="schoolTimeList">上课时间段集合</param> /// <returns>返回上课时间段编号集合</returns> private static async Task <List <TblDatSchoolTime> > SchoolTimeCombinated(TblDatSchoolTimeRepository schoolTimeRepository, TblDatSchoolTime schoolTime, List <TblDatSchoolTime> schoolTimeList) { // 判断上课时间段数据是否为空 if (schoolTime != null) { schoolTimeList = await schoolTimeRepository.Get(schoolTime.TermId, schoolTime.WeekDay, schoolTime.Duration); schoolTimeList = schoolTimeList.Where(m => m.SchoolTimeId != schoolTime.SchoolTimeId).OrderBy(m => m.Duration).ThenBy(m => m.BeginTime).ToList(); int sixtyclassTimeNo = 0; int ninetyclassTimeNo = 0; foreach (TblDatSchoolTime item in schoolTimeList) { // 60分钟的编号加上S if (item.Duration == (int)TimeType.Sixty) { sixtyclassTimeNo++; item.ClassTimeNo = "S" + sixtyclassTimeNo; } // 90分钟的编号加上M if (item.Duration == (int)TimeType.Ninety) { ninetyclassTimeNo++; item.ClassTimeNo = "M" + sixtyclassTimeNo; } } } return(schoolTimeList); }
/// <summary> /// 保存上课时间段 /// <para>作 者:Huang GaoLiang </para> /// <para>创建时间:2018-11-02 </para> /// </summary> /// <param name="schoolTimeSaveRequestList">上课时间段集合</param> /// <param name="schoolId">校区编号</param> /// <exception cref="AMS.Core.BussinessException"> /// 异常ID:1,学期编号不能为空 /// </exception> public async Task Save(List <SchoolTimeSaveRequest> schoolTimeSaveRequestList, string schoolId) { // 如果学期不存在 if (_termId < 1) { throw new BussinessException((byte)ModelType.Datum, 3); } // 如果上课时间段集合为空 if (schoolTimeSaveRequestList == null && !schoolTimeSaveRequestList.Any()) { return; } // 1、校验数据的合法性 List <TblDatSchoolTime> dbSchoolTimeIds = new TblDatSchoolTimeRepository().LoadList(m => m.SchoolId == schoolId && m.TermId == _termId && m.WeekDay == schoolTimeSaveRequestList.FirstOrDefault().WeekDay); foreach (SchoolTimeSaveRequest schoolTime in schoolTimeSaveRequestList) { List <long> schoolTimeIds = dbSchoolTimeIds.Select(m => m.SchoolTimeId).ToList(); Verification(schoolTimeSaveRequestList, schoolTime, schoolTimeIds); } // 2、集合重新排序,生成时间段编号 List <SchoolTimeSaveRequest> resultList = schoolTimeSaveRequestList.OrderBy(m => m.BeginTime).ToList(); // 3、生成编号 CodingRules(resultList); var info = schoolTimeSaveRequestList.FirstOrDefault(); int weekDay = 0; if (info != null) { weekDay = info.WeekDay; } List <TblDatSchoolTime> schoolTimeList = Mapper.Map <List <SchoolTimeSaveRequest>, List <TblDatSchoolTime> >(resultList); // 校区编号 foreach (var item in schoolTimeList) { item.SchoolId = schoolId; } // 3、1添加之前先删除对应的数据 await _schoolTimeRepository.Value.DeleteBytermIdAndWeek(_termId, weekDay); // 3、2添加 await _schoolTimeRepository.Value.BatchInsertsAsync(schoolTimeList); }
/// <summary> /// 描述:根据日期获取时间段集合 /// <para>作者:瞿琦</para> /// <para>创建时间:2019-3-14</para> /// </summary> /// <param name="schoolId">校区Id</param> /// <param name="day">日期</param> /// <returns>时间段集合</returns> public static List <SchoolDayTimeListResponse> GetDayTimeList(string schoolId, DateTime day) { //获取今天属于星期几 int dayInt = WeekDayConvert.DayOfWeekToInt(day); //获取日期所属学期 var termList = new TblDatTermRepository().GetDateByTermList(day); var schoolTimeList = new TblDatSchoolTimeRepository().GetSchoolOrTermBySchoolTimeList(schoolId, termList.Select(x => x.TermId)); var daySchoolTimeList = schoolTimeList.Where(x => x.WeekDay == dayInt).Select(x => new SchoolDayTimeListResponse { BeginTime = x.BeginTime, EndTime = x.EndTime }).Distinct(new Compare <SchoolDayTimeListResponse>((x, y) => (x != null && y != null && x.BeginTime == y.BeginTime && x.EndTime == y.EndTime))) .ToList(); return(daySchoolTimeList); }
/// <summary> /// 根据主键删除一条上课时间段 /// <para>作 者:Huang GaoLiang </para> /// <para>创建时间:2018-09-07 </para> /// </summary> /// <param name="schoolTimeId">上课时间段主键编号</param> /// <exception cref="AMS.Core.BussinessException"> /// 异常ID:7,上课时间段编号不能为空 /// </exception> public static async Task Remove(long schoolTimeId) { if (schoolTimeId < 1) { throw new BussinessException((byte)ModelType.Datum, 7); } // 1、查询需要数据的删除 TblDatSchoolTimeRepository schoolTimeRepository = new TblDatSchoolTimeRepository(); TblDatSchoolTime schoolTime = await schoolTimeRepository.LoadTask(schoolTimeId); // 2、校验是否可以删除(在课表中被使用的时间段不允许被删除) CanDelete(schoolTimeId, schoolTime.TermId); List <TblDatSchoolTime> schoolTimeList = new List <TblDatSchoolTime>(); schoolTimeList = await SchoolTimeCombinated(schoolTimeRepository, schoolTime, schoolTimeList); await schoolTimeRepository.DeleteTask(schoolTime.TermId, schoolTime.WeekDay, schoolTime.Duration); await schoolTimeRepository.AddTask(schoolTimeList); }