/// <summary> /// 取得使用者列表 /// </summary> /// <param name="searchModel"></param> /// <param name="pagination"></param> /// <returns></returns> public async Task <JsonResult> GetUserList(UserSearchModel searchModel, PaginationViewModel pagination) { ResWithPaginationViewModel res = new ResWithPaginationViewModel(); try { var result = await _userService.GetUserList(searchModel, pagination); res.Data = result.Data; res.Pagination = result.Pagination; res.MinDateTime = result.MinDateTime; res.MaxDateTime = result.MaxDateTime; res.Success = true; res.Message = "取得權限管理列表成功"; res.HttpStatusCode = System.Net.HttpStatusCode.OK; //await _backOperationService.CreateBackOperation(CurrendUserid, OperationName + "查詢", CurrendUserIp); } catch { res.Success = false; res.Message = "與伺服器連線發生錯誤"; res.HttpStatusCode = System.Net.HttpStatusCode.InternalServerError; } res.ResponseTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); return(Json(res, JsonRequestBehavior.AllowGet)); }
/// <summary> /// 取得彙總紀錄列表 /// </summary> /// <param name="searchModel"></param> /// <returns></returns> public async Task <ResponseViewModel> GetTotalRecordList(SearchModel searchModel) { ResponseViewModel res = new ResWithPaginationViewModel(); List <Check_AllViewModel> check_All = new List <Check_AllViewModel>(); try { var year = searchModel.StartDateTime.Year; var month = searchModel.StartDateTime.Month; var query = from a in _check_all.GetAll() join b in _user.GetAll() on a.ur_id equals b.ur_id into user from b in user.DefaultIfEmpty() where a.ca_ya == year && a.ca_mo == month && !string.IsNullOrEmpty(b.ur_id) select new Check_AllViewModel { ca_sn = a.ca_sn, ur_id = a.ur_id, ca_ya = a.ca_ya, ca_mo = a.ca_mo, ca_dy = a.ca_dy, ca_on = a.ca_on, ca_hr = a.ca_hr, ur_ac = b.ur_ac, ca_hr_avg = Math.Round((a.ca_hr * 1.00) / (a.ca_on * 1.00), 1) }; if (query.Any()) { if (!string.IsNullOrEmpty(searchModel.Query)) { var QueryString = searchModel.Query.Trim().ToLower(); query = query.Where(x => x.ur_ac.Trim().ToLower().Contains(QueryString)); } check_All = query.ToList(); res.Data = check_All; res.Success = true; res.Message = "取得彙總紀錄成功"; } } catch { res.Success = false; res.Message = "取得彙總紀錄失敗"; } return(await Task.Run(() => res)); }
/// <summary> /// 取得彙總紀錄列表 /// </summary> /// <param name="searchModel"></param> /// <returns></returns> public async Task <JsonResult> GetTotalRecord(SearchModel searchModel) { ResWithPaginationViewModel res = new ResWithPaginationViewModel(); try { var result = await _totalService.GetTotalRecordList(searchModel); res.Data = result.Data; res.Success = result.Success; res.Message = result.Message; res.HttpStatusCode = System.Net.HttpStatusCode.OK; } catch { res.Success = false; res.Message = "與伺服器連線發生錯誤"; res.HttpStatusCode = System.Net.HttpStatusCode.InternalServerError; } res.ResponseTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); return(Json(res, JsonRequestBehavior.AllowGet)); }
public async Task <JsonResult> GetCheckRecord(SearchCheckModel model, PaginationViewModel pagination) { ResWithPaginationViewModel res = new ResWithPaginationViewModel(); try { var result = await _checkRecord.GetCheckRecord(model, pagination); res.Data = result.Data; res.Pagination = result.Pagination; res.Message = result.Message; res.Success = result.Success; res.HttpStatusCode = System.Net.HttpStatusCode.OK; } catch { res.Message = "與伺服器連線發生錯誤"; res.Success = false; res.HttpStatusCode = System.Net.HttpStatusCode.InternalServerError; } res.ResponseTime = DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"); return(Json(res, JsonRequestBehavior.DenyGet)); }
/// <summary> /// 取得帳號權限管理列表 /// </summary> /// <param name="searchModel"></param> /// <param name="pagination"></param> /// <returns></returns> public async Task <ResWithPaginationViewModel> GetUserList(UserSearchModel searchModel, PaginationViewModel pagination) { ResWithPaginationViewModel pageData = new ResWithPaginationViewModel(); List <UserViewModel> userlist = new List <UserViewModel>(); var query = from a in _db.user select new UserViewModel { ur_sn = a.ur_sn, ur_id = a.ur_id, ur_ac = a.ur_ac, ur_pw = a.ur_pw, ur_ct = a.ur_ct, ur_is = a.ur_is, ur_im = a.ur_im }; pageData.MaxDateTime = query.OrderByDescending(x => x.ur_ct).FirstOrDefault().ur_ct; pageData.MinDateTime = query.OrderBy(x => x.ur_ct).FirstOrDefault().ur_ct; if (searchModel.StartDateTime != null) { query = query.Where(x => x.ur_ct >= searchModel.StartDateTime); } if (searchModel.EndDateTime != null) { query = query.Where(x => x.ur_ct <= searchModel.EndDateTime); } if (!string.IsNullOrEmpty(searchModel.Query)) { switch (searchModel.SearchEnum) { case 0: query = query.Where(x => x.ur_ac.ToLower().Trim().Contains(searchModel.Query)); break; default: break; } } var _TotalCount = query.Count(); pageData.Pagination = new PaginationViewModel { PerPage = pagination.PerPage, CurrentPage = pagination.CurrentPage, TotalCounts = _TotalCount }; query = query .OrderByDescending(x => x.ur_ct) .Skip(pagination.GetSkipLength()) .Take(pagination.PerPage); if (query.Any()) { var list = query.OrderByDescending(x => x.ur_ct).ToList(); userlist = list; } pageData.Data = userlist; pageData.Success = true; return(await Task.Run(() => pageData)); }
/// <summary> /// 取得打卡列表 /// </summary> /// <param name="model"></param> /// <param name="pagination"></param> /// <returns></returns> public async Task <ResWithPaginationViewModel> GetCheckRecord(SearchCheckModel model, PaginationViewModel pagination) { ResWithPaginationViewModel pageData = new ResWithPaginationViewModel(); List <CheckRecordViewModel> check_inList = new List <CheckRecordViewModel>(); try { var query = from a in _check_in.GetAll() join b in _user.GetAll() on a.ur_id equals b.ur_id where a.ci_da >= model.StartDateTime && a.ci_da <= model.EndDateTime select new CheckRecordViewModel { ci_sn = a.ci_sn, ur_id = a.ur_id, ci_da = a.ci_da, ci_ut = a.ci_ut, ci_dt = a.ci_dt, ur_ac = b.ur_ac, ci_ct = a.ci_ct, Remark = a.Remark, ci_hr = a.ci_hr }; if (!string.IsNullOrEmpty(model.Query)) { var QueryString = model.Query.ToLower().Trim(); query = query.Where(x => x.ur_ac.ToLower().Trim().Contains(QueryString)); } if (!string.IsNullOrEmpty(model.ur_id)) { query = query.Where(x => x.ur_id == model.ur_id); } var _TotalCount = query.Count(); pageData.Pagination = new PaginationViewModel { PerPage = pagination.PerPage, CurrentPage = pagination.CurrentPage, TotalCounts = _TotalCount }; query = query .OrderByDescending(x => x.ci_da) .Skip(pagination.GetSkipLength()) .Take(pagination.PerPage); if (query.Any()) { check_inList = query.OrderByDescending(x => x.ci_da).ToList(); pageData.Data = check_inList; pageData.Success = true; pageData.Message = "取得打卡紀錄成功"; } else { pageData.Success = true; pageData.Message = "尚未有任何打卡紀錄"; } } catch { pageData.Success = false; pageData.Message = "取得打卡紀錄失敗"; } return(await Task.Run(() => pageData)); }