IReportsAppService.cs 1.81 KB
using FoodLabeling.Application.Contracts.Dtos.Common;
using FoodLabeling.Application.Contracts.Dtos.Reports;
using FoodLabeling.Application.Contracts.Dtos.UsAppLabeling;
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.Application.Services;

namespace FoodLabeling.Application.Contracts.IServices;

/// <summary>
/// Reports(Print Log / Label Report)管理端接口
/// </summary>
public interface IReportsAppService : IApplicationService
{
    /// <summary>
    /// Print Log 分页列表;角色 <c>admin</c> 可查全部,否则仅当前用户打印记录。
    /// </summary>
    Task<PagedResultWithPageDto<ReportsPrintLogListItemDto>> GetPrintLogListAsync(ReportsPrintLogGetListInputVo input);

    /// <summary>
    /// Print Log 导出 PDF(筛选与列表一致,最多 5000 条)
    /// </summary>
    Task<IActionResult> ExportPrintLogPdfAsync(ReportsPrintLogGetListInputVo input);

    /// <summary>
    /// Print Log 全量导出 Excel(筛选与列表一致;排序与列表 <c>PrintedAt</c> 规则一致;最多 5000 条)
    /// </summary>
    Task<IActionResult> ExportPrintLogExcelAsync(ReportsPrintLogGetListInputVo input);

    /// <summary>
    /// 根据历史任务重打(与 App 入参一致);<c>admin</c> 可重打任意用户任务,否则仅本人任务。
    /// </summary>
    Task<UsAppLabelPrintOutputDto> ReprintPrintLogAsync(UsAppLabelReprintInputVo input);

    /// <summary>
    /// Label Report 统计(卡片 + 分类柱数据 + 7 日趋势 + Top 产品);<c>admin</c> 统计全部,否则仅当前用户。
    /// </summary>
    Task<ReportsLabelReportOutputDto> GetLabelReportAsync(ReportsLabelReportQueryInputVo input);

    /// <summary>
    /// Label Report 导出 PDF
    /// </summary>
    Task<IActionResult> ExportLabelReportPdfAsync(ReportsLabelReportQueryInputVo input);
}