Esempio n. 1
0
        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
            }));
        }
Esempio n. 2
0
        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));
            }
        }