package com.sundot.airport.check.mapper;

import com.sundot.airport.check.domain.CheckLargeScreenCommonDto;
import com.sundot.airport.check.domain.CheckLargeScreenCorrectionAssistDto;
import com.sundot.airport.check.domain.CheckLargeScreenCorrectionDto;
import com.sundot.airport.check.domain.CheckLargeScreenCorrectionPortraitSqlDto;
import com.sundot.airport.check.domain.CheckLargeScreenCorrectionQueryParamDto;
import com.sundot.airport.check.domain.CheckLargeScreenHomePageCheckCorrectionSqlDto;
import com.sundot.airport.check.domain.CheckLargeScreenHomePageCheckRecordSqlDto;
import com.sundot.airport.check.domain.CheckLargeScreenInspectionExecuteDto;
import com.sundot.airport.check.domain.CheckLargeScreenInspectionExecuteItemDto;
import com.sundot.airport.check.domain.CheckLargeScreenInspectionExecuteUserDto;
import com.sundot.airport.check.domain.CheckLargeScreenPlanOverviewDto;
import com.sundot.airport.check.domain.CheckLargeScreenPlanQueryParamDto;
import com.sundot.airport.check.domain.CheckLargeScreenProblemDto;
import com.sundot.airport.check.domain.CheckLargeScreenProblemQueryParamDto;
import com.sundot.airport.check.domain.CheckLargeScreenProblemTrendDto;
import com.sundot.airport.check.domain.CheckTask;
import com.sundot.airport.common.core.domain.BaseLargeScreenQueryParamDto;
import com.sundot.airport.common.core.domain.SysCheckAnalysisReportCheckProblemCorrectionItemDto;
import com.sundot.airport.common.core.domain.SysCheckAnalysisReportCheckProblemDistributionItemDto;
import com.sundot.airport.common.core.domain.SysUsageReportCheckTaskDto;
import com.sundot.airport.common.dto.BaseCommonDto;

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

/**
 * 巡检大屏Mapper接口
 *
 * @author ruoyi
 * @date 2025-09-07
 */
public interface CheckLargeScreenMapper {

    /**
     * 巡检计划-计划安排总览
     *
     * @param dto 大屏查询参数
     * @return 计划安排总览
     */
    public List<CheckLargeScreenPlanOverviewDto> planOverview(CheckLargeScreenPlanQueryParamDto dto);

    /**
     * 巡检计划-日常任务检查指标累积分布
     *
     * @param dto 大屏查询参数
     * @return 日常任务检查指标累积分布
     */
    public List<CheckLargeScreenCommonDto> planDistribution(CheckLargeScreenPlanQueryParamDto dto);

    /**
     * 巡检计划-任务明细统计表
     *
     * @param dto 大屏查询参数
     * @return 任务明细统计表
     */
    public List<CheckTask> planStatistics(CheckLargeScreenPlanQueryParamDto dto);

    /**
     * 问题发现-总体问题分布
     *
     * @param dto 大屏查询参数
     * @return 总体问题分布
     */
    public List<CheckLargeScreenProblemDto> problemDistribution(CheckLargeScreenProblemQueryParamDto dto);

    /**
     * 问题发现-问题分布对比-大队
     *
     * @param dto 大屏查询参数
     * @return 问题分布对比
     */
    public List<CheckLargeScreenProblemDto> problemComparisonBrigade(CheckLargeScreenProblemQueryParamDto dto);

    /**
     * 问题发现-问题分布对比-科室
     *
     * @param dto 大屏查询参数
     * @return 问题分布对比
     */
    public List<CheckLargeScreenProblemDto> problemComparison(CheckLargeScreenProblemQueryParamDto dto);

    /**
     * 问题发现-通道面貌-问题对比-大队
     *
     * @param dto 大屏查询参数
     * @return 通道面貌-问题对比
     */
    public List<CheckLargeScreenProblemDto> problemComparisonTwoBrigade(CheckLargeScreenProblemQueryParamDto dto);

    /**
     * 问题发现-通道面貌-问题对比-科室
     *
     * @param dto 大屏查询参数
     * @return 通道面貌-问题对比
     */
    public List<CheckLargeScreenProblemDto> problemComparisonTwo(CheckLargeScreenProblemQueryParamDto dto);

    /**
     * 问题发现-问题分布对比-班组
     *
     * @param dto 大屏查询参数
     * @return 问题分布对比
     */
    public List<CheckLargeScreenProblemDto> problemComparisonBanZu(CheckLargeScreenProblemQueryParamDto dto);

    /**
     * 问题发现-通道面貌-问题对比-班组
     *
     * @param dto 大屏查询参数
     * @return 通道面貌-问题对比
     */
    public List<CheckLargeScreenProblemDto> problemComparisonTwoBanZu(CheckLargeScreenProblemQueryParamDto dto);

    /**
     * 问题发现-通道面貌-问题趋势-大队
     *
     * @param dto 大屏查询参数
     * @return 通道面貌-问题趋势
     */
    public List<CheckLargeScreenProblemTrendDto> problemTrendBrigade(CheckLargeScreenProblemQueryParamDto dto);

    /**
     * 问题发现-通道面貌-问题趋势-科室
     *
     * @param dto 大屏查询参数
     * @return 通道面貌-问题趋势
     */
    public List<CheckLargeScreenProblemTrendDto> problemTrend(CheckLargeScreenProblemQueryParamDto dto);

