package com.inspect.metadata.eqpbook.mapper;

import com.inspect.metadata.eqpbook.domain.BasedataEqpBook;
import com.inspect.metadata.eqpbook.domain.vo.BasedataEqpBookTreeQueryFilterVo;
import com.inspect.metadata.eqpbook.domain.vo.PatrolResult;
import com.inspect.metadata.eqpbook.domain.vo.PatrolTaskFtp;
import com.inspect.metadata.eqpbook.domain.vo.ResultAnalysis;
import com.inspect.metadata.montdata.domain.BasedataMontPatDevStaData;
import com.inspect.metadata.patrolpointmnt.domain.BasedataPatrolPoint;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

@Mapper
public interface BasedataEqpBookMapper {
    BasedataEqpBook selectBasedataEqpBookByEqpBookId(Long bookId);

    List<BasedataEqpBook> selectBasedataEqpBookByEqpBookIds(@Param("bookIds") List<Long> bookIds);

    List<BasedataEqpBook> selectBasedataEqpBookList(BasedataEqpBook book);

    List<BasedataEqpBook> selectBasedataEqpBookOnlineList(BasedataEqpBookTreeQueryFilterVo filterVo);

    int insertBasedataEqpBook(BasedataEqpBook book);

    int updateBasedataEqpBook(BasedataEqpBook book);

    int deleteBasedataEqpBookByEqpBookId(Long bookId);

    int deleteBasedataEqpBookByEqpBookIds(Long[] bookIds);

    List<BasedataEqpBook> getUavList();

    BasedataEqpBook checkEqpBookCodeUnique(@Param("patrolDeviceCode") String deviceCode, @Param("eqpBookId") Long bookId);

    BasedataEqpBook checkEqpBookNameUnique(@Param("patrolDeviceName") String deviceName, @Param("eqpBookId") Long bookId);

    List<BasedataEqpBook> getRobotUavList();

    BasedataEqpBook selectBasedataEqpBookByPatrolDeviceCode(String deviceCode);

    PatrolTaskFtp selectPatrolTaskFtpByLineId(Long lineId);

    List<Map<String, Integer>> deviceNumList();

    List<String> deviceStatusList();

    List<BasedataMontPatDevStaData> deviceStatusListInfo(BasedataMontPatDevStaData data);

    List<String> deviceOlinList();

    List<String> alarmList();

    List<PatrolResult> alarmListInfo(ResultAnalysis resultAnalysis);

    List<String> abnormalList();

    List<PatrolResult> abnormalListInfo(ResultAnalysis resultAnalysis);

    List<BasedataPatrolPoint> getSubtypeData(BasedataPatrolPoint patrolPoint);

    Map<String, Object> selectDevInfoById(String id);

    List<Map<String, Object>> selectBasePointByPointId(String pointId);

    List<Map<String, Object>> selectBasePointPre(String pointPre);

    Map<String, String> selectPointInfoById(String id);

    String queryEqpBookCode(String code);
}
