namespace WorkCameraExport.Models
{
///
/// 导出进度
///
public class ExportProgress
{
///
/// 总记录数
///
public int TotalRecords { get; set; }
///
/// 已处理记录数
///
public int ProcessedRecords { get; set; }
///
/// 总图片数
///
public int TotalImages { get; set; }
///
/// 已下载图片数
///
public int DownloadedImages { get; set; }
///
/// 当前状态描述
///
public string Status { get; set; } = "";
///
/// 进度百分比 (0-100)
///
public int Percentage => TotalRecords > 0
? (int)((ProcessedRecords * 100.0) / TotalRecords)
: 0;
}
///
/// 下载进度 - 用于 ZIP 下载
///
public class DownloadProgress
{
///
/// 总图片数
///
public int TotalImages { get; set; }
///
/// 已下载图片数
///
public int DownloadedImages { get; set; }
///
/// 当前状态描述
///
public string Status { get; set; } = "";
///
/// 进度百分比 (0-100)
///
public int Percentage => TotalImages > 0
? (int)((DownloadedImages * 100.0) / TotalImages)
: 0;
}
///
/// 导出任务
///
public class ExportTask
{
///
/// 任务 ID
///
public string TaskId { get; set; } = Guid.NewGuid().ToString("N");
///
/// 任务类型
///
public ExportTaskType TaskType { get; set; }
///
/// 输出路径
///
public string OutputPath { get; set; } = "";
///
/// 任务状态
///
public ExportTaskStatus Status { get; set; } = ExportTaskStatus.Pending;
///
/// 开始时间
///
public DateTime? StartTime { get; set; }
///
/// 完成时间
///
public DateTime? EndTime { get; set; }
///
/// 错误信息
///
public string? ErrorMessage { get; set; }
}
///
/// 导出任务类型
///
public enum ExportTaskType
{
///
/// 工作记录 Excel 导出
///
WorkRecordExcel,
///
/// 月报表 Excel 导出
///
MonthlyReportExcel,
///
/// 照片 ZIP 下载
///
PhotosZip
}
///
/// 导出任务状态
///
public enum ExportTaskStatus
{
///
/// 等待中
///
Pending,
///
/// 进行中
///
Running,
///
/// 已完成
///
Completed,
///
/// 已取消
///
Cancelled,
///
/// 失败
///
Failed
}
}