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.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.SysLargeScreenDetailDto;

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);
}
