package com.mosty.yjzl.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mosty.base.model.dto.yjzl.GetLastYjDto;
import com.mosty.base.model.dto.yjzl.TbYjxxDTO;
import com.mosty.base.model.dto.yjzl.YjConvertZlDto;
import com.mosty.base.model.entity.rh.RhMyhtWarn;
import com.mosty.base.model.entity.yjzl.TbYjxx;
import com.mosty.base.model.query.afjcsj.VwSyrkJzgjGxListQuery;
import com.mosty.base.model.query.yjzl.*;
import io.swagger.annotations.ApiOperation;

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


public interface TbYjxxService {

    @ApiOperation("查询预警列表-分页")
    IPage<TbYjxx> getPageList(TbYjxxQuery dto);

    @ApiOperation("大屏-查询预警信轨迹")
    IPage<TbYjxx> selectTrack(TbYjxxYjgjQuery tbYjxx);

    @ApiOperation("查询预警信息-不分页")
    List<TbYjxx> getList(TbYjxxNoPageQuery dto);

    @ApiOperation("查询预警列表-热力图使用")
    List<Map<String, Object>> getListHotMap(TbYjxxNoPageQuery dto);

    @ApiOperation("查询预警列表-热力图使用")
    List<Map<String, Object>> getListHotMapEs(TbYjxxNoPageQuery dto);

    @ApiOperation("查询预警详情")
    TbYjxx getInfo(String id);

    @ApiOperation("新增预警")
    int insert(TbYjxx yjxx);

    @ApiOperation("查询预警")
    TbYjxx queryYjxx(TbYjxx yjxx);

    @ApiOperation("根据预警内容查询预警信息列表")
    List<TbYjxxDTO> selectYjByNr(String yjNr);

    @ApiOperation("解析kafka推送的预警消息")
    void setYjxxByKafka(String message);

    @ApiOperation("通过证件号码查询人员的预警信息")
    IPage<TbYjxx> getYjgj(VwSyrkJzgjGxListQuery dto);

    @ApiOperation("APP端预警信息统计")
    List<Map<String, Object>> getYjxxTj(TbYjxxYjjbStatisticsQuery dto);

    @ApiOperation("APP端单人、单车预警统计")
    Map<String, Object> getStatistics(TbYjxxStatisticsQuery dto);

    @ApiOperation("APP端预警信息统计-预警类型")
    List<Map<String, Object>> getYjxxTjYjlx(String kssj, String jssj);

    @ApiOperation("APP各时段预警")
    Object gsdyj(String type);

    @ApiOperation("APP预警转为指令")
    void yjConvertZl(YjConvertZlDto dto);

    @ApiOperation("获取最新一条预警")
    TbYjxx getLastYj(GetLastYjDto dto);

    @ApiOperation("修改预警信息是否发送指令")
    void updateYjxxSffszl(String id);

    @ApiOperation("查询预警信息列表（只查询又经纬度信息的）")
    List<TbYjxx> getYjxx30Day(TbYjxxQuery dto);


}

