public PagedResultDto <CostAccountOut> GetCostAccountByPage(CostAccountInput queryModel) { var dic = EnumHelper.GetValueAndDesc <CommonEnum.EnumCostAccountSplitStep>(); #region expression表达式 var expression = Expression(queryModel); #endregion var pageModels = _costAccountRepository.PageListSelect(expression, s => new CostAccountOut() { POCode = s.POCode, POLineNum = s.POLineNum, DepartID = s.DepartID, DepartNamePath = s.DepathNamePath, Period = s.Period, Amount = s.Amount, ProjectName = s.ProjectName, CompanyCode = s.CompanyCode, CompanyName = s.CompanyName, ContentType = s.ContentType, ContentTypeName = s.ContentTypeName, SubjectCode = s.SubjectCode, SubjectName = s.SubjectName, SecondSubjectCode = s.SecondSubjectCode, SecondSubjetName = s.SecondSubjetName, Step = s.Step, StepName = dic[s.Step] }, queryModel.CurrentPage, queryModel.PageSize , new Tuple <Expression <Func <CostAccount, object> >, SortOrder>(s => s.POCode, SortOrder.Descending) , new Tuple <Expression <Func <CostAccount, object> >, SortOrder>(s => s.POLineNum, SortOrder.Ascending)); return(new PagedResultDto <CostAccountOut>(pageModels.Total, pageModels.Items)); }
private static Expression <Func <CostAccount, bool> > Expression(CostAccountInput queryModel) { Expression <Func <CostAccount, bool> > expression = s => s.Status == 0; if (!string.IsNullOrEmpty(queryModel.Period)) { expression = expression.And(s => s.Period == queryModel.Period); } if (!string.IsNullOrEmpty(queryModel.POCode)) { expression = expression.And(s => s.POCode == queryModel.POCode); } if (!string.IsNullOrEmpty(queryModel.ProjectName)) { expression = expression.And(s => s.ProjectName.Contains(queryModel.ProjectName)); } if (!string.IsNullOrEmpty(queryModel.DepathNamePath)) { expression = expression.And(s => s.DepathNamePath.Contains(queryModel.DepathNamePath)); } if (queryModel.SubjectCode != -1) { expression = expression.And(s => s.SubjectCode == queryModel.SubjectCode); } if (queryModel.SecondSubjectCode != 0 && queryModel.SecondSubjectCode != -99) { expression = expression.And(s => s.SecondSubjectCode == queryModel.SecondSubjectCode); } if (queryModel.Step != 0) { expression = expression.And(s => s.Step == queryModel.Step); } return(expression); }
public JsonResult GetListDatas(CostAccountInput queryModel) { var model = _purchaseOrderService.GetCostAccountByPage(queryModel); return(Json(new JsonFlagPage(queryModel.Draw, model.TotalCount, model.Items))); }