package cn.cecep.talroad.service;

import cn.cecep.talroad.domain.BasDeviceParam;
import cn.cecep.talroad.vo.BasDeviceParamListVo;
import cn.cecep.talroad.vo.BasDeviceParamVo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * 各设备的监测参数属性Service接口
 *
 * @author szhpt
 * @date 2023-01-10
 */
public interface IBasDeviceParamService extends IService<BasDeviceParam> {
    /**
     * 查询各设备的监测参数属性列表
     *
     * @param basDeviceParam 各设备的监测参数属性
     * @return 各设备的监测参数属性集合
     */
    public List<BasDeviceParam> selectBasDeviceParamList(BasDeviceParam basDeviceParam);

    void editBatch(BasDeviceParamVo[] basDeviceParamVoArr);

    int setParamInfo();

    /**
     * 根据设备ID、行业、设备类型查询符合条件的设备参数配置
     *
     * @param deviceId
     * @param asList
     * @return
     */
    List<BasDeviceParamVo> selectBasDeviceParamByCondition(String deviceId, List<String> asList);

    List<BasDeviceParamListVo> queryByDeviceIdListAndIndustry(List<String> deviceIdList,
                                                              String industry, String paramName);

    /**
     * 根据条件查询符合条件的设备参数
     * bas_device_param.is_online = 1
     * bas_device_param_analyse.data_logic_abnormal_ew = 1
     * bas_device_sal_analysis.mon_status != '停产'
     * @param deviceId 设备id
     * @param dataType 分析数据类型  bas_device_param_analyse.data_type
     * @param codeList 需要分析的参数列表 bas_param.param_code_svc
     * @return
     */
    List<BasDeviceParamVo> selectBasDeviceParamByAnalyse(String deviceId,String dataType, List<String> codeList);


    /**
     * 根据ID查询参数编码
     * @param list
     * @return
     */
    List<String> getParamCodeSvcByDeviceParamIds(List<Long> list);
}
