/// <summary>
        /// 获取一个任务的表格包含转发记录,原来是使用的Get方法,现在直接用这个接口取链式
        /// 任务详情页面
        /// </summary>
        /// <param name="input"></param>
        /// <returns>任务</returns>
        public async Task <PagedResultDto <TaskItemAssignmentDto> > GetAssignment(EntityDto <Guid> input)
        {
            var entity = await GetEntityByIdAsync(input.Id);

            CurrentUnitOfWork.DisableFilter(AbpDataFilters.MayHaveTenant);
            // 关闭软删除筛选器
            using (CurrentUnitOfWork.DisableFilter(AbpDataFilters.SoftDelete))
            {
                var entityList = Repository.GetAll()
                                 .Where(q => q.SubProjectId == entity.SubProjectId)
                                 .Where(q => q.ProcedureStepTaskItemId == entity.ProcedureStepTaskItemId)
                                 // 如果subProjectId没有值,则使用RootAssignmentId筛选
                                 .WhereIf(!entity.SubProjectId.HasValue, v => v.RootAssignmentId == entity.RootAssignmentId)
                                 .OrderBy(q => q.CreationTime).Include(v => v.User);
                var list = entityList.Select(q => q.MapTo <TaskItemAssignmentDto>()).ToList();
                // 向第一个元素填入需要的信息
                list[0].TaskItem = (await _taskItemManager.GetAsync(entity.TaskItemId)).MapTo <TaskItemDto>();
                // 如果subProjectId为空则不进行操作 SubProjectId为空,无法继续操作
                if (entity.SubProjectId.HasValue)
                {
                    list[0].SubProject = (await _subProjectManager.GetAsync((Guid)entity.SubProjectId))
                                         .MapTo <SubProjectDto>();
                }
                return(new PagedResultDto <TaskItemAssignmentDto>(await entityList.CountAsync(), list));
            }
        }
Exemple #2
0
        public async Task <PedestalDto> Update(PedestalDto input)
        {
            var entity = await _repository.GetAsync(input.Id);

            if (input.SubProjectId.HasValue)
            {
                var subProject = await _subProjectManager.GetAsync((Guid)input.SubProjectId);

                // 如果梁片未完成则初始化状态码;否则插入记录表
                if (!subProject.IsFinished)
                {
                    await _subProjectManager.InitStageCode(subProject);
                }
                else
                {
                    _subProjectManager.InsertStageLog(subProject);
                }
                // 检查占用
                await _pedestalManager.CheckOccupation(input.Id, input.SubProjectId);

                // 删除原有台座上的梁片
                await _pedestalManager.DeleteSubProjectInPedestal(subProject);

                // 判断是否未制梁台或存梁台
                await _pedestalManager.QualifyToPedestal(entity, subProject);
            }
            else
            {
                throw new UserFriendlyException("没有子项目id");
            }
            entity = await _repository.UpdateAsync(input.MapTo(entity));

            return(entity.MapTo <PedestalDto>());
        }