示例#1
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>());
        }
示例#2
0
        public List <GenerateOutput> Generate(WorkshopLayoutInput input)
        {
            List <GenerateOutput> list = new List <GenerateOutput>();

            for (int i = 0; i < input.ProductionLine; i++)
            {
                #region 返回生成的布局信息
                GenerateOutput output = new GenerateOutput();
                output.ProductionLine = (i + 1).ToString();

                PedestalDto pedestalDto = new PedestalDto();
                pedestalDto.ProductionLine = i + 1;
                //如果要保存到数据库,即生成模板实例,
                if (input.IsSave)
                {
                    pedestalDto.WorkshopLayoutId = input.LayoutId;
                    pedestalDto.ProjectId        = input.ProjectId;
                }
                //左部或上部制梁台
                pedestalDto.Area = "LU";
                pedestalDto.Type = "ZL";
                List <PedestalDto> LU_ZL_blocks = GenerateBlocks(pedestalDto, input.BeamPedestal, input.IsSave);
                //左部或上部存梁台
                pedestalDto.Type = "CL";
                List <PedestalDto> LU_CL_blocks = GenerateBlocks(pedestalDto, input.SaveBeam, input.IsSave);
                //左部或上部钢筋绑扎台
                pedestalDto.Type = "GJ";
                List <PedestalDto> LU_BZ_blocks = GenerateBlocks(pedestalDto, input.BindRebar, input.IsSave);

                //右部或下部制梁台
                pedestalDto.Area = "RD";
                pedestalDto.Type = "ZL";
                List <PedestalDto> RD_ZL_blocks = GenerateBlocks(pedestalDto, input.BeamPedestal, input.IsSave);
                //右部或下部存梁台
                pedestalDto.Type = "CL";
                List <PedestalDto> RD_CL_blocks = GenerateBlocks(pedestalDto, input.SaveBeam, input.IsSave);
                //右部或下部钢筋绑扎台
                pedestalDto.Type = "GJ";
                List <PedestalDto> RD_BZ_blocks = GenerateBlocks(pedestalDto, input.BindRebar, input.IsSave);

                output.LU_BeamPedestal = LU_ZL_blocks;
                output.LU_SaveBeam     = LU_CL_blocks;
                output.LU_BindRebar    = LU_BZ_blocks;

                output.RD_BeamPedestal = RD_ZL_blocks;
                output.RD_SaveBeam     = RD_CL_blocks;
                output.RD_BindRebar    = RD_BZ_blocks;

                list.Add(output);
                #endregion
            }

            return(list);
        }
示例#3
0
        private List <PedestalDto> GenerateBlocks(PedestalDto dto, int number, bool isSave)
        {
            var dtos = new List <PedestalDto>();

            for (int i = 1; i <= number; i++)
            {
                var pedestalDto = dto.Clone();

                pedestalDto.Code = "L" + dto.ProductionLine + "_" + dto.Area + "_" + dto.Type + "_" + i.ToString("00000");;

                dtos.Add(pedestalDto);
            }
            if (isSave)
            {
                foreach (var item in dtos)
                {
                    _pedestalRepository.Insert(ObjectMapper.Map <Pedestal>(item));
                }
            }

            return(dtos);
        }