    /**
     * 问题发现-通道面貌-问题趋势-班组
     *
     * @param dto 大屏查询参数
     * @return 通道面貌-问题趋势
     */
    public List<CheckLargeScreenProblemTrendDto> problemTrendBanZu(CheckLargeScreenProblemQueryParamDto dto);

    /**
     * 问题整改
     *
     * @param dto 大屏查询参数
     * @return 问题整改
     */
    public List<CheckLargeScreenCorrectionAssistDto> correction(CheckLargeScreenCorrectionQueryParamDto dto);

    /**
     * 问题整改-整改状态分布-大队对比
     *
     * @param dto 大屏查询参数
     * @return 整改状态分布-科级对比
     */
    public List<CheckLargeScreenCorrectionDto> correctionDistributionBrigade(CheckLargeScreenCorrectionQueryParamDto dto);

    /**
     * 问题整改-整改状态分布-科级对比
     *
     * @param dto 大屏查询参数
     * @return 整改状态分布-科级对比
     */
    public List<CheckLargeScreenCorrectionDto> correctionDistribution(CheckLargeScreenCorrectionQueryParamDto dto);

    /**
     * 问题整改-整改状态分布-班组对比
     *
     * @param dto 大屏查询参数
     * @return 整改状态分布-科级对比
     */
    public List<CheckLargeScreenCorrectionDto> correctionDistributionBanZu(CheckLargeScreenCorrectionQueryParamDto dto);

    /**
     * 巡检执行
     *
     * @return 巡检执行
     */
    public List<CheckLargeScreenInspectionExecuteDto> inspectionExecute();

    /**
     * 巡检执行明细列表
     *
     * @param list 大屏查询参数
     * @return 巡检执行明细列表
     */
    public List<CheckLargeScreenInspectionExecuteItemDto> inspectionExecuteItem(List<String> list);

    /**
     * 巡检执行-用户信息
     *
     * @param list 大屏查询参数
     * @return 用户信息
     */
    public List<CheckLargeScreenInspectionExecuteUserDto> inspectionExecuteUser(List<Long> list);

    /**
     * 问题发现大队汇总
     *
     * @param dto 大屏查询参数
     * @return 问题发现科室汇总
     */
    public List<CheckLargeScreenProblemDto> getProblemBrigade(CheckLargeScreenProblemQueryParamDto dto);

    /**
     * 问题发现科室汇总
     *
     * @param dto 大屏查询参数
     * @return 问题发现科室汇总
     */
    public List<CheckLargeScreenProblemDto> getProblemDepartment(CheckLargeScreenProblemQueryParamDto dto);

    /**
     * 问题发现班组汇总
     *
     * @param dto 大屏查询参数
     * @return 问题发现班组汇总
     */
    public List<CheckLargeScreenProblemDto> getProblemTeam(CheckLargeScreenProblemQueryParamDto dto);

    /**
     * 巡检画像
     *
     * @param dto 大屏查询参数
     * @return 巡检画像
     */
    public List<CheckLargeScreenCorrectionPortraitSqlDto> portrait(CheckLargeScreenCorrectionQueryParamDto dto);

    /**
     * 工作画像-管理推动-检查单
     *
     * @param dto 大屏查询参数
     * @return 工作画像-管理推动-检查单
     */
    public List<CheckLargeScreenPlanOverviewDto> managementPromotionRecord(CheckLargeScreenCorrectionQueryParamDto dto);

    /**
     * 工作画像-管理推动-整改单
     *
     * @param dto 大屏查询参数
     * @return 工作画像-管理推动-整改单
     */
    public CheckLargeScreenCorrectionDto managementPromotionCorrection(CheckLargeScreenCorrectionQueryParamDto dto);

    /**
     * 首页-巡检单
     *
     * @param dto 查询参数
     * @return 首页-巡检单
     */
    public List<CheckLargeScreenHomePageCheckRecordSqlDto> homePageCheckRecord(BaseLargeScreenQueryParamDto dto);

    /**
     * 首页-整改单
     *
     * @param dto 查询参数
     * @return 首页-整改单
     */
    public List<CheckLargeScreenHomePageCheckCorrectionSqlDto> homePageCheckCorrection(BaseLargeScreenQueryParamDto dto);

    /**
     * 首页-巡检-今日巡检问题数
     *
     * @param dto 首页查询参数
     * @return 首页-巡检-今日巡检问题数
     */
    public Integer checkCorrectionCount(BaseLargeScreenQueryParamDto dto);

    /**
     * 问题发现总数
     *
     * @param dto 大屏查询参数
     * @return 问题发现总数
     */
    public BigDecimal problemDistributionTotal(BaseLargeScreenQueryParamDto dto);

    /**
     * 问题分布统计
     *
     * @param dto 大屏查询参数
     * @return 问题分布统计
     */
    public List<SysCheckAnalysisReportCheckProblemDistributionItemDto> problemDistributionStatistics(BaseLargeScreenQueryParamDto dto);

    /**
     * 使用报表-运行情况-巡检模块
     *
     * @param dto 大屏查询参数
     * @return 检查级别与分类
     */
    public List<SysUsageReportCheckTaskDto> getUsageReportCheckTaskDto(BaseLargeScreenQueryParamDto dto);

    /**
     * 使用报表-运行情况-巡检模块
     *
     * @param list 任务单编码列表
     * @return 检查单数量
     */
    public Integer getUsageReportCheckRecordCount(List<String> list);

    /**
     * 使用报表-运行情况-巡检模块
     *
     * @param list 任务单编码列表
     * @return 分类列表
     */
    public List<BaseCommonDto> getUsageReportCheckCorrectionDto(List<String> list);

}
