payne
2024-04-25 ba49ee82a84150f6c7d7afb26bd6397e4f8a7826
修改
已修改2个文件
643 ■■■■■ 文件已修改
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsFactory/WmsFactoryService.cs 103 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsWarehouse/WmsWarehouseService.cs 540 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsFactory/WmsFactoryService.cs
@@ -229,7 +229,6 @@
                           var _FactoryName = "";//名称
                           var _FactoryAddress = "";//地址
                           var _IsDisabled = "";//是否禁用
                           var _Id = "";//Id主键
                          #endregion
                          
                          
@@ -238,7 +237,6 @@
                           _FactoryName = row["名称"]?.ToString() ;
                           _FactoryAddress = row["地址"]?.ToString() ;
                           _IsDisabled = row["是否禁用"]?.ToString() ;
                           _Id = row["Id主键"]?.ToString() ;
                          #endregion
                          
                          
@@ -280,22 +278,7 @@
                             }
                             }
                          
                          if(!string.IsNullOrEmpty(_Id))
                          {
                              if (!long.TryParse(_Id, out long outId)&&!string.IsNullOrEmpty(_Id))
                              {
                                 throw Oops.Oh($"第{index}行[Id主键]{_Id}值不正确!");
                              }
                              if (outId <= 0&&!string.IsNullOrEmpty(_Id))
                              {
                                 throw Oops.Oh($"第{index}行[Id主键]{_Id}值不能小于等于0!");
                              }
                              else
                              {
                                 addItem.Id = outId;
                              }
                          }
                          #endregion
                          
@@ -333,9 +316,9 @@
        /// <returns></returns>
        private async Task CheckExisit( WmsFactory input,bool isEdit=false)
        {
            string errorMsg = string.Empty;
           bool isExist = false;
           if (!isEdit)//新增
           {
@@ -343,7 +326,24 @@
                   isExist = await _wmsFactoryRep.AnyAsync(u =>
                                   u.FactoryCode.Equals(input.FactoryCode)
                   ,false);
          }
                errorMsg = $"系统中,编号[{input.FactoryCode}]已存在";
                if (isExist)
                {
                    throw Oops.Oh(errorMsg);
                }
                //数据是否存在重复
                isExist = await _wmsFactoryRep.AnyAsync(u =>
                                u.FactoryName.Equals(input.FactoryName)
                , false);
                errorMsg = $"系统中,名称[{input.FactoryName}]已存在";
                if (isExist)
                {
                    throw Oops.Oh(errorMsg);
                }
            }
           else//编辑 
          {
@@ -354,12 +354,29 @@
                                    u.Id != input.Id
                                    &&u.FactoryCode.Equals(input.FactoryCode)
                    ,false);
               }
                errorMsg = $"系统中,编号[{input.FactoryCode}]已存在";
                if (isExist)
                {
                    throw Oops.Oh(errorMsg);
                }
                isExist = await _wmsFactoryRep.AnyAsync(u =>
                                   u.Id != input.Id
                                   && u.FactoryName.Equals(input.FactoryName)
                   , false);
                errorMsg = $"系统中,名称[{input.FactoryName}]已存在";
                if (isExist)
                {
                    throw Oops.Oh(errorMsg);
                }
            }
               
        
            if (isExist) throw Oops.Oh(ErrorCode.E0001);
       }
        }
        
        /// <summary>
        /// 根据联合主键验证数据是否已存在-导入时验证
