package com.lutao.cloud.oil.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lutao.cloud.common.core.util.MessageInfo;
import com.lutao.cloud.oil.pojo.param.*;
import com.lutao.cloud.oil.pojo.vo.*;

import java.util.List;

/**
 * 安全风险评估服务
 *
 * @author yx
 * @date 2023/07/26
 */
public interface IBusinessSecurityRiskAssessmentService {


    /**
     * 安全风险评估情况
     *
     * @param param 参数
     * @return {@link MessageInfo}<{@link List}<{@link SecurityRiskAssessmentVO}>>
     */
    MessageInfo<IPage<SecurityRiskAssessmentSummaryPageVO>> queryRiskAssessmentStatus(SecurityRiskAssessmentParam param, Page page);

    /**
     * 海洋平台（设施）总体情况
     *
     * @param param 参数
     * @param page  页面
     * @return {@link MessageInfo}<{@link IPage}<{@link SeaPlatformFacilityVO}>>
     */
    MessageInfo<IPage<SeaPlatformFacilityVO>> querySeaPlatformFacility(SelectSeaPlatformFacilityParam param, Page page);

    /**
     * 查询隐患整改情况
     *
     * @param param 参数
     * @return {@link MessageInfo}<{@link HiddenDangerRectificationVO}>
     */
    MessageInfo<HiddenDangerRectificationVO> queryHiddenDangerRectifyStatus(BaseParam param);

    /**
     * 问题隐患整改情况
     *
     * @param page  页面
     * @param param 参数
     * @return {@link MessageInfo}
     */
    MessageInfo queryProblemRectifyStatus(Page page, ProblemRectifyStatusParam param);


    /**
     * 问题隐患-分布检查-问题隐患整改率
     *
     * @param baseParam 基本参数
     * @return {@link MessageInfo}<{@link ProblemRectifyProportionVO}>
     */
    MessageInfo<ProblemRectifyProportionVO> queryProblemRectifyProportion(BaseParam baseParam);

    MessageInfo<SecurityRiskAssessmentTimeDistributionVO> querySecurityRiskAssessmentTimeDistribution(BaseParam baseParam);

    /**
     * 评估进度--一台一策
     *
     * @param param 参数
     * @return {@link MessageInfo}<{@link AssessmentReportVO}>
     */
    MessageInfo<AssessmentReportVO> getAssessmentStrategy(BaseParam param);

    /**
     * 查询风险评估状态饼图
     *
     * @param param param
     * @return {@link MessageInfo}<{@link SecurityRiskAssessmentPieVO}>
     */
    MessageInfo<SecurityRiskAssessmentPieVO> queryRiskAssessmentStatusPie(SecurityRiskAssessmentParam param);

    /**
     * 查询屏幕显示视频图表
     *
     * @return {@link MessageInfo}<{@link ScreenDisplayVideoChartVO}>
     */
    MessageInfo<ScreenDisplayVideoChartVO> queryScreenDisplayVideoChart();
    MessageInfo<ScreenDisplayVideoChartVO> queryScreenDisplayVideoChartV2();

    /**
     * 问题隐患占比
     *
     * @param param param
     * @return {@link MessageInfo}<{@link HiddenDangerNumberVO}>
     */
    MessageInfo<HiddenDangerNumberVO> queryHiddenDangerRectifyProportion(BaseParam param);

    /**
     * 安全风险评估
     *
     * @param param param
     * @return {@link MessageInfo}<{@link SecurityRiskAssessmentBarVO}>
     */
    MessageInfo<SecurityRiskAssessmentBarVO> queryRiskAssessmentStatusBar(SecurityRiskAssessmentParam param);

    /**
     * 问题隐患整改情况-饼状图
     *
     * @param param param
     * @return {@link MessageInfo }<{@link ProblemCheckPieVO }>
     */
    MessageInfo<ProblemCheckPieVO> queryProblemCheckPie(ProblemCheckPieParam param);
}
