package com.ygtx.gxt.mapper;

import com.ygtx.gxt.domain.GxtRepairOrder;
import com.ygtx.gxt.domain.GxtWorkOrder;
import com.ygtx.gxt.domain.OrderScoreInfo;
import org.apache.ibatis.annotations.Param;

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

/**
 * 工单评分Mapper接口
 * 
 * @author lingming
 * @date 2025-11-12
 */
public interface GxtOrderScoreMapper {

    /**
     * 查询合并的工单列表（维修工单和维保工单）
     * 
     * @param repairOrder 维修工单查询条件
     * @param workOrder 维保工单查询条件
     * @return 合并的工单列表
     */
    public List<OrderScoreInfo> selectUnionOrderList(@Param("repairOrder") GxtRepairOrder repairOrder,
                                                     @Param("workOrder") GxtWorkOrder workOrder, @Param("keyword") String keyword);

    /**
     * 查询移动端合并的工单列表（维修工单和维保工单）
     *
     * @param repairOrder 维修工单查询条件
     * @param workOrder 维保工单查询条件
     * @param keyword 关键词（工单编码或风机编号）
     * @return 合并的工单列表
     */
    public List<OrderScoreInfo> selectMobileUnionOrderList(@Param("repairOrder") GxtRepairOrder repairOrder,
                                                     @Param("workOrder") GxtWorkOrder workOrder, @Param("keyword") String keyword);
                                                     
    /**
     * 查询工单评分统计信息
     *
     * @param repairOrder 维修工单查询条件
     * @param workOrder 维保工单查询条件
     * @param month 月份筛选条件
     * @return 统计信息
     */
    public Map<String, Object> selectOrderScoreStatistics(@Param("repairOrder") GxtRepairOrder repairOrder,
                                                          @Param("workOrder") GxtWorkOrder workOrder,
                                                          @Param("month") String month);

    /**
     * 导出查询合并的工单列表（维修工单和维保工单）
     *
     * @param repairOrder 维修工单查询条件
     * @param workOrder 维保工单查询条件
     * @return 合并的工单列表
     */
    public List<OrderScoreInfo> selectUnionExportOrderList(@Param("repairOrder") GxtRepairOrder repairOrder,
                                                     @Param("workOrder") GxtWorkOrder workOrder);
}