コード例 #1
0
        /// <summary>
        /// 获得所有未分配工作台的项目
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <PagedResultDto <SubProjectDto> > GetAllUnbinding(GetAllProductionUnbindingInput input)
        {
            var query = _subProjectManager.GetAll()
                        .WhereIf(input.ProjectId.HasValue, v => v.ProjectId == input.ProjectId)
                        .Include(v => v.Pedestal)
                        .Where(v => v.Pedestal == null || SubProjectManager.IsCurrentStepFinished(v));

            return(await GetAllAsyncByQueryFilter <SubProjectDto, SubProject>(query));
        }
コード例 #2
0
ファイル: ProjectAppService.cs プロジェクト: zh3305/Angular
        /// <summary>
        /// 获取bim模型上构件的dbid并分类
        /// </summary>
        /// <param name="bimModelFileItemId"></param>
        /// <returns></returns>
        public async Task <GetBimModelDbIdsOutput> GetBimModelDbIds(Guid bimModelFileItemId)
        {
            var query = _planManager.GetAll()
                        .Where(v => v.BimModelFileItemId == bimModelFileItemId && v.BimModelDbId != null);

            return(new GetBimModelDbIdsOutput
            {
                // 完成了的构件
                FinishedDbIds = await query.Where(v => v.IsFinished).Select(v => (int)v.BimModelDbId).ToArrayAsync(),
                // 无状态
                NoStateDbIds = await query.Where(v => v.StageCode.IsNullOrWhiteSpace()).Select(v => (int)v.BimModelDbId).ToArrayAsync(),
                // 正在处理的构件
                ProcessingDbIds = await query.Where(v => !v.IsFinished && !v.StageCode.IsNullOrWhiteSpace()).Select(v => (int)v.BimModelDbId).ToArrayAsync(),
                // 当前工序完成的DbId
                CurrentStepFinishedDbIds = await query.Where(v => SubProjectManager.IsCurrentStepFinished(v)).Select(v => (int)v.BimModelDbId).ToArrayAsync(),
            });
        }
コード例 #3
0
        /// <summary>
        /// 获得所有正在处理中的子项目,附带台座信息
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        public async Task <PagedResultDto <SubProjectDto> > GetAllInProcessing(GetAllProductionBase input)
        {
            var query = _subProjectManager.GetAll().Include(v => v.Pedestal)
                        .WhereIf(input.ProjectId.HasValue, v => v.ProjectId == input.ProjectId)
                        .Where(v => v.Pedestal != null && !SubProjectManager.IsCurrentStepFinished(v));
            var totalCount = await query.CountAsync();

            var entities = await query.ToListAsync();

            // 需要添加台座信息,所以不能直接用父类方法
            return(new PagedResultDto <SubProjectDto>(
                       totalCount, entities.Select(v =>
            {
                var subProject = v.MapTo <SubProjectDto>();
                subProject.PedestalDto = v.Pedestal.MapTo <PedestalDto>();
                return subProject;
            }).ToList()
                       ));
        }