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