WorkCamera/client/WorkCameraExport/Models/ExportModels.cs
2026-01-05 23:58:56 +08:00

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
}
}