From f2f4ecd04b2987f6aed8216442e82a81009c2366 Mon Sep 17 00:00:00 2001
From: schangxiang@126.com <schangxiang@126.com>
Date: 周一, 09 12月 2024 17:18:15 +0800
Subject: [PATCH] 222

---
 LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsSystemConfig/WmsConfigDeviceWarning/WmsConfigDeviceWarningService.cs |  323 ++++++++++++++++++++++++++++-------------------------
 1 files changed, 171 insertions(+), 152 deletions(-)

diff --git a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsSystemConfig/WmsConfigDeviceWarning/WmsConfigDeviceWarningService.cs b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsSystemConfig/WmsConfigDeviceWarning/WmsConfigDeviceWarningService.cs
index bd5093b..3ba8cfb 100644
--- a/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsSystemConfig/WmsConfigDeviceWarning/WmsConfigDeviceWarningService.cs
+++ b/LA24030_LuLiPackageLine_Wms/Admin.NET.Application/Service/WmsSystemConfig/WmsConfigDeviceWarning/WmsConfigDeviceWarningService.cs
@@ -92,7 +92,7 @@
         var entity = input.Adapt<WmsConfigDeviceWarning>();
 
         //閲嶅鎬ч獙璇�
-        await CheckExist(entity,true);
+        await CheckExist(entity, true);
 
         await _rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync();
     }
@@ -115,7 +115,7 @@
 
 
     #region 瀵煎叆
-    
+
     /// <summary>
     /// Excel妯℃澘瀵煎叆閰嶇疆璁惧鎶ヨ鍔熻兘
     /// </summary>
@@ -125,15 +125,15 @@
     [ApiDescriptionSettings(Name = "ImportExcel")]
     [Description("WmsConfigDeviceWarning/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);
         await _rep.InsertRangeAsync(addList);
         return addList.Count;
     }
-    
+
     /// <summary>
     ///  DataTable杞崲瀹炰綋瀵硅薄鍒楄〃
     /// </summary>
@@ -144,79 +144,97 @@
     {
         var details = new List<WmsConfigDeviceWarning>();
         int index = dataStartLine;//妯$増鍒楀悕寮�濮嬭
+        decimal offset = 0.0M;
+        decimal intValue = 0.0M;
+        string my_DeviceAreaCode = "";
         foreach (System.Data.DataRow row in dataTable.Rows)
         {
             index++;
             //瀵煎叆妯$増瀹氬埗鍖栦唬鐮侊紙鏇挎崲妯$増浣跨敤锛�
-                                      
-                           var addItem = new WmsConfigDeviceWarning();
-                          #region 瀹氫箟鍙橀噺
-                           var _DeviceAreaCode = "";//璁惧鍖哄煙
-                           var _DeviceWarningType = "";//鎶ヨ绫诲瀷
-                           var _WarningCode = "";//鎶ヨ浠g爜
-                           var _WarningContent = "";//鎶ヨ鍐呭
-                          #endregion
-                          
-                          
-                          #region 鍙栧��
-                           _DeviceAreaCode = row["璁惧鍖哄煙"]?.ToString() ;
-                           _DeviceWarningType = row["鎶ヨ绫诲瀷"]?.ToString() ;
-                           _WarningCode = row["鎶ヨ浠g爜"]?.ToString() ;
-                           _WarningContent = row["鎶ヨ鍐呭"]?.ToString() ;
-                          #endregion
-                          
-                          
-                          #region 楠岃瘉
-                          
-                          if (string.IsNullOrEmpty(_DeviceAreaCode))
-                          {
-                            throw Oops.Oh($"绗瑊index}琛孾璁惧鍖哄煙]{_DeviceAreaCode}涓嶈兘涓虹┖锛�");
-                          }
-                          
-                          if(!string.IsNullOrEmpty(_DeviceAreaCode))
-                          {
-                          Admin.NET.Application.DeviceAreaCodeEnum  enumDeviceAreaCode = default(Admin.NET.Application.DeviceAreaCodeEnum);
-                          
-                             if(!Enum.TryParse<Admin.NET.Application.DeviceAreaCodeEnum>(_DeviceAreaCode, out enumDeviceAreaCode)&&!string.IsNullOrEmpty(_DeviceAreaCode))
-                              {
-                                throw Oops.Oh($"绗瑊index}琛孾璁惧鍖哄煙]{_DeviceAreaCode}鍊间笉姝g‘锛�");
-                              }
-                              else
-                              {
-                                 addItem.DeviceAreaCode = enumDeviceAreaCode;
-                              }
-                          
-                           }
-                          
-                          if (string.IsNullOrEmpty(_DeviceWarningType))
-                          {
-                            throw Oops.Oh($"绗瑊index}琛孾鎶ヨ绫诲瀷]{_DeviceWarningType}涓嶈兘涓虹┖锛�");
-                          }
-                          
-                          if(!string.IsNullOrEmpty(_DeviceWarningType))
-                          {
-                          Admin.NET.Application.DeviceWarningTypeEnum  enumDeviceWarningType = default(Admin.NET.Application.DeviceWarningTypeEnum);
-                          
-                             if(!Enum.TryParse<Admin.NET.Application.DeviceWarningTypeEnum>(_DeviceWarningType, out enumDeviceWarningType)&&!string.IsNullOrEmpty(_DeviceWarningType))
-                              {
-                                throw Oops.Oh($"绗瑊index}琛孾鎶ヨ绫诲瀷]{_DeviceWarningType}鍊间笉姝g‘锛�");
-                              }
-                              else
-                              {
-                                 addItem.DeviceWarningType = enumDeviceWarningType;
-                              }
-                          
-                           }
-                          if(!string.IsNullOrEmpty(_WarningCode))
-                          {
-                                addItem.WarningCode = (string)(_WarningCode.Trim());
-                           }
-                          if(!string.IsNullOrEmpty(_WarningContent))
-                          {
-                                addItem.WarningContent = (string)(_WarningContent.Trim());
-                           }
-                          #endregion
-                          
+
+            var addItem = new WmsConfigDeviceWarning();
+            #region 瀹氫箟鍙橀噺
+            var _DeviceAreaCode = "";//璁惧鍖哄煙
+            var _DeviceWarningType = "";//鎶ヨ绫诲瀷
+            var _WarningCode = "";//鎶ヨ浠g爜
+            var _WarningContent = "";//鎶ヨ鍐呭
+            #endregion
+
+
+            #region 鍙栧��
+            _DeviceAreaCode = row["璁惧鍖哄煙"]?.ToString();
+            _DeviceWarningType = row["鎶ヨ绫诲瀷"]?.ToString();
+            _WarningCode = row["鎶ヨ浠g爜"]?.ToString();
+            _WarningContent = row["鎶ヨ鍐呭"]?.ToString();
+            #endregion
+
+            if (!string.IsNullOrEmpty(my_DeviceAreaCode) && _DeviceAreaCode != my_DeviceAreaCode)
+            {
+                throw Oops.Oh($"绗瑊index}琛屼竴娆″彧鑳藉鍏ヤ竴涓澶囧尯鍩燂紒");
+            }
+            my_DeviceAreaCode = _DeviceAreaCode;
+
+            #region 楠岃瘉
+
+            if (string.IsNullOrEmpty(_DeviceAreaCode))
+            {
+                throw Oops.Oh($"绗瑊index}琛孾璁惧鍖哄煙]{_DeviceAreaCode}涓嶈兘涓虹┖锛�");
+            }
+
+            if (!string.IsNullOrEmpty(_DeviceAreaCode))
+            {
+                Admin.NET.Application.DeviceAreaCodeEnum enumDeviceAreaCode = default(Admin.NET.Application.DeviceAreaCodeEnum);
+
+                if (!Enum.TryParse<Admin.NET.Application.DeviceAreaCodeEnum>(_DeviceAreaCode, out enumDeviceAreaCode) && !string.IsNullOrEmpty(_DeviceAreaCode))
+                {
+                    throw Oops.Oh($"绗瑊index}琛孾璁惧鍖哄煙]{_DeviceAreaCode}鍊间笉姝g‘锛�");
+                }
+                else
+                {
+                    addItem.DeviceAreaCode = enumDeviceAreaCode;
+                }
+
+            }
+
+            if (string.IsNullOrEmpty(_DeviceWarningType))
+            {
+                throw Oops.Oh($"绗瑊index}琛孾鎶ヨ绫诲瀷]{_DeviceWarningType}涓嶈兘涓虹┖锛�");
+            }
+
+            if (!string.IsNullOrEmpty(_DeviceWarningType))
+            {
+                Admin.NET.Application.DeviceWarningTypeEnum enumDeviceWarningType = default(Admin.NET.Application.DeviceWarningTypeEnum);
+
+                if (!Enum.TryParse<Admin.NET.Application.DeviceWarningTypeEnum>(_DeviceWarningType, out enumDeviceWarningType) && !string.IsNullOrEmpty(_DeviceWarningType))
+                {
+                    throw Oops.Oh($"绗瑊index}琛孾鎶ヨ绫诲瀷]{_DeviceWarningType}鍊间笉姝g‘锛�");
+                }
+                else
+                {
+                    addItem.DeviceWarningType = enumDeviceWarningType;
+                }
+
+            }
+
+            if (!string.IsNullOrEmpty(_WarningContent))
+            {
+                addItem.WarningContent = (string)(_WarningContent.Trim());
+            }
+            #endregion
+
+            addItem.WarningCode = SysHelper.GetDBForDeviceWarning(_DeviceAreaCode) + "|" + intValue.ToString("0.0");
+
+            if (offset == 0.7M)
+            {
+                offset = 0.0M;
+                intValue += 0.3M;
+            }
+            else
+            {
+                offset += 0.1M;
+                intValue += 0.1M;
+            }
+            
 
             details.Add(addItem);
         }
@@ -224,7 +242,7 @@
         await CheckExisitForImport(details);
         return details;
     }
-    
+
     /// <summary>
     /// 鏍规嵁鐗堟湰涓嬭浇閰嶇疆璁惧鎶ヨ鐨凟xcel瀵煎叆妯℃澘
     /// </summary>
@@ -238,7 +256,7 @@
         var fileName = HttpUtility.UrlEncode($"瀵煎叆妯℃澘(閰嶇疆璁惧鎶ヨ).xlsx", Encoding.GetEncoding("UTF-8"));
         return new FileStreamResult(new FileStream(_path, FileMode.Open), "application/octet-stream") { FileDownloadName = fileName };
     }
-    
+
     #endregion
 
     #region 绉佹湁鏂规硶
@@ -262,89 +280,90 @@
             .WhereIF(!string.IsNullOrWhiteSpace(input.WarningCode), u => u.WarningCode.Contains(input.WarningCode.Trim()))
             .WhereIF(!string.IsNullOrWhiteSpace(input.WarningContent), u => u.WarningContent.Contains(input.WarningContent.Trim()))
             .Select<WmsConfigDeviceWarningOutput>();
-        if(input.CreateTimeRange != null && input.CreateTimeRange.Count >0)
+        if (input.CreateTimeRange != null && input.CreateTimeRange.Count > 0)
         {
-            DateTime? start= input.CreateTimeRange[0].Value;
+            DateTime? start = input.CreateTimeRange[0].Value;
             query = query.WhereIF(start.HasValue, u => u.CreateTime >= start);
-            if (input.CreateTimeRange.Count >1 && input.CreateTimeRange[1].HasValue)
+            if (input.CreateTimeRange.Count > 1 && input.CreateTimeRange[1].HasValue)
             {
                 var end = input.CreateTimeRange[1].Value;
                 query = query.Where(u => u.CreateTime <= end);
             }
-        } 
-        return query;
-       }
-
-        /// <summary>
-        /// 閲嶅鎬ч獙璇�
-        /// </summary>
-        /// <param name="input">楠岃瘉瀵硅薄</param>
-        /// <param name="isEdit">鏄惁鏄紪杈�</param>
-        /// <returns></returns>
-        private async Task CheckExist( WmsConfigDeviceWarning input,bool isEdit=false)
-        {
-           
-
-
-            //娌℃湁閰嶇疆缁勫悎鏍¢獙锛屼笉闇�瑕侀獙閲�
-
-           
-           bool isExistForSingle_WarningCode = false;
-           if (!isEdit)//鏂板
-           {
-                   //鏁版嵁鏄惁鍗曠嫭瀛樺湪閲嶅-鎶ヨ浠g爜
-                   isExistForSingle_WarningCode = await _rep.AsQueryable().AnyAsync(u =>
-                                   u.WarningCode.Equals(input.WarningCode));
-           }
-           else//缂栬緫 
-           {
-                   //褰撳墠缂栬緫鏁版嵁浠ュ鏄惁鍗曠嫭瀛樺湪閲嶅-鎶ヨ浠g爜
-                  isExistForSingle_WarningCode = await _rep.AsQueryable().AnyAsync(u => 
-                                    u.Id != input.Id
-                                    && u.WarningCode.Equals(input.WarningCode));
-           }
-           if (isExistForSingle_WarningCode) throw Oops.Oh($"楠岃瘉澶辫触,鎶ヨ浠g爜[" + input.WarningCode + "]宸插瓨鍦�");
-             
-       }
-
-       /// <summary>
-        /// 鏍规嵁缁勫悎鏍¢獙鍜屽崟鐙牎楠岄獙璇佹暟鎹槸鍚﹀凡瀛樺湪-瀵煎叆鏃堕獙璇�
-        /// </summary>
-        /// <param name="inputs"></param>
-        /// <returns></returns>
-        private async Task CheckExisitForImport(List<WmsConfigDeviceWarning> inputs)
-        { 
-            if (inputs?.Count <= 0)
-            {
-                throw Oops.Oh($"瀵煎叆鏁版嵁涓嶈兘涓虹┖");
-            }
-            //鏍规嵁缁勫悎鏍¢獙楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�  
-                      
-
-
-
-
-
-
-          
-           //鏍规嵁鍗曠嫭鏍¢獙楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�  
-                   var existExcelItemForSingle_WarningCode = inputs.GroupBy(g => new { g.WarningCode}).Where(g => g.Count() > 1).ToList();
-                   if(existExcelItemForSingle_WarningCode != null && existExcelItemForSingle_WarningCode.Count > 0){
-                        var item= existExcelItemForSingle_WarningCode.First().ToList().First();
-                        throw Oops.Oh($"楠岃瘉澶辫触,瀵煎叆鐨勮〃鏍间腑,鎶ヨ浠g爜[" + item.WarningCode + "]宸查噸澶嶅瓨鍦�");
-                   }
-           
-    //鏍规嵁鍗曠嫭鏍¢獙楠岃瘉鏁版嵁搴撲腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�
-                 var existDBItemList = await _rep.GetListAsync(w=> 
-                             inputs.Select(s=>s.WarningCode).ToList().Contains(w.WarningCode) 
-            );
-                   var db_ForSingle_WarningCode = existDBItemList.FirstOrDefault(g => inputs.Select(s=>s.WarningCode).ToList().Contains(g.WarningCode));
-                   if(db_ForSingle_WarningCode != null)  throw Oops.Oh($"楠岃瘉澶辫触,绯荤粺涓�,鎶ヨ浠g爜[" + db_ForSingle_WarningCode.WarningCode + "]宸查噸澶嶅瓨鍦�");
-                   
-           
-           
         }
-     #endregion
+        return query;
+    }
+
+    /// <summary>
+    /// 閲嶅鎬ч獙璇�
+    /// </summary>
+    /// <param name="input">楠岃瘉瀵硅薄</param>
+    /// <param name="isEdit">鏄惁鏄紪杈�</param>
+    /// <returns></returns>
+    private async Task CheckExist(WmsConfigDeviceWarning input, bool isEdit = false)
+    {
+
+
+
+        //娌℃湁閰嶇疆缁勫悎鏍¢獙锛屼笉闇�瑕侀獙閲�
+
+
+        bool isExistForSingle_WarningCode = false;
+        if (!isEdit)//鏂板
+        {
+            //鏁版嵁鏄惁鍗曠嫭瀛樺湪閲嶅-鎶ヨ浠g爜
+            isExistForSingle_WarningCode = await _rep.AsQueryable().AnyAsync(u =>
+                            u.WarningCode.Equals(input.WarningCode));
+        }
+        else//缂栬緫 
+        {
+            //褰撳墠缂栬緫鏁版嵁浠ュ鏄惁鍗曠嫭瀛樺湪閲嶅-鎶ヨ浠g爜
+            isExistForSingle_WarningCode = await _rep.AsQueryable().AnyAsync(u =>
+                              u.Id != input.Id
+                              && u.WarningCode.Equals(input.WarningCode));
+        }
+        if (isExistForSingle_WarningCode) throw Oops.Oh($"楠岃瘉澶辫触,鎶ヨ浠g爜[" + input.WarningCode + "]宸插瓨鍦�");
+
+    }
+
+    /// <summary>
+    /// 鏍规嵁缁勫悎鏍¢獙鍜屽崟鐙牎楠岄獙璇佹暟鎹槸鍚﹀凡瀛樺湪-瀵煎叆鏃堕獙璇�
+    /// </summary>
+    /// <param name="inputs"></param>
+    /// <returns></returns>
+    private async Task CheckExisitForImport(List<WmsConfigDeviceWarning> inputs)
+    {
+        if (inputs?.Count <= 0)
+        {
+            throw Oops.Oh($"瀵煎叆鏁版嵁涓嶈兘涓虹┖");
+        }
+        //鏍规嵁缁勫悎鏍¢獙楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�  
+
+
+
+
+
+
+
+
+        //鏍规嵁鍗曠嫭鏍¢獙楠岃瘉琛ㄦ牸涓腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�  
+        var existExcelItemForSingle_WarningCode = inputs.GroupBy(g => new { g.WarningCode }).Where(g => g.Count() > 1).ToList();
+        if (existExcelItemForSingle_WarningCode != null && existExcelItemForSingle_WarningCode.Count > 0)
+        {
+            var item = existExcelItemForSingle_WarningCode.First().ToList().First();
+            throw Oops.Oh($"楠岃瘉澶辫触,瀵煎叆鐨勮〃鏍间腑,鎶ヨ浠g爜[" + item.WarningCode + "]宸查噸澶嶅瓨鍦�");
+        }
+
+        //鏍规嵁鍗曠嫭鏍¢獙楠岃瘉鏁版嵁搴撲腑鏄惁宸插瓨鍦ㄧ浉鍚屾暟鎹�
+        var existDBItemList = await _rep.GetListAsync(w =>
+                    inputs.Select(s => s.WarningCode).ToList().Contains(w.WarningCode)
+   );
+        var db_ForSingle_WarningCode = existDBItemList.FirstOrDefault(g => inputs.Select(s => s.WarningCode).ToList().Contains(g.WarningCode));
+        if (db_ForSingle_WarningCode != null) throw Oops.Oh($"楠岃瘉澶辫触,绯荤粺涓�,鎶ヨ浠g爜[" + db_ForSingle_WarningCode.WarningCode + "]宸查噸澶嶅瓨鍦�");
+
+
+
+    }
+    #endregion
 
 }
 

--
Gitblit v1.9.3