package com.sundot.airport.check.service;

import com.sundot.airport.check.domain.CheckLargeScreenCommonDto;
import com.sundot.airport.check.domain.CheckLargeScreenCorrectionDto;
import com.sundot.airport.check.domain.CheckLargeScreenCorrectionPortraitDto;
import com.sundot.airport.check.domain.CheckLargeScreenCorrectionQueryParamDto;
import com.sundot.airport.check.domain.CheckLargeScreenHomePageDto;
import com.sundot.airport.check.domain.CheckLargeScreenInspectionExecuteDto;
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.CheckLargeScreenHomePageItemDto;
import com.sundot.airport.common.core.domain.CheckLargeScreenHomePageRankingDto;
import com.sundot.airport.common.core.domain.SysAnalysisReportParamDto;
import com.sundot.airport.common.core.domain.SysCheckAnalysisReportCheckProblemDistributionDto;
import com.sundot.airport.common.core.domain.SysCheckAnalysisReportDto;
import com.sundot.airport.common.core.domain.SysHomeReportDetailDto;
import com.sundot.airport.common.core.domain.SysLargeScreenDetailDto;
import com.sundot.airport.common.core.domain.SysUsageReportDto;

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

/**
 * 巡检大屏Service接口
 *
 * @author ruoyi
 * @date 2025-09-07
 */
public interface ICheckLargeScreenService {
    /**
     * 巡检计划-计划安排总览
     *
     * @param dto 大屏查询参数
     * @return 计划安排总览
     */
    public List<CheckLargeScreenPlanOverviewDto> planOverview(CheckLargeScreenPlanQueryParamDto dto, String source);

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

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

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

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

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

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

    /**
     * 问题整改-整改状态总计
     *
     * @param dto 大屏查询参数
     * @return 整改状态总计
     */
    public CheckLargeScreenCorrectionDto correction(CheckLargeScreenCorrectionQueryParamDto dto, String source);

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

    /**
     * 巡检执行
     *
     * @param dto 大屏查询参数
     * @return 巡检执行
     */
    public List<CheckLargeScreenInspectionExecuteDto> inspectionExecute(BaseLargeScreenQueryParamDto dto);

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

    /**
     * 能力画像-总体概览-巡检问题总次数
     *
     * @param dto 大屏查询参数
     * @return 能力画像-总体概览-巡检问题总次数
     */
    public BigDecimal population(BaseLargeScreenQueryParamDto dto);

    /**
     * 能力画像-明细
     *
     * @param dto 大屏查询参数
     * @return 能力画像-明细
     */
    public List<SysLargeScreenDetailDto> detail(BaseLargeScreenQueryParamDto dto);

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

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

    /**
     * 工作画像-工作产出-巡检问题统计图
     *
     * @param dto 大屏查询参数
     * @return 工作画像-工作产出-巡检问题统计图
     */
    public List<CheckLargeScreenCommonDto> workOutputCheck(CheckLargeScreenCorrectionQueryParamDto dto);

    /**
     * 首页
     *
     * @param dto 首页查询参数
     * @return 首页
     */
    public CheckLargeScreenHomePageDto homePage(BaseLargeScreenQueryParamDto dto, String source);

    /**
     * 首页-巡检-巡检合格率
     *
     * @param dto 首页查询参数
     * @return 首页-巡检-巡检合格率
     */
    public BigDecimal checkPassRate(BaseLargeScreenQueryParamDto dto);

    /**
     * 巡检合格率全量数据
     *
     * @param dto 查询参数
     * @return 巡检合格率全量数据
     */
    public List<CheckLargeScreenHomePageItemDto> getCheckLargeScreenHomePageItemDtoList(BaseLargeScreenQueryParamDto dto);

    /**
     * 巡检合格率全量数据-为空时默认合格率
     *
     * @param dto 查询参数
     * @return 巡检合格率全量数据
     */
    public List<CheckLargeScreenHomePageItemDto> getCheckLargeScreenHomePageItemDtoListAndNull(BaseLargeScreenQueryParamDto dto);

    /**
     * 首页-巡检-巡检合格率排名
     *
     * @param dto 首页查询参数
     * @return 首页-巡检-巡检合格率排名
     */
    public CheckLargeScreenHomePageRankingDto checkRanking(BaseLargeScreenQueryParamDto dto);

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

    /**
     * 首页报表-巡检合格率数据
     *
     * @param dto 首页查询参数
     * @return 首页报表-巡检合格率数据
     */
    public SysHomeReportDetailDto checkData(BaseLargeScreenQueryParamDto dto);

    /**
     * 质控分析报告-质控活动
     *
     * @param paramDto 质控分析报告-质控活动查询参数
     * @return 质控分析报告-质控活动
     */
    public SysCheckAnalysisReportDto checkAnalysisReport(SysAnalysisReportParamDto paramDto);

    /**
     * 质控分析报告-质控活动-问题分布统计
     *
     * @param paramDto 查询参数
     * @return 质控分析报告-质控活动-问题分布统计
     */
    public SysCheckAnalysisReportCheckProblemDistributionDto getCheckProblemDistribution(BaseLargeScreenQueryParamDto paramDto);

    /**
     * 使用报表-运行情况-巡检模块
     *
     * @param paramDto 查询参数
     * @return 使用报表-运行情况-巡检模块
     */
    public SysUsageReportDto.CheckModule getCheckModule(BaseLargeScreenQueryParamDto paramDto);
}
