/// <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)); }
/// <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))); }