示例#1
0
        /// <summary>
        /// 获取单个教师请假情况
        /// </summary>
        /// <param name="SelectYear">年份</param>
        /// <param name="type">按年还是请假类型</param>
        /// <param name="userType">判断当前登录教师还是选择的教师</param>
        /// <param name="userId">教师ID</param>
        /// <returns></returns>
        public JsonResult GetTeacherLeaveByID(string SelectYear, string type, string userType = "", string userId = "")
        {
            var teahcerLeaveViewModel = new TeahcerLeaveViewModel();

            try
            {
                var          teacherLeaveList = new List <AL_Apply>();
                List <Guid?> userIdList       = new List <Guid?>();

                if (!string.IsNullOrEmpty(userType))
                {
                    userIdList.Add(new Guid(userId));
                }
                else
                {
                    userIdList.Add(userid);
                }

                List <SeriesPie> serList = new List <SeriesPie>();

                switch (type)
                {
                case "年份":
                    #region 年份

                    teacherLeaveList = oabll.GetLeaveListByTeahcerIdListAndYear(userIdList, SelectYear);

                    if (teacherLeaveList.Any())
                    {
                        for (int i = 1; i < 13; i++)
                        {
                            SeriesPie s = new SeriesPie();
                            s.name = i + "月";

                            var month = "";
                            if (i < 10)
                            {
                                month = "0" + i;
                            }
                            else
                            {
                                month = i.ToString();
                            }

                            var teacherHour =
                                teacherLeaveList.Where(
                                    //  e => e.StartDate.StartsWith(SelectYear + month));
                                    e => e.StartDate.StartsWith(SelectYear + "-" + month));

                            if (teacherHour.Any())
                            {
                                s.data = FormateHour((int)teacherHour.Sum(e => e.Hour));

                                serList.Add(s);
                            }
                        }

                        teahcerLeaveViewModel.SeriesPieList = serList;
                    }

                    #endregion
                    break;

                case "请假类型":
                    #region 请假类型

                    teacherLeaveList = oabll.GetLeaveListByTeahcerIdListAndYear(userIdList, SelectYear);

                    if (teacherLeaveList.Any())
                    {
                        var typeList = oabll.GetTypeNameList();

                        for (int i = 0; i < typeList.Count; i++)
                        {
                            SeriesPie s = new SeriesPie();
                            s.name = typeList[i];

                            var teacherHour =
                                teacherLeaveList.Where(
                                    e => e.CJR == typeList[i]);

                            if (teacherHour.Any())
                            {
                                s.data = FormateHour((int)teacherHour.Sum(e => e.Hour));
                                // s.data = FormateHour((int)teacherHour.Sum(e => e.Hour));
                                serList.Add(s);
                            }
                        }

                        teahcerLeaveViewModel.SeriesPieList = serList;
                    }

                    #endregion
                    break;
                }

                if (teacherLeaveList.Any())
                {
                    List <LeaveViewModel> leaveViewModelList = new List <LeaveViewModel>();

                    foreach (var leave in teacherLeaveList)
                    {
                        LeaveViewModel _leaveView = new LeaveViewModel
                        {
                            Date      = leave.StartDate + "—" + leave.EndDate,
                            DayNum    = FormateHour((int)leave.Hour.Value),
                            LeaveType = leave.CJR
                        };
                        leaveViewModelList.Add(_leaveView);
                    }
                    teahcerLeaveViewModel.TeacherLeaveDetailList = leaveViewModelList;
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(Json(teahcerLeaveViewModel, JsonRequestBehavior.AllowGet));
        }
示例#2
0
        /// <summary>
        /// 获取教师请假情况
        /// </summary>
        /// <param name="selectUserID">教师IDs</param>
        /// <param name="selectUserName">教师Names</param>
        /// <param name="SelectYear">年份</param>
        /// <param name="type">按年还是请假类型</param>
        /// <returns></returns>
        public ActionResult GetTeacherLeave(string selectUserID, string selectUserName, string SelectYear, string type)
        {
            var teahcerLeaveViewModel = new TeahcerLeaveViewModel();

            try
            {
                var userIds = selectUserID.Split(',');

                List <Guid?> userIdList = new List <Guid?>();

                var teacherLeaveList = new List <AL_Apply>();

                List <Series> serList = new List <Series>();

                teahcerLeaveViewModel.TeacherNames = selectUserName.Split(',');

                foreach (var uIds in userIds)
                {
                    userIdList.Add(new Guid(uIds));
                }

                switch (type)
                {
                case "年份":
                    #region 年份

                    teacherLeaveList = oabll.GetLeaveListByTeahcerIdListAndYear(userIdList, SelectYear);

                    if (teacherLeaveList.Any())
                    {
                        for (int i = 1; i < 13; i++)
                        {
                            Series s = new Series();
                            s.id   = i;
                            s.type = "column";
                            s.name = i + "月";

                            var month = "";
                            if (i < 10)
                            {
                                month = "0" + i;
                            }
                            else
                            {
                                month = i.ToString();
                            }

                            float?[] d = new float?[userIdList.Count];

                            for (int j = 0; j < userIdList.Count; j++)
                            {
                                var teacherHour =
                                    teacherLeaveList.Where(
                                        e =>
                                        e.ApplicantID == userIdList[j] &&
                                        e.StartDate.StartsWith(SelectYear + "-" + month));
                                //  e.StartDate.StartsWith(SelectYear +"-"+ month));

                                if (teacherHour.Any())
                                {
                                    d[j] = FormateHour((int)teacherHour.Sum(e => e.Hour));
                                }
                                else
                                {
                                    d[j] = 0;
                                }
                            }

                            s.data = d;

                            serList.Add(s);
                        }

                        teahcerLeaveViewModel.SeriesList = serList;
                    }

                    #endregion
                    break;

                case "请假类型":
                    #region 请假类型

                    teacherLeaveList = oabll.GetLeaveListByTeahcerIdListAndYear(userIdList, SelectYear);

                    if (teacherLeaveList.Any())
                    {
                        var typeList = oabll.GetTypeNameList();

                        for (int i = 0; i < typeList.Count; i++)
                        {
                            Series s = new Series();
                            s.id   = i;
                            s.type = "column";
                            s.name = typeList[i];

                            float?[] d = new float?[userIdList.Count];

                            for (int j = 0; j < userIdList.Count; j++)
                            {
                                var teacherHour =
                                    teacherLeaveList.Where(
                                        e =>
                                        e.ApplicantID == userIdList[j] &&
                                        e.CJR == typeList[i]);

                                if (teacherHour.Any())
                                {
                                    d[j] = FormateHour((int)teacherHour.Sum(e => e.Hour));
                                }
                                else
                                {
                                    d[j] = 0;
                                }
                            }

                            s.data = d;

                            serList.Add(s);
                        }

                        teahcerLeaveViewModel.SeriesList = serList;
                    }

                    #endregion
                    break;
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(Json(NewtonsoftJson(teahcerLeaveViewModel)));
        }