コード例 #1
0
        /// <summary>
        /// 写生排课
        /// <para>作    者:郭伟佳</para>
        /// <para>创建时间:2019-01-02</para>
        /// </summary>
        /// <param name="lifeClassInfo">写生课信息对象</param>
        /// <param name="lifeClassLessonList">班级学生信息对象</param>
        private void MakeLifeClass(TblTimLifeClass lifeClassInfo, List <LifeClassLessonMakeRequest> lifeClassLessonList)
        {
            if (lifeClassLessonList.Count == 0)
            {
                return;
            }
            using (UnitOfWork unitOfWork = new UnitOfWork())
            {
                try
                {
                    unitOfWork.BeginTransaction();

                    LifeClassLessonCreator lessonCreator = new LifeClassLessonCreator(lifeClassInfo, lifeClassLessonList, unitOfWork); //实例化课次生产者
                    LessonService          lessonService = new LessonService(unitOfWork);
                    lessonService.Create(lessonCreator);                                                                               //课次生产

                    unitOfWork.CommitTransaction();
                }
                catch (Exception ex)
                {
                    unitOfWork.RollbackTransaction();
                    throw ex;
                }
            }
        }
コード例 #2
0
        /// <summary>
        /// 开始真实排课
        /// <para>作    者:zhiwei.Tang</para>
        /// <para>创建时间:2018-11-08</para>
        /// </summary>
        /// <param name="makeLessonId">排课Id</param>
        /// <param name="unitOfWork">工作单元</param>
        private void MakeInternal(long makeLessonId, UnitOfWork unitOfWork)
        {
            MakeLessonCreator lessonCreator = new MakeLessonCreator(makeLessonId, unitOfWork);  //实例化课次生产者
            LessonService     lessonService = new LessonService(unitOfWork);

            lessonService.Create(lessonCreator);                                    //课次生产

            new StudentService(this._schoolId).UpdateStudentStatusById(this._studentId, unitOfWork, StudyStatus.Reading);
        }
コード例 #3
0
        /// <summary>
        /// 描述:班级上课时间调整课次信息保存
        /// <para>作者:瞿琦</para>
        /// <para>创建时间:2019-3-8</para>
        /// </summary>
        /// <param name="iRequest">要保存的课次调整信息</param>
        /// <exception cref="AMS.Core.BussinessException">
        /// 异常Id:7,异常描述:上课时间段编号不能为空
        /// 异常Id:61,异常描述:调整日期不能小于当前日期
        /// </exception>
        public override void Adjust(IAdjustLessonRequest iRequest)
        {
            var request = iRequest as AdjustClassTimeRequest;

            if (request.NewClassDate <= DateTime.Now)  //如果调整日期小于当前日期,则抛出异常
            {
                throw new BussinessException(ModelType.Timetable, 61);
            }
            using (var unitOfWork = new UnitOfWork())
            {
                try
                {
                    unitOfWork.BeginTransaction();
                    var           lessonRepository = unitOfWork.GetCustomRepository <TblTimLessonRepository, TblTimLesson>();
                    LessonService lessonService    = new LessonService(unitOfWork);
                    //获取班级上课时间段
                    var classTimeList = this.GetClassTimesList(request.ClassId);
                    if (!classTimeList.Any())
                    {
                        throw new BussinessException(ModelType.Datum, 7);
                    }
                    //1.获取要更换时间段的课次
                    var changeLessonList = lessonRepository.GetTimLessonByClassIdList(new List <long>()
                    {
                        request.ClassId
                    }, new List <DateTime> {
                        request.OldClassDate
                    }, LessonUltimateStatus.Normal);

                    //2.向调整课次业务表添加数据
                    var adjustLessonList = AddAdjustLessonInfo(request, changeLessonList, classTimeList, unitOfWork);

                    //3.提供要销毁的课次对象
                    var lessonClassTimeFinisher = new AdjustLessonClassTimeFinisher(adjustLessonList, changeLessonList);
                    lessonService.Finish(lessonClassTimeFinisher);

                    //4.提供要更新的课次
                    var lessonClassTimeCreator = new AdjustLessonClassTimeCreator(request, adjustLessonList, changeLessonList, classTimeList);
                    if (lessonClassTimeCreator.IsLessonData)
                    {
                        lessonService.Create(lessonClassTimeCreator);                       //正常课次
                    }
                    var replenishLessonService = new ReplenishLessonService(unitOfWork);
                    if (lessonClassTimeCreator.IsReplenishLessonData)
                    {
                        replenishLessonService.Create(lessonClassTimeCreator);               //补课调课
                    }

                    unitOfWork.CommitTransaction();
                }
                catch (Exception)
                {
                    unitOfWork.RollbackTransaction();
                    throw;
                }
            }
        }
