示例#1
0
        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);
        }
示例#2
0
        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;
            }
                       ));
        }
示例#3
0
        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);
        }
示例#4
0
        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>());
        }
示例#5
0
        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>());
        }
示例#6
0
        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);
        }
示例#7
0
        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>());
        }
示例#8
0
        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);
        }
示例#9
0
        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);
        }
示例#10
0
        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);
        }
示例#11
0
        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>());
        }
示例#12
0
        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);
        }
示例#13
0
        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);
        }