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