/*
 * Author: wangjian
 * 生成Service
 */
package com.tofly.xrtygis.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.tofly.xrtygis.entity.Warn;
import com.tofly.xrtygis.entity.dto.MeterReadingNumberDto;
import com.tofly.xrtygis.entity.dto.WarnInfoDto;
import com.tofly.xrtygis.entity.vo.*;

import java.util.Date;
import java.util.List;

/**
 *  报警实时信息表
 *
 * @author admin
 * @date Wed Mar 10 00:00:00 CST 2021
 */
public interface WarnService extends IService<Warn> {

    /**
     * 首页 - 获取实时报警分页信息
     * @param page
     * @param dto
     * @return
     */
    Page<WarnInfoVo> getHomeAlarmInformation(Page page, WarnInfoDto dto);

    /**
     * 首页- 营销模块 抄表数
     * @param dto
     * @return
     */
    MeterReadingNumberVo getMeterReadingMonthNum(MeterReadingNumberDto dto);

    /**
     * 首页 - 营销模块 工单数
     * @param dto
     * @return
     */
    RepairOrderNumberVo getRepairOrderNum(MeterReadingNumberDto dto);

    /**
     * 首页 - 营销模块 表务管理(不包括水表厂家对应水表数)
     * @return
     */
    WaterMeterNumberVo getWaterMeterNumberNum();

    /**
     * 首页-营销模块 对应厂家 入库总数
     * @return
     */
    List<WaterMeterPutStorageStatisticalVo> getWaterMeterPutStorageStatistical();

    /**
     * 首页-营销模块 对应厂家 安装总数
     * @return
     */
    List<WaterMeterInstallationStatisticalVo> getWaterMeterInstallationStatistical();

    /**
     * 首页-营销模块 对应厂家 出库总数
     * @return
     */
    List<WaterMeterOutboundStatisticalVo> getWaterMeterOutboundStatistical();

    /**
     * 首页-营销模块 对应厂家 报废总数(旧表移交算报废)
     * @return
     */
    List<WaterMeterOldTransferStatisticalVo> getWaterMeterOldTransferStatistical();

    /**
     * 首页-营销模块 对应厂家 故障拆检
     * @return
     */
    List<WaterMeteFaultTableStatisticalVo> getWaterMeteFaultTableStatistical();

    /**
     * 首页-营销模块 对应厂家 周检总数
     * @return
     */
    List<WaterMeteWeeklyCheckStatisticalVo> getWaterMeteWeeklyCheckStatistical();
    /**
     * 首页 - 营销模块 表务管理 水表厂家对应水表数
     * @return
     */
    List<WaterMeterEnterpriseVo> getWaterMeterEnterprise();

    /**
     * 首页 - 管线模块 巡检统计数据
     * @param dto
     * @return
     */
    List<InspectionTypeStatisticalVo> getNowMonthInspectionStatistical(MeterReadingNumberDto dto);

    /**
     * 首页 - 管线模块 巡检统计所有隐患/工地数据
     * @return
     */
    InspectionStatisticalVo getInspectionStatistical();
    /**
     * 首页 - 管线模块 当日巡检统计数据
     * @param dto
     * @return
     */
    List<InspectionTypeStatisticalVo> getNowMonthInspectionDayStatistical(MeterReadingNumberDto dto);

    /**
     * 首页 - 管线模块 巡检统计人数相关数据
     * @param dto
     * @return
     */
    InspectionUserStateStatisticalVo getInspectionUserStateNum(MeterReadingNumberDto dto);
    /**
     * 首页 - 管线模块抢维修工单统计
     * @param dto
     * @return
     */
    List<RepairOrderStatisticalVo> getRepairOrderStatistical(MeterReadingNumberDto dto);

    /**
     * 首页 - 管线模块 各片区管线分布统计数据
     * @return
     */
    List<GroupAreaPipeLengthStatisticalVo> getGroupAreaPipeLengthStatistical();

    /**
     * 首页-管网 管线材质统计情况
     * @return
     */
    List<PipeMaterialStatisticalVo> getPipeMaterialStatistical();

    /**
     * 首页-管网 管线管径统计情况
     * @return
     */
    List<PipeMaterialStatisticalVo> getPipeCaliberCensus();

    /**
     * 首页-营销 质量管理 按认证类型进行统计(年统计)
     * @param dto
     * @return
     */
    List<QualityCertificationStatisticalVo> getQualityCertificationStatistical(MeterReadingNumberDto dto);

    /**
     * 首页-营销 质量管理 合格数/合格率-超时数/超时率(年统计)
     * @param dto
     * @return
     */
    QualityQualifiedTimeoutStatisticalVo getQualityQualifiedTimeoutStatistical(MeterReadingNumberDto dto);

    /**
     * 首页-营销 质量管理 整改成效类别 分组 统计社会/经济效益 (年统计)
     * @param dto
     * @return
     */
    List<QualityBenefitStatisticalVo> getQualityBenefitStatistical(MeterReadingNumberDto dto);

    /**
     * 首页-热线管理系统 呼入呼损
     * @param dto
     * @return
     */
    HotlineInboundLossStatisticalVo getHotlineTrafficFlowStatistical(MeterReadingNumberDto dto);

    /**
     * 首页-热线管理系统 呼出呼损
     * @param dto
     * @return
     */
    HotlineOutLossStatisticalVo getHotlineOutLossStatistical(MeterReadingNumberDto dto);

    /**
     * 首页-热线管理系统 满意度
     * @return
     */
    HotlineSatisfactionStatisticalVo getHotlineSatisfactionStatistical(MeterReadingNumberDto dto);

    /**
     * 首页-生产运营 产销差 显示本年度累计值与预算值占比饼状图
     * @param year
     * @return
     */
    ProductionMarketingPoorStatisticalVo getProductionMarketingPoorStatistical(String year);

    /**
     * 首页-生产运营 产销差 显示本年度各月完成累计值/预算值情况
     * @param year
     * @return
     */
    List<ProductionMarketingPoorMonthVo> getProductionMarketingPoorMonth(String year);

    /**
     * 首页-生产运营 漏损率 显示本年度累计值与预算值占比饼状图
     * @param year
     * @return
     */
    LeakageStatisticalVo getLeakageStatistical(String year);

    /**
     * 首页-生产运营 漏损率 显示本年度各月完成累计值/预算情况
     * @param year
     * @return
     */
    List<LeakageMonthVo> getLeakageMonth(String year);

    /**
     * 首页-生产运营 供水量售水量 显示本年度各月完成累计值/预算情况
     * @param year
     * @return
     */
    FeedSaleStatisticalVo getFeedSaleStatistical(String year);

    /**
     * 首页-生产运营 供水量售水量 显示本年度供水量售水量累计值与预算值占比饼状图
     * @param year
     * @return
     */
    List<FeedSaleMonthVo> getFeedSaleMonth(String year);

    /**
     * 首页-生产运营 单位变动成本 显示本年度总单位变动成本累计值与预算值
     * @param year
     * @return
     */
    UnitVariableCostStatisticalVo getUnitVariableCostStatistical(String year);

    /**
     * 首页-生产运营 单位变动成本 本年度各月完成累计值/预算值情况
     * @param year
     * @return
     */
    List<UnitVariableCostMonthVo> getUnitVariableCostMonth(String year);

    /**
     * 首页-生产运营 一厂 取供水(统计一年数据按月分组)
     * @param year
     * @return
     */
    List<OneFactoryTakingWaterSupplyStatisticalVo> getOneFactoryTakingWaterSupplyStatistical(String year);

    /**
     * 首页-生产运营 二厂 取供水(统计一年数据按月分组)
     * @param year
     * @return
     */
    List<TwoFactoryTakingWaterSupplyStatisticalVo> getTwoFactoryTakingWaterSupplyStatistical(String year);

    /**
     * 首页-生产运营 一厂 水质出厂余氯(统计一天数据按数据收集时间分组)
     * @param startTime
     * @param endTime
     * @return
     */
    List<OneFactoryWaterQualityYLStatisticalVo> getOneFactoryWaterQualityYLStatistical(Date startTime,Date endTime);

    /**
     * 首页-生产运营 一厂 水质出厂浊度(统计一天数据按数据收集时间分组)
     * @param startTime
     * @param endTime
     * @return
     */
    List<OneFactoryWaterQualityZDStatisticalVo> getOneFactoryWaterQualityZDStatistical(Date startTime,Date endTime);

    /**
     * 首页-生产运营 二厂 水质出厂余氯(统计一天数据按数据收集时间分组)
     * @param startTime
     * @param endTime
     * @return
     */
    List<TwoFactoryWaterQualityYLStatisticalVo> getTwoFactoryWaterQualityYLStatistical(Date startTime,Date endTime);

    /**
     * 首页-生产运营 二厂 水质出厂浊度(统计一天数据按数据收集时间分组)
     * @param startTime
     * @param endTime
     * @return
     */
    List<TwoFactoryWaterQualityZDStatisticalVo> getTwoFactoryWaterQualityZDStatistical(Date startTime,Date endTime);

    /**
     * 首页-生产运营 一厂 水压(统计一天数据)
     * @param startTime
     * @param endTime
     * @return
     */
    List<OneFactoryWaterPressureStatisticalVo> getOneFactoryWaterPressureStatistical(Date startTime,Date endTime);

    /**
     * 首页-生产运营 二厂 水压(统计一天数据)
     * @param startTime
     * @param endTime
     * @return
     */
    List<TwoFactoryWaterPressureStatisticalVo> getTwoFactoryWaterPressureStatistical(Date startTime,Date endTime);
    /**
     * 首页-生产运营 一厂关键指标(最新数据)
     * @return
     */
    OneFactoryKeyIndexStatisticalVo getOneFactoryKeyIndexStatistical(Date startTime, Date endTime);

    /**
     * 首页-生产运营 二厂关键指标(最新数据)
     * @return
     */
    TwoFactoryKeyIndexStatisticalVo getTwoFactoryKeyIndexStatistical(Date startTime, Date endTime);

    /**
     * 首页-个人排行
     */
    IndividualRankingVo getIndividualRanking(Date startTime, Date endTime,String userName,Long userId);

    /**
     * 统计管龄预警
     * @return
     */
    Object getPipeReport();

}
