修复仓储与店铺订单列表 SqlSugar 可空筛选条件 SQL 翻译错误。
列表 predicate 改用 hasWarehouseFilter/hasStoreFilter 等本地变量,避免 ORM 生成非法 SQL。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
c2d7b5c854
commit
86a978b557
@ -599,13 +599,19 @@ public class PlatformStoreOrderService : ApplicationService
|
||||
var (hasCustomerFilter, customerIdValue) = WarehouseCustomerHelper.ToCustomerFilter(customerId);
|
||||
var fulfillStatus = input.FulfillStatus?.Trim();
|
||||
var platformOrderNo = input.PlatformOrderNo?.Trim();
|
||||
var hasStoreFilter = input.StoreId.HasValue;
|
||||
var storeIdValue = input.StoreId.GetValueOrDefault();
|
||||
var hasFulfillStatusFilter = !string.IsNullOrWhiteSpace(fulfillStatus);
|
||||
var hasPlatformOrderNoFilter = !string.IsNullOrWhiteSpace(platformOrderNo);
|
||||
var hasSuspendedFilter = input.IsSuspended.HasValue;
|
||||
var isSuspendedValue = input.IsSuspended.GetValueOrDefault();
|
||||
|
||||
return x =>
|
||||
(!hasCustomerFilter || x.CustomerId == customerIdValue)
|
||||
&& (!input.StoreId.HasValue || x.StoreId == input.StoreId.Value)
|
||||
&& (string.IsNullOrWhiteSpace(fulfillStatus) || x.FulfillStatus == fulfillStatus)
|
||||
&& (!input.IsSuspended.HasValue || x.IsSuspended == input.IsSuspended.Value)
|
||||
&& (string.IsNullOrWhiteSpace(platformOrderNo) || x.PlatformOrderNo.Contains(platformOrderNo));
|
||||
&& (!hasStoreFilter || x.StoreId == storeIdValue)
|
||||
&& (!hasFulfillStatusFilter || x.FulfillStatus == fulfillStatus)
|
||||
&& (!hasSuspendedFilter || x.IsSuspended == isSuspendedValue)
|
||||
&& (!hasPlatformOrderNoFilter || x.PlatformOrderNo.Contains(platformOrderNo!));
|
||||
}
|
||||
|
||||
private static PlatformStoreOrderOutput MapOrderOutput(
|
||||
|
||||
@ -23,9 +23,11 @@ public partial class WarehouseService
|
||||
|
||||
var keyword = input.Keyword?.Trim();
|
||||
var hasKeyword = !string.IsNullOrWhiteSpace(keyword);
|
||||
var hasEnabledFilter = input.IsEnabled.HasValue;
|
||||
var isEnabledValue = input.IsEnabled.GetValueOrDefault();
|
||||
var items = await BinLocationRepository.GetListAsync(x =>
|
||||
x.WarehouseId == input.WarehouseId
|
||||
&& (!input.IsEnabled.HasValue || x.IsEnabled == input.IsEnabled.Value)
|
||||
&& (!hasEnabledFilter || x.IsEnabled == isEnabledValue)
|
||||
&& (!hasKeyword || x.BinCode.Contains(keyword!) || (x.BinName != null && x.BinName.Contains(keyword!))));
|
||||
items = items.OrderBy(x => x.BinCode).ThenBy(x => x.Id).ToList();
|
||||
|
||||
|
||||
@ -24,11 +24,14 @@ public partial class WarehouseService
|
||||
var keyword = input.Keyword?.Trim();
|
||||
var hasKeyword = !string.IsNullOrWhiteSpace(keyword);
|
||||
var receiptStatus = input.ReceiptStatus?.Trim();
|
||||
var hasWarehouseFilter = input.WarehouseId.HasValue;
|
||||
var warehouseIdValue = input.WarehouseId.GetValueOrDefault();
|
||||
var hasReceiptStatusFilter = !string.IsNullOrWhiteSpace(receiptStatus);
|
||||
|
||||
Expression<Func<CInboundNotice, bool>> predicate = x =>
|
||||
(!hasCustomerFilter || x.CustomerId == customerIdValue)
|
||||
&& (!input.WarehouseId.HasValue || x.WarehouseId == input.WarehouseId.Value)
|
||||
&& (string.IsNullOrWhiteSpace(receiptStatus) || x.ReceiptStatus == receiptStatus)
|
||||
&& (!hasWarehouseFilter || x.WarehouseId == warehouseIdValue)
|
||||
&& (!hasReceiptStatusFilter || x.ReceiptStatus == receiptStatus)
|
||||
&& (!hasKeyword || x.NoticeNo.Contains(keyword!) || (x.MarkReference != null && x.MarkReference.Contains(keyword!)));
|
||||
|
||||
var pageIndex = OmsDocHelper.NormalizePage(input.Page);
|
||||
@ -302,9 +305,11 @@ public partial class WarehouseService
|
||||
{
|
||||
var resolvedCustomerId = await ResolveListCustomerIdAsync(customerId);
|
||||
var (hasCustomerFilter, customerIdValue) = CustomerFilter(resolvedCustomerId);
|
||||
var hasWarehouseFilter = warehouseId.HasValue;
|
||||
var warehouseIdValue = warehouseId.GetValueOrDefault();
|
||||
var notices = await InboundNoticeRepository.GetListAsync(x =>
|
||||
(!hasCustomerFilter || x.CustomerId == customerIdValue)
|
||||
&& (!warehouseId.HasValue || x.WarehouseId == warehouseId.Value));
|
||||
&& (!hasWarehouseFilter || x.WarehouseId == warehouseIdValue));
|
||||
|
||||
return new WarehouseInboundSummaryOutput
|
||||
{
|
||||
|
||||
@ -18,10 +18,12 @@ public partial class WarehouseService
|
||||
{
|
||||
var customerId = await ResolveListCustomerIdAsync(input.CustomerId);
|
||||
var (hasCustomerFilter, customerIdValue) = CustomerFilter(customerId);
|
||||
var hasWarehouseFilter = input.WarehouseId.HasValue;
|
||||
var warehouseIdValue = input.WarehouseId.GetValueOrDefault();
|
||||
var inventories = await InventoryRepository.GetListAsync(x =>
|
||||
(!hasCustomerFilter || x.CustomerId == customerIdValue)
|
||||
&& x.Qty > 0
|
||||
&& (!input.WarehouseId.HasValue || x.WarehouseId == input.WarehouseId.Value));
|
||||
&& (!hasWarehouseFilter || x.WarehouseId == warehouseIdValue));
|
||||
|
||||
var skuIds = inventories.Select(x => x.SkuId).Distinct().ToArray();
|
||||
var skus = skuIds.Length == 0
|
||||
|
||||
@ -24,11 +24,14 @@ public partial class WarehouseService
|
||||
var keyword = input.Keyword?.Trim();
|
||||
var hasKeyword = !string.IsNullOrWhiteSpace(keyword);
|
||||
var lifecycleStatus = input.LifecycleStatus?.Trim();
|
||||
var hasWarehouseFilter = input.WarehouseId.HasValue;
|
||||
var warehouseIdValue = input.WarehouseId.GetValueOrDefault();
|
||||
var hasLifecycleStatusFilter = !string.IsNullOrWhiteSpace(lifecycleStatus);
|
||||
|
||||
Expression<Func<CParcel, bool>> predicate = x =>
|
||||
(!hasCustomerFilter || x.CustomerId == customerIdValue)
|
||||
&& (!input.WarehouseId.HasValue || x.WarehouseId == input.WarehouseId.Value)
|
||||
&& (string.IsNullOrWhiteSpace(lifecycleStatus) || x.LifecycleStatus == lifecycleStatus)
|
||||
&& (!hasWarehouseFilter || x.WarehouseId == warehouseIdValue)
|
||||
&& (!hasLifecycleStatusFilter || x.LifecycleStatus == lifecycleStatus)
|
||||
&& (!hasKeyword || x.TrackingNo.Contains(keyword!) || (x.CarrierName != null && x.CarrierName.Contains(keyword!)));
|
||||
|
||||
var pageIndex = OmsDocHelper.NormalizePage(input.Page);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user