diff --git a/src/Oms.Application/Dtos/Orders/OrderWorkplaceStatsOutput.cs b/src/Oms.Application/Dtos/Orders/OrderWorkplaceStatsOutput.cs
index 8ef0894..1d345af 100644
--- a/src/Oms.Application/Dtos/Orders/OrderWorkplaceStatsOutput.cs
+++ b/src/Oms.Application/Dtos/Orders/OrderWorkplaceStatsOutput.cs
@@ -49,4 +49,14 @@ public class OrderWorkplaceStatsOutput
/// 问题件数量。
///
public int Problematic { get; set; }
+
+ ///
+ /// 店铺数量。
+ ///
+ public int StoreCount { get; set; }
+
+ ///
+ /// 店铺订单待处理数量(履约状态 pending)。
+ ///
+ public int StoreOrderPending { get; set; }
}
diff --git a/src/Oms.Application/Services/Orders/OrderService.ParcelBilling.cs b/src/Oms.Application/Services/Orders/OrderService.ParcelBilling.cs
index fd3320a..b463def 100644
--- a/src/Oms.Application/Services/Orders/OrderService.ParcelBilling.cs
+++ b/src/Oms.Application/Services/Orders/OrderService.ParcelBilling.cs
@@ -191,7 +191,7 @@ public partial class OrderService
}
}
- private const string ParcelServiceNoPrefix = "NE";
+ private const string ParcelServiceNoPrefix = "ID";
private static void NormalizeParcelCreateInput(OrderParcelCreateInput input)
{
diff --git a/src/Oms.Application/Services/Orders/OrderService.Workplace.cs b/src/Oms.Application/Services/Orders/OrderService.Workplace.cs
index b41f30c..dbfa3b8 100644
--- a/src/Oms.Application/Services/Orders/OrderService.Workplace.cs
+++ b/src/Oms.Application/Services/Orders/OrderService.Workplace.cs
@@ -3,11 +3,19 @@ using Oms.Application.Dtos.Orders;
using Oms.Application.Shared;
using Oms.Domain.OrdersAggregate;
using Oms.Domain.OrdersAggregate.Consts;
+using Oms.Domain.OrdersAggregate.Repositories;
+using Oms.Domain.WarehouseAggregate.Consts;
namespace Oms.Application.Services.Orders;
public partial class OrderService
{
+ private ISalesStoreRepository SalesStoreRepository =>
+ LazyServiceProvider.GetRequiredService();
+
+ private ISalesStoreOrderRepository SalesStoreOrderRepository =>
+ LazyServiceProvider.GetRequiredService();
+
///
/// 工作台订单统计概览。
///
@@ -46,6 +54,17 @@ public partial class OrderService
+ GetCount(OrderStatusCodes.DeliverySuccess)
+ GetCount(OrderStatusCodes.DeliveryFailed);
+ var customerId = filter.CustomerId;
+ var storeCount = customerId is > 0
+ ? await SalesStoreRepository.CountAsync(x => x.CustomerId == customerId.Value)
+ : await SalesStoreRepository.CountAsync(_ => true);
+ var storeOrderPending = customerId is > 0
+ ? await SalesStoreOrderRepository.CountAsync(x =>
+ x.CustomerId == customerId.Value
+ && x.FulfillStatus == SalesStoreFulfillStatusCodes.Pending)
+ : await SalesStoreOrderRepository.CountAsync(x =>
+ x.FulfillStatus == SalesStoreFulfillStatusCodes.Pending);
+
return new OrderWorkplaceStatsOutput
{
Total = counts.Values.Sum(),
@@ -57,6 +76,8 @@ public partial class OrderService
Shipped = shipped,
PendingOnline = GetCount(OrderStatusCodes.PendingOnline),
Problematic = GetCount(OrderStatusCodes.Problematic),
+ StoreCount = storeCount,
+ StoreOrderPending = storeOrderPending,
};
}