@@ -383,16 +400,30 @@
                                               }).FirstOrDefault();
                 if (existExcelItem != null)
                 {
                   var wmsFactory = existExcelItem.Adapt<WmsFactory>();
                   var item= existExcelItem.Adapt<WmsFactory>();
                   throw Oops.Oh($"导入的表格中,编号[{item.FactoryCode}]已存在");
                 }
            //数据是否重复
            var existExcelItem2 = inputs.GroupBy(g => new {
                g.FactoryName
            })
                                          .Where(g => g.Count() > 1)
                                          .Select(s => new {
                                              s.Key.FactoryName
                                          }).FirstOrDefault();
            if (existExcelItem2 != null)
            {
                var item = existExcelItem2.Adapt<WmsFactory>();
                throw Oops.Oh($"导入的表格中,名称[{item.FactoryName}]已存在");
            }
    //根据联合主键验证数据库中是否已存在相同数据
                 var existDBItem = await _wmsFactoryRep.DetachedEntities.FirstOrDefaultAsync(w=>
            //根据联合主键验证数据库中是否已存在相同数据
            var existDBItem = await _wmsFactoryRep.DetachedEntities.FirstOrDefaultAsync(w=>
                                                                         inputs.Select(s=>""
                                                                           +s.FactoryCode
                                                                        )
@@ -401,10 +432,22 @@
                  ));
                  if (existDBItem != null)
                 {
                   var wmsFactory = existExcelItem.Adapt<WmsFactory>();
                   var item= existExcelItem.Adapt<WmsFactory>();
                   var item= existDBItem.Adapt<WmsFactory>();
                   throw Oops.Oh($"系统中,编号[{item.FactoryCode}]已存在");
                 }
            var existDBItem2 = await _wmsFactoryRep.DetachedEntities.FirstOrDefaultAsync(w =>
                                                                  inputs.Select(s => ""
                                                                    + s.FactoryName
                                                                 )
                                                                 .Contains(""
                                                                  + w.FactoryName
           ));
            if (existDBItem2 != null)
            {
                var item = existDBItem2.Adapt<WmsFactory>();
                throw Oops.Oh($"系统中,名称[{item.FactoryName}]已存在");
            }
        }
        #endregion
iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsWarehouse/WmsWarehouseService.cs
@@ -22,23 +22,23 @@
    [Route("api")]
    public class WmsWarehouseService : IWmsWarehouseService, IDynamicApiController, ITransient
    {
        private readonly IRepository<WmsWarehouse,MasterDbContextLocator> _wmsWarehouseRep;
        private readonly IRepository<WmsWarehouse, MasterDbContextLocator> _wmsWarehouseRep;
        private readonly IRepository<SysDictType, MasterDbContextLocator> _sysDictTypeRep;
        private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep;
        private readonly ISysExcelTemplateService _sysExcelTemplateService;
        private readonly static object _lock = new();
        public WmsWarehouseService(
            IRepository<WmsWarehouse,MasterDbContextLocator> wmsWarehouseRep
            ,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep
            ,IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep
            ,ISysExcelTemplateService sysExcelTemplateService
            IRepository<WmsWarehouse, MasterDbContextLocator> wmsWarehouseRep
            , IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep
            , IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep
            , ISysExcelTemplateService sysExcelTemplateService
        )
        {
            _wmsWarehouseRep = wmsWarehouseRep;
         _sysDictTypeRep = sysDictTypeRep;
         _sysDictDataRep = sysDictDataRep;
         _sysExcelTemplateService = sysExcelTemplateService;
            _sysDictTypeRep = sysDictTypeRep;
            _sysDictDataRep = sysDictDataRep;
            _sysExcelTemplateService = sysExcelTemplateService;
        }
        /// <summary>
@@ -61,8 +61,8 @@
                                     .Where(!string.IsNullOrEmpty(input.Position), u => u.Position == input.Position)
                                     .Where(input.IsDisabled != null, u => u.IsDisabled == input.IsDisabled)
                                     .Where(!string.IsNullOrEmpty(input.Remarks), u => u.Remarks == input.Remarks)
                                     .Where(input.CreatedTime!=null, u => u.CreatedTime>=  Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime<= Convert.ToDateTime(input.CreatedTime[1]))
                                     .Where(input.UpdatedTime!=null, u => u.UpdatedTime>=  Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime<= Convert.ToDateTime(input.UpdatedTime[1]))
                                     .Where(input.CreatedTime != null, u => u.CreatedTime >= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime <= Convert.ToDateTime(input.CreatedTime[1]))
                                     .Where(input.UpdatedTime != null, u => u.UpdatedTime >= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime <= Convert.ToDateTime(input.UpdatedTime[1]))
                                     .Where(!string.IsNullOrEmpty(input.CreatedUserName), u => u.CreatedUserName == input.CreatedUserName)
                                     .Where(!string.IsNullOrEmpty(input.UpdatedUserName), u => u.UpdatedUserName == input.UpdatedUserName)
                                     .OrderBy(PageInputOrder.OrderBuilder<WmsWarehouseSearch>(input))
@@ -106,8 +106,8 @@
                .Where(!string.IsNullOrEmpty(pPosition), u => u.Position == pPosition)
                .Where(pIsDisabled != null, u => u.IsDisabled == pIsDisabled)
                .Where(!string.IsNullOrEmpty(pRemarks), u => u.Remarks == pRemarks)
           .Where(input.CreatedTime!=null, u => u.CreatedTime>=  Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime<= Convert.ToDateTime(input.CreatedTime[1]))
           .Where(input.UpdatedTime!=null, u => u.UpdatedTime>=  Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime<= Convert.ToDateTime(input.UpdatedTime[1]))
           .Where(input.CreatedTime != null, u => u.CreatedTime >= Convert.ToDateTime(input.CreatedTime[0]) && u.CreatedTime <= Convert.ToDateTime(input.CreatedTime[1]))
           .Where(input.UpdatedTime != null, u => u.UpdatedTime >= Convert.ToDateTime(input.UpdatedTime[0]) && u.UpdatedTime <= Convert.ToDateTime(input.UpdatedTime[1]))
                .Where(!string.IsNullOrEmpty(pCreatedUserName), u => u.CreatedUserName == pCreatedUserName)
                .Where(!string.IsNullOrEmpty(pUpdatedUserName), u => u.UpdatedUserName == pUpdatedUserName)
            .OrderBy(PageInputOrder.OrderNonPageBuilder(input))
@@ -116,7 +116,7 @@
            return wmsWarehouses;
        }
         /// <summary>
        /// <summary>
        /// 获取仓库信息
        /// </summary>
        /// <param name="input"></param>
@@ -136,7 +136,7 @@
        public async Task<List<WmsWarehouseOutput>> List([FromQuery] WmsWarehouseInput input)
        {
            return await _wmsWarehouseRep.DetachedEntities.ProjectToType<WmsWarehouseOutput>().ToListAsync();
        }
        }
        #region 增、删、改
@@ -149,7 +149,7 @@
        public async Task Add(AddWmsWarehouseInput input)
        {
            var wmsWarehouse = input.Adapt<WmsWarehouse>();
                        //验证
            //验证
            await CheckExisit(wmsWarehouse);
            wmsWarehouse.CreatedUserId = wmsWarehouse.UpdatedUserId = SysHelper.GetUserId();
@@ -168,7 +168,7 @@
        {
            var wmsWarehouse = await _wmsWarehouseRep.FirstOrDefaultAsync(u => u.Id == input.Id);
            await _wmsWarehouseRep.DeleteAsync(wmsWarehouse);
        }
        /// <summary>
@@ -184,12 +184,12 @@
            var wmsWarehouse = input.Adapt<WmsWarehouse>();
            //验证
            await CheckExisit(wmsWarehouse,true);
            await CheckExisit(wmsWarehouse, true);
            wmsWarehouse.UpdatedUserId = SysHelper.GetUserId();
            wmsWarehouse.UpdatedUserName = SysHelper.GetUserName();
            wmsWarehouse.UpdatedTime = SysHelper.GetNowTime();
            await _wmsWarehouseRep.UpdateAsync(wmsWarehouse,ignoreNullValues:true);
            await _wmsWarehouseRep.UpdateAsync(wmsWarehouse, ignoreNullValues: true);
        }
        #endregion