コード例 #4
0
        /// <summary>
        /// 描述:全校上课日期调整信息保存
        /// <para>作者:瞿琦</para>
        /// <para>创建时间:2019-3-8</para>
        /// </summary>
        /// <param name="iRequest">要保存的课程调整信息</param>
        /// <exception cref="AMS.Core.BussinessException">
        /// 异常Id:61,异常描述:调整日期不能小于当前日期
        /// </exception>
        public override void Adjust(IAdjustLessonRequest iRequest)
        {
            AdjustSchoolClassTimeRequest request = iRequest as AdjustSchoolClassTimeRequest;

            if (request.AdjustDate <= DateTime.Now)  //如果调整时间小于当前时间,则抛出异常
            {
                throw new BussinessException(ModelType.Timetable, 61);
            }
            using (var unitOfWork = new UnitOfWork())
            {
                try
                {
                    unitOfWork.BeginTransaction();
                    var           lessonRepository = unitOfWork.GetCustomRepository <TblTimLessonRepository, TblTimLesson>();
                    LessonService lessonService    = new LessonService(unitOfWork);
                    //1.要更换全校上课日期的课次
                    var changeLessonList = lessonRepository.GetTimLessonByClassIdList(request.LessonInfoList.Select(x => x.ClassId), request.LessonInfoList.Select(x => x.ClassDate), LessonUltimateStatus.Normal);

                    //2.向调整课次业务表添加数据
                    var adjustLessonList = AddAdjustLessonInfo(request.AdjustDate, changeLessonList, unitOfWork);
                    //3.提供要销毁的课次对象
                    var schoolClassTimeFinisher = new AdjustLessonSchoolClassTimeFinisher(adjustLessonList, changeLessonList);
                    lessonService.Finish(schoolClassTimeFinisher);
                    //4.提供要更新的课次
                    var schoolClassTimeCreator = new AdjustLessonSchoolClassTimeCreator(request.AdjustDate, adjustLessonList, changeLessonList);
                    if (schoolClassTimeCreator.IsLessonData)
                    {
                        lessonService.Create(schoolClassTimeCreator);                        //正常课次
                    }
                    var replenishLessonService = new ReplenishLessonService(unitOfWork);
                    if (schoolClassTimeCreator.IsReplenishLessonData)
                    {
                        replenishLessonService.Create(schoolClassTimeCreator);               //补课调课
                    }

                    unitOfWork.CommitTransaction();
                }
                catch (Exception ex)
                {
                    unitOfWork.RollbackTransaction();
                    throw ex;
                }
            }
        }
コード例 #5
0
        /// <summary>
        /// 描述:老师代课信息保存
        /// <para>作者:瞿琦</para>
        /// <para>创建时间:2019-3-8</para>
        /// </summary>
        /// <param name="iRequest">要保存的代课老师信息</param>
        public override void Adjust(IAdjustLessonRequest iRequest)
        {
            AdjustTeacherRequest request = iRequest as AdjustTeacherRequest;

            using (var unitOfWork = new UnitOfWork())
            {
                try
                {
                    unitOfWork.BeginTransaction();
                    var lessonRepository = unitOfWork.GetCustomRepository <TblTimLessonRepository, TblTimLesson>();

                    LessonService lessonService = new LessonService(unitOfWork);
                    //1.要更换老师的课次
                    var changeLessonList = lessonRepository.GetTimLessonByClassIdList(request.LessonInfoList.Select(x => x.ClassId), request.LessonInfoList.Select(x => x.ClassDate), LessonUltimateStatus.Normal);

                    //2.向调整课次业务表添加数据
                    var adjustLessonList = AddAdjustLessonInfo(request.TeacherId, changeLessonList, unitOfWork);

                    //3.提供要销毁的课次对象
                    var lessonTeacherFinisher = new AdjustLessonTeacherFinisher(adjustLessonList, changeLessonList);
                    lessonService.Finish(lessonTeacherFinisher);
                    //4.提供要更新的课次
                    var lessonCreator = new AdjustLessonTeacherCreator(request.TeacherId, adjustLessonList, changeLessonList);
                    if (lessonCreator.IsLessonData)          //正常课次有数据则创建
                    {
                        lessonService.Create(lessonCreator); //正常课次
                    }
                    var replenishLessonService = new ReplenishLessonService(unitOfWork);
                    if (lessonCreator.IsReplenishLessonData)          //补课调课有数据则创建
                    {
                        replenishLessonService.Create(lessonCreator); //补课调课
                    }

                    unitOfWork.CommitTransaction();
                }
                catch (Exception ex)
                {
                    unitOfWork.RollbackTransaction();
                    throw ex;
                }
            }
        }
コード例 #6
0
        /// <summary>
        /// 描述:保存转班办理
        /// <para>作    者:瞿琦</para>
        /// <para>创建时间:2018-11-7</para>
        /// </summary>
        /// <param name="dto">要保存的转班信息</param>
        /// <returns>无</returns>
        public void ChangeIn(ChangeClassAddRequest dto)
        {
            lock (LocalThreadLock.GetLockKeyName(LockKeyNames.LOCK_AMSSCHOOLSTUDENT, this._schoolId, this._studentId.ToString()))
            {
                //验证
                var outClassTimes = this.ValidateSubmit(dto);  //实际转出课次
                using (var unitOfWork = new UnitOfWork())
                {
                    try
                    {
                        unitOfWork.BeginTransaction();
                        //1、插入转班表
                        var timChangeClassEntity = AddTimChangeClass(dto, outClassTimes, unitOfWork);
                        //2、课表数据操作---作废
                        ChangeClassLessonFinisher lessonFinisher = new ChangeClassLessonFinisher(timChangeClassEntity, unitOfWork);
                        LessonService             lessonService  = new LessonService(unitOfWork);
                        lessonService.Finish(lessonFinisher);//课次销毁

                        //3、课表数据操作---转班重新排课
                        ChangeClassLessonCreator creator = new ChangeClassLessonCreator(timChangeClassEntity, lessonFinisher.EnrollOrderItemId, unitOfWork);
                        lessonService.Create(creator);

                        //4.修改学生状态及课次
                        var studentService = new StudentService(this._schoolId);
                        studentService.UpdateStudentStatusById(this._studentId, unitOfWork);

                        unitOfWork.CommitTransaction();
                    }
                    catch (Exception e)
                    {
                        unitOfWork.RollbackTransaction();
                        throw;
                    }
                }
            }
        }