package com.mosty.hczx.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.mosty.base.model.dto.hczx.TbHcBpcryInsertDto;
import com.mosty.base.model.entity.hczx.TbHcBpcry;
import com.mosty.base.model.query.hczx.HcTjQuery;
import com.mosty.base.model.query.hczx.RyClTjQuery;
import com.mosty.base.model.query.hczx.TbHcBpcryQuery;
import com.mosty.base.model.query.hczx.TbHcTodayBpcryQuery;
import com.mosty.base.model.vo.hczx.RxSearchVo;
import com.mosty.base.model.vo.hczx.RyZpSearchVo;
import com.mosty.base.model.vo.hczx.TbHcBpcryVo;
import com.mosty.common.core.business.entity.vo.Base64Str;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.multipart.MultipartFile;

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


public interface TbHcBpcryService {

    @ApiOperation("查询被盘查人员")
    Integer selectCrewCount();

    @ApiOperation("大屏-数据统计区（左上侧）-查询盘查人员列表分页")
    IPage<TbHcBpcryVo> selectCrewList(TbHcTodayBpcryQuery dto);

    @ApiOperation("APP_查询人员信息")
    TbHcBpcryVo selectRy(TbHcBpcryQuery dto);

    @ApiOperation("根据人像查询人员列表信息")
    List<RyZpSearchVo> getRyListByZp(MultipartFile file);

    @ApiOperation("根据手机号查询人员信息")
    List<Map> getRyListBySjhm(String mobile);

    @ApiOperation("条件查询人员盘查信息")
    IPage<TbHcBpcryVo> getRypcList(TbHcBpcryQuery dto);


    @ApiOperation("条件查询人员盘查信息")
    Map<String, Integer> getRypcCount(TbHcBpcryQuery dto);


    @ApiOperation("查询两个小时内没有被车辆绑定的人员")
    List<TbHcBpcryVo> getRyOf2h();

    @ApiOperation("保存被盘查人员信息")
    void saveBpcry(TbHcBpcryInsertDto dto);

    @ApiOperation("保存被盘查人员信息Nfc")
    TbHcBpcryVo saveBpcryNfc(TbHcBpcry bpcry);

    @ApiOperation("查询人员标签详情")
    Map<String, Object> getRyBq(String id);

    @ApiOperation("查询人员标签代码根据身份证查询")
    Map<String, Object> getRyBqBySfzh(String sfzh);


    @ApiOperation("查询各区县盘查工作")
    Map<String, Object> getGqxpc(RyClTjQuery dto);

    @ApiOperation("根据人像查询人员列表信息")
    List<RyZpSearchVo> getRyListByBase64(String base64Str);


    @ApiOperation("大屏被盘查人员统计")
    Map<String, Integer> bpcryTj();

    @ApiOperation("巡防战果统计")
    IPage<Map<String, Object>> xfzgtj(HcTjQuery query);

    @ApiOperation("巡防战果统计")
    Map<String, Object> xfzgtjAll(HcTjQuery query);

    @ApiOperation("实际盘查人数")
    int getSjpcr(String ssbmdm, String time);

    @ApiOperation("方正战果统计")
    Map<String, List<Map<String, Object>>> getZgtj(HcTjQuery query);
}
