修复仓储与店铺订单列表 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 (hasCustomerFilter, customerIdValue) = WarehouseCustomerHelper.ToCustomerFilter(customerId);
|
||||||
var fulfillStatus = input.FulfillStatus?.Trim();
|
var fulfillStatus = input.FulfillStatus?.Trim();
|
||||||
var platformOrderNo = input.PlatformOrderNo?.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 =>
|
return x =>
|
||||||
(!hasCustomerFilter || x.CustomerId == customerIdValue)
|
(!hasCustomerFilter || x.CustomerId == customerIdValue)
|
||||||
&& (!input.StoreId.HasValue || x.StoreId == input.StoreId.Value)
|
&& (!hasStoreFilter || x.StoreId == storeIdValue)
|
||||||
&& (string.IsNullOrWhiteSpace(fulfillStatus) || x.FulfillStatus == fulfillStatus)
|
&& (!hasFulfillStatusFilter || x.FulfillStatus == fulfillStatus)
|
||||||
&& (!input.IsSuspended.HasValue || x.IsSuspended == input.IsSuspended.Value)
|
&& (!hasSuspendedFilter || x.IsSuspended == isSuspendedValue)
|
||||||
&& (string.IsNullOrWhiteSpace(platformOrderNo) || x.PlatformOrderNo.Contains(platformOrderNo));
|
&& (!hasPlatformOrderNoFilter || x.PlatformOrderNo.Contains(platformOrderNo!));
|
||||||
}
|
}
|
||||||
|
|
||||||
private static PlatformStoreOrderOutput MapOrderOutput(
|
private static PlatformStoreOrderOutput MapOrderOutput(
|
||||||
|
|||||||
@ -23,9 +23,11 @@ public partial class WarehouseService
|
|||||||
|
|
||||||
var keyword = input.Keyword?.Trim();
|
var keyword = input.Keyword?.Trim();
|
||||||
var hasKeyword = !string.IsNullOrWhiteSpace(keyword);
|
var hasKeyword = !string.IsNullOrWhiteSpace(keyword);
|
||||||
|
var hasEnabledFilter = input.IsEnabled.HasValue;
|
||||||
|
var isEnabledValue = input.IsEnabled.GetValueOrDefault();
|
||||||
var items = await BinLocationRepository.GetListAsync(x =>
|
var items = await BinLocationRepository.GetListAsync(x =>
|
||||||
x.WarehouseId == input.WarehouseId
|
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!))));
|
&& (!hasKeyword || x.BinCode.Contains(keyword!) || (x.BinName != null && x.BinName.Contains(keyword!))));
|
||||||
items = items.OrderBy(x => x.BinCode).ThenBy(x => x.Id).ToList();
|
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 keyword = input.Keyword?.Trim();
|
||||||
var hasKeyword = !string.IsNullOrWhiteSpace(keyword);
|
var hasKeyword = !string.IsNullOrWhiteSpace(keyword);
|
||||||
var receiptStatus = input.ReceiptStatus?.Trim();
|
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 =>
|
Expression<Func<CInboundNotice, bool>> predicate = x =>
|
||||||
(!hasCustomerFilter || x.CustomerId == customerIdValue)
|
(!hasCustomerFilter || x.CustomerId == customerIdValue)
|
||||||
&& (!input.WarehouseId.HasValue || x.WarehouseId == input.WarehouseId.Value)
|
&& (!hasWarehouseFilter || x.WarehouseId == warehouseIdValue)
|
||||||
&& (string.IsNullOrWhiteSpace(receiptStatus) || x.ReceiptStatus == receiptStatus)
|
&& (!hasReceiptStatusFilter || x.ReceiptStatus == receiptStatus)
|
||||||
&& (!hasKeyword || x.NoticeNo.Contains(keyword!) || (x.MarkReference != null && x.MarkReference.Contains(keyword!)));
|
&& (!hasKeyword || x.NoticeNo.Contains(keyword!) || (x.MarkReference != null && x.MarkReference.Contains(keyword!)));
|
||||||
|
|
||||||
var pageIndex = OmsDocHelper.NormalizePage(input.Page);
|
var pageIndex = OmsDocHelper.NormalizePage(input.Page);
|
||||||
@ -302,9 +305,11 @@ public partial class WarehouseService
|
|||||||
{
|
{
|
||||||
var resolvedCustomerId = await ResolveListCustomerIdAsync(customerId);
|
var resolvedCustomerId = await ResolveListCustomerIdAsync(customerId);
|
||||||
var (hasCustomerFilter, customerIdValue) = CustomerFilter(resolvedCustomerId);
|
var (hasCustomerFilter, customerIdValue) = CustomerFilter(resolvedCustomerId);
|
||||||
|
var hasWarehouseFilter = warehouseId.HasValue;
|
||||||
|
var warehouseIdValue = warehouseId.GetValueOrDefault();
|
||||||
var notices = await InboundNoticeRepository.GetListAsync(x =>
|
var notices = await InboundNoticeRepository.GetListAsync(x =>
|
||||||
(!hasCustomerFilter || x.CustomerId == customerIdValue)
|
(!hasCustomerFilter || x.CustomerId == customerIdValue)
|
||||||
&& (!warehouseId.HasValue || x.WarehouseId == warehouseId.Value));
|
&& (!hasWarehouseFilter || x.WarehouseId == warehouseIdValue));
|
||||||
|
|
||||||
return new WarehouseInboundSummaryOutput
|
return new WarehouseInboundSummaryOutput
|
||||||
{
|
{
|
||||||
|
|||||||
@ -18,10 +18,12 @@ public partial class WarehouseService
|
|||||||
{
|
{
|
||||||
var customerId = await ResolveListCustomerIdAsync(input.CustomerId);
|
var customerId = await ResolveListCustomerIdAsync(input.CustomerId);
|
||||||
var (hasCustomerFilter, customerIdValue) = CustomerFilter(customerId);
|
var (hasCustomerFilter, customerIdValue) = CustomerFilter(customerId);
|
||||||
|
var hasWarehouseFilter = input.WarehouseId.HasValue;
|
||||||
|
var warehouseIdValue = input.WarehouseId.GetValueOrDefault();
|
||||||
var inventories = await InventoryRepository.GetListAsync(x =>
|
var inventories = await InventoryRepository.GetListAsync(x =>
|
||||||
(!hasCustomerFilter || x.CustomerId == customerIdValue)
|
(!hasCustomerFilter || x.CustomerId == customerIdValue)
|
||||||
&& x.Qty > 0
|
&& 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 skuIds = inventories.Select(x => x.SkuId).Distinct().ToArray();
|
||||||
var skus = skuIds.Length == 0
|
var skus = skuIds.Length == 0
|
||||||
|
|||||||
@ -24,11 +24,14 @@ public partial class WarehouseService
|
|||||||
var keyword = input.Keyword?.Trim();
|
var keyword = input.Keyword?.Trim();
|
||||||
var hasKeyword = !string.IsNullOrWhiteSpace(keyword);
|
var hasKeyword = !string.IsNullOrWhiteSpace(keyword);
|
||||||
var lifecycleStatus = input.LifecycleStatus?.Trim();
|
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 =>
|
Expression<Func<CParcel, bool>> predicate = x =>
|
||||||
(!hasCustomerFilter || x.CustomerId == customerIdValue)
|
(!hasCustomerFilter || x.CustomerId == customerIdValue)
|
||||||
&& (!input.WarehouseId.HasValue || x.WarehouseId == input.WarehouseId.Value)
|
&& (!hasWarehouseFilter || x.WarehouseId == warehouseIdValue)
|
||||||
&& (string.IsNullOrWhiteSpace(lifecycleStatus) || x.LifecycleStatus == lifecycleStatus)
|
&& (!hasLifecycleStatusFilter || x.LifecycleStatus == lifecycleStatus)
|
||||||
&& (!hasKeyword || x.TrackingNo.Contains(keyword!) || (x.CarrierName != null && x.CarrierName.Contains(keyword!)));
|
&& (!hasKeyword || x.TrackingNo.Contains(keyword!) || (x.CarrierName != null && x.CarrierName.Contains(keyword!)));
|
||||||
|
|
||||||
var pageIndex = OmsDocHelper.NormalizePage(input.Page);
|
var pageIndex = OmsDocHelper.NormalizePage(input.Page);
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user