public IActionResult DutiesQuery(string name, string tag, int pageIndex = 0, int pageSize = 20) { var dutiesQuery = _context.Duties.Where(d => d.Name != "NotSet"); if (!name.IsNullOrEmpty()) { dutiesQuery = dutiesQuery.Where(d => d.Name.Contains(name)); } if (!tag.IsNullOrEmpty()) { dutiesQuery = dutiesQuery.Where(d => d.Tags.Contains(tag)); } var result = dutiesQuery.SplitPage(new DAL.QueryModel.QueryByPage() { PageIndex = pageIndex, PageSize = pageSize }); var data = new EntitiesListDataModel <DutyDataModel>() { List = result.Item1.Select(d => d.ToDataModel()), TotalCount = result.Item2 }; return(new JsonResult(new DutiesViewModel() { Data = data })); }
public IActionResult TitleQuery(string name, string tag, int pageIndex = 0, int pageSize = 20) { var dutiesQuery = _context.UserCompanyTitles.Where(d => d.Name != "NotSet"); if (!name.IsNullOrEmpty()) { dutiesQuery = dutiesQuery.Where(d => d.Name.Contains(name)); } if (!tag.IsNullOrEmpty()) { dutiesQuery = dutiesQuery.Where(d => d.TitleType.Contains(tag)); } var result = dutiesQuery.SplitPage(new DAL.QueryModel.QueryByPage() { PageIndex = pageIndex, PageSize = pageSize }); var data = new EntitiesListDataModel <UserTitleDataModel>() { List = result.Item1.OrderByDescending(d => d.Level).Select(d => d.ToDataModel()), TotalCount = result.Item2 }; return(new JsonResult(new UserTitlesViewModel() { Data = data })); }
public IActionResult ListOfMyAudit(int pageIndex = 0, int pageSize = 20, string status = null, int?MainStatus = null, string actionStatus = null, string executeStatus = null, string entityType = null) { var pages = new QueryByPage() { PageIndex = pageIndex, PageSize = pageSize }; var c = currentUserService.CurrentUser; var item = new { pages, status, actionStatus, executeStatus }; var ua = userActionServices.Log(UserOperation.AuditApply, c.Id, $"本人审批:{JsonConvert.SerializeObject(item)}", true, ActionRank.Infomation); var statusArr = status?.Split("##")?.Select(i => Convert.ToInt32(i)); IQueryable <IAppliable> r = entityType == "vacation"? context.AppliesDb:context.AppliesIndayDb; //.Where(a => a.NowAuditStep.MembersFitToAudit.Contains(c.Id)); if (statusArr != null && statusArr.Any()) { r = r.Where(a => statusArr.Contains((int)a.Status)); // 查出所有状态符合的 } if (MainStatus != null) { r = r.Where(a => (int)a.MainStatus == MainStatus); } r = r.Where(a => a.ApplyAllAuditStep.Any(s => s.MembersFitToAudit.Contains(c.Id))); // 查出所有涉及本人的 if (executeStatus != null) { _ = int.TryParse(executeStatus, out var executeStatusInt); r = r.Where(a => (int)a.ExecuteStatus == executeStatusInt); } if (actionStatus != null) { switch (actionStatus.ToLower()) { case "accept": { r = r.Where(a => a.Response.Any(res => res.AuditingBy.Id == c.Id && res.Status == Auditing.Accept)); break; } case "deny": { r = r.Where(a => a.Response.Any(res => res.AuditingBy.Id == c.Id && res.Status == Auditing.Denied)); break; } case "unreceive": { r = r.Where(a => a.Status == AuditStatus.AcceptAndWaitAdmin || a.Status == AuditStatus.Auditing); // 当前处于审批中的 r = r.Where(a => a.Response.All(res => res.AuditingBy.Id != c.Id)); // 我没有进行审批的 r = r.Where(a => a.NowAuditStep != null).Where(a => !a.NowAuditStep.MembersFitToAudit.Contains(c.Id)); // 并且当前页不该我审批的 break; } case "received": { r = r.Where(a => a.Status == AuditStatus.AcceptAndWaitAdmin || a.Status == AuditStatus.Auditing); // 当前处于审批中的 r = r.Where(a => a.NowAuditStep != null).Where(a => a.NowAuditStep.MembersFitToAudit.Contains(c.Id)); // 并且当前页该我审批的 r = r.Where(a => !a.NowAuditStep.MembersAcceptToAudit.Contains(c.Id)); // 并且当前我没有审核的 break; } default: return(new JsonResult(ActionStatusMessage.ApplyMessage.Operation.Default)); } } //r = r.Where(a => !a.NowAuditStep.MembersAcceptToAudit.Contains(c.Id)); var list = r.OrderByDescending(a => a.Create).ThenByDescending(a => a.Status); var result = list.SplitPage(pages); var ids = result.Item1.Select(i => i.Id); if (entityType == "vacation") { var result_items = result.Item1.ToList()?.Select(a => a.ToSummaryDto(((DAL.Entities.ApplyInfo.Apply)a).RequestInfo)); var f_result = new EntitiesListDataModel <ApplySummaryDto <ApplyRequest> >(result_items, result.Item2); return(new JsonResult(f_result)); } else { var result_items = result.Item1.ToList()?.Select(a => a.ToSummaryDto(((ApplyInday)a).RequestInfo)); var f_result = new EntitiesListDataModel <ApplySummaryDto <ApplyIndayRequest> >(result_items, result.Item2); return(new JsonResult(f_result)); } }