From 4d14b84903bf0277c5e8b9b3138c5e1d981e95db Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周四, 25 4月 2024 11:01:31 +0800
Subject: [PATCH] Merge branch 'master' of http://222.71.245.114:9086/r/iWare_RawMaterialWarehouse

---
 iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs |  836 +++++++++++++++++++++++++++++++++-------------------------
 1 files changed, 475 insertions(+), 361 deletions(-)

diff --git a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs
index 930edf9..7e2b3d6 100644
--- a/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs
+++ b/iWare_RawMaterialWarehouse_Wms/Admin.NET.Application/Service/WmsBase/WmsMaterial/WmsMaterialService.cs
@@ -27,22 +27,26 @@
         private readonly IRepository<SysDictData, MasterDbContextLocator> _sysDictDataRep;
         private readonly ISysExcelTemplateService _sysExcelTemplateService;
         private readonly static object _lock = new();
-
+        private readonly IRepository<WmsMaterialCustomer, MasterDbContextLocator> _wmsMaterialCustomerRep;
+        private readonly IRepository<WmsSubstituteGood, MasterDbContextLocator> _wmsSubstituteGoodRep;
         public WmsMaterialService(
             IRepository<WmsMaterial,MasterDbContextLocator> wmsMaterialRep
             ,IRepository<SysDictType, MasterDbContextLocator> sysDictTypeRep
             ,IRepository<SysDictData, MasterDbContextLocator> sysDictDataRep
             ,ISysExcelTemplateService sysExcelTemplateService
+            , IRepository<WmsMaterialCustomer, MasterDbContextLocator> wmsMaterialCustomerRep
+            , IRepository<WmsSubstituteGood, MasterDbContextLocator> wmsSubstituteGoodRep
         )
         {
             _wmsMaterialRep = wmsMaterialRep;
          _sysDictTypeRep = sysDictTypeRep;
          _sysDictDataRep = sysDictDataRep;
          _sysExcelTemplateService = sysExcelTemplateService;
+            _wmsMaterialCustomerRep = wmsMaterialCustomerRep;
+            _wmsSubstituteGoodRep = wmsSubstituteGoodRep;
         }
-
         /// <summary>
-        /// 鍒嗛〉鏌ヨ鐗╂枡淇℃伅琛�
+        /// 鍒嗛〉鏌ヨ鐗╂枡淇℃伅
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
@@ -50,7 +54,7 @@
         public async Task<PageResult<WmsMaterialOutput>> Page([FromQuery] WmsMaterialSearch input)
         {
             var wmsMaterials = await _wmsMaterialRep.DetachedEntities
-                                     .Where(!string.IsNullOrEmpty(input.MaterialName), u => EF.Functions.Like(u.MaterialName, $"%{input.MaterialName.Trim()}%"))
+                                     .Where(!string.IsNullOrEmpty(input.MaterialName), u => u.MaterialName == input.MaterialName)
                                      .Where(!string.IsNullOrEmpty(input.MaterialCode), u => u.MaterialCode == input.MaterialCode)
                                      .Where(!string.IsNullOrEmpty(input.ErpCode), u => u.ErpCode == input.ErpCode)
                                      .Where(!string.IsNullOrEmpty(input.MaterialTypeName), u => u.MaterialTypeName == input.MaterialTypeName)
@@ -71,8 +75,8 @@
                                      .Where(input.ControlRuleId != null, u => u.ControlRuleId == input.ControlRuleId)
                                      .Where(input.IsDisabled != null, u => u.IsDisabled == input.IsDisabled)
                                      .Where(!string.IsNullOrEmpty(input.MaterialDesc), u => u.MaterialDesc == input.MaterialDesc)
-                                     .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<WmsMaterialSearch>(input))
@@ -82,10 +86,10 @@
         }
 
         /// <summary>
-        /// 涓嶅垎椤垫煡璇㈢墿鏂欎俊鎭〃鍒楄〃
+        /// 涓嶅垎椤垫煡璇㈢墿鏂欎俊鎭垪琛�
         /// </summary>
-        /// <param name="input">鐗╂枡淇℃伅琛ㄦ煡璇㈠弬鏁�</param>
-        /// <returns>(鐗╂枡淇℃伅琛�)瀹炰緥鍒楄〃</returns>
+        /// <param name="input">鐗╂枡淇℃伅鏌ヨ鍙傛暟</param>
+        /// <returns>(鐗╂枡淇℃伅)瀹炰緥鍒楄〃</returns>
         [HttpGet("WmsMaterial/listNonPage")]
         public async Task<List<WmsMaterialOutput>> ListNonPageAsync([FromQuery] WmsMaterialSearchNonPage input)
         {
@@ -115,7 +119,7 @@
             var pCreatedUserName = input.CreatedUserName?.Trim() ?? "";
             var pUpdatedUserName = input.UpdatedUserName?.Trim() ?? "";
             var wmsMaterials = await _wmsMaterialRep.DetachedEntities
-                .Where(!string.IsNullOrEmpty(pMaterialName), u => EF.Functions.Like(u.MaterialName, $"%{pMaterialName}%")) 
+                .Where(!string.IsNullOrEmpty(pMaterialName), u => u.MaterialName == pMaterialName)
                 .Where(!string.IsNullOrEmpty(pMaterialCode), u => u.MaterialCode == pMaterialCode)
                 .Where(!string.IsNullOrEmpty(pErpCode), u => u.ErpCode == pErpCode)
                 .Where(!string.IsNullOrEmpty(pMaterialTypeName), u => u.MaterialTypeName == pMaterialTypeName)
@@ -136,8 +140,8 @@
                 .Where(pControlRuleId != null, u => u.ControlRuleId == pControlRuleId)
                 .Where(pIsDisabled != null, u => u.IsDisabled == pIsDisabled)
                 .Where(!string.IsNullOrEmpty(pMaterialDesc), u => u.MaterialDesc == pMaterialDesc)
-           .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))
@@ -146,8 +150,8 @@
             return wmsMaterials;
         }
 
-         /// <summary>
-        /// 鑾峰彇鐗╂枡淇℃伅琛�
+        /// <summary>
+        /// 鑾峰彇鐗╂枡淇℃伅
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
@@ -158,7 +162,7 @@
         }
 
         /// <summary>
-        /// 鑾峰彇鐗╂枡淇℃伅琛ㄥ垪琛�
+        /// 鑾峰彇鐗╂枡淇℃伅鍒楄〃
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
@@ -177,15 +181,17 @@
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost("WmsMaterial/add")]
+        [UnitOfWork]
         public async Task Add(AddWmsMaterialInfoInput input)
         {
-
 
             //鐗╂枡淇℃伅
             var wmsMaterial = input.MaterialInput.Adapt<WmsMaterial>();
             //鎺у埗瑙勫垯淇℃伅
             var controlRuleld = input.ControlRuleld;
-            //瀹㈡埛妗f淇℃伅
+            wmsMaterial.ControlRuleId = controlRuleld;
+
+            //寰�鏉ュ叧绯讳俊鎭�
             var baseCustomerList = input.BaseCustomerList.Adapt<List<BaseCustomer>>();
             //鐗╂枡瀹㈡埛鍏宠仈鍏崇郴
             var materialCustomerList=new List<WmsMaterialCustomer>();
@@ -208,22 +214,31 @@
                     UpdatedUserName = CurrentUserInfo.Name
                     
                 });
-
             }
-
-            //鏇夸唬鍝佷俊鎭�
-            var substituteGoodList = input.SubstituteGoodList.Adapt<List<WmsSubstituteGood>>();
             //楠岃瘉
             await CheckExisit(wmsMaterial);
 
-            wmsMaterial.CreatedUserId = wmsMaterial.UpdatedUserId = SysHelper.GetUserId();
-            wmsMaterial.CreatedUserName = wmsMaterial.UpdatedUserName = SysHelper.GetUserName();
-            wmsMaterial.CreatedTime = wmsMaterial.UpdatedTime = SysHelper.GetNowTime();
+            //鏇夸唬鍝佷俊鎭�
+            var substituteGoodList = input.SubstituteGoodList.Adapt<List<WmsSubstituteGood>>();
+
+            wmsMaterial.UpdatedUserId = SysHelper.GetUserId();
+            wmsMaterial.UpdatedUserName = SysHelper.GetUserName();
+            wmsMaterial.UpdatedTime = SysHelper.GetNowTime();
+
+
             await _wmsMaterialRep.InsertAsync(wmsMaterial);
+            if (materialCustomerList?.Count > 0)
+            {
+                await _wmsMaterialCustomerRep.InsertAsync(materialCustomerList);
+            }
+            if (substituteGoodList?.Count > 0)
+            {
+                await _wmsSubstituteGoodRep.InsertAsync(substituteGoodList);
+            }
         }
 
         /// <summary>
-        /// 鍒犻櫎鐗╂枡淇℃伅琛�
+        /// 鍒犻櫎鐗╂枡淇℃伅
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
@@ -232,28 +247,89 @@
         {
             var wmsMaterial = await _wmsMaterialRep.FirstOrDefaultAsync(u => u.Id == input.Id);
             await _wmsMaterialRep.DeleteAsync(wmsMaterial);
-            
+
         }
 
         /// <summary>
-        /// 鏇存柊鐗╂枡淇℃伅琛�
+        /// 鏇存柊鐗╂枡淇℃伅
         /// </summary>
         /// <param name="input"></param>
         /// <returns></returns>
         [HttpPost("WmsMaterial/edit")]
-        public async Task Update(UpdateWmsMaterialInput input)
+        [UnitOfWork]
+        public async Task Update(UpdateWmsMaterialInfoInput input)
         {
-            var isExist = await _wmsMaterialRep.AnyAsync(u => u.Id == input.Id, false);
+            //鐗╂枡淇℃伅
+            var wmsMaterial = input.MaterialInput.Adapt<WmsMaterial>();
+            var isExist = await _wmsMaterialRep.AnyAsync(u => u.Id == wmsMaterial.Id, false);
             if (!isExist) throw Oops.Oh(ErrorCode.D1002);
-
-            var wmsMaterial = input.Adapt<WmsMaterial>();
             //楠岃瘉
-            await CheckExisit(wmsMaterial,true);
+            await CheckExisit(wmsMaterial, true);
+
+            //鎺у埗瑙勫垯淇℃伅
+            var controlRuleld = input.ControlRuleld;
+            wmsMaterial.ControlRuleId = controlRuleld;
+
+
+            //鍒犻櫎鐗╂枡瀹㈡埛鍏宠仈鍏崇郴
+            var oldaterialCustomerList = await _wmsMaterialCustomerRep.DetachedEntities.Where(w => w.MaterialId == wmsMaterial.Id).ToListAsync();
+            if (oldaterialCustomerList?.Count > 0)
+            {
+                await _wmsMaterialCustomerRep.DeleteAsync(oldaterialCustomerList);
+            }
+
+
+            //寰�鏉ュ叧绯讳俊鎭�
+            var baseCustomerList = input.BaseCustomerList.Adapt<List<BaseCustomer>>();
+            //鐗╂枡瀹㈡埛鍏宠仈鍏崇郴
+            var materialCustomerList = new List<WmsMaterialCustomer>();
+            foreach (var baseCustomer in baseCustomerList)
+            {
+                materialCustomerList.Add(new WmsMaterialCustomer()
+                {
+                    CreatedTime = DateTime.Now,
+                    CreatedUserId = CurrentUserInfo.UserId,
+                    CreatedUserName = CurrentUserInfo.Name,
+                    CustChinaName = baseCustomer.CustChinaName,
+                    CustCode = baseCustomer.CustCode,
+                    CustEnglishName = baseCustomer.CustEnglishName,
+                    CustId = baseCustomer.Id,
+                    MaterialCode = wmsMaterial.MaterialCode,
+                    MaterialId = wmsMaterial.Id,
+                    MaterialName = wmsMaterial.MaterialName,
+                    UpdatedTime = DateTime.Now,
+                    UpdatedUserId = CurrentUserInfo.UserId,
+                    UpdatedUserName = CurrentUserInfo.Name
+
+                });
+            }
+
+            //鍒犻櫎鏇夸唬鍝佷俊鎭�
+            var oldSubstituteGoodList = await _wmsSubstituteGoodRep.DetachedEntities.Where(w => w.MaterialCode == wmsMaterial.MaterialCode).ToListAsync();
+            if (oldSubstituteGoodList?.Count > 0)
+            {
+                await _wmsSubstituteGoodRep.DeleteAsync(oldSubstituteGoodList);
+            }
+
+
+            //鏇夸唬鍝佷俊鎭�
+            var substituteGoodList = input.SubstituteGoodList.Adapt<List<WmsSubstituteGood>>();
+
+            if (materialCustomerList?.Count > 0)
+            {
+                await _wmsMaterialCustomerRep.InsertAsync(materialCustomerList);
+            }
+            if (substituteGoodList?.Count > 0)
+            {
+                await _wmsSubstituteGoodRep.InsertAsync(substituteGoodList);
+            }
 
             wmsMaterial.UpdatedUserId = SysHelper.GetUserId();
             wmsMaterial.UpdatedUserName = SysHelper.GetUserName();
             wmsMaterial.UpdatedTime = SysHelper.GetNowTime();
-            await _wmsMaterialRep.UpdateAsync(wmsMaterial,ignoreNullValues:true);
+            await _wmsMaterialRep.UpdateAsync(wmsMaterial, ignoreNullValues: true);
+
+
         }
 
         #endregion
@@ -261,23 +337,23 @@
         #region 瀵煎叆
 
         /// <summary>
-        /// Excel妯℃澘瀵煎叆鐗╂枡淇℃伅琛ㄥ姛鑳�
+        /// Excel妯℃澘瀵煎叆鐗╂枡淇℃伅鍔熻兘
         /// </summary>
         /// <param name="file">Excel妯℃澘鏂囦欢</param>
         /// <returns>瀵煎叆鐨勮褰曟暟</returns>
         [HttpPost("WmsMaterial/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)
             {
                 _wmsMaterialRep.InsertAsync(addList);
-               
+
             }
             await Task.CompletedTask;
             return addList.Count;
@@ -298,277 +374,278 @@
             {
                 index++;
 
-               //瀵煎叆妯$増瀹氬埗鍖栦唬鐮侊紙鏇挎崲妯$増浣跨敤锛�
-                                          
-                           var addItem = new WmsMaterial()
-                            {
-                               CreatedTime = SysHelper.GetNowTime(),
-                               CreatedUserId = SysHelper.GetUserId(),
-                               CreatedUserName = SysHelper.GetUserName(),
-                               UpdatedTime = SysHelper.GetNowTime(),
-                               UpdatedUserId = SysHelper.GetUserId(),
-                               UpdatedUserName = SysHelper.GetUserName()
-                             };
-                          #region 瀹氫箟鍙橀噺
-                           var _MaterialName = "";//鐗╂枡鍚嶇О
-                           var _MaterialCode = "";//鐗╂枡缂栧彿
-                           var _ErpCode = "";//ERP缂栧彿
-                           var _MaterialTypeName = "";//鐗╂枡绫诲瀷鍚嶇О
-                           var _MaterialTypeDescr = "";//鐗╂枡绫诲瀷鎻忚堪
-                           var _MaterialType = "";//鐗╂枡绫诲瀷
-                           var _MaterialGroup = "";//鐗╂枡缁�
-                           var _ABCClassName = "";//ABC鍒嗙被鍚嶇О
-                           var _ABCClass = "";//ABC鍒嗙被
-                           var _MaterialSpec = "";//鐗╂枡瑙勬牸
-                           var _InPlaceCode = "";//榛樿鍏ュ簱搴撲綅
-                           var _MaterialUnit = "";//搴撳瓨鍗曚綅
-                           var _POUnit = "";//閲囪喘鍗曚綅
-                           var _Color = "";//棰滆壊
-                           var _Weight = "";//閲嶉噺
-                           var _SNP = "";//鏍囧寘鏁伴噺
-                           var _TranslateRate = "";//鎹㈢畻鐜�
-                           var _BatchRuleId = "";//鎵规灞炴�ц鍒�
-                           var _ControlRuleId = "";//鎺у埗灞炴�ц鍒�
-                           var _IsDisabled = "";//鏄惁绂佺敤
-                           var _MaterialDesc = "";//鎻忚堪
-                           var _Id = "";//Id涓婚敭
-                          #endregion
-                          
-                          
-                          #region 鍙栧��
-                           _MaterialName = row["鐗╂枡鍚嶇О"]?.ToString() ;
-                           _MaterialCode = row["鐗╂枡缂栧彿"]?.ToString() ;
-                           _ErpCode = row["ERP缂栧彿"]?.ToString() ;
-                           _MaterialTypeName = row["鐗╂枡绫诲瀷鍚嶇О"]?.ToString() ;
-                           _MaterialTypeDescr = row["鐗╂枡绫诲瀷鎻忚堪"]?.ToString() ;
-                           _MaterialType = row["鐗╂枡绫诲瀷"]?.ToString() ;
-                           _MaterialGroup = row["鐗╂枡缁�"]?.ToString() ;
-                           _ABCClassName = row["ABC鍒嗙被鍚嶇О"]?.ToString() ;
-                           _ABCClass = row["ABC鍒嗙被"]?.ToString() ;
-                           _MaterialSpec = row["鐗╂枡瑙勬牸"]?.ToString() ;
-                           _InPlaceCode = row["榛樿鍏ュ簱搴撲綅"]?.ToString() ;
-                           _MaterialUnit = row["搴撳瓨鍗曚綅"]?.ToString() ;
-                           _POUnit = row["閲囪喘鍗曚綅"]?.ToString() ;
-                           _Color = row["棰滆壊"]?.ToString() ;
-                           _Weight = row["閲嶉噺"]?.ToString() ;
-                           _SNP = row["鏍囧寘鏁伴噺"]?.ToString() ;
-                           _TranslateRate = row["鎹㈢畻鐜�"]?.ToString() ;
-                           _BatchRuleId = row["鎵规灞炴�ц鍒�"]?.ToString() ;
-                           _ControlRuleId = row["鎺у埗灞炴�ц鍒�"]?.ToString() ;
-                           _IsDisabled = row["鏄惁绂佺敤"]?.ToString() ;
-                           _MaterialDesc = row["鎻忚堪"]?.ToString() ;
-                           _Id = row["Id涓婚敭"]?.ToString() ;
-                          #endregion
-                          
-                          
-                          #region 楠岃瘉
-                          
-                          if (string.IsNullOrEmpty(_MaterialName))
-                          {
-                            throw Oops.Oh($"绗瑊index}琛孾鐗╂枡鍚嶇О]{_MaterialName}涓嶈兘涓虹┖锛�");
-                          }
-                          
-                          if(!string.IsNullOrEmpty(_MaterialName))
-                          {
-                                addItem.MaterialName = (string)_MaterialName;
-                           }
-                          
-                          if (string.IsNullOrEmpty(_MaterialCode))
-                          {
-                            throw Oops.Oh($"绗瑊index}琛孾鐗╂枡缂栧彿]{_MaterialCode}涓嶈兘涓虹┖锛�");
-                          }
-                          
-                          if(!string.IsNullOrEmpty(_MaterialCode))
-                          {
-                                addItem.MaterialCode = (string)_MaterialCode;
-                           }
-                          if(!string.IsNullOrEmpty(_ErpCode))
-                          {
-                                addItem.ErpCode = (string)_ErpCode;
-                           }
-                          if(!string.IsNullOrEmpty(_MaterialTypeName))
-                          {
-                                addItem.MaterialTypeName = (string)_MaterialTypeName;
-                           }
-                          if(!string.IsNullOrEmpty(_MaterialTypeDescr))
-                          {
-                                addItem.MaterialTypeDescr = (string)_MaterialTypeDescr;
-                           }
-                          if(!string.IsNullOrEmpty(_MaterialType))
-                          {
-                              if (!int.TryParse(_MaterialType, out int outMaterialType)&&!string.IsNullOrEmpty(_MaterialType))
-                              {
-                                 throw Oops.Oh($"绗瑊index}琛孾鐗╂枡绫诲瀷]{_MaterialType}鍊间笉姝g‘锛�");
-                              }
-                              if (outMaterialType <= 0&&!string.IsNullOrEmpty(_MaterialType))
-                              {
-                                 throw Oops.Oh($"绗瑊index}琛孾鐗╂枡绫诲瀷]{_MaterialType}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
-                              }
-                              else
-                              {
-                                 addItem.MaterialType = outMaterialType;
-                              }
-                          
-                          }
-                          if(!string.IsNullOrEmpty(_MaterialGroup))
-                          {
-                                addItem.MaterialGroup = (string)_MaterialGroup;
-                           }
-                          if(!string.IsNullOrEmpty(_ABCClassName))
-                          {
-                                addItem.ABCClassName = (string)_ABCClassName;
-                           }
-                          if(!string.IsNullOrEmpty(_ABCClass))
-                          {
-                              if (!int.TryParse(_ABCClass, out int outABCClass)&&!string.IsNullOrEmpty(_ABCClass))
-                              {
-                                 throw Oops.Oh($"绗瑊index}琛孾ABC鍒嗙被]{_ABCClass}鍊间笉姝g‘锛�");
-                              }
-                              if (outABCClass <= 0&&!string.IsNullOrEmpty(_ABCClass))
-                              {
-                                 throw Oops.Oh($"绗瑊index}琛孾ABC鍒嗙被]{_ABCClass}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
-                              }
-                              else
-                              {
-                                 addItem.ABCClass = outABCClass;
-                              }
-                          
-                          }
-                          if(!string.IsNullOrEmpty(_MaterialSpec))
-                          {
-                                addItem.MaterialSpec = (string)_MaterialSpec;
-                           }
-                          if(!string.IsNullOrEmpty(_InPlaceCode))
-                          {
-                                addItem.InPlaceCode = (string)_InPlaceCode;
-                           }
-                          if(!string.IsNullOrEmpty(_MaterialUnit))
-                          {
-                                addItem.MaterialUnit = (string)_MaterialUnit;
-                           }
-                          if(!string.IsNullOrEmpty(_POUnit))
-                          {
-                                addItem.POUnit = (string)_POUnit;
-                           }
-                          if(!string.IsNullOrEmpty(_Color))
-                          {
-                                addItem.Color = (string)_Color;
-                           }
-                          if(!string.IsNullOrEmpty(_Weight))
-                          {
-                                addItem.Weight = (string)_Weight;
-                           }
-                          if(!string.IsNullOrEmpty(_SNP))
-                          {
-                              if (!decimal.TryParse(_SNP, out decimal outSNP)&&!string.IsNullOrEmpty(_SNP))
-                              {
-                                 throw Oops.Oh($"绗瑊index}琛孾鏍囧寘鏁伴噺]{_SNP}鍊间笉姝g‘锛�");
-                              }
-                              if (outSNP <= 0&&!string.IsNullOrEmpty(_SNP))
-                              {
-                                 throw Oops.Oh($"绗瑊index}琛孾鏍囧寘鏁伴噺]{_SNP}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
-                              }
-                              else
-                              {
-                                 addItem.SNP = outSNP;
-                              }
-                          
-                          }
-                          if(!string.IsNullOrEmpty(_TranslateRate))
-                          {
-                              if (!decimal.TryParse(_TranslateRate, out decimal outTranslateRate)&&!string.IsNullOrEmpty(_TranslateRate))
-                              {
-                                 throw Oops.Oh($"绗瑊index}琛孾鎹㈢畻鐜嘳{_TranslateRate}鍊间笉姝g‘锛�");
-                              }
-                              if (outTranslateRate <= 0&&!string.IsNullOrEmpty(_TranslateRate))
-                              {
-                                 throw Oops.Oh($"绗瑊index}琛孾鎹㈢畻鐜嘳{_TranslateRate}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
-                              }
-                              else
-                              {
-                                 addItem.TranslateRate = outTranslateRate;
-                              }
-                          
-                          }
-                          if(!string.IsNullOrEmpty(_BatchRuleId))
-                          {
-                              if (!long.TryParse(_BatchRuleId, out long outBatchRuleId)&&!string.IsNullOrEmpty(_BatchRuleId))
-                              {
-                                 throw Oops.Oh($"绗瑊index}琛孾鎵规灞炴�ц鍒橾{_BatchRuleId}鍊间笉姝g‘锛�");
-                              }
-                              if (outBatchRuleId <= 0&&!string.IsNullOrEmpty(_BatchRuleId))
-                              {
-                                 throw Oops.Oh($"绗瑊index}琛孾鎵规灞炴�ц鍒橾{_BatchRuleId}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
-                              }
-                              else
-                              {
-                                 addItem.BatchRuleId = outBatchRuleId;
-                              }
-                          
-                          }
-                          if(!string.IsNullOrEmpty(_ControlRuleId))
-                          {
-                              if (!long.TryParse(_ControlRuleId, out long outControlRuleId)&&!string.IsNullOrEmpty(_ControlRuleId))
-                              {
-                                 throw Oops.Oh($"绗瑊index}琛孾鎺у埗灞炴�ц鍒橾{_ControlRuleId}鍊间笉姝g‘锛�");
-                              }
-                              if (outControlRuleId <= 0&&!string.IsNullOrEmpty(_ControlRuleId))
-                              {
-                                 throw Oops.Oh($"绗瑊index}琛孾鎺у埗灞炴�ц鍒橾{_ControlRuleId}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
-                              }
-                              else
-                              {
-                                 addItem.ControlRuleId = outControlRuleId;
-                              }
-                          
-                          }
-                          if(!string.IsNullOrEmpty(_IsDisabled))
-                          {
-                            if(!_IsDisabled.Equals("鏄�") && !_IsDisabled.Equals("鍚�"))
-                             {
-                               throw Oops.Oh($"绗瑊index}琛孾鏄惁绂佺敤]{_IsDisabled}鍊间笉姝g‘锛�");
-                             }
-                             else
-                             {
-                               bool outIsDisabled = _IsDisabled.Equals("鏄�") ? true : false;
-                               addItem.IsDisabled = outIsDisabled;
-                             }
-                             }
-                          
-                          if(!string.IsNullOrEmpty(_MaterialDesc))
-                          {
-                                addItem.MaterialDesc = (string)_MaterialDesc;
-                           }
-                          if(!string.IsNullOrEmpty(_Id))
-                          {
-                              if (!long.TryParse(_Id, out long outId)&&!string.IsNullOrEmpty(_Id))
-                              {
-                                 throw Oops.Oh($"绗瑊index}琛孾Id涓婚敭]{_Id}鍊间笉姝g‘锛�");
-                              }
-                              if (outId <= 0&&!string.IsNullOrEmpty(_Id))
-                              {
-                                 throw Oops.Oh($"绗瑊index}琛孾Id涓婚敭]{_Id}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
-                              }
-                              else
-                              {
-                                 addItem.Id = outId;
-                              }
-                          
-                          }
-                          #endregion
-                          
+                //瀵煎叆妯$増瀹氬埗鍖栦唬鐮侊紙鏇挎崲妯$増浣跨敤锛�
 
-              
+                var addItem = new WmsMaterial()
+                {
+                    CreatedTime = SysHelper.GetNowTime(),
+                    CreatedUserId = SysHelper.GetUserId(),
+                    CreatedUserName = SysHelper.GetUserName(),
+                    UpdatedTime = SysHelper.GetNowTime(),
+                    UpdatedUserId = SysHelper.GetUserId(),
+                    UpdatedUserName = SysHelper.GetUserName()
+                };
+                #region 瀹氫箟鍙橀噺
+                var _MaterialName = "";//鐗╂枡鍚嶇О
+                var _MaterialCode = "";//鐗╂枡缂栧彿
+                var _ErpCode = "";//ERP缂栧彿
+                var _MaterialTypeName = "";//鐗╂枡绫诲瀷鍚嶇О
+                var _MaterialTypeDescr = "";//鐗╂枡绫诲瀷鎻忚堪
+                var _MaterialType = "";//鐗╂枡绫诲瀷
+                var _MaterialGroup = "";//鐗╂枡缁�
+                var _ABCClassName = "";//ABC鍒嗙被鍚嶇О
+                var _ABCClass = "";//ABC鍒嗙被
+                var _MaterialSpec = "";//鐗╂枡瑙勬牸
+                var _InPlaceCode = "";//榛樿鍏ュ簱搴撲綅
+                var _MaterialUnit = "";//搴撳瓨鍗曚綅
+                var _POUnit = "";//閲囪喘鍗曚綅
+                var _Color = "";//棰滆壊
+                var _Weight = "";//閲嶉噺
+                var _SNP = "";//鏍囧寘鏁伴噺
+                var _TranslateRate = "";//鎹㈢畻鐜�
+                var _BatchRuleId = "";//鎵规灞炴�ц鍒�
+                var _ControlRuleId = "";//鎺у埗灞炴�ц鍒�
+                var _IsDisabled = "";//鏄惁绂佺敤
+                var _MaterialDesc = "";//鎻忚堪
+                var _Id = "";//Id涓婚敭
+                #endregion
+
+
+                #region 鍙栧��
+                _MaterialName = row["鐗╂枡鍚嶇О"]?.ToString();
+                _MaterialCode = row["鐗╂枡缂栧彿"]?.ToString();
+                _ErpCode = row["ERP缂栧彿"]?.ToString();
+                _MaterialTypeName = row["鐗╂枡绫诲瀷鍚嶇О"]?.ToString();
+                _MaterialTypeDescr = row["鐗╂枡绫诲瀷鎻忚堪"]?.ToString();
+                _MaterialType = row["鐗╂枡绫诲瀷"]?.ToString();
+                _MaterialGroup = row["鐗╂枡缁�"]?.ToString();
+                _ABCClassName = row["ABC鍒嗙被鍚嶇О"]?.ToString();
+                _ABCClass = row["ABC鍒嗙被"]?.ToString();
+                _MaterialSpec = row["鐗╂枡瑙勬牸"]?.ToString();
+                _InPlaceCode = row["榛樿鍏ュ簱搴撲綅"]?.ToString();
+                _MaterialUnit = row["搴撳瓨鍗曚綅"]?.ToString();
+                _POUnit = row["閲囪喘鍗曚綅"]?.ToString();
+                _Color = row["棰滆壊"]?.ToString();
+                _Weight = row["閲嶉噺"]?.ToString();
+                _SNP = row["鏍囧寘鏁伴噺"]?.ToString();
+                _TranslateRate = row["鎹㈢畻鐜�"]?.ToString();
+                _BatchRuleId = row["鎵规灞炴�ц鍒�"]?.ToString();
+                _ControlRuleId = row["鎺у埗灞炴�ц鍒�"]?.ToString();
+                _IsDisabled = row["鏄惁绂佺敤"]?.ToString();
+                _MaterialDesc = row["鎻忚堪"]?.ToString();
+                _Id = row["Id涓婚敭"]?.ToString();
+                #endregion
+
+
+                #region 楠岃瘉
+
+                if (string.IsNullOrEmpty(_MaterialName))
+                {
+                    throw Oops.Oh($"绗瑊index}琛孾鐗╂枡鍚嶇О]{_MaterialName}涓嶈兘涓虹┖锛�");
+                }
+
+                if (!string.IsNullOrEmpty(_MaterialName))
+                {
+                    addItem.MaterialName = (string)_MaterialName;
+                }
+
+                if (string.IsNullOrEmpty(_MaterialCode))
+                {
+                    throw Oops.Oh($"绗瑊index}琛孾鐗╂枡缂栧彿]{_MaterialCode}涓嶈兘涓虹┖锛�");
+                }
+
+                if (!string.IsNullOrEmpty(_MaterialCode))
+                {
+                    addItem.MaterialCode = (string)_MaterialCode;
+                }
+                if (!string.IsNullOrEmpty(_ErpCode))
+                {
+                    addItem.ErpCode = (string)_ErpCode;
+                }
+                if (!string.IsNullOrEmpty(_MaterialTypeName))
+                {
+                    addItem.MaterialTypeName = (string)_MaterialTypeName;
+                }
+                if (!string.IsNullOrEmpty(_MaterialTypeDescr))
+                {
+                    addItem.MaterialTypeDescr = (string)_MaterialTypeDescr;
+                }
+
+                if (string.IsNullOrEmpty(_MaterialType))
+                {
+                    throw Oops.Oh($"绗瑊index}琛孾鐗╂枡绫诲瀷]{_MaterialType}涓嶈兘涓虹┖锛�");
+                }
+
+                if (!string.IsNullOrEmpty(_MaterialType))
+                {
+                    System.Int32 enumMaterialType = default(System.Int32);
+
+                    if (!Enum.TryParse<System.Int32>(_MaterialType, out enumMaterialType) && !string.IsNullOrEmpty(_MaterialType))
+                    {
+                        throw Oops.Oh($"绗瑊index}琛孾鐗╂枡绫诲瀷]{_MaterialType}鍊间笉姝g‘锛�");
+                    }
+                    else
+                    {
+                        addItem.MaterialType = enumMaterialType;
+                    }
+
+                }
+                if (!string.IsNullOrEmpty(_MaterialGroup))
+                {
+                    addItem.MaterialGroup = (string)_MaterialGroup;
+                }
+                if (!string.IsNullOrEmpty(_ABCClassName))
+                {
+                    addItem.ABCClassName = (string)_ABCClassName;
+                }
+                if (!string.IsNullOrEmpty(_ABCClass))
+                {
+                    Admin.NET.Core.ABCClassEnum enumABCClass = default(Admin.NET.Core.ABCClassEnum);
+
+                    if (!Enum.TryParse < Admin.NET.Core.ABCClassEnum > (_ABCClass, out enumABCClass)&& !string.IsNullOrEmpty(_ABCClass))
+                    {
+                        throw Oops.Oh($"绗瑊index}琛孾ABC鍒嗙被]{_ABCClass}鍊间笉姝g‘锛�");
+                    } else
+                    {
+                        addItem.ABCClass = enumABCClass;
+                    }
+
+                }
+                if (!string.IsNullOrEmpty(_MaterialSpec))
+                {
+                    addItem.MaterialSpec = (string)_MaterialSpec;
+                }
+                if (!string.IsNullOrEmpty(_InPlaceCode))
+                {
+                    addItem.InPlaceCode = (string)_InPlaceCode;
+                }
+                if (!string.IsNullOrEmpty(_MaterialUnit))
+                {
+                    addItem.MaterialUnit = (string)_MaterialUnit;
+                }
+                if (!string.IsNullOrEmpty(_POUnit))
+                {
+                    addItem.POUnit = (string)_POUnit;
+                }
+                if (!string.IsNullOrEmpty(_Color))
+                {
+                    addItem.Color = (string)_Color;
+                }
+                if (!string.IsNullOrEmpty(_Weight))
+                {
+                    addItem.Weight = (string)_Weight;
+                }
+                if (!string.IsNullOrEmpty(_SNP))
+                {
+                    if (!decimal.TryParse(_SNP, out decimal outSNP) && !string.IsNullOrEmpty(_SNP))
+                    {
+                        throw Oops.Oh($"绗瑊index}琛孾鏍囧寘鏁伴噺]{_SNP}鍊间笉姝g‘锛�");
+                    }
+                    if (outSNP <= 0 && !string.IsNullOrEmpty(_SNP))
+                    {
+                        throw Oops.Oh($"绗瑊index}琛孾鏍囧寘鏁伴噺]{_SNP}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
+                    }
+                    else
+                    {
+                        addItem.SNP = outSNP;
+                    }
+
+                }
+                if (!string.IsNullOrEmpty(_TranslateRate))
+                {
+                    if (!decimal.TryParse(_TranslateRate, out decimal outTranslateRate) && !string.IsNullOrEmpty(_TranslateRate))
+                    {
+                        throw Oops.Oh($"绗瑊index}琛孾鎹㈢畻鐜嘳{_TranslateRate}鍊间笉姝g‘锛�");
+                    }
+                    if (outTranslateRate <= 0 && !string.IsNullOrEmpty(_TranslateRate))
+                    {
+                        throw Oops.Oh($"绗瑊index}琛孾鎹㈢畻鐜嘳{_TranslateRate}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
+                    }
+                    else
+                    {
+                        addItem.TranslateRate = outTranslateRate;
+                    }
+
+                }
+                if (!string.IsNullOrEmpty(_BatchRuleId))
+                {
+                    if (!long.TryParse(_BatchRuleId, out long outBatchRuleId) && !string.IsNullOrEmpty(_BatchRuleId))
+                    {
+                        throw Oops.Oh($"绗瑊index}琛孾鎵规灞炴�ц鍒橾{_BatchRuleId}鍊间笉姝g‘锛�");
+                    }
+                    if (outBatchRuleId <= 0 && !string.IsNullOrEmpty(_BatchRuleId))
+                    {
+                        throw Oops.Oh($"绗瑊index}琛孾鎵规灞炴�ц鍒橾{_BatchRuleId}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
+                    }
+                    else
+                    {
+                        addItem.BatchRuleId = outBatchRuleId;
+                    }
+
+                }
+                if (!string.IsNullOrEmpty(_ControlRuleId))
+                {
+                    if (!long.TryParse(_ControlRuleId, out long outControlRuleId) && !string.IsNullOrEmpty(_ControlRuleId))
+                    {
+                        throw Oops.Oh($"绗瑊index}琛孾鎺у埗灞炴�ц鍒橾{_ControlRuleId}鍊间笉姝g‘锛�");
+                    }
+                    if (outControlRuleId <= 0 && !string.IsNullOrEmpty(_ControlRuleId))
+                    {
+                        throw Oops.Oh($"绗瑊index}琛孾鎺у埗灞炴�ц鍒橾{_ControlRuleId}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
+                    }
+                    else
+                    {
+                        addItem.ControlRuleId = outControlRuleId;
+                    }
+
+                }
+                if (!string.IsNullOrEmpty(_IsDisabled))
+                {
+                    if (!_IsDisabled.Equals("鏄�") && !_IsDisabled.Equals("鍚�"))
+                    {
+                        throw Oops.Oh($"绗瑊index}琛孾鏄惁绂佺敤]{_IsDisabled}鍊间笉姝g‘锛�");
+                    }
+                    else
+                    {
+                        bool outIsDisabled = _IsDisabled.Equals("鏄�") ? true : false;
+                        addItem.IsDisabled = outIsDisabled;
+                    }
+                }
+
+                if (!string.IsNullOrEmpty(_MaterialDesc))
+                {
+                    addItem.MaterialDesc = (string)_MaterialDesc;
+                }
+                if (!string.IsNullOrEmpty(_Id))
+                {
+                    if (!long.TryParse(_Id, out long outId) && !string.IsNullOrEmpty(_Id))
+                    {
+                        throw Oops.Oh($"绗瑊index}琛孾Id涓婚敭]{_Id}鍊间笉姝g‘锛�");
+                    }
+                    if (outId <= 0 && !string.IsNullOrEmpty(_Id))
+                    {
+                        throw Oops.Oh($"绗瑊index}琛孾Id涓婚敭]{_Id}鍊间笉鑳藉皬浜庣瓑浜�0锛�");
+                    }
+                    else
+                    {
+                        addItem.Id = outId;
+                    }
+
+                }
+                #endregion
+
+
+
                 details.Add(addItem);
             }
-              //楠岄噸
-              await CheckExisitForImport(details);
-            
+            //楠岄噸
+            await CheckExisitForImport(details);
+
             return details;
         }
 
         /// <summary>
-        /// 鏍规嵁鐗堟湰涓嬭浇鐗╂枡淇℃伅琛ㄧ殑Excel瀵煎叆妯℃澘
+        /// 鏍规嵁鐗堟湰涓嬭浇鐗╂枡淇℃伅鐨凟xcel瀵煎叆妯℃澘
         /// </summary>
         /// <param name="version">妯℃澘鐗堟湰</param>
         /// <returns>涓嬭浇鐨勬ā鏉挎枃浠�</returns>
@@ -576,7 +653,7 @@
         public IActionResult DownloadExcelTemplate([FromQuery] string version)
         {
             string _path = TemplateConst.EXCEL_TEMPLATEFILE_瀵煎叆妯$増璺緞 + $"\\WmsMaterial{TemplateConst.EXCEL_TEMPLATEFILE_瀵煎叆妯$増鍚嶇О鍚庣紑}.xlsx";
-            var fileName = HttpUtility.UrlEncode($"瀵煎叆妯℃澘(鐗╂枡淇℃伅琛�).xlsx", Encoding.GetEncoding("UTF-8"));
+            var fileName = HttpUtility.UrlEncode($"瀵煎叆妯℃澘(鐗╂枡淇℃伅).xlsx", Encoding.GetEncoding("UTF-8"));
             return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName };
         }
 
@@ -590,80 +667,117 @@
         /// <param name="input"></param>
         /// <param name="isEdit"></param>
         /// <returns></returns>
-        private async Task CheckExisit( WmsMaterial input,bool isEdit=false)
+        private async Task CheckExisit(WmsMaterial input, bool isEdit = false)
         {
-           
 
-           
-           bool isExist = false;
-           if (!isEdit)//鏂板
-           {
-                   //鏁版嵁鏄惁瀛樺湪閲嶅
-                   isExist = await _wmsMaterialRep.AnyAsync(u =>
-                                   u.MaterialCode.Equals(input.MaterialCode)
-                   ,false);
-          }
-           else//缂栬緫 
-          {
 
-          
-                
-                 //褰撳墠缂栬緫鏁版嵁浠ュ鏄惁瀛樺湪閲嶅
-                  isExist = await _wmsMaterialRep.AnyAsync(u => 
-                                    u.Id != input.Id
-                                    &&u.MaterialCode.Equals(input.MaterialCode)
-                    ,false);
-               }
-               
-        
+
+            bool isExist = false;
+            if (!isEdit)//鏂板
+            {
+                //鐗╂枡缂栧彿鏄惁瀛樺湪閲嶅
+                isExist = await _wmsMaterialRep.AnyAsync(u =>
+                                u.MaterialCode.Equals(input.MaterialCode)
+                , false);
+
+                //鐗╂枡鍚嶇О鏄惁瀛樺湪閲嶅
+                isExist = await _wmsMaterialRep.AnyAsync(u =>
+                                u.MaterialName.Equals(input.MaterialName)
+                , false);
+            }
+            else//缂栬緫 
+            {
+
+
+
+                //褰撳墠缂栬緫鐗╂枡缂栧彿浠ュ鏄惁瀛樺湪閲嶅
+                isExist = await _wmsMaterialRep.AnyAsync(u =>
+                                  u.Id != input.Id
+                                  && u.MaterialCode.Equals(input.MaterialCode)
+                  , false);
+                //褰撳墠缂栬緫鐗╂枡鍚嶇О浠ュ鏄惁瀛樺湪閲嶅
+                isExist = await _wmsMaterialRep.AnyAsync(u =>
+                                  u.Id != input.Id
+                                  && u.MaterialName.Equals(input.MaterialName)
+                  , false);
+            }
+
+
 
             if (isExist) throw Oops.Oh(ErrorCode.E0001);
-       }
-        
+        }
+
         /// <summary>
         /// 鏍规嵁鑱斿悎涓婚敭楠岃瘉鏁版嵁鏄惁宸插瓨鍦�-瀵煎叆鏃堕獙璇�
         /// </summary>
         /// <param name="inputs"></param>
         /// <returns></returns>
         private async Task CheckExisitForImport(List<WmsMaterial> inputs)
-        { 
+        {
             //鏍规嵁鑱斿悎涓婚敭楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�  
-                 if (inputs?.Count <= 0)
-                 {
-                     throw Oops.Oh($"瀵煎叆鏁版嵁涓嶈兘涓虹┖");
-                 }
-                 //鏁版嵁鏄惁閲嶅
-                 var existExcelItem = inputs.GroupBy(g => new {
-                                               g.MaterialCode
-                                               })
-                                               .Where(g => g.Count() > 1)
-                                               .Select(s => new {
-                                               s.Key.MaterialCode
-                                               }).FirstOrDefault();
-                 if (existExcelItem != null)
-                 {
-                   var wmsMaterial = existExcelItem.Adapt<WmsMaterial>();
-                   var item= existExcelItem.Adapt<WmsMaterial>();
-                   throw Oops.Oh($"瀵煎叆鐨勮〃鏍间腑,鐗╂枡缂栧彿[{item.MaterialCode}]宸插瓨鍦�");
-                 }
-                      
+            if (inputs?.Count <= 0)
+            {
+                throw Oops.Oh($"瀵煎叆鏁版嵁涓嶈兘涓虹┖");
+            }
+            //鏁版嵁鏄惁閲嶅
+            var existExcelItem = inputs.GroupBy(g => new {
+                g.MaterialCode
+            })
+                                          .Where(g => g.Count() > 1)
+                                          .Select(s => new {
+                                              s.Key.MaterialCode
+                                          }).FirstOrDefault();
+            if (existExcelItem != null)
+            {
+                var wmsMaterial = existExcelItem.Adapt<WmsMaterial>();
+                var item = existExcelItem.Adapt<WmsMaterial>();
+                throw Oops.Oh($"瀵煎叆鐨勮〃鏍间腑,鐗╂枡缂栧彿[{item.MaterialCode}]宸插瓨鍦�");
+            }
+
+           var existExcelItem2 = inputs.GroupBy(g => new {
+                g.MaterialName
+            })
+                                          .Where(g => g.Count() > 1)
+                                          .Select(s => new {
+                                              s.Key.MaterialName
+                                          }).FirstOrDefault();
+            if (existExcelItem2 != null)
+            {
+                var wmsMaterial = existExcelItem2.Adapt<WmsMaterial>();
+                var item = existExcelItem2.Adapt<WmsMaterial>();
+                throw Oops.Oh($"瀵煎叆鐨勮〃鏍间腑,鐗╂枡鍚嶇О[{item.MaterialName}]宸插瓨鍦�");
+            }
 
 
+            //鏍规嵁鑱斿悎涓婚敭楠岃瘉鏁版嵁搴撲腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�
+            var existDBItem = await _wmsMaterialRep.DetachedEntities.FirstOrDefaultAsync(w =>
+                                                                    inputs.Select(s => ""
+                                                                      + s.MaterialCode
+                                                                   )
+                                                                   .Contains(""
+                                                                    + w.MaterialCode
+             ));
+            if (existDBItem != null)
+            {
+                var wmsMaterial = existExcelItem.Adapt<WmsMaterial>();
+                var item = existExcelItem.Adapt<WmsMaterial>();
+                throw Oops.Oh($"绯荤粺涓�,鐗╂枡缂栧彿[{item.MaterialCode}]宸插瓨鍦�");
+            }
 
-    //鏍规嵁鑱斿悎涓婚敭楠岃瘉鏁版嵁搴撲腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�
-                 var existDBItem = await _wmsMaterialRep.DetachedEntities.FirstOrDefaultAsync(w=> 
-                                                                         inputs.Select(s=>""
-                                                                           +s.MaterialCode
-                                                                        )
-                                                                        .Contains(""
-                                                                         +w.MaterialCode
-                  ));
-                  if (existDBItem != null)
-                 {
-                   var wmsMaterial = existExcelItem.Adapt<WmsMaterial>();
-                   var item= existExcelItem.Adapt<WmsMaterial>();
-                   throw Oops.Oh($"绯荤粺涓�,鐗╂枡缂栧彿[{item.MaterialCode}]宸插瓨鍦�");
-                 }
+            //鏍规嵁鑱斿悎涓婚敭楠岃瘉鏁版嵁搴撲腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�
+            var existDBItem2 = await _wmsMaterialRep.DetachedEntities.FirstOrDefaultAsync(w =>
+                                                                    inputs.Select(s => ""
+                                                                      + s.MaterialName
+                                                                   )
+                                                                   .Contains(""
+                                                                    + w.MaterialName
+             ));
+            if (existDBItem2 != null)
+            {
+                var wmsMaterial = existExcelItem2.Adapt<WmsMaterial>();
+                var item = existExcelItem.Adapt<WmsMaterial>();
+                throw Oops.Oh($"绯荤粺涓�,鐗╂枡缂栧彿[{item.MaterialName}]宸插瓨鍦�");
+            }
         }
 
         #endregion

--
Gitblit v1.9.3