71 lines
2.4 KiB
C#
71 lines
2.4 KiB
C#
using WorkCameraExport.Models;
|
||
|
||
namespace WorkCameraExport.Services.Interfaces
|
||
{
|
||
/// <summary>
|
||
/// 导出服务接口 - 负责在客户端本地生成 Excel 和 ZIP 文件
|
||
/// </summary>
|
||
public interface IExportService
|
||
{
|
||
#region 工作记录导出
|
||
|
||
/// <summary>
|
||
/// 导出工作记录到 Excel(按查询条件导出全部)
|
||
/// </summary>
|
||
/// <param name="query">查询条件</param>
|
||
/// <param name="outputPath">输出文件路径</param>
|
||
/// <param name="progress">进度回调</param>
|
||
/// <param name="cancellationToken">取消令牌</param>
|
||
Task ExportWorkRecordsAsync(
|
||
WorkRecordQueryDto query,
|
||
string outputPath,
|
||
IProgress<ExportProgress>? progress = null,
|
||
CancellationToken cancellationToken = default);
|
||
|
||
/// <summary>
|
||
/// 导出指定 ID 的工作记录到 Excel
|
||
/// </summary>
|
||
/// <param name="ids">记录 ID 列表</param>
|
||
/// <param name="outputPath">输出文件路径</param>
|
||
/// <param name="progress">进度回调</param>
|
||
/// <param name="cancellationToken">取消令牌</param>
|
||
Task ExportWorkRecordsByIdsAsync(
|
||
List<int> ids,
|
||
string outputPath,
|
||
IProgress<ExportProgress>? progress = null,
|
||
CancellationToken cancellationToken = default);
|
||
|
||
#endregion
|
||
|
||
#region 月报表导出
|
||
|
||
/// <summary>
|
||
/// 导出月报表到 Excel
|
||
/// </summary>
|
||
/// <param name="data">月报表数据</param>
|
||
/// <param name="outputPath">输出文件路径</param>
|
||
Task ExportMonthlyReportAsync(
|
||
List<MonthlyReportDto> data,
|
||
string outputPath);
|
||
|
||
#endregion
|
||
|
||
#region 照片 ZIP 下载
|
||
|
||
/// <summary>
|
||
/// 下载指定月份的照片并打包成 ZIP
|
||
/// </summary>
|
||
/// <param name="yearMonth">月份(YYYY-MM 格式)</param>
|
||
/// <param name="outputPath">输出文件路径</param>
|
||
/// <param name="progress">进度回调</param>
|
||
/// <param name="cancellationToken">取消令牌</param>
|
||
Task DownloadPhotosZipAsync(
|
||
string yearMonth,
|
||
string outputPath,
|
||
IProgress<DownloadProgress>? progress = null,
|
||
CancellationToken cancellationToken = default);
|
||
|
||
#endregion
|
||
}
|
||
}
|