public List <MoneyApplyModel> GetPMAList(MoneyApplyFilter filter, out int total, bool isPage = true) { using (DataProvider dp = new DataProvider()) { var list = data.GetPMAList(dp, filter, out total, isPage); return(list); } }
public ActionResult GetList(MoneyApplyFilter filter) { if (filter.ListType == ListType.Personal) { filter.CreateUserId = CurrentUser.Id; } if (filter.ListType == ListType.Auditor) { filter.AuditUserId = CurrentUser.Id; } var data = business.GetPMAList(filter, out int total); return(Json(new TableDataModel(total, data))); }
public List <MoneyApplyModel> GetPMAList(DataProvider dp, MoneyApplyFilter filter, out int total, bool IsPage = true) { var list = from pma in dp.PM_MoneyApply.Where(m => !m.IsDel) join su1 in dp.System_User.Where(m => m.IsDel == false) on pma.CreateUser equals su1.Id join su2 in dp.System_User.Where(m => m.IsDel == false) on pma.AuditUser equals su2.Id into su2c from su2ci in su2c.DefaultIfEmpty() select new MoneyApplyModel { Id = pma.Id, ApplyReason = pma.ApplyReason, AuditReason = pma.AuditReason, AuditStatus = pma.AuditStatus, AuditTime = pma.AuditTime, AuditUser = pma.AuditUser, AuditUserName = su2ci.TrueName, CreateTime = pma.CreateTime, CreateUser = pma.CreateUser, CreateUserName = su1.TrueName, Amount = pma.Amount, UpdateTime = pma.UpdateTime, UpdateUser = pma.UpdateUser }; if (filter.AuditStatus.IsNotNullAndCountGtZero()) { list = list.Where(m => filter.AuditStatus.Contains(m.AuditStatus)); } if (filter.CreateUserName.IsNotNullOrWhiteSpace()) { list = list.Where(m => m.CreateUserName.Contains(filter.CreateUserName)); } if (filter.AuditUserName.IsNotNullOrWhiteSpace()) { list = list.Where(m => m.AuditUserName.Contains(filter.AuditUserName)); } if (filter.CreateUserId.HasValue) { list = list.Where(m => m.CreateUser == filter.CreateUserId); } if (filter.AuditUserId.HasValue) { list = list.Where(m => dp.PM_AuditUser.Where(x => x.ApplyId == m.Id) .Select(x => x.AuditId) .Contains(filter.AuditUserId) || dp.PM_Employee.Where(x => (dp.PM_AuditUser.Where(y => y.ApplyId == m.Id) .Select(y => y.AuditId)).Contains(x.DepartmentId)) .Select(x => x.RelateUserId) .Contains(filter.AuditUserId)); } if (filter.CreateBeginTime.HasValue) { list = list.Where(m => m.CreateTime >= filter.CreateBeginTime.Value); } if (filter.CreateEndTime.HasValue) { list = list.Where(m => m.CreateTime <= filter.CreateEndTime.Value); } if (filter.AuditBeginTime.HasValue) { list = list.Where(m => m.AuditTime >= filter.AuditBeginTime.Value); } if (filter.AuditEndTime.HasValue) { list = list.Where(m => m.AuditTime <= filter.AuditEndTime.Value); } list = list.OrderBy(m => m.CreateTime); total = list.Count(); if (IsPage) { return(list.Skip(filter.Skip).Take(filter.PageSize).ToList()); } else { return(list.ToList()); } }