package com.njcn.gather.storage.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.njcn.gather.storage.pojo.po.ContrastNonHarmonicResult;

import java.util.List;

/**
 * @author caozehui
 * @data 2025-07-28
 */
public interface ContrastNonHarmonicService extends IService<ContrastNonHarmonicResult> {

    /**
     * 获取所有原始数据
     *
     * @param code
     * @param num
     * @param waveNum
     * @param isWave
     * @param dataType
     * @param flag
     * @param devId
     * @param adTypeList
     * @return
     */
    List<ContrastNonHarmonicResult> listAllRawData(String code, Integer num, Integer waveNum, Boolean isWave, String dataType, Integer flag, String devId, List<String> adTypeList);


    /**
     * 获取所有非谐波结果数据
     *
     * @param code
     * @param num
     * @param waveNum
     * @param isWave
     * @param dataType
     * @param devId
     * @param adTypeList
     * @return
     */

    List<ContrastNonHarmonicResult> listAllResultData(String code, Integer num, Integer waveNum, Boolean isWave, String dataType, String devId, List<String> adTypeList);

    /**
     * 获取非谐波检测项的比对结果
     *
     * @param planCode   计划code
     * @param monitorId  监测点ID
     * @param scriptId   指标id
     * @param resultType 结果类型
     * @param time       第几次检测
     * @return 检测结果
     */
    ContrastNonHarmonicResult getContrastResultHarm(Integer planCode, String monitorId, List<String> scriptId, String resultType, int time);

    /**
     * 去原始表获取总次数
     *
     * @param planCode   计划code
     * @param monitorId  监测点ID
     * @param scriptId   指标id
     * @param resultType 结果类型
     * @param time       第几次检测
     * @return 数据组数
     */
    int getNumOfData(Integer planCode, String monitorId, List<String> scriptId, String resultType, int time);

}
