/// <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)); }
/// <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(), }); }
/// <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() )); }