liuying
2024-04-23 96294e88135f07c1c3794c9dc2224bd7ca3ab986
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsContainerPackaging/WmsContainerPackagingService.cs
@@ -253,6 +253,12 @@
                          
                          
                          #region 验证
                          if (string.IsNullOrEmpty(_ContainerTypeId))
                          {
                            throw Oops.Oh($"第{index}行[容器类型ID]{_ContainerTypeId}不能为空!");
                          }
                          if(!string.IsNullOrEmpty(_ContainerTypeId))
                          {
                              if (!long.TryParse(_ContainerTypeId, out long outContainerTypeId)&&!string.IsNullOrEmpty(_ContainerTypeId))
@@ -269,10 +275,22 @@
                              }
                          
                          }
                          if (string.IsNullOrEmpty(_ContainerTypeName))
                          {
                            throw Oops.Oh($"第{index}行[容器类型名称]{_ContainerTypeName}不能为空!");
                          }
                          if(!string.IsNullOrEmpty(_ContainerTypeName))
                          {
                                addItem.ContainerTypeName = (string)_ContainerTypeName;
                           }
                          if (string.IsNullOrEmpty(_MaterialTypeId))
                          {
                            throw Oops.Oh($"第{index}行[物料类型ID]{_MaterialTypeId}不能为空!");
                          }
                          if(!string.IsNullOrEmpty(_MaterialTypeId))
                          {
                              if (!long.TryParse(_MaterialTypeId, out long outMaterialTypeId)&&!string.IsNullOrEmpty(_MaterialTypeId))
@@ -289,14 +307,32 @@
                              }
                          
                          }
                          if (string.IsNullOrEmpty(_MaterialTypeCode))
                          {
                            throw Oops.Oh($"第{index}行[物料类型编号]{_MaterialTypeCode}不能为空!");
                          }
                          if(!string.IsNullOrEmpty(_MaterialTypeCode))
                          {
                                addItem.MaterialTypeCode = (string)_MaterialTypeCode;
                           }
                          if (string.IsNullOrEmpty(_MaterialTypeName))
                          {
                            throw Oops.Oh($"第{index}行[物料类型名称]{_MaterialTypeName}不能为空!");
                          }
                          if(!string.IsNullOrEmpty(_MaterialTypeName))
                          {
                                addItem.MaterialTypeName = (string)_MaterialTypeName;
                           }
                          if (string.IsNullOrEmpty(_BoxQty))
                          {
                            throw Oops.Oh($"第{index}行[物料容器容量]{_BoxQty}不能为空!");
                          }
                          if(!string.IsNullOrEmpty(_BoxQty))
                          {
                              if (!decimal.TryParse(_BoxQty, out decimal outBoxQty)&&!string.IsNullOrEmpty(_BoxQty))
@@ -369,13 +405,29 @@
           
           
           bool isExist = false;
           if (!isEdit)//新增
           {
                   //数据是否存在重复
                   isExist = await _wmsContainerPackagingRep.AnyAsync(u =>
                                   u.ContainerTypeId.Equals(input.ContainerTypeId)
                   ,false);
          }
           else//编辑
          {
          
                
                 //当前编辑数据以外是否存在重复
                  isExist = await _wmsContainerPackagingRep.AnyAsync(u =>
                                    u.Id != input.Id
                                    &&u.ContainerTypeId.Equals(input.ContainerTypeId)
                    ,false);
               }
               
        
            //没有配置联合主键,不需要验重
            if (isExist) throw Oops.Oh(ErrorCode.E0001);
       }
        
        /// <summary>
@@ -386,10 +438,42 @@
        private async Task CheckExisitForImport(List<WmsContainerPackaging> inputs)
        { 
            //根据联合主键验证表格中中是否已存在相同数据  
                 if (inputs?.Count <= 0)
                 {
                     throw Oops.Oh($"导入数据不能为空");
                 }
                 //数据是否重复
                 var existExcelItem = inputs.GroupBy(g => new {
                                               g.ContainerTypeId
                                               })
                                               .Where(g => g.Count() > 1)
                                               .Select(s => new {
                                               s.Key.ContainerTypeId
                                               }).FirstOrDefault();
                 if (existExcelItem != null)
                 {
                   var wmsContainerPackaging = existExcelItem.Adapt<WmsContainerPackaging>();
                   var item= existExcelItem.Adapt<WmsContainerPackaging>();
                   throw Oops.Oh($"导入的表格中,容器类型ID[{item.ContainerTypeId}]已存在");
                 }
                      
    //根据联合主键验证数据库中是否已存在相同数据
                 var existDBItem = await _wmsContainerPackagingRep.DetachedEntities.FirstOrDefaultAsync(w=>
                                                                         inputs.Select(s=>""
                                                                           +s.ContainerTypeId
                                                                        )
                                                                        .Contains(""
                                                                         +w.ContainerTypeId
                  ));
                  if (existDBItem != null)
                 {
                   var wmsContainerPackaging = existExcelItem.Adapt<WmsContainerPackaging>();
                   var item= existExcelItem.Adapt<WmsContainerPackaging>();
                   throw Oops.Oh($"系统中,容器类型ID[{item.ContainerTypeId}]已存在");
                 }
        }
        #endregion