package com.energy.manage.service.service.datatransfer;

import com.energy.manage.common.po.datatransfer.DataTransferPo;
import com.energy.manage.common.reponse.ResultResp;
import com.energy.manage.service.domain.dto.datatransfer.DataTransferDto;
import com.energy.manage.service.domain.dto.datatransfer.EditDataTransferTypeDto;
import com.energy.manage.service.domain.vo.datatransfer.DataTransferBatchShortVo;
import com.energy.manage.service.domain.vo.datatransfer.DataTransferDataTimeVo;
import com.energy.manage.service.domain.vo.datatransfer.DataTransferQueryAndAddVo;
import com.energy.manage.service.domain.vo.datatransfer.DataTransferVo;

import java.util.List;

/**
 * @author chy
 * @date 2024/5/20 10:18
 * @desc
 */
public interface DataTransferService {


    /**
     * 获取没有进行数据转换的风场批次列表
     * @param roleId
     * @return
     */
    DataTransferQueryAndAddVo fieldBatchListForDataTransfer(Integer roleId);

    /**
     * 转换数据组查询
     * @param dataTransferDto
     * @return
     */
    List<DataTransferBatchShortVo> queryDataTransferGroup(DataTransferDto dataTransferDto);

    /**
     * 查询批次下数据转换信息
     * @param batchCode
     * @return
     */
    List<DataTransferVo> queryDataTransferByBatchCode(String batchCode);


    /**
     * 查询数据转换列表
     * @return
     */
    List<DataTransferVo> queryDataTransferList(DataTransferDto dataTransferDto);

    /**
     * 新增数据转换
     * @return
     */
    ResultResp addDataTransfer(DataTransferDto dataTransferDto);


    /**
     * 数据转换（转换/重新转换）
     * @param editDto
     * @param updateBy
     * @return
     */
    ResultResp dataTransfer(EditDataTransferTypeDto editDto, Integer updateBy);


    /**
     * 时间粒度编辑
     * @param batchCode
     * @param dataTransferType
     * @param timeGranularity
     * @param userId
     * @return
     */
    ResultResp editTimeGranularity(String batchCode, String dataTransferType, Integer timeGranularity,Integer userId);

    /**
     * 转换数据时间范围查询
     * @param batchCode
     * @param dataTransferType
     * @return
     */
    DataTransferDataTimeVo queryDataTime(String batchCode, String dataTransferType);


}
