public PaginationData <GetMemorabiliaRecordListOutput> Get(int?projectId, int pageIndex, int pageSize, string keyword, string sortField, string sortState ) { var query = _recordRepository.Get() .Include(u => u.Category) .Include(u => u.Project) .Where(u => u.State == DataState.Stable); var userId = _authInfoProvider.GetCurrent()?.User?.Id ?? 0; #region query conditions if (!string.IsNullOrEmpty(keyword)) { query = query.Where(u => u.Name.Contains(keyword) || u.Description.Contains(keyword)); } if (!string.IsNullOrEmpty(projectId.ToString())) { query = query.Where(u => u.ProjectId == projectId); } //sortState 1降序2升序0默认 if (!string.IsNullOrEmpty(sortField) && !string.IsNullOrEmpty(sortState)) { switch (sortField) { case "CategoryId": //事项类型 query = sortState == "1" ? query.OrderByDescending(u => u.CategoryId) : sortState == "2" ? query.OrderBy(u => u.CategoryId) : query.OrderByDescending(u => u.CreateTime); break; case "Name": //事项名称 query = sortState == "1" ? query.OrderByDescending(u => u.Name) : sortState == "2" ? query.OrderBy(u => u.Name) : query.OrderByDescending(u => u.CreateTime); break; case "Participant": //参与人员 query = sortState == "1" ? query.OrderByDescending(u => u.Participant) : sortState == "2" ? query.OrderBy(u => u.Participant) : query.OrderByDescending(u => u.CreateTime); break; case "CreateTime": //创建时间 query = sortState == "1" ? query.OrderByDescending(u => u.CreateTime) : sortState == "2" ? query.OrderBy(u => u.CreateTime) : query.OrderByDescending(u => u.CreateTime); break; default: query = query.OrderByDescending(u => u.CreateTime); break; } } else { query = query.OrderByDescending(u => u.CreateTime); } #endregion var paging = PaginationDataHelper.WrapData <MemorabiliaRecord, T>(query, pageIndex, pageSize).TransferTo <GetMemorabiliaRecordListOutput>(); paging.Data.ForEach(u => u.HasPermission = _projectHelper.HasPermission("大事记负责人", u.ProjectId)); return(paging); }
public PaginationData <GetProcessDefinitionListOutput> Get(int pageIndex, int pageSize, string keyword, Expression <Func <Wf_Re_ProcessDefinition, bool> > extraCondition) { var userId = _authInfoProvider.GetCurrent().User.Id; var queryForUserRole = _userRepository.Get().Where(u => u.Id == userId).SelectMany(u => u.UserRoles); var queryForRolePf = _roleProcessDefinitionRepository.Get().Where(u => queryForUserRole.Any(v => v.RoleId == u.RoleId)); var query = _processDefinitionRepository.Get().Where(u => u.CreatorId == userId || queryForRolePf.Any(v => v.ProcessDefinitionId == u.Id)); if (!string.IsNullOrEmpty(keyword)) { query = query.Where(u => u.Name.Contains(keyword) || u.Category.Contains(keyword) || u.Description.Contains(keyword)); } if (extraCondition != null) { query = query.Where(extraCondition); } query = query.GroupBy(u => u.Name).Select(u => u.OrderByDescending(v => v.Version).First()); var queryForRolePfAll = _roleProcessDefinitionRepository.Get(); var queryJoinRole = query.GroupJoin(queryForRolePfAll, u => u.Id, v => v.ProcessDefinitionId, (u, v) => new ProcessDefinitionWithRole { ProcessDefinition = u, RoleNames = v.Select(w => w.Role.Name) }); return(PaginationDataHelper.WrapData(queryJoinRole, pageIndex, pageSize, u => u.ProcessDefinition.CreateTime).TransferTo <GetProcessDefinitionListOutput>( u => { var output = u.ProcessDefinition.MapTo <GetProcessDefinitionListOutput>(); output.Remark = string.Join(",", u.RoleNames); return output; } )); }
public PaginationData <GetMonthlyProgressListOutput> Get(int pageIndex, int pageSize, int?projectId, string keyword, string sortField, string sortState) { IQueryable <MonthlyProgress> query = _progressRepository.Get() .Where(u => u.DataState == DataState.Stable); if (!string.IsNullOrEmpty(keyword)) { query = query.Where(u => u.Project.Name.Contains(keyword)); } if (projectId != null) { query = query.Where(u => u.ProjectId == projectId); } //sortState 1降序2升序0默认 if (!string.IsNullOrEmpty(sortField) && !string.IsNullOrEmpty(sortState)) { switch (sortField) { case "Year": //年份 query = sortState == "1" ? query.OrderByDescending(u => u.RecordDate) : sortState == "2" ? query.OrderBy(u => u.RecordDate) : query.OrderByDescending(u => u.CreateTime); break; case "Month": //月份 query = sortState == "1" ? query.OrderByDescending(u => u.RecordDate) : sortState == "2" ? query.OrderBy(u => u.RecordDate) : query.OrderByDescending(u => u.CreateTime); break; case "CompletedDemolitionFee": //本月完成征拆费 query = sortState == "1" ? query.OrderByDescending(u => u.CompletedDemolitionFee) : sortState == "2" ? query.OrderBy(u => u.CompletedDemolitionFee) : query.OrderByDescending(u => u.CreateTime); break; case "CompletedProjectCosts": //本月完成工程费 query = sortState == "1" ? query.OrderByDescending(u => u.CompletedProjectCosts) : sortState == "2" ? query.OrderBy(u => u.CompletedProjectCosts) : query.OrderByDescending(u => u.CreateTime); break; case "Zhong": //本月完成投资 query = sortState == "1" ? query.OrderByDescending(u => u.CompletedDemolitionFee) : sortState == "2" ? query.OrderBy(u => u.CompletedDemolitionFee) : query.OrderByDescending(u => u.CreateTime); query = sortState == "1" ? query.OrderByDescending(u => u.CompletedProjectCosts) : sortState == "2" ? query.OrderBy(u => u.CompletedProjectCosts) : query.OrderByDescending(u => u.CreateTime); break; default: query = query.OrderByDescending(u => u.CreateTime); break; } } else { query = query.OrderByDescending(u => u.CreateTime); } var paging = PaginationDataHelper.WrapData <MonthlyProgress, T>(query, pageIndex, pageSize).TransferTo <GetMonthlyProgressListOutput>(); paging.Data.ForEach(u => _projectHelper.HasPermission("投资信息负责人", u.ProjectId)); return(paging); }
public PaginationData <GetRecordListOutput> Get(int pageIndex, int pageSize, int projectId, int?typeId, string keyword, string sortField, string sortState) { IQueryable <Record> query = _recordRepository.Get() .Include(u => u.RecordType) .Include(u => u.Attachments).ThenInclude(u => u.FileMeta) .Where(u => u.DataState == DataState.Stable && u.ProjectId == projectId); if (!string.IsNullOrEmpty(keyword)) { query = query.Where(u => u.RecordName.Contains(keyword)); } if (typeId != null) { query = query.Where(u => u.RecordTypeId == typeId); } //sortState 1降序2升序0默认 if (!string.IsNullOrEmpty(sortField) && !string.IsNullOrEmpty(sortState)) { switch (sortField) { case "RecordTypeId": //档案类型 query = sortState == "1" ? query.OrderByDescending(u => u.RecordTypeId) : sortState == "2" ? query.OrderBy(u => u.RecordTypeId) : query.OrderByDescending(u => u.CreateTime); break; case "RecordName": //档案名称 query = sortState == "1" ? query.OrderByDescending(u => u.RecordName) : sortState == "2" ? query.OrderBy(u => u.RecordName) : query.OrderByDescending(u => u.CreateTime); break; case "Description": //描述 query = sortState == "1" ? query.OrderByDescending(u => u.Description) : sortState == "2" ? query.OrderBy(u => u.Description) : query.OrderByDescending(u => u.CreateTime); break; case "CreateTime": //创建时间 query = sortState == "1" ? query.OrderByDescending(u => u.CreateTime) : sortState == "2" ? query.OrderBy(u => u.CreateTime) : query.OrderByDescending(u => u.CreateTime); break; case "Attachments": //附件 query = sortState == "1" ? query.OrderByDescending(u => u.Attachments.Any(v => v.FileMetaId > 0)) : sortState == "2" ? query.OrderBy(u => u.Attachments.Any(v => v.FileMetaId > 0)) : query.OrderByDescending(u => u.CreateTime); break; default: query = query.OrderByDescending(u => u.CreateTime); break; } } else { query = query.OrderByDescending(u => u.CreateTime); } return(PaginationDataHelper.WrapData <Record, T>(query, pageIndex, pageSize).TransferTo <GetRecordListOutput>()); }
public PaginationData <GetContractPaymentOutput> Get(int?contractId, int pageIndex, int pageSize, string keyword, string sortField, string sortState ) { var query = _contractPaymentRepository.Get() .Include(u => u.Contract) .Where(u => u.State == DataState.Stable); // var userId = _authInfoProvider.GetCurrent()?.User?.Id ?? 0; #region query conditions if (!string.IsNullOrEmpty(contractId.ToString())) { query = query.Where(u => u.ContractId == contractId); } if (!string.IsNullOrEmpty(keyword)) { query = query.Where(u => u.Contract.Name.Contains(keyword) || u.Contract.ContractNumber.Contains(keyword) || u.PaymentNumber.Contains(keyword) || u.PaymentType.Contains(keyword) ); } //sortState 1降序2升序0默认 if (!string.IsNullOrEmpty(sortField) && !string.IsNullOrEmpty(sortState)) { switch (sortField) { case "PaidAmount": //支付金额 query = sortState == "1" ? query.OrderByDescending(u => u.PaidAmount) : sortState == "2" ? query.OrderBy(u => u.PaidAmount) : query.OrderByDescending(u => u.CreateTime); break; default: query = query.OrderByDescending(u => u.CreateTime); break; } } else { query = query.OrderByDescending(u => u.CreateTime); } #endregion return(PaginationDataHelper.WrapData <ContractPayment, T>(query, pageIndex, pageSize).TransferTo <GetContractPaymentOutput>()); }
public PaginationData <GetWeeklyProgressListOutput> Get(int pageIndex, int pageSize, int?projectId, string keyword, string sortField, string sortState) { IQueryable <WeeklyProgress> query = _progressRepository.Get().Include(u => u.Attachments).ThenInclude(w => w.FileMeta) .Where(u => u.DataState == DataState.Stable); if (!string.IsNullOrEmpty(keyword)) { query = query.Where(u => u.Project.Name.Contains(keyword)); } if (projectId != null) { query = query.Where(u => u.ProjectId == projectId); } //sortState 1降序2升序0默认 if (!string.IsNullOrEmpty(sortField) && !string.IsNullOrEmpty(sortState)) { switch (sortField) { case "AddDate": //新增时间 query = sortState == "1" ? query.OrderByDescending(u => u.AddDate) : sortState == "2" ? query.OrderBy(u => u.AddDate) : query.OrderByDescending(u => u.CreateTime); break; case "Information": //详细信息 query = sortState == "1" ? query.OrderByDescending(u => u.Information) : sortState == "2" ? query.OrderBy(u => u.Information) : query.OrderByDescending(u => u.CreateTime); break; case "Attachments": //附件 query = sortState == "1" ? query.OrderByDescending(u => u.Attachments.Any(v => v.FileMetaId > 0)) : sortState == "2" ? query.OrderBy(u => u.Attachments.Any(v => v.FileMetaId > 0)) : query.OrderByDescending(u => u.CreateTime); break; default: query = query.OrderByDescending(u => u.CreateTime); break; } } else { query = query.OrderByDescending(u => u.CreateTime); } var paging = PaginationDataHelper.WrapData <WeeklyProgress, T>(query, pageIndex, pageSize).TransferTo <GetWeeklyProgressListOutput>(); paging.Data.ForEach(u => _projectHelper.HasPermission("进度填报负责人", u.ProjectId)); return(paging); }
public PaginationData <GetSafetyStandardOutput> Get(int pageIndex, int pageSize, int?categoryId, string keyword, string sortField, string sortState) { IQueryable <SafetyStandard> query = _standardRepository.Get() .Include(u => u.Category) .Include(u => u.Attachments).ThenInclude(w => w.FileMeta); if (categoryId != null) { query = query.Where(u => u.CategoryId == categoryId); } if (!string.IsNullOrEmpty(keyword)) { query = query.Where(u => u.Title.Contains(keyword)); } //sortState 1降序2升序0默认 if (!string.IsNullOrEmpty(sortField) && !string.IsNullOrEmpty(sortState)) { switch (sortField) { case "CategoryId": //标准分类 query = sortState == "1" ? query.OrderByDescending(u => u.CategoryId) : sortState == "2" ? query.OrderBy(u => u.CategoryId) : query.OrderByDescending(u => u.CreateTime); break; case "Title": //标题 query = sortState == "1" ? query.OrderByDescending(u => u.Title) : sortState == "2" ? query.OrderBy(u => u.Title) : query.OrderByDescending(u => u.CreateTime); break; case "Attachments": //附件 query = sortState == "1" ? query.OrderByDescending(u => u.Attachments.Any(v => v.FileMetaId > 0)) : sortState == "2" ? query.OrderBy(u => u.Attachments.Any(v => v.FileMetaId > 0)) : query.OrderByDescending(u => u.CreateTime); break; default: query = query.OrderByDescending(u => u.CreateTime); break; } } else { query = query.OrderByDescending(u => u.CreateTime); } return(PaginationDataHelper.WrapData <SafetyStandard, T>(query, pageIndex, pageSize).TransferTo <GetSafetyStandardOutput>()); }
public PaginationData <GetQualityProblemListOutput> Get(int?projectId, int pageIndex, int pageSize, RectificationState?rectificationState, string keyword, int?categoryId, string sortField, string sortState ) { var query = _problemRepository.Get() .Include(u => u.Project) .Include(u => u.Category) .Where(u => u.State == DataState.Stable); var userId = _authInfoProvider.GetCurrent()?.User?.Id ?? 0; #region query conditions if (categoryId != null) { query = query.Where(u => u.CategoryId == categoryId); } if (rectificationState != null) { query = query.Where(u => u.RectificationState == rectificationState); } if (!string.IsNullOrEmpty(keyword)) { query = query.Where(u => u.Project.Name.Contains(keyword) || u.Project.No.Contains(keyword) || u.Source.Contains(keyword) || u.Description.Contains(keyword) ); } if (!string.IsNullOrEmpty(projectId.ToString())) { query = query.Where(u => u.ProjectId == projectId); } //sortState 1降序2升序0默认 if (!string.IsNullOrEmpty(sortField) && !string.IsNullOrEmpty(sortState)) { switch (sortField) { case "CategoryId": //质量问题分类 query = sortState == "1" ? query.OrderByDescending(u => u.CategoryId) : sortState == "2" ? query.OrderBy(u => u.CategoryId) : query.OrderByDescending(u => u.CreateTime); break; case "Source": //质量问题来源 query = sortState == "1" ? query.OrderByDescending(u => u.Source) : sortState == "2" ? query.OrderBy(u => u.Source) : query.OrderByDescending(u => u.CreateTime); break; case "CreateTime": //创建时间 query = sortState == "1" ? query.OrderByDescending(u => u.CreateTime) : sortState == "2" ? query.OrderBy(u => u.CreateTime) : query.OrderByDescending(u => u.CreateTime); break; case "RectificationState": //整改情况 query = sortState == "1" ? query.OrderByDescending(u => u.RectificationState) : sortState == "2" ? query.OrderBy(u => u.RectificationState) : query.OrderByDescending(u => u.CreateTime); break; case "CompletionTime": //整改完成时间 query = sortState == "1" ? query.OrderByDescending(u => u.CompletionTime) : sortState == "2" ? query.OrderBy(u => u.CompletionTime) : query.OrderByDescending(u => u.CreateTime); break; default: query = query.OrderByDescending(u => u.CreateTime); break; } } else { query = query.OrderByDescending(u => u.CreateTime); } #endregion var paging = PaginationDataHelper.WrapData <QualityProblem, T>(query, pageIndex, pageSize).TransferTo <GetQualityProblemListOutput>(); paging.Data.ForEach(u => u.HasPermission = _projectHelper.HasPermission("质量信息负责人", u.ProjectId)); return(paging); }
public PaginationData <GetProjectListOutput> Get(int pageIndex, int pageSize, string keyword, string address, int?typeId, string Name, string No, int?projectNatureId, int?stateId, int?projectLeaderId, int?generalEstimateL, int?generalEstimateR, DateTime?commencementDateL, DateTime?commencementDateR, string sortField, string sortState ) { var currentUserId = _authInfoProvider.GetCurrent().User.Id; var currentUnitUserIds = _userUnitRepository.Get() .Where(v => _userUnitRepository.Get().Where(u => u.UserId == currentUserId).Any(u => u.OrganizationUnitId == v.OrganizationUnitId)).Select(u => u.UserId).ToList(); var privilegedPersonIds = AuthorizationContext.Instance.GetPrivilegedPersonIds("项目信息"); IQueryable <Project> query = _projectRepository.Get() .Include(u => u.Location) .Include(u => u.State) .Include(u => u.Type) .Include(u => u.ProjectNature) .Include(u => u.Members) .Where(u => u.DataState == DataState.Stable && (u.Members.Any(v => v.UserId == currentUserId) || u.CreatorId == currentUserId || currentUnitUserIds.Contains(u.CreatorId) || privilegedPersonIds.Contains(currentUserId)) ); if (!string.IsNullOrEmpty(keyword)) { query = query.Where(u => u.Name.Contains(keyword) || u.No.Contains(keyword)); } if (!string.IsNullOrEmpty(address)) { query = query.Where(u => (string.Concat(u.Location.Province, u.Location.City, u.Location.District, u.Location.Town, u.Location.Street, u.Location.AddressDetail).Contains(address))); } if (!string.IsNullOrEmpty(No)) { query = query.Where(u => u.No.Contains(No)); } if (!string.IsNullOrEmpty(Name)) { query = query.Where(u => u.Name.Contains(Name)); } if (stateId != null) { query = query.Where(u => u.StateId == stateId); } if (typeId != null) { query = query.Where(u => u.TypeId == typeId); } if (projectNatureId != null) { query = query.Where(u => u.ProjectNatureId == projectNatureId); } if (projectLeaderId != null) { query = query.Where(u => u.Members.Any(v => v.ProjectRole == "项目负责人" && v.UserId == projectLeaderId)); } if (generalEstimateL != null) { query = query.Where(u => u.GeneralEstimate >= generalEstimateL); } if (generalEstimateR != null) { query = query.Where(u => u.GeneralEstimate <= generalEstimateR); } if (commencementDateL != null) { query = query.Where(u => u.CommencementDate >= commencementDateL); } if (commencementDateR != null) { query = query.Where(u => u.CommencementDate <= commencementDateR); } //sortState 1降序2升序0默认 if (!string.IsNullOrEmpty(sortField) && !string.IsNullOrEmpty(sortState)) { switch (sortField) { case "No": //项目编号 query = sortState == "1" ? query.OrderByDescending(u => u.No) : sortState == "2" ? query.OrderBy(u => u.No) : query.OrderByDescending(u => u.CreateTime); break; case "Name": //项目名称 query = sortState == "1" ? query.OrderByDescending(u => u.Name) : sortState == "2" ? query.OrderBy(u => u.Name) : query.OrderByDescending(u => u.CreateTime); break; case "TypeId": //项目类型 query = sortState == "1" ? query.OrderByDescending(u => u.TypeId) : sortState == "2" ? query.OrderBy(u => u.TypeId) : query.OrderByDescending(u => u.CreateTime); break; case "ProjectNatureId": //项目性质 query = sortState == "1" ? query.OrderByDescending(u => u.ProjectNatureId) : sortState == "2" ? query.OrderBy(u => u.ProjectNatureId) : query.OrderByDescending(u => u.CreateTime); break; case "StateId": //项目状态 query = sortState == "1" ? query.OrderByDescending(u => u.StateId) : sortState == "2" ? query.OrderBy(u => u.StateId) : query.OrderByDescending(u => u.CreateTime); break; case "GeneralEstimate": //项目概算 query = sortState == "1" ? query.OrderByDescending(u => u.GeneralEstimate) : sortState == "2" ? query.OrderBy(u => u.GeneralEstimate) : query.OrderByDescending(u => u.CreateTime); break; case "CommencementDate": //开工时间 query = sortState == "1" ? query.OrderByDescending(u => u.CommencementDate) : sortState == "2" ? query.OrderBy(u => u.CommencementDate) : query.OrderByDescending(u => u.CreateTime); break; case "CreatorId": //发布人 query = sortState == "1" ? query.OrderByDescending(u => u.CreatorId) : sortState == "2" ? query.OrderBy(u => u.CreatorId) : query.OrderByDescending(u => u.CreateTime); break; case "UserId": //项目负责人 query = sortState == "1" ? query.OrderByDescending(u => u.Members.Any(v => v.ProjectRole == "项目负责人" && v.UserId == projectLeaderId)) : sortState == "2" ? query.OrderBy(u => u.Members.Any(v => v.ProjectRole == "项目负责人" && v.UserId == projectLeaderId)) : query.OrderByDescending(u => u.CreateTime); break; default: query = query.OrderByDescending(u => u.CreateTime); break; } } else { query = query.OrderByDescending(u => u.CreateTime); } var paging = PaginationDataHelper.WrapData <Project, T>(query, pageIndex, pageSize).TransferTo <GetProjectListOutput>(); //paging.Data.ForEach(u=>u.HasPermission = _projectHelper.HasPermission("项目负责人", u.Id)); paging.Data.ForEach(u => u.HasPermission = u.CreatorId == _authInfoProvider.GetCurrent().User.Id); return(paging); }
public PaginationData <GetQualityAccidentListOutput> Get(int?projectId, int pageIndex, int pageSize, DisposalState?state, string keyword, string sortField, string sortState ) { var query = _accidentRepository.Get() .Include(u => u.Project) .Where(u => u.State == DataState.Stable); // var userId = _authInfoProvider.GetCurrent()?.User?.Id ?? 0; #region query conditions if (!string.IsNullOrEmpty(projectId.ToString())) { query = query.Where(u => u.ProjectId == projectId); } if (state != null) { query = query.Where(u => u.DisposalState == state); } if (!string.IsNullOrEmpty(keyword)) { query = query.Where(u => u.Project.Name.Contains(keyword) || u.Project.No.Contains(keyword) || u.Title.Contains(keyword) || u.Content.Contains(keyword) ); } //sortState 1降序2升序0默认 if (!string.IsNullOrEmpty(sortField) && !string.IsNullOrEmpty(sortState)) { switch (sortField) { case "Title": //质量事故标题 query = sortState == "1" ? query.OrderByDescending(u => u.Title) : sortState == "2" ? query.OrderBy(u => u.Title) : query.OrderByDescending(u => u.CreateTime); break; case "DiscoveryTime": //质量事故发现时间 query = sortState == "1" ? query.OrderByDescending(u => u.DiscoveryTime) : sortState == "2" ? query.OrderBy(u => u.DiscoveryTime) : query.OrderByDescending(u => u.CreateTime); break; case "SettlementTime": //解决的时间 query = sortState == "1" ? query.OrderByDescending(u => u.SettlementTime) : sortState == "2" ? query.OrderBy(u => u.SettlementTime) : query.OrderByDescending(u => u.CreateTime); break; default: query = query.OrderByDescending(u => u.CreateTime); break; } } else { query = query.OrderByDescending(u => u.CreateTime); } #endregion var paging = PaginationDataHelper.WrapData <QualityAccident, T>(query, pageIndex, pageSize).TransferTo <GetQualityAccidentListOutput>(); paging.Data.ForEach(u => u.HasPermission = _projectHelper.HasPermission("质量信息负责人", u.ProjectId)); return(paging); }
public PaginationData <GetConstructionUnitListOutput> Get( int pageIndex, int pageSize, string keyword, string sortField, string sortState ) { var query = _constructionUnitRepository.Get() .Where(u => u.State == DataState.Stable); var userId = _authInfoProvider.GetCurrent()?.User?.Id ?? 0; #region query conditions if (!string.IsNullOrEmpty(keyword)) { query = query.Where(u => u.Name.Contains(keyword) || u.CompanyContact.Contains(keyword)); } //sortState 1降序2升序0默认 if (!string.IsNullOrEmpty(sortField) && !string.IsNullOrEmpty(sortState)) { switch (sortField) { case "Name": //单位名称 query = sortState == "1" ? query.OrderByDescending(u => u.Name) : sortState == "2" ? query.OrderBy(u => u.Name) : query.OrderByDescending(u => u.CreateTime); break; case "Type": //单位类型 query = sortState == "1" ? query.OrderByDescending(u => u.Type) : sortState == "2" ? query.OrderBy(u => u.Type) : query.OrderByDescending(u => u.CreateTime); break; case "CompanyContact": //企业联系人 query = sortState == "1" ? query.OrderByDescending(u => u.CompanyContact) : sortState == "2" ? query.OrderBy(u => u.CompanyContact) : query.OrderByDescending(u => u.CreateTime); break; case "Link": //联系方式 query = sortState == "1" ? query.OrderByDescending(u => u.Link) : sortState == "2" ? query.OrderBy(u => u.Link) : query.OrderByDescending(u => u.CreateTime); break; case "EvaluationLevel": //评价等级 query = sortState == "1" ? query.OrderByDescending(u => u.EvaluationLevel) : sortState == "2" ? query.OrderBy(u => u.EvaluationLevel) : query.OrderByDescending(u => u.CreateTime); break; case "Score": //得分 query = sortState == "1" ? query.OrderByDescending(u => u.Score) : sortState == "2" ? query.OrderBy(u => u.Score) : query.OrderByDescending(u => u.CreateTime); break; default: query = query.OrderByDescending(u => u.CreateTime); break; } } else { query = query.OrderByDescending(u => u.CreateTime); } #endregion return(PaginationDataHelper.WrapData <ConstructionUnit, T>(query, pageIndex, pageSize).TransferTo <GetConstructionUnitListOutput>()); }
public PaginationData <GetProjectStatisticsListOutput> Get(int pageIndex, int pageSize, string keyword, string sortField, string sortState) { //var qualityProblem = _problemRepository.Get()//质量问题 // .Where(u => u.State == DataState.Stable && u.RectificationState != RectificationState.Completed); //var safetyProblem = _safetyProblemRepository.Get()//安全问题 // .Where(u => u.State == DataState.Stable && u.RectificationState != App.Safety.SafetyProblemRectifications.RectificationState.Completed); var currentUserId = _authInfoProvider.GetCurrent().User.Id; var currentUnitUserIds = _userUnitRepository.Get() .Where(v => _userUnitRepository.Get().Where(u => u.UserId == currentUserId).Any(u => u.OrganizationUnitId == v.OrganizationUnitId)).Select(u => u.UserId).ToList(); var privilegedPersonIds = AuthorizationContext.Instance.GetPrivilegedPersonIds("项目信息"); IQueryable <Project> query = _projectRepository.Get() .Include(u => u.Location) .Include(u => u.State) .Include(u => u.Type) .Include(u => u.ProjectNature) .Include(u => u.Members) .Where(u => u.DataState == DataState.Stable && (u.Members.Any(v => v.UserId == currentUserId) || u.CreatorId == currentUserId || currentUnitUserIds.Contains(u.CreatorId) || privilegedPersonIds.Contains(currentUserId)) ); if (!string.IsNullOrEmpty(keyword)) { query = query.Where(u => u.Name.Contains(keyword) || u.No.Contains(keyword)); } ////sortState 1降序2升序0默认 //if (!string.IsNullOrEmpty(sortField) && !string.IsNullOrEmpty(sortState)) //{ // switch (sortField) // { // case "No"://项目编号 // query = sortState == "1" ? query.OrderByDescending(u => u.No) : sortState == "2" ? query.OrderBy(u => u.No) : query.OrderByDescending(u => u.CreateTime); // break; // case "Name"://项目名称 // query = sortState == "1" ? query.OrderByDescending(u => u.Name) : sortState == "2" ? query.OrderBy(u => u.Name) : query.OrderByDescending(u => u.CreateTime); // break; // case "TypeId"://项目类型 // query = sortState == "1" ? query.OrderByDescending(u => u.TypeId) : sortState == "2" ? query.OrderBy(u => u.TypeId) : query.OrderByDescending(u => u.CreateTime); // break; // case "ProjectNatureId"://项目性质 // query = sortState == "1" ? query.OrderByDescending(u => u.ProjectNatureId) : sortState == "2" ? query.OrderBy(u => u.ProjectNatureId) : query.OrderByDescending(u => u.CreateTime); // break; // case "StateId"://项目状态 // query = sortState == "1" ? query.OrderByDescending(u => u.StateId) : sortState == "2" ? query.OrderBy(u => u.StateId) : query.OrderByDescending(u => u.CreateTime); // break; // case "GeneralEstimate"://项目概算 // query = sortState == "1" ? query.OrderByDescending(u => u.GeneralEstimate) : sortState == "2" ? query.OrderBy(u => u.GeneralEstimate) : query.OrderByDescending(u => u.CreateTime); // break; // case "CommencementDate"://开工时间 // query = sortState == "1" ? query.OrderByDescending(u => u.CommencementDate) : sortState == "2" ? query.OrderBy(u => u.CommencementDate) : query.OrderByDescending(u => u.CreateTime); // break; // case "CreatorId"://发布人 // query = sortState == "1" ? query.OrderByDescending(u => u.CreatorId) : sortState == "2" ? query.OrderBy(u => u.CreatorId) : query.OrderByDescending(u => u.CreateTime); // break; // default: // query = query.OrderByDescending(u => u.CreateTime); // break; // } //} //else //{ // query = query.OrderByDescending(u => u.CreateTime); //} //var paging = PaginationDataHelper.WrapData<Project, T>(query, pageIndex, pageSize).TransferTo<GetProjectStatisticsListOutput>(); ////paging.Data.ForEach(u=>u.HasPermission = _projectHelper.HasPermission("项目负责人", u.Id)); //paging.Data.ForEach(u => { // u.HasPermission = u.CreatorId == _authInfoProvider.GetCurrent().User.Id; // u.QualityProblemCount = qualityProblem.Count(s => s.ProjectId == u.Id); // u.SafetyProblemCount = safetyProblem.Count(s => s.ProjectId == u.Id); //}); //paging = paging.Data.Where(w=>w.QualityProblemCount!=0);//&& u.SafetyProblemCount != 0 //return paging; var queryForProject = query; var queryForQuality = _qualityProblemRepository.Get().Where(u => u.State == DataState.Stable && u.RectificationState != RectificationState.Completed); var queryForSafety = _safetyProblemRepository.Get().Where(u => u.State == DataState.Stable && u.RectificationState != App.Safety.SafetyProblemRectifications.RectificationState.Completed); var queryForProjectAndQuality = queryForProject.GroupJoin(queryForQuality, u => u.Id, v => v.ProjectId, (u, v) => new { Project = u, QualityProblems = v }); var queryForProjectAndQualityAndSafety = queryForProjectAndQuality.GroupJoin(queryForSafety, u => u.Project.Id, v => v.ProjectId, (u, v) => new { Project = u.Project, QualityProblems = u.QualityProblems, SafetyProblems = v }); queryForProjectAndQualityAndSafety = queryForProjectAndQualityAndSafety.Where(u => u.QualityProblems.Count() > 0 || u.SafetyProblems.Count() > 0); var paging = PaginationDataHelper.WrapData(queryForProjectAndQualityAndSafety, pageIndex, pageSize, u => u.Project.Id).TransferTo <GetProjectStatisticsListOutput>(u => { var project = u.Project; var output = project.MapTo <GetProjectStatisticsListOutput>(); output.QualityProblemCount = u.QualityProblems.Count(); //质量问题个数 output.SafetyProblemCount = u.SafetyProblems.Count(); //安全问题个数 return(output); }); return(paging); }
public PaginationData <GetProjectWithProblemListOutput> Get(int pageIndex, int pageSize, string keyword, string address, int?typeId, string Name, string No, int?projectNatureId, int?stateId, int?projectLeaderId, int?generalEstimateL, int?generalEstimateR, DateTime?commencementDateL, DateTime?commencementDateR, string sortField, string sortState ) { var currentUserId = _authInfoProvider.GetCurrent().User.Id; var currentUnitUserIds = _userUnitRepository.Get() .Where(v => _userUnitRepository.Get().Where(u => u.UserId == currentUserId).Any(u => u.OrganizationUnitId == v.OrganizationUnitId)).Select(u => u.UserId).ToList(); var privilegedPersonIds = AuthorizationContext.Instance.GetPrivilegedPersonIds("项目信息"); IQueryable <Project> queryForProject = _projectRepository.Get() .Where(u => u.DataState == DataState.Stable && (u.Members.Any(v => v.UserId == currentUserId) || u.CreatorId == currentUserId || currentUnitUserIds.Contains(u.CreatorId) || privilegedPersonIds.Contains(currentUserId)) ); if (!string.IsNullOrEmpty(keyword)) { queryForProject = queryForProject.Where(u => u.Name.Contains(keyword) || u.No.Contains(keyword)); } if (!string.IsNullOrEmpty(address)) { queryForProject = queryForProject.Where(u => (string.Concat(u.Location.Province, u.Location.City, u.Location.District, u.Location.Town, u.Location.Street, u.Location.AddressDetail).Contains(address))); } if (!string.IsNullOrEmpty(No)) { queryForProject = queryForProject.Where(u => u.No.Contains(No)); } if (!string.IsNullOrEmpty(Name)) { queryForProject = queryForProject.Where(u => u.Name.Contains(Name)); } if (stateId != null) { queryForProject = queryForProject.Where(u => u.StateId == stateId); } if (typeId != null) { queryForProject = queryForProject.Where(u => u.TypeId == typeId); } if (projectNatureId != null) { queryForProject = queryForProject.Where(u => u.ProjectNatureId == projectNatureId); } if (projectLeaderId != null) { queryForProject = queryForProject.Where(u => u.Members.Any(v => v.ProjectRole == "项目负责人" && v.UserId == projectLeaderId)); } if (generalEstimateL != null) { queryForProject = queryForProject.Where(u => u.GeneralEstimate >= generalEstimateL); } if (generalEstimateR != null) { queryForProject = queryForProject.Where(u => u.GeneralEstimate <= generalEstimateR); } if (commencementDateL != null) { queryForProject = queryForProject.Where(u => u.CommencementDate >= commencementDateL); } if (commencementDateR != null) { queryForProject = queryForProject.Where(u => u.CommencementDate <= commencementDateR); } var queryForQuality = _qualityProblemRepository.Get().Where(u => u.State == DataState.Stable && u.RectificationState != RectificationState.Completed); var queryForSafety = _safetyProblemRepository.Get().Where(u => u.State == DataState.Stable && u.RectificationState != App.Safety.SafetyProblemRectifications.RectificationState.Completed); var queryForProjectAndQuality = queryForProject.GroupJoin(queryForQuality, u => u.Id, v => v.ProjectId, (u, v) => new { Project = new Project { Id = u.Id, No = u.No, Name = u.Name, Type = u.Type, ProjectNature = u.ProjectNature, State = u.State, GeneralEstimate = u.GeneralEstimate, Location = u.Location, Members = u.Members, CommencementDate = u.CommencementDate, CreatorId = u.CreatorId }, QualityProblemCount = v.Count() }); var queryForProjectAndQualityAndSafety = queryForProjectAndQuality.GroupJoin(queryForSafety, u => u.Project.Id, v => v.ProjectId, (u, v) => new { Project = u.Project, QualityProblemCount = u.QualityProblemCount, SafetyProblemCount = v.Count() }); //sortState 1降序2升序0默认 if (!string.IsNullOrEmpty(sortField)) { switch (sortField) { case "No": //项目编号 queryForProjectAndQualityAndSafety = string.IsNullOrEmpty(sortState) ? queryForProjectAndQualityAndSafety.OrderByDescending(u => u.Project.No) : queryForProjectAndQualityAndSafety.OrderBy(u => u.Project.No); break; case "Name": //项目名称 queryForProjectAndQualityAndSafety = string.IsNullOrEmpty(sortState) ? queryForProjectAndQualityAndSafety.OrderByDescending(u => u.Project.Name) : queryForProjectAndQualityAndSafety.OrderBy(u => u.Project.Name); break; case "quality": queryForProjectAndQualityAndSafety = string.IsNullOrEmpty(sortState) ? queryForProjectAndQualityAndSafety.OrderByDescending(u => u.QualityProblemCount) : queryForProjectAndQualityAndSafety.OrderBy(u => u.QualityProblemCount); break; case "safety": queryForProjectAndQualityAndSafety = string.IsNullOrEmpty(sortState) ? queryForProjectAndQualityAndSafety.OrderByDescending(u => u.SafetyProblemCount) : queryForProjectAndQualityAndSafety.OrderBy(u => u.SafetyProblemCount); break; default: break; } } var paging = PaginationDataHelper.WrapData <object, T>(queryForProjectAndQualityAndSafety, pageIndex, pageSize).TransferTo <GetProjectWithProblemListOutput>(u => { dynamic du = u; var output = ((object)(du.Project)).MapTo <GetProjectWithProblemListOutput>(); output.UncompletedQualityProblemCount = du.QualityProblemCount; output.UncompletedSafetyProblemCount = du.SafetyProblemCount; return(output); }); paging.Data.ForEach(u => u.HasPermission = u.CreatorId == _authInfoProvider.GetCurrent().User.Id); return(paging); }