From cb25acc46bf41863e068b6f968f1592b7a14d1c9 Mon Sep 17 00:00:00 2001 From: helongyang <647556386@qq.com> Date: 星期六, 13 九月 2025 08:12:14 +0800 Subject: [PATCH] 功能更新优化 --- 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockViewService.cs | 95 +++++++++++++++++++++++++++++------------------ 1 files changed, 58 insertions(+), 37 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockViewService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockViewService.cs" index 1813cde..f8c78c5 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockViewService.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_StockService/ProStockViewService.cs" @@ -22,6 +22,7 @@ using WIDESEA_Common.StockEnum; using WIDESEA_IBasicRepository; using WIDESEA_Common.WareHouseEnum; +using WIDESEA_Core.Enums; namespace WIDESEA_StockService { @@ -55,50 +56,70 @@ try { List<SearchParameters> searchParametersList = options.Wheres.DeserializeObject<List<SearchParameters>>(); - if (searchParametersList.Count > 0) + if (searchParametersList?.Any() == true) { + foreach (var param in searchParametersList) { - SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_ProStockInfoDetail.ProductCode).FirstLetterToLower()); - if (searchParameters != null) + switch (param.Name) { - sugarQueryable1 = sugarQueryable1.Where(x => x.proStockInfoDetails.Any(v => v.ProductCode.Contains(searchParameters.Value))); - } - } + case var name when name == nameof(Dt_ProStockInfoDetail.ProductCode).FirstLetterToLower(): + if (!string.IsNullOrEmpty(param.Value?.ToString())) + { + sugarQueryable1 = sugarQueryable1 + .Where(x => x.proStockInfoDetails.Any(v => v.ProductCode.Contains(param.Value.ToString()))); + } + break; + case var name when name == nameof(Dt_ProStockInfoDetail.LotNumber).FirstLetterToLower(): + if (!string.IsNullOrEmpty(param.Value?.ToString())) + { + sugarQueryable1 = sugarQueryable1 + .Where(x => x.proStockInfoDetails.Any(v => v.LotNumber.Contains(param.Value.ToString()))); + } + break; - { - SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_ProStockInfoDetail.ProductVersion).FirstLetterToLower()); - if (searchParameters != null) - { - sugarQueryable1 = sugarQueryable1.Where(x => x.proStockInfoDetails.Any(v => v.ProductVersion.Contains(searchParameters.Value))); - } - } - { - SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_ProStockInfoDetail.SpecifyVer).FirstLetterToLower()); - if (searchParameters != null) - { - sugarQueryable1 = sugarQueryable1.Where(x => x.proStockInfoDetails.Any(v => v.SpecifyVer.Contains(searchParameters.Value))); - } - } - { - SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_ProStockInfoDetail.LotNumber).FirstLetterToLower()); - if (searchParameters != null) - { - sugarQueryable1 = sugarQueryable1.Where(x => x.proStockInfoDetails.Any(v => v.LotNumber.Contains(searchParameters.Value))); - } - } - { - SearchParameters? searchParameters = searchParametersList.FirstOrDefault(x => x.Name == nameof(Dt_ProStockInfo.LocationCode).FirstLetterToLower()); - if (searchParameters != null) - { - sugarQueryable1 = sugarQueryable1.Where(x => x.LocationCode == searchParameters.Value); - } - } + case var name when name == nameof(Dt_ProStockInfo.LocationCode).FirstLetterToLower(): + if (!string.IsNullOrEmpty(param.Value?.ToString())) + { + sugarQueryable1 = sugarQueryable1 + .Where(x => x.LocationCode == param.Value.ToString()); + } + break; + case var name when name == nameof(Dt_ProStockInfoDetail.ProductVersion).FirstLetterToLower(): + if (!string.IsNullOrEmpty(param.Value?.ToString())) + { + sugarQueryable1 = sugarQueryable1 + .Where(x => x.proStockInfoDetails.Any(v => v.ProductVersion.Contains(param.Value.ToString()))); + } + break; + case var name when name == nameof(Dt_ProStockInfoDetail.SpecifyVer).FirstLetterToLower(): + if (!string.IsNullOrEmpty(param.Value?.ToString())) + { + sugarQueryable1 = sugarQueryable1 + .Where(x => x.proStockInfoDetails.Any(v => v.SpecifyVer.Contains(param.Value.ToString()))); + } + break; - + case var name when name == nameof(Dt_ProStockInfo.CreateDate).FirstLetterToLower(): + if (DateTime.TryParse(param.Value?.ToString(), out DateTime minDate)) + { + LinqExpressionType expressionType = param.DisplayType.GetLinqCondition(); + if (expressionType == LinqExpressionType.ThanOrEqual) + { + sugarQueryable1 = sugarQueryable1.Where(x => x.CreateDate >= minDate); + } + else if (expressionType == LinqExpressionType.LessThanOrEqual) + { + sugarQueryable1 = sugarQueryable1.Where(x => x.CreateDate <= minDate); + } + } + break; + } + } } - } - catch { } + catch (Exception ex) + { + } } string whereSto = GetDataRole(typeof(Dt_ProStockInfo)); sugarQueryable1 = sugarQueryable1.Where(whereSto); -- Gitblit v1.9.3