package com.njcn.csdevice.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.csdevice.pojo.po.CsDataSet;
import com.njcn.csdevice.pojo.vo.LineTargetVO;

import java.util.List;

/**
 * <p>
 * 数据集表 服务类
 * </p>
 *
 * @author xuyang
 * @since 2023-05-31
 */
public interface ICsDataSetService extends IService<CsDataSet> {

    /**
     * 根据模板、逻辑子设备标识获取数据集
     * @param modelId 模板id
     * @param clDev   逻辑子设备标识
     * @return
     */
    List<CsDataSet> findDataSetByModelId(String modelId, Integer clDev);

    /**
     * 根据模板获取数据集
     * @param modelId 模板id
     * @return
     */
    List<CsDataSet> findDataSetByModelId(String modelId);

    /**
     * 获取数据集
     * @param modelId 模板id
     * @param clDev   逻辑子设备标识
     * @return
     */
    List<LineTargetVO> getDataSet(String modelId,Integer clDev);

    /**
     * 获取子模块数据集
     * @param modelId 模板id
     * @return
     */
    List<CsDataSet> getModuleDataSet(String modelId);

    /**
     * 根据测点id获取数据集
     * @param setIds 监测点id
     * @return
     */
    List<CsDataSet> getDataSetBySetIds(List<String> setIds);

    CsDataSet getBaseDataSet(String modelId,Integer clDev);

    CsDataSet getHarmonicDataSet(String modelId,Integer clDev,Integer target);

    /**
     * 根据模板和idx获取数据集数据
     * @param modelId
     * @param idx
     * @return
     */
    CsDataSet getDataSetByIdx(String modelId, Integer idx);

    /**
     * 根据模板id获取所有数据集
     */
    List<CsDataSet> getDataSetByModelId(List<String> modelList);
}
