| | |
| | | |
| | | var specification = new WmsContainerSpecification(input.Name); |
| | | var count = await _wmscontainerRepository.GetCountAsync(input.Filter, specification); |
| | | var list = await _wmscontainerRepository.GetListAsync(input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification); |
| | | var list = await _wmscontainerRepository.GetListAsync(input.Sorting, input.MaxResultCount, input.SkipCount, input.Filter, specification); |
| | | |
| | | return new PagedResultDto<WmsContainerDto>(count, ObjectMapper.Map<List<WmsContainer>, List<WmsContainerDto>>(list)); |
| | | } |
| | |
| | | { |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var exist = await _wmscontainerRepository.NameExistAsync(input.Name); |
| | | var exist = await _wmscontainerRepository.NameExistAsync(input.ContainerNo); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.Name]); |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.ContainerNo]); |
| | | } |
| | | |
| | | var maxSort = await _wmscontainerRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | | var wmscontainer = new WmsContainer(GuidGenerator.Create(), input.Code, input.Name, sort, input.Remark); |
| | | var wmscontainer = ObjectMapper.Map<WmsContainerCreateDto,WmsContainer>(input); |
| | | input.MapExtraPropertiesTo(wmscontainer, MappingPropertyDefinitionChecks.None); |
| | | |
| | | wmscontainer.Sort = sort; |
| | | await _wmscontainerRepository.InsertAsync(wmscontainer); |
| | | |
| | | if (input.Sort.HasValue && wmscontainer.Sort != maxSort) |
| | |
| | | await CheckCreateOrUpdateDtoAsync(input); |
| | | |
| | | var wmscontainer = await _wmscontainerRepository.GetAsync(id); |
| | | var exist = await _wmscontainerRepository.NameExistAsync(input.Name, wmscontainer.Id); |
| | | var exist = await _wmscontainerRepository.NameExistAsync(input.ContainerNo, wmscontainer.Id); |
| | | if (exist) |
| | | { |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.Name]); |
| | | throw new UserFriendlyException(L[CMSPluginDomainErrorCodes.NameAlreadyExists, input.ContainerNo]); |
| | | } |
| | | |
| | | wmscontainer.SetConcurrencyStampIfNotNull(input.ConcurrencyStamp); |
| | | input.MapExtraPropertiesTo(wmscontainer, MappingPropertyDefinitionChecks.None); |
| | | |
| | | wmscontainer.Update(input.Code, input.Name, input.Remark); |
| | | wmscontainer.ContainerStatus = input.ContainerStatus; |
| | | wmscontainer.ContainerType = input.ContainerType; |
| | | wmscontainer.SpecLength = input.SpecLength; |
| | | wmscontainer.SpecWidth = input.SpecWidth; |
| | | wmscontainer.SpecHeight = input.SpecHeight; |
| | | wmscontainer.LimitLength = input.LimitLength; |
| | | wmscontainer.LimitWidth = input.LimitWidth; |
| | | wmscontainer.LimitHeight = input.LimitHeight; |
| | | wmscontainer.MaxWeight = input.MaxWeight; |
| | | wmscontainer.MaterialNumber = input.MaterialNumber; |
| | | wmscontainer.ExceptionNumber = input.ExceptionNumber; |
| | | |
| | | await _wmscontainerRepository.UpdateAsync(wmscontainer); |
| | | |
| | |
| | | var wmscontainer = await _wmscontainerRepository.FindAsync(id); |
| | | if (wmscontainer != null) |
| | | { |
| | | var name = wmscontainer.Name + WmsContainerConsts.CloneTag; |
| | | var containerNo = wmscontainer.ContainerNo + WmsContainerConsts.CloneTag; |
| | | var notExist = false; |
| | | while (!notExist) |
| | | { |
| | | var exist = await _wmscontainerRepository.NameExistAsync(name); |
| | | if (exist || wmscontainers.Any(x => x.Name == name)) |
| | | var exist = await _wmscontainerRepository.NameExistAsync(containerNo); |
| | | if (exist || wmscontainers.Any(x => x.ContainerNo == containerNo)) |
| | | { |
| | | name += WmsContainerConsts.CloneTag; |
| | | containerNo += WmsContainerConsts.CloneTag; |
| | | continue; |
| | | } |
| | | |
| | | notExist = true; |
| | | } |
| | | |
| | | wmscontainer = await _wmscontainerRepository.InsertAsync(wmscontainer.Clone(GuidGenerator.Create(), name, sort++)); |
| | | //wmscontainer = await _wmscontainerRepository.InsertAsync(wmscontainer.Clone(GuidGenerator.Create(), containerNo, sort++)); |
| | | wmscontainers.Add(wmscontainer); |
| | | } |
| | | } |
| | |
| | | #region 导入校验 |
| | | |
| | | // 判断名称是否重复,并输出第几行重复 |
| | | var duplicateWmsContainers = wmscontainers.GroupBy(x => x.Name).Where(x => x.Count() > 1).ToList(); |
| | | var duplicateWmsContainers = wmscontainers.GroupBy(x => x.ContainerNo).Where(x => x.Count() > 1).ToList(); |
| | | if (duplicateWmsContainers?.Any() == true) |
| | | { |
| | | var duplicateWmsContainerMsgs = duplicateWmsContainers.Select(x => $"第 {string.Join(",", x.Select(x => x.RowIndex))} 行:{x.Key} 名称重复"); |
| | |
| | | |
| | | foreach (var wmscontainer in wmscontainers) |
| | | { |
| | | if (wmscontainer.Code.IsNullOrWhiteSpace() && wmscontainer.Name.IsNullOrWhiteSpace()) |
| | | if (wmscontainer.ContainerNo.IsNullOrWhiteSpace() && wmscontainer.ContainerNo.IsNullOrWhiteSpace()) |
| | | { |
| | | continue; |
| | | } |
| | | |
| | | if (wmscontainer.Name.IsNullOrWhiteSpace()) |
| | | if (wmscontainer.ContainerNo.IsNullOrWhiteSpace()) |
| | | { |
| | | var errorMsg = $"导入失败!配置,第{wmscontainer.RowIndex}行:WmsContainer名称不能为空"; |
| | | throw new UserFriendlyException(errorMsg); |
| | | } |
| | | |
| | | var oldWmsContainer = await _wmscontainerRepository.FindByNameAsync(wmscontainer.Name); |
| | | var oldWmsContainer = await _wmscontainerRepository.FindByNameAsync(wmscontainer.ContainerNo); |
| | | if (oldWmsContainer != null) |
| | | { |
| | | var wmscontainerUpdateDto = new WmsContainerUpdateDto |
| | | { |
| | | Code = wmscontainer.Code, |
| | | Name = wmscontainer.Name, |
| | | ContainerNo = wmscontainer.ContainerNo, |
| | | ContainerType = wmscontainer.ContainerType, |
| | | ContainerStatus = wmscontainer.ContainerStatus, |
| | | SpecLength = wmscontainer.SpecLength, |
| | | SpecWidth = wmscontainer.SpecWidth, |
| | | SpecHeight = wmscontainer.SpecHeight, |
| | | LimitLength = wmscontainer.LimitLength, |
| | | LimitWidth = wmscontainer.LimitWidth, |
| | | LimitHeight = wmscontainer.LimitHeight, |
| | | MaxWeight = wmscontainer.MaxWeight, |
| | | Remark = wmscontainer.Remark, |
| | | }; |
| | | |
| | |
| | | { |
| | | var wmscontainerCreateDto = new WmsContainerCreateDto |
| | | { |
| | | Code = wmscontainer.Code, |
| | | Name = wmscontainer.Name, |
| | | Remark = wmscontainer.Remark, |
| | | ContainerNo = wmscontainer.ContainerNo, |
| | | ContainerType = wmscontainer.ContainerType, |
| | | ContainerStatus = wmscontainer.ContainerStatus, |
| | | SpecLength = wmscontainer.SpecLength, |
| | | SpecWidth = wmscontainer.SpecWidth, |
| | | SpecHeight = wmscontainer.SpecHeight, |
| | | LimitLength = wmscontainer.LimitLength, |
| | | LimitWidth = wmscontainer.LimitWidth, |
| | | LimitHeight = wmscontainer.LimitHeight, |
| | | MaxWeight = wmscontainer.MaxWeight, |
| | | Remark = wmscontainer.Remark |
| | | }; |
| | | |
| | | wmscontainerCreateDtos.Add((wmscontainer.RowIndex, wmscontainerCreateDto)); |
| | |
| | | ["配置"] = result.Select(x => x.GetExportData()).ToList(), |
| | | }; |
| | | |
| | | var fileName = result.Count > 1 ? "WmsContainer列表" : result.Count == 1 ? result.First()?.Name : "WmsContainer模版"; |
| | | var fileName = result.Count > 1 ? "WmsContainer列表" : result.Count == 1 ? result.First()?.ContainerNo : "WmsContainer模版"; |
| | | return (sheets, fileName); |
| | | } |
| | | |
| | |
| | | protected Task CheckCreateOrUpdateDtoAsync(WmsContainerCreateOrUpdateDtoBase input) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | Check.NotNullOrWhiteSpace(input.Code, "编号", WmsContainerConsts.MaxCodeLength); |
| | | Check.NotNullOrWhiteSpace(input.Name, "名称", WmsContainerConsts.MaxNameLength); |
| | | Check.NotNullOrWhiteSpace(input.ContainerNo, "编号", WmsContainerConsts.MaxCodeLength); |
| | | Check.Length(input.Remark, "备注", WmsContainerConsts.MaxRemarkLength); |
| | | return Task.CompletedTask; |
| | | } |