修复仓储与店铺订单列表 SqlSugar 可空筛选条件 SQL 翻译错误。
This commit is contained in:
commit
0bc826b6a3
@ -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(
|
||||||
|
|||||||
@ -170,20 +170,37 @@ public class PlatformStoreService : ApplicationService
|
|||||||
var platformCode = input.PlatformCode?.Trim();
|
var platformCode = input.PlatformCode?.Trim();
|
||||||
var nickname = input.StoreNickname?.Trim();
|
var nickname = input.StoreNickname?.Trim();
|
||||||
var filter = input.ExpirationFilter?.Trim().ToLowerInvariant();
|
var filter = input.ExpirationFilter?.Trim().ToLowerInvariant();
|
||||||
|
var hasPlatformCode = !string.IsNullOrWhiteSpace(platformCode);
|
||||||
|
var hasNickname = !string.IsNullOrWhiteSpace(nickname);
|
||||||
var now = DateTime.Now;
|
var now = DateTime.Now;
|
||||||
var within7Days = now.AddDays(7);
|
var within7Days = now.AddDays(7);
|
||||||
|
|
||||||
return x =>
|
// 显式按过期筛选分支构造表达式,避免嵌套三元被 ORM 翻译成非法 IIF。
|
||||||
(!hasCustomerFilter || x.CustomerId == customerIdValue)
|
return filter switch
|
||||||
&& (string.IsNullOrWhiteSpace(platformCode) || x.PlatformCode == platformCode)
|
{
|
||||||
&& (string.IsNullOrWhiteSpace(nickname) || x.StoreNickname.Contains(nickname))
|
"expired" => x =>
|
||||||
&& (string.IsNullOrWhiteSpace(filter) || filter == "normal"
|
(!hasCustomerFilter || x.CustomerId == customerIdValue)
|
||||||
? string.IsNullOrWhiteSpace(filter) || !x.TokenExpireTime.HasValue || x.TokenExpireTime > within7Days
|
&& (!hasPlatformCode || x.PlatformCode == platformCode)
|
||||||
: filter == "expired"
|
&& (!hasNickname || x.StoreNickname.Contains(nickname!))
|
||||||
? x.TokenExpireTime.HasValue && x.TokenExpireTime < now
|
&& x.TokenExpireTime.HasValue
|
||||||
: filter == "within7days"
|
&& x.TokenExpireTime < now,
|
||||||
? x.TokenExpireTime.HasValue && x.TokenExpireTime >= now && x.TokenExpireTime <= within7Days
|
"within7days" => x =>
|
||||||
: true);
|
(!hasCustomerFilter || x.CustomerId == customerIdValue)
|
||||||
|
&& (!hasPlatformCode || x.PlatformCode == platformCode)
|
||||||
|
&& (!hasNickname || x.StoreNickname.Contains(nickname!))
|
||||||
|
&& x.TokenExpireTime.HasValue
|
||||||
|
&& x.TokenExpireTime >= now
|
||||||
|
&& x.TokenExpireTime <= within7Days,
|
||||||
|
"normal" => x =>
|
||||||
|
(!hasCustomerFilter || x.CustomerId == customerIdValue)
|
||||||
|
&& (!hasPlatformCode || x.PlatformCode == platformCode)
|
||||||
|
&& (!hasNickname || x.StoreNickname.Contains(nickname!))
|
||||||
|
&& (!x.TokenExpireTime.HasValue || x.TokenExpireTime > within7Days),
|
||||||
|
_ => x =>
|
||||||
|
(!hasCustomerFilter || x.CustomerId == customerIdValue)
|
||||||
|
&& (!hasPlatformCode || x.PlatformCode == platformCode)
|
||||||
|
&& (!hasNickname || x.StoreNickname.Contains(nickname!))
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private static PlatformStoreOutput MapOutput(SalesStore entity) =>
|
private static PlatformStoreOutput MapOutput(SalesStore entity) =>
|
||||||
|
|||||||
@ -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