zs
2025-04-29 e5ff622848b3af0d00fb1b4ec165513cca11878d
HIAWms/server/src/CMS.Plugin.HIAWms.Application/Implements/WmsContainerAppService.cs
@@ -42,7 +42,7 @@
        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));
    }
@@ -52,17 +52,17 @@
    {
        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)
@@ -79,16 +79,26 @@
        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);
@@ -107,21 +117,21 @@
                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);
                }
            }
@@ -192,7 +202,7 @@
            #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}  名称重复");
@@ -204,24 +214,32 @@
            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,
                    };
@@ -231,9 +249,17 @@
                {
                    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));
@@ -289,7 +315,7 @@
            ["配置"] = 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);
    }
@@ -300,8 +326,7 @@
    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;
    }