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;

/**
 * ibusiness安全风险控制服务
 *
 * @author yx
 * @date 2023/07/31
 */
public interface IBusinessSecurityRiskControlService {

    /**
     * 海上固定式平台人员定员和救生装备情况
     *
     * @param baseParam 基本参数
     * @return {@link MessageInfo}<{@link SeaPlatformPersonAndEquipmentVO}>
     */
    MessageInfo<SeaPlatformPersonAndEquipmentVO> querySeaPlatformPersonAndEquipment(BaseParam baseParam);

    /**
     * 海上固定式平台人员定员和救生装备情况-列表
     *
     * @param param 参数
     * @param page  页面
     * @return {@link MessageInfo}<{@link IPage}<{@link SeaPlatformEquipmentInfoVO}>>
     */
    MessageInfo<IPage<SeaPlatformEquipmentInfoVO>> querySeaPlatformEquipmentInfo(Page page,BaseParam param);


    /**
     * 高风险作业类型统计
     *
     * @param page  页面
     * @param param 参数
     * @return {@link MessageInfo}<{@link HighRiskModelVO}>
     */
    MessageInfo<HighRiskModelVO> queryHighRiskModel(Page page,BaseParam param);


    /**
     * 高风险作业区域统计
     *
     * @param page  页面
     * @param param 参数
     * @return {@link MessageInfo}<{@link IPage}<{@link HighRiskAreaVO}>>
     */
    MessageInfo<IPage<HighRiskAreaVO>> queryHighRiskArea(Page page,BaseParam param);


    /**
     * 高风险作业-承包商统计
     *
     * @param page  页面
     * @param param 参数
     * @return {@link MessageInfo}<{@link ContractorListVO}>
     */
    MessageInfo<ContractorListVO> queryContractorList(Page page,BaseParam param);

    /**
     * 大屏-高风险作业
     *
     * @param page  页面
     * @param param 参数
     * @return {@link MessageInfo}<{@link HighRiskModelVO}>
     */
    MessageInfo<HighRiskModelVO> queryScreenHighRiskModel(Page page,BaseParam param);


    /**
     * 海上平台设施视频监控
     *
     * @param page  页面
     * @param param 参数
     * @return {@link MessageInfo}<{@link IPage}<{@link SeaPlatformVideoMonitorVO}>>
     */
    MessageInfo<IPage<SeaPlatformVideoMonitorVO>> querySeaPlatformVideoMonitor(Page page,BaseParam param);

    /**
     * 安全风险管控情况
     *
     * @param page  页面
     * @param param 参数
     * @return {@link MessageInfo}<{@link RiskControlSituationVO}>
     */
    MessageInfo<RiskControlSituationVO> queryRiskControlSituation(Page page, BaseParam param);


    /**
     * 安全风险管控-重大事项报告
     *
     * @param page  页面
     * @param param 参数
     * @return {@link MessageInfo}<{@link IPage}<{@link ScreenDisplayMattersVO}>>
     */
    MessageInfo<IPage<ScreenDisplayMattersVO>> queryMattersManagers(Page page,BaseParam param);

    /**
     * 查询应急预案列表
     *
     * @param page  第页
     * @param param param
     * @return {@link MessageInfo}<{@link IPage}<{@link EmergencyPlanVO}>>
     */
    MessageInfo<IPage<EmergencyPlanVO>> queryEmergencyPlanList(Page page, EmergencyPlanParam param);

    MessageInfo<IPage<ChangeInfoVO>> queryChangeSituationList(Page page, ChangeSituationParam param);

    MessageInfo<IPage<RecordManageVO>> queryRecordManageList(Page page, FilingSituationParam param);

    MessageInfo<IPage<GiveupMineReportVO>> queryGiveupMineReportList(Page page, ReportInformationParam param);

    /**
     * 高风险作业统计图
     *
     * @param param 参数
     * @return {@link MessageInfo }<{@link HighRiskCountStatisticsVO }>
     */
    MessageInfo<HighRiskCountStatisticsVO> queryHighRiskCountStatistics(HighRiskCountParam param);

    /**
     * 高风险平台按照平台统计
     *
     * @param param 参数
     * @return {@link MessageInfo }<{@link List }<{@link HighRiskCountByPlatformVO }>>
     */
    MessageInfo<HighRiskCountStatisticsByPlatformVO> highRiskWorkTypeByPlatformBar(HighRiskCountParam param);

    /**
     * 查询高风险操作趋势
     *
     * @param param 参数
     * @return {@link MessageInfo }<{@link List }<{@link HighRiskOperationsTrendVO }>>
     */
    MessageInfo<List<HighRiskOperationsTrendVO>> queryHighRiskOperationsTrend(HighRiskOperationsTrendParam param);

    /**
     * 查询高风险作业详情
     *
     * @param page  第页
     * @param param 参数
     * @return {@link MessageInfo }<{@link IPage }<{@link HighRiskOperationsDetailVO }>>
     */
    MessageInfo<IPage<HighRiskOperationsDetailVO>> queryHighRiskOperationsDetail(Page page, WorkDetailParam param);
}
