package com.ygtx.gxt.mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 工单统计Mapper接口
 *
 * @author ygtx
 * @date 2025-11-03
 */
@Mapper
public interface GxtOrderStatisticsMapper {

    /**
     * 分组统计工单数据
     *
     * @param params 查询参数
     * @return 统计结果
     */
    List<Map<String, Object>> selectGroupStatistics(@Param("params") Map<String, Object> params);

    /**
     * 获取所有维保中心
     *
     * @return 维保中心列表
     */
    List<String> selectAllGxtCenters();

    /**
     * 获取所有场站
     *
     * @return 场站列表
     */
    List<String> selectAllStations();

    /**
     * 获取所有设备品牌
     *
     * @return 品牌列表
     */
    List<String> selectAllBrands();

    /**
     * 获取所有设备型号
     *
     * @return 型号列表
     */
    List<String> selectAllModels();

    /**
     * 获取所有维修类型
     *
     * @return 维修类型列表
     */
    List<String> selectAllMaintenanceTypes();

    /**
     * 分组统计维修工单数据（按maintenanceType统计分数）
     *
     * @param params 查询参数
     * @return 统计结果
     */
    List<Map<String, Object>> selectRepairOrderStatistics(@Param("params") Map<String, Object> params);

    /**
     * 分组统计维保运行时间分数
     *
     * @param params 查询参数
     * @return 统计结果
     */
    List<Map<String, Object>> selectRuntimeScoreStatistics(@Param("params") Map<String, Object> params);
}
