package com.yunyan.business.service;

import java.util.List;

import com.yunyan.business.document.y22.pojo.finalExcelY22.ExcelDeptInfoVo;
import com.yunyan.business.domain.ReportFile;
import com.baomidou.mybatisplus.extension.service.IService;

import com.yunyan.business.pojo.admin.dto.FinalDataExportDto;
import com.yunyan.business.pojo.admin.dto.ReportAttachmentDto;
import com.yunyan.business.pojo.admin.dto.ReportAttachmentItemDto;
import com.yunyan.common.core.domain.AjaxResultVo;

import javax.servlet.http.HttpServletResponse;

/**
 * 报告-文件相关(附件)Service接口
 *
 * @author yunyan
 * @date 2023-12-21
 */
public interface IReportFileService extends IService<ReportFile>
{

    /**
     * 查询报告-文件相关(附件)列表
     *
     * @param reportFile 报告-文件相关(附件)
     * @return 报告-文件相关(附件)集合
     */
    public List<ReportFile> selectReportFileList(ReportFile reportFile);

    /**
    * 新增
    * @param
    * @return
    */
    AjaxResultVo add(ReportFile dto);

    /**
     * 编辑
     * @param
     * @return
     */
    AjaxResultVo edit(ReportFile dto);

    /**
     * 详情
     * @param id
     * @return
     */
    AjaxResultVo info(Long id);

    /**
     * 报告附件上传
     * @param dto
     * @return
     */
    AjaxResultVo reportAttachmentImport(ReportAttachmentDto dto);

    /**
     * 报告附件 查询
     * @param reportId
     * @return
     */
    AjaxResultVo<List<ReportAttachmentItemDto>> reportAttachmentInfo(Long reportId);

    /**
     * 查询 报告的附件
     * @param reportId
     * @return
     */
    ReportFile getByReportId(Long reportId);

    /**
     * 删除 报告的附件, 以及 更新 json中的 文件
     * @param ids
     * @return
     */
    AjaxResultVo remove(Long[] ids);

    /**
     * 导出 报告的附件, 区域或者选择的报告
     * @param response
     * @param dto
     */
    void exportZip(HttpServletResponse response, FinalDataExportDto dto);

}
