更新批处理队列项获取方法,默认筛选状态为“全部”
This commit is contained in:
parent
c117e0d0c3
commit
de55d7ea1b
@ -355,7 +355,7 @@ namespace NavisworksTransport.Core
|
||||
/// 获取队列列表
|
||||
/// </summary>
|
||||
public async Task<List<BatchQueueItem>> GetQueueItemsAsync(
|
||||
BatchQueueStatus? statusFilter = null,
|
||||
BatchQueueStatus statusFilter = BatchQueueStatus.All,
|
||||
int limit = 50,
|
||||
int offset = 0)
|
||||
{
|
||||
|
||||
@ -46,6 +46,7 @@ namespace NavisworksTransport.Core.Models
|
||||
/// </summary>
|
||||
public enum BatchQueueStatus
|
||||
{
|
||||
All, // 全部(用于筛选)
|
||||
Pending, // 等待执行
|
||||
Running, // 正在执行
|
||||
Completed, // 已完成
|
||||
|
||||
@ -1696,7 +1696,7 @@ namespace NavisworksTransport
|
||||
/// <summary>
|
||||
/// 获取批处理队列项列表
|
||||
/// </summary>
|
||||
public async Task<List<BatchQueueItem>> GetBatchQueueItemsAsync(BatchQueueStatus? statusFilter = null, int limit = 50, int offset = 0)
|
||||
public async Task<List<BatchQueueItem>> GetBatchQueueItemsAsync(BatchQueueStatus statusFilter = BatchQueueStatus.All, int limit = 50, int offset = 0)
|
||||
{
|
||||
return await Task.Run(() =>
|
||||
{
|
||||
@ -1711,34 +1711,35 @@ namespace NavisworksTransport
|
||||
ClashDetectiveTestName, CollisionCount
|
||||
FROM BatchQueueItems";
|
||||
var conditions = new List<string>();
|
||||
|
||||
if (statusFilter.HasValue)
|
||||
|
||||
// 只有当 statusFilter 不是 All 时才添加筛选条件
|
||||
if (statusFilter != BatchQueueStatus.All)
|
||||
{
|
||||
conditions.Add("Status = @Status");
|
||||
cmd.Parameters.AddWithValue("@Status", statusFilter.Value.ToString());
|
||||
cmd.Parameters.AddWithValue("@Status", statusFilter.ToString());
|
||||
}
|
||||
|
||||
|
||||
if (conditions.Count > 0)
|
||||
{
|
||||
sql += " WHERE " + string.Join(" AND ", conditions);
|
||||
}
|
||||
|
||||
|
||||
sql += " ORDER BY CreatedTime DESC";
|
||||
|
||||
|
||||
if (limit > 0)
|
||||
{
|
||||
sql += " LIMIT @Limit";
|
||||
cmd.Parameters.AddWithValue("@Limit", limit);
|
||||
}
|
||||
|
||||
|
||||
if (offset > 0)
|
||||
{
|
||||
sql += " OFFSET @Offset";
|
||||
cmd.Parameters.AddWithValue("@Offset", offset);
|
||||
}
|
||||
|
||||
|
||||
cmd.CommandText = sql;
|
||||
|
||||
|
||||
using (var reader = cmd.ExecuteReader())
|
||||
{
|
||||
while (reader.Read())
|
||||
|
||||
@ -16,6 +16,8 @@ namespace NavisworksTransport.UI.WPF.Converters
|
||||
{
|
||||
switch (status)
|
||||
{
|
||||
case BatchQueueStatus.All:
|
||||
return "全部";
|
||||
case BatchQueueStatus.Pending:
|
||||
return "待处理";
|
||||
case BatchQueueStatus.Running:
|
||||
|
||||
@ -11,9 +11,9 @@ namespace NavisworksTransport.UI.WPF.Converters
|
||||
/// <summary>
|
||||
/// 获取所有队列状态(包括"全部"选项)
|
||||
/// </summary>
|
||||
public static List<BatchQueueStatus?> AllStatuses => new List<BatchQueueStatus?>
|
||||
public static List<BatchQueueStatus> AllStatuses => new List<BatchQueueStatus>
|
||||
{
|
||||
null, // 表示"全部"
|
||||
BatchQueueStatus.All, // 表示"全部"
|
||||
BatchQueueStatus.Pending,
|
||||
BatchQueueStatus.Running,
|
||||
BatchQueueStatus.Completed,
|
||||
|
||||
@ -27,7 +27,7 @@ namespace NavisworksTransport.UI.WPF.ViewModels
|
||||
|
||||
private ObservableCollection<BatchQueueItem> _queueItems;
|
||||
private BatchQueueItem _selectedItem;
|
||||
private BatchQueueStatus? _statusFilter;
|
||||
private BatchQueueStatus _statusFilter = BatchQueueStatus.All;
|
||||
private string _progressText;
|
||||
private bool _isExecuting;
|
||||
|
||||
@ -56,7 +56,7 @@ namespace NavisworksTransport.UI.WPF.ViewModels
|
||||
/// <summary>
|
||||
/// 状态筛选器
|
||||
/// </summary>
|
||||
public BatchQueueStatus? StatusFilter
|
||||
public BatchQueueStatus StatusFilter
|
||||
{
|
||||
get => _statusFilter;
|
||||
set
|
||||
@ -214,18 +214,12 @@ namespace NavisworksTransport.UI.WPF.ViewModels
|
||||
}
|
||||
|
||||
var items = await database.GetBatchQueueItemsAsync(statusFilter: StatusFilter, limit: 1000);
|
||||
|
||||
// 应用筛选
|
||||
if (StatusFilter.HasValue)
|
||||
{
|
||||
items = items.Where(item => item.Status == StatusFilter.Value).ToList();
|
||||
}
|
||||
|
||||
|
||||
// 按创建时间倒序
|
||||
items = items.OrderByDescending(item => item.CreatedTime).ToList();
|
||||
|
||||
|
||||
LogManager.Info($"[BatchQueueManagement] 加载队列列表完成,共 {items.Count} 项");
|
||||
|
||||
|
||||
await _uiStateManager.ExecuteUIUpdateAsync(() =>
|
||||
{
|
||||
QueueItems.Clear();
|
||||
@ -233,7 +227,7 @@ namespace NavisworksTransport.UI.WPF.ViewModels
|
||||
{
|
||||
QueueItems.Add(item);
|
||||
}
|
||||
|
||||
|
||||
// 通知属性变化以更新按钮状态
|
||||
OnPropertyChanged(nameof(HasPendingItems));
|
||||
OnPropertyChanged(nameof(CanExecuteQueue));
|
||||
|
||||
Loading…
Reference in New Issue
Block a user