package com.mosty.yjzl.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mosty.base.model.dto.yjzl.*;
import com.mosty.base.model.entity.trs.VwAlermYjgl;
import com.mosty.base.model.entity.trs.VwAlermYjzl;
import com.mosty.base.model.entity.yjzl.TbZlYjRy;
import com.mosty.base.model.entity.yjzl.TbZlxx;
import com.mosty.base.model.query.afjcsj.VwSyrkJzgjGxListQuery;
import com.mosty.base.model.query.yjzl.TbZlxxQuery;
import com.mosty.base.model.vo.trs.VwAlermYjzlVo;
import com.mosty.base.model.vo.yjzl.TbZlYjRyVo;
import com.mosty.base.model.vo.yjzl.TbZlxxInfoVo;
import com.mosty.base.model.vo.yjzl.TbZlxxVo;
import io.swagger.annotations.ApiOperation;

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


public interface TbZlxxService {

    @ApiOperation("根据时间查询指令执行情况")
    Map<String, Object> selectInstructCount(String startTime, String endTime);

    @ApiOperation("查询指令列表--分页")
    IPage<TbZlxxVo> selectInstructList(TbZlxxQuery dto);

    @ApiOperation("添加指令信息")
    String addZl(TbZlxxInsertDto dto);

    @ApiOperation("修改指令信息")
    void updateZl(TbZlxxInsertDto dto);

    @ApiOperation("指令到期状态修改")
    void changeZlGqzt();

    @ApiOperation("指令处置流程")
    void zlHandle(TbZlxxZtChangeDto dto);

    @ApiOperation("指令处置流程（人员管控）")
    void zlHandleRygk(TbZlxxZtChangeRygkDto dto);

    @ApiOperation("查询指令详细信息")
    TbZlxxInfoVo getInfo(String id);

    @ApiOperation("添加指令执行记录")
    void addZxjl(TbZlxxZxjlInsertDto dto);

    @ApiOperation("添加指令盘查人车的记录")
    void addPcrycl(TbZlxxPcryclInsertDto dto);

    @ApiOperation("获取托尔斯预警指令信息添加")
    void addTrsZl(VwAlermYjzlVo yjzl);

    @ApiOperation("查询实有人口指令信息")
    IPage<TbZlYjRyVo> getSyrkZlxx(VwSyrkJzgjGxListQuery dto);

    @ApiOperation("APP指令统计--指令类型")
    List<Map<String, Object>> getTjOfZllx(String type);

    @ApiOperation("获取trs最后一条指令信息")
    TbZlxx getLastZlxx();

    @ApiOperation("根据完成情况统计指令数量")
    Map<String, Object> getStatisticsByStatus();

    @ApiOperation("获取托尔斯预警信息添加")
    void addTrsYj(VwAlermYjgl vo);

    @ApiOperation("添加指令信息--第三方")
    void addZlxx(TbZlxxInsertDto dto);

    @ApiOperation("指令处置--第三方")
    void zlHandleOther(TbZlxxZtChangeDto dto);

    @ApiOperation("查询我发送的指令信息")
    IPage<TbZlxxVo> getMySendZlList(MyZlSearchDto dto);

    @ApiOperation("添加指令执行记录")
    void addZxjlOther(TbZlxxZxjlInsertDto dto);

    @ApiOperation("查询我发送的指令")
    Integer getZlCount(String ssbmdm, String time, String zlzxzt);

    @ApiOperation("查询我发送的指令")
    Map<String,Integer> yjzlTj();

    @ApiOperation("警情转指令")
    void andJqZl(String ssbmid,String jqid,String bbids,String zlxflx);

    @ApiOperation("预警转指令")
    void andYjZl(String yjid,String bbids);
}