@@ -203,17 +203,17 @@
        /// <returns>导入的记录数</returns>
        [HttpPost("WmsWarehouse/importExcel")]
        public async Task<int> ImportExcelAsync(IFormFile file)
        {
        {
            int _HeadStartLine = 2;//第1行是说明,第2行是列名
            int _DataStartLine = 3;//第3行开始是数据
            DataTable importDataTable = ExcelUtil.ImportExcelToDataTable(file, _HeadStartLine, _DataStartLine);
            var addList =await CommonImport(importDataTable, _DataStartLine);
            var addList = await CommonImport(importDataTable, _DataStartLine);
            lock (_lock)
            {
                _wmsWarehouseRep.InsertAsync(addList);
            }
            await Task.CompletedTask;
            return addList.Count;
@@ -234,182 +234,165 @@
            {
                index++;
               //导入模版定制化代码(替换模版使用)
                           var addItem = new WmsWarehouse()
                            {
                               CreatedTime = SysHelper.GetNowTime(),
                               CreatedUserId = SysHelper.GetUserId(),
                               CreatedUserName = SysHelper.GetUserName(),
                               UpdatedTime = SysHelper.GetNowTime(),
                               UpdatedUserId = SysHelper.GetUserId(),
                               UpdatedUserName = SysHelper.GetUserName()
                             };
                          #region 定义变量
                           var _Code = "";//仓库编号
                           var _Name = "";//仓库名称
                           var _Address = "";//仓库地址
                           var _FactoryCode = "";//工厂编号
                           var _Length = "";//长
                           var _Width = "";//宽
                           var _Height = "";//高
                           var _BaseUnit = "";//基本单元
                           var _Position = "";//定位
                           var _IsDisabled = "";//是否禁用
                           var _Remarks = "";//备注
                           var _Id = "";//Id主键
                          #endregion
                          #region 取值
                           _Code = row["仓库编号"]?.ToString() ;
                           _Name = row["仓库名称"]?.ToString() ;
                           _Address = row["仓库地址"]?.ToString() ;
                           _FactoryCode = row["工厂编号"]?.ToString() ;
                           _Length = row["长"]?.ToString() ;
                           _Width = row["宽"]?.ToString() ;
                           _Height = row["高"]?.ToString() ;
                           _BaseUnit = row["基本单元"]?.ToString() ;
                           _Position = row["定位"]?.ToString() ;
                           _IsDisabled = row["是否禁用"]?.ToString() ;
                           _Remarks = row["备注"]?.ToString() ;
                           _Id = row["Id主键"]?.ToString() ;
                          #endregion
                          #region 验证
                          if (string.IsNullOrEmpty(_Code))
                          {
                            throw Oops.Oh($"第{index}行[仓库编号]{_Code}不能为空!");
                          }
                          if(!string.IsNullOrEmpty(_Code))
                          {
                                addItem.Code = (string)_Code;
                           }
                          if (string.IsNullOrEmpty(_Name))
                          {
                            throw Oops.Oh($"第{index}行[仓库名称]{_Name}不能为空!");
                          }
                          if(!string.IsNullOrEmpty(_Name))
                          {
                                addItem.Name = (string)_Name;
                           }
                          if(!string.IsNullOrEmpty(_Address))
                          {
                                addItem.Address = (string)_Address;
                           }
                          if (string.IsNullOrEmpty(_FactoryCode))
                          {
                            throw Oops.Oh($"第{index}行[工厂编号]{_FactoryCode}不能为空!");
                          }
                          if(!string.IsNullOrEmpty(_FactoryCode))
                          {
                                addItem.FactoryCode = (string)_FactoryCode;
                           }
                          if(!string.IsNullOrEmpty(_Length))
                          {
                              if (!decimal.TryParse(_Length, out decimal outLength)&&!string.IsNullOrEmpty(_Length))
                              {
                                 throw Oops.Oh($"第{index}行[长]{_Length}值不正确!");
                              }
                              if (outLength <= 0&&!string.IsNullOrEmpty(_Length))
                              {
                                 throw Oops.Oh($"第{index}行[长]{_Length}值不能小于等于0!");
                              }
                              else
                              {
                                 addItem.Length = outLength;
                              }
                          }
                          if(!string.IsNullOrEmpty(_Width))
                          {
                              if (!decimal.TryParse(_Width, out decimal outWidth)&&!string.IsNullOrEmpty(_Width))
                              {
                                 throw Oops.Oh($"第{index}行[宽]{_Width}值不正确!");
                              }
                              if (outWidth <= 0&&!string.IsNullOrEmpty(_Width))
                              {
                                 throw Oops.Oh($"第{index}行[宽]{_Width}值不能小于等于0!");
                              }
                              else
                              {
                                 addItem.Width = outWidth;
                              }
                          }
                          if(!string.IsNullOrEmpty(_Height))
                          {
                              if (!decimal.TryParse(_Height, out decimal outHeight)&&!string.IsNullOrEmpty(_Height))
                              {
                                 throw Oops.Oh($"第{index}行[高]{_Height}值不正确!");
                              }
                              if (outHeight <= 0&&!string.IsNullOrEmpty(_Height))
                              {
                                 throw Oops.Oh($"第{index}行[高]{_Height}值不能小于等于0!");
                              }
                              else
                              {
                                 addItem.Height = outHeight;
                              }
                          }
                          if(!string.IsNullOrEmpty(_BaseUnit))
                          {
                                addItem.BaseUnit = (string)_BaseUnit;
                           }
                          if(!string.IsNullOrEmpty(_Position))
                          {
                                addItem.Position = (string)_Position;
                           }
                          if(!string.IsNullOrEmpty(_IsDisabled))
                          {
                            if(!_IsDisabled.Equals("是") && !_IsDisabled.Equals("否"))
                             {
                               throw Oops.Oh($"第{index}行[是否禁用]{_IsDisabled}值不正确!");
                             }
                             else
                             {
                               bool outIsDisabled = _IsDisabled.Equals("是") ? true : false;
                               addItem.IsDisabled = outIsDisabled;
                             }
                             }
                          if(!string.IsNullOrEmpty(_Remarks))
                          {
                                addItem.Remarks = (string)_Remarks;
                           }
                          if(!string.IsNullOrEmpty(_Id))
                          {
                              if (!long.TryParse(_Id, out long outId)&&!string.IsNullOrEmpty(_Id))
                              {
                                 throw Oops.Oh($"第{index}行[Id主键]{_Id}值不正确!");
                              }
                              if (outId <= 0&&!string.IsNullOrEmpty(_Id))
                              {
                                 throw Oops.Oh($"第{index}行[Id主键]{_Id}值不能小于等于0!");
                              }
                              else
                              {
                                 addItem.Id = outId;
                              }
                          }
                          #endregion
                //导入模版定制化代码(替换模版使用)
                var addItem = new WmsWarehouse()
                {
                    CreatedTime = SysHelper.GetNowTime(),
                    CreatedUserId = SysHelper.GetUserId(),
                    CreatedUserName = SysHelper.GetUserName(),
                    UpdatedTime = SysHelper.GetNowTime(),
                    UpdatedUserId = SysHelper.GetUserId(),
                    UpdatedUserName = SysHelper.GetUserName()
                };
                #region 定义变量
                var _Code = "";//仓库编号
                var _Name = "";//仓库名称
                var _Address = "";//仓库地址
                var _FactoryCode = "";//工厂编号
                var _Length = "";//长
                var _Width = "";//宽
                var _Height = "";//高
                var _BaseUnit = "";//基本单元
                var _Position = "";//定位
                var _IsDisabled = "";//是否禁用
                var _Remarks = "";//备注
                #endregion
                #region 取值
                _Code = row["仓库编号"]?.ToString();
                _Name = row["仓库名称"]?.ToString();
                _Address = row["仓库地址"]?.ToString();
                _FactoryCode = row["工厂编号"]?.ToString();
                _Length = row["长"]?.ToString();
                _Width = row["宽"]?.ToString();
                _Height = row["高"]?.ToString();
                _BaseUnit = row["基本单元"]?.ToString();
                _Position = row["定位"]?.ToString();
                _IsDisabled = row["是否禁用"]?.ToString();
                _Remarks = row["备注"]?.ToString();
                #endregion
                #region 验证
                if (string.IsNullOrEmpty(_Code))
                {
                    throw Oops.Oh($"第{index}行[仓库编号]{_Code}不能为空!");
                }
                if (!string.IsNullOrEmpty(_Code))
                {
                    addItem.Code = (string)_Code;
                }
                if (string.IsNullOrEmpty(_Name))
                {
                    throw Oops.Oh($"第{index}行[仓库名称]{_Name}不能为空!");
                }
                if (!string.IsNullOrEmpty(_Name))
                {
                    addItem.Name = (string)_Name;
                }
                if (!string.IsNullOrEmpty(_Address))
                {
                    addItem.Address = (string)_Address;
                }
                if (string.IsNullOrEmpty(_FactoryCode))
                {
                    throw Oops.Oh($"第{index}行[工厂编号]{_FactoryCode}不能为空!");
                }
                if (!string.IsNullOrEmpty(_FactoryCode))
                {
                    addItem.FactoryCode = (string)_FactoryCode;
                }
                if (!string.IsNullOrEmpty(_Length))
                {
                    if (!decimal.TryParse(_Length, out decimal outLength) && !string.IsNullOrEmpty(_Length))
                    {
                        throw Oops.Oh($"第{index}行[长]{_Length}值不正确!");
                    }
                    if (outLength <= 0 && !string.IsNullOrEmpty(_Length))
                    {
                        throw Oops.Oh($"第{index}行[长]{_Length}值不能小于等于0!");
                    }
                    else
                    {
                        addItem.Length = outLength;
                    }
                }
                if (!string.IsNullOrEmpty(_Width))
                {
                    if (!decimal.TryParse(_Width, out decimal outWidth) && !string.IsNullOrEmpty(_Width))
                    {
                        throw Oops.Oh($"第{index}行[宽]{_Width}值不正确!");
                    }
                    if (outWidth <= 0 && !string.IsNullOrEmpty(_Width))
                    {
                        throw Oops.Oh($"第{index}行[宽]{_Width}值不能小于等于0!");
                    }
                    else
                    {
                        addItem.Width = outWidth;
                    }
                }
                if (!string.IsNullOrEmpty(_Height))
                {
                    if (!decimal.TryParse(_Height, out decimal outHeight) && !string.IsNullOrEmpty(_Height))
                    {
                        throw Oops.Oh($"第{index}行[高]{_Height}值不正确!");
                    }
                    if (outHeight <= 0 && !string.IsNullOrEmpty(_Height))
                    {
                        throw Oops.Oh($"第{index}行[高]{_Height}值不能小于等于0!");
                    }
                    else
                    {
                        addItem.Height = outHeight;
                    }
                }
                if (!string.IsNullOrEmpty(_BaseUnit))
                {
                    addItem.BaseUnit = (string)_BaseUnit;
                }
                if (!string.IsNullOrEmpty(_Position))
                {
                    addItem.Position = (string)_Position;
                }
                if (!string.IsNullOrEmpty(_IsDisabled))
                {
                    if (!_IsDisabled.Equals("是") && !_IsDisabled.Equals("否"))
                    {
                        throw Oops.Oh($"第{index}行[是否禁用]{_IsDisabled}值不正确!");
                    }
                    else
                    {
                        bool outIsDisabled = _IsDisabled.Equals("是") ? true : false;
                        addItem.IsDisabled = outIsDisabled;
                    }
                }
                if (!string.IsNullOrEmpty(_Remarks))
                {
                    addItem.Remarks = (string)_Remarks;
                }
                #endregion
                details.Add(addItem);
            }
              //验重
              await CheckExisitForImport(details);
            //验重
            await CheckExisitForImport(details);
            return details;
        }
@@ -436,80 +419,133 @@
        /// <param name="input"></param>
        /// <param name="isEdit"></param>
        /// <returns></returns>
        private async Task CheckExisit( WmsWarehouse input,bool isEdit=false)
        private async Task CheckExisit(WmsWarehouse input, bool isEdit = false)
        {
           bool isExist = false;
           if (!isEdit)//新增
           {
                   //数据是否存在重复
                   isExist = await _wmsWarehouseRep.AnyAsync(u =>
                                   u.Code.Equals(input.Code)
                   ,false);
          }
           else//编辑
          {
                 //当前编辑数据以外是否存在重复
                  isExist = await _wmsWarehouseRep.AnyAsync(u =>
                                    u.Id != input.Id
                                    &&u.Code.Equals(input.Code)
                    ,false);
               }
            string erorMsg = string.Empty;
            bool isExist = false;
            if (!isEdit)//新增
            {
                //数据是否存在重复
                isExist = await _wmsWarehouseRep.AnyAsync(u =>
                                u.Code.Equals(input.Code)
                , false);
                if (isExist)
                {
                    erorMsg = $"系统中,仓库编号[{input.Code}]已存在";
                    throw Oops.Oh(erorMsg);
                }
                //数据是否存在重复
                isExist = await _wmsWarehouseRep.AnyAsync(u =>
                                u.Name.Equals(input.Name)
                , false);
                if (isExist)
                {
                    erorMsg = $"系统中,仓库名称[{input.Name}]已存在";
                    throw Oops.Oh(erorMsg);
                }
            }
            else//编辑
            {
            if (isExist) throw Oops.Oh(ErrorCode.E0001);
       }
                //当前编辑数据以外是否存在重复
                isExist = await _wmsWarehouseRep.AnyAsync(u =>
                                  u.Id != input.Id
                                  && u.Code.Equals(input.Code)
                  , false);
                if (isExist)
                {
                    erorMsg = $"系统中,仓库编号[{input.Code}]已存在";
                    throw Oops.Oh(erorMsg);
                }
                isExist = await _wmsWarehouseRep.AnyAsync(u =>
                           u.Id != input.Id
                           && u.Name.Equals(input.Name)
                , false);
                if (isExist)
                {
                    erorMsg = $"系统中,仓库名称[{input.Name}]已存在";
                    throw Oops.Oh(erorMsg);
                }
            }
        }
        /// <summary>
        /// 根据联合主键验证数据是否已存在-导入时验证
        /// </summary>
        /// <param name="inputs"></param>
        /// <returns></returns>
        private async Task CheckExisitForImport(List<WmsWarehouse> inputs)
        {
        {
            //根据联合主键验证表格中中是否已存在相同数据  
                 if (inputs?.Count <= 0)
                 {
                     throw Oops.Oh($"导入数据不能为空");
                 }
                 //数据是否重复
                 var existExcelItem = inputs.GroupBy(g => new {
                                               g.Code
                                               })
                                               .Where(g => g.Count() > 1)
                                               .Select(s => new {
                                               s.Key.Code
                                               }).FirstOrDefault();
                 if (existExcelItem != null)
                 {
                   var wmsWarehouse = existExcelItem.Adapt<WmsWarehouse>();
                   var item= existExcelItem.Adapt<WmsWarehouse>();
                   throw Oops.Oh($"导入的表格中,仓库编号[{item.Code}]已存在");
                 }
            if (inputs?.Count <= 0)
            {
                throw Oops.Oh($"导入数据不能为空");
            }
            //数据是否重复
            var existExcelItem = inputs.GroupBy(g => new
            {
                g.Code
            })
                                          .Where(g => g.Count() > 1)
                                          .Select(s => new
                                          {
                                              s.Key.Code
                                          }).FirstOrDefault();
            if (existExcelItem != null)
            {
                var item = existExcelItem.Adapt<WmsWarehouse>();
                throw Oops.Oh($"导入的表格中,仓库编号[{item.Code}]已存在");
            }
            var existExcelItem2 = inputs.GroupBy(g => new
            {
                g.Name
            })
                                            .Where(g => g.Count() > 1)
                                            .Select(s => new
                                            {
                                                s.Key.Name
                                            }).FirstOrDefault();
            if (existExcelItem2 != null)
            {
                var item = existExcelItem2.Adapt<WmsWarehouse>();
                throw Oops.Oh($"导入的表格中,仓库名称[{item.Name}]已存在");
            }
    //根据联合主键验证数据库中是否已存在相同数据
                 var existDBItem = await _wmsWarehouseRep.DetachedEntities.FirstOrDefaultAsync(w=>
                                                                         inputs.Select(s=>""
                                                                           +s.Code
            //根据联合主键验证数据库中是否已存在相同数据
            var existDBItem = await _wmsWarehouseRep.DetachedEntities.FirstOrDefaultAsync(w =>
                                                                         inputs.Select(s => ""
                                                                           + s.Code
                                                                        )
                                                                        .Contains(""
                                                                         +w.Code
                                                                         + w.Code
                  ));
                  if (existDBItem != null)
                 {
                   var wmsWarehouse = existExcelItem.Adapt<WmsWarehouse>();
                   var item= existExcelItem.Adapt<WmsWarehouse>();
                   throw Oops.Oh($"系统中,仓库编号[{item.Code}]已存在");
                 }
            if (existDBItem != null)
            {
                var item = existDBItem.Adapt<WmsWarehouse>();
                throw Oops.Oh($"系统中,仓库编号[{item.Code}]已存在");
            }
            var existDBItem2 = await _wmsWarehouseRep.DetachedEntities.FirstOrDefaultAsync(w =>
                                                                     inputs.Select(s => ""
                                                                       + s.Name
                                                                    )
                                                                    .Contains(""
                                                                     + w.Name
              ));
            if (existDBItem2 != null)
            {
                var item = existDBItem2.Adapt<WmsWarehouse>();
                throw Oops.Oh($"系统中,仓库名称[{item.Name}]已存在");
            }
        }
        #endregion