package com.aucma.report.mapper;

import com.aucma.report.domain.vo.*;
import org.apache.ibatis.annotations.Mapper;

import java.util.HashMap;
import java.util.List;

/**
 * Board5看板数据Mapper接口
 * 设备保养与故障分析看板
 *
 * @author YinQ
 */
@Mapper
public interface Board5Mapper {

    /**
     * 查询工单统计（总数、已完成、停机）
     * 数据来源：BASE_ORDERINFO
     */
    HashMap<String, Object> selectOrderWorkStatistics();

    /**
     * 查询维修时间统计（平均响应时间、平均维修时间）
     * 数据来源：DMS_BILLS_FAULT_INSTANCE
     */
    HashMap<String, Object> selectRepairTimeStatistics();

    /**
     * 查询保养执行情况统计
     * 数据来源：DMS_PLAN_MAINT
     */
    HashMap<String, Object> selectMaintStatistics();

    /**
     * 查询巡检执行情况统计
     * 数据来源：DMS_PLAN_INSPECT, DMS_BILLS_INSPECT_INSTANCE
     */
    HashMap<String, Object> selectInspectStatistics();

    /**
     * 查询设备状态分布
     * 数据来源：BASE_DEVICELEDGER
     */
    HashMap<String, Object> selectDeviceStatusDistribution();

    /**
     * 查询故障来源分布
     * 数据来源：DMS_BILLS_FAULT_INSTANCE
     */
    HashMap<String, Object> selectFaultSourceDistribution();

    /**
     * 查询故障数量曲线（近30天每日告警数量）
     * 数据来源：RECORD_ALARM_DEVICE
     */
    List<Board5FaultTrendVo> selectFaultTrendList();

    /**
     * 查询产量机台TOP5
     * 数据来源：BASE_DEVICE_PARAM_VAL + BASE_DEVICELEDGER
     */
    List<Board5ProductionTopVo> selectProductionTop5();

    /**
     * 查询最大产量（用于计算百分比）
     * 数据来源：BASE_DEVICE_PARAM_VAL
     */
    Long selectMaxProduction();
}
