package com.ltgk.boat.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ltgk.boat.domain.dto.AutomaticIdentificationReq;
import com.ltgk.boat.domain.dto.GetBoatGoSeaReq;
import com.ltgk.boat.domain.dto.NotReportBoatReq;
import com.ltgk.boat.domain.entity.DsEnterOutPort;
import com.ltgk.boat.domain.vo.AutomaticIdentificationVO;
import com.ltgk.boat.domain.vo.BoatGoSeaVo;
import com.ltgk.boat.domain.vo.NotReportBoatVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 渔船进出港记录（数据来自船位动态监控）Mapper接口
 *
 * @author Qi ChengBin
 * @date 2024-12-19
 */
@Mapper
public interface DsEnterOutPortMapper extends BaseMapper<DsEnterOutPort> {
    List<BoatGoSeaVo> selectBoatGoSea(GetBoatGoSeaReq getBoatGoSeaReq);

    /**
     * 自动识别记录：包括AIS/北斗 设备解析和视频识别算法
     *
     * @param req:
     * @return java.util.List<com.ltgk.boat.domain.vo.AutomaticIdentificationVO>
     * @author Qi ChengBin
     * @date 2025/3/4
     */
    List<AutomaticIdentificationVO> findAutomaticIdentificationList(@Param("req") AutomaticIdentificationReq req);

    /**
     * 查询未报告渔船管理 - 查询所有未报备的渔船，包括不在系统中管理的渔船（根据长海项目需求）
     *
     * @param req：未报告渔船管理请求参数
     * @return com.ltgk.common.core.page.TableDataInfo
     * @author Qi ChengBin
     * @date 2025/4/11
     */
    List<NotReportBoatVO> findNotReportBoatList(@Param("req") NotReportBoatReq req);
}
