package cn.cecep.talroad.mapper;

import cn.cecep.talroad.domain.BasDeviceParam;
import cn.cecep.talroad.vo.BasDeviceParamListVo;
import cn.cecep.talroad.vo.BasDeviceParamVo;
import cn.cecep.talroad.vo.SetParamInfoVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

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

    int updateValue(List<BasDeviceParamVo> basDeviceParamVoList);
    void updateByIdList(List<BasDeviceParam> BasDeviceParam);

    List<BasDeviceParam> queryNeedUpdateParamInfo();

    int updateNeedUpdateParamInfo(List<SetParamInfoVo> list);

    void batchInsert(List<BasDeviceParam> list);

    List<BasDeviceParamVo> selectBasDeviceParamByCondition(@Param("deviceId") String deviceId, @Param("list") List<String> asList);

    List<BasDeviceParamListVo> queryByDeviceIdListAndIndustry(@Param("deviceIdList") List<String> deviceIdList,
                                                              @Param("industry") String industry,
                                                              @Param("paramName") 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(@Param("deviceId") String deviceId,@Param("dataType") String dataType, @Param("codeList") List<String> codeList);


    List<String> getParamCodeSvcByDeviceParamIds( @Param("list") List<Long> list);

    void updateValueParam(@Param("deviceId") String deviceId, @Param("datetype")  String datetype, @Param("el")  String el, @Param("isStatus")  String isStatus);

    BasDeviceParam selectBasDeviceParam(@Param("datetype") String datetype,@Param("el")  String el,@Param("deviceId")  String deviceId);
}
