package cn.com.taiji.beidou.ship.warning.record.mapper;

import cn.com.taiji.beidou.ship.archives.domain.ShipDisposeData;
import cn.com.taiji.beidou.ship.warning.record.domain.*;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

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

/**
 * @Author CHEN
 * @Date 2022/11/22 17:02
 */
@Mapper
public interface WarningRecordMapper {

    /**
     * 根据预警记录类型 统计
     * @param deptId
     * @param startTime
     * @param endTime
     * @return
     */
    List<StatisticsByRuleResult> statisticsByRule(@Param("deptId") String deptId,
                                                  @Param("startTime") String startTime,
                                                  @Param("endTime") String endTime);

    /**
     * 预警记录列表
     * @param ruleId
     * @param deptId
     * @param shipId
     * @param startTime
     * @param endTime
     * @return
     */
    List<WarningRecordListResult> warningRecordList(@Param("ruleId") String ruleId,
                                                    @Param("deptId") String deptId,
                                                    @Param("shipId") String shipId,
                                                    @Param("startTime") String startTime,
                                                    @Param("endTime") String endTime);

    List<SimpleWarningRecordResult> getWarningRecordByDeviceId(@Param("devideNo") String devideNo,
                                                               @Param("ruleId") String ruleId,
                                                               @Param("startTime") String startTime,
                                                               @Param("endTime") String endTime);

    /**
     * 导出接口
     * @param ruleId
     * @param deptId
     * @param startTime
     * @param endTime
     * @return
     */
    List<WarningRecordExcel> warningRecordExcel(@Param("ruleId") String ruleId,
                                                @Param("deptId") String deptId,
                                                @Param("startTime") String startTime,
                                                @Param("endTime") String endTime);


    /**
     * 新增处置
     * @param shipDisposeData
     * @return
     */
    int insertDispose(ShipDisposeData shipDisposeData);

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

    WarningRecordData getRecordById(String id);

    /**
     * 根据北斗ID查询预警信息
     * @param deviceId
     * @return
     */
    List<WarningRecordResult> getRecordByDeviceId(String deviceId);

}
