package com.sundot.airport.item.mapper;

import com.sundot.airport.common.core.domain.BaseLargeScreenQueryParamDto;
import com.sundot.airport.item.domain.*;

import java.math.BigDecimal;
import java.util.List;

/**
 * 查获大屏Mapper接口
 *
 * @author ruoyi
 * @date 2025-07-08
 */
public interface ItemLargeScreenMapper {

    /**
     * 查获总数
     *
     * @param dto 大屏查询参数
     * @return 查获总数
     */
    public BigDecimal getTotalSum(BaseLargeScreenQueryParamDto dto);

    /**
     * 移交公安情况
     *
     * @param dto 大屏查询参数
     * @return 移交公安情况
     */
    public List<ItemLargeScreenInfoDto> police(BaseLargeScreenQueryParamDto dto);

    /**
     * 故意隐匿情况
     *
     * @param dto 大屏查询参数
     * @return 故意隐匿情况
     */
    public List<ItemLargeScreenInfoDto> conceal(BaseLargeScreenQueryParamDto dto);

    /**
     * 查获类别分布
     *
     * @param dto 大屏查询参数
     * @return 查获类别分布
     */
    public List<ItemLargeScreenCommonDto> category(BaseLargeScreenQueryParamDto dto);

    /**
     * 查获岗位分布
     *
     * @param dto 大屏查询参数
     * @return 查获岗位分布
     */
    public List<ItemLargeScreenCommonDto> post(BaseLargeScreenQueryParamDto dto);

    /**
     * 查获总数量+移交公安数量+故意隐匿数量
     *
     * @param dto 大屏查询参数
     * @return 查获总数量+移交公安数量+故意隐匿数量
     */
    public ItemLargeScreenTotalSomeDto getTotalSome(BaseLargeScreenQueryParamDto dto);

    /**
     * 查获排名-按大队
     *
     * @param dto 大屏查询参数
     * @return 查获排名-按大队
     */
    public List<ItemLargeScreenCommonDto> rankByBrigade(BaseLargeScreenQueryParamDto dto);

    /**
     * 查获排名-按科室
     *
     * @param dto 大屏查询参数
     * @return 查获排名-按科室
     */
    public List<ItemLargeScreenCommonDto> rankByDepartment(BaseLargeScreenQueryParamDto dto);

    /**
     * 查获排名-按班组
     *
     * @param dto 大屏查询参数
     * @return 查获排名-按科室
     */
    public List<ItemLargeScreenCommonDto> rankByTeam(BaseLargeScreenQueryParamDto dto);

    /**
     * 查获排名-按个人
     *
     * @param dto 大屏查询参数
     * @return 查获排名-按科室
     */
    public List<ItemLargeScreenCommonDto> rankByIndividual(BaseLargeScreenQueryParamDto dto);

    /**
     * 查获时段分布
     *
     * @param dto 大屏查询参数
     * @return 查获时段分布
     */
    public List<ItemLargeScreenTimeSpanDto> timeSpan(BaseLargeScreenQueryParamDto dto);

    /**
     * 查获位置分布
     *
     * @param dto 大屏查询参数
     * @return 查获位置分布
     */
    public List<ItemLargeScreenPositionDto> position(BaseLargeScreenQueryParamDto dto);

    /**
     * 查获通道分布
     *
     * @param dto 大屏查询参数
     * @return 查获通道分布
     */
    public List<ItemLargeScreenChannelDto> channel(BaseLargeScreenQueryParamDto dto);

    /**
     * app端 查获位置分布
     *
     * @param dto
     * @return
     */
    List<ItemLargeScreenPositionAppDto> appPosition(BaseLargeScreenQueryParamDto dto);

    /**
     * 按天统计查获趋势数据
     *
     * @param dto 查询参数
     * @return 按天统计的查获数据
     */
    List<ItemLargeScreenDailyTrendDto> dailyTrend(BaseLargeScreenQueryParamDto dto);
}