Ejemplo n.º 1
0
        /// <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);
            }
        }
Ejemplo n.º 2
0
        /// <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);
        }
Ejemplo n.º 4
0
        /// <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);
        }