
package com.lideeyunji.core.framework.service;


import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.lideeyunji.core.framework.entity.ReportEntity;
import com.lideeyunji.core.framework.params.PageReportParam;
import com.lideeyunji.core.framework.params.ReportAddOrUpdateParam;
import com.lideeyunji.core.framework.params.vo.ReportConfigVo;
import com.lideeyunji.core.framework.params.vo.webconfigreport.WebConfigVo;
import com.lideeyunji.tool.framework.yunji.enums.AuthTypeEnum;

import java.util.List;
import java.util.Map;

/**
 * 数据报表相关
 */
public interface IReportService extends IService<ReportEntity> {

    //获取认证类型
    AuthTypeEnum getAuthType(String reportCode);

    //根据id获取
    ReportEntity getReportEntityById(Long reportId);

    //根据code获取
    ReportEntity getReportEntityByCode(String reportCode);

    //新增
    Long saveReportConfig(ReportAddOrUpdateParam param);

    //修改
    void updateReportConfig(ReportAddOrUpdateParam param);

    //删除
    void deleteReportConfig(List<Long> reportIdList);

    //详情
    ReportConfigVo getReportConfig(Long reportId);

    //分页
    IPage<ReportEntity> getPageReportConfig(PageReportParam param, Page page);

    //前端配置
    WebConfigVo getWebConfig(String reportCode);

    //回显字典
    void formatDataList(Long reportId,List<Map<String, Object>> records);

    //复制
    void copy(String reportCode, String newReportCode);
}
