package com.ygtx.gxt.service;

import com.ygtx.gxt.domain.GxtRepairOrder;
import com.ygtx.gxt.domain.GxtWorkOrder;
import com.ygtx.gxt.domain.OrderScoreInfo;

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

/**
 * 我的工单Service接口
 * 
 * @author ouyj
 * @date 2025-11-27
 */
public interface IGxtOrderMineService {

    /**
     * 查询我创建的工单列表（合并维修工单和维保工单）
     * 
     * @param repairOrder 维修工单查询条件
     * @param workOrder 维保工单查询条件
     * @return 合并的工单列表
     */
    public List<OrderScoreInfo> selectUnionOrderListMyCreate(GxtRepairOrder repairOrder, GxtWorkOrder workOrder);

    /**
     * 查询我处理的工单列表（合并维修工单和维保工单）
     *
     * @param repairOrder 维修工单查询条件
     * @param workOrder 维保工单查询条件
     * @return 合并的工单列表
     */
    public List<OrderScoreInfo> selectUnionOrderListMyDone(GxtRepairOrder repairOrder, GxtWorkOrder workOrder);

    /**
     * 查询我相关的工单列表（合并维修工单和维保工单）
     *
     * @param repairOrder 维修工单查询条件
     * @param workOrder 维保工单查询条件
     * @return 合并的工单列表
     */
    public List<OrderScoreInfo> selectUnionOrderListMyRelate(GxtRepairOrder repairOrder, GxtWorkOrder workOrder);

    /**
     * 查询我的待办工单列表（合并维修工单和维保工单）
     *
     * @param repairOrder 维修工单查询条件
     * @param workOrder 维保工单查询条件
     * @return 合并的工单列表
     */
    public List<OrderScoreInfo> selectUnionOrderListMyTodo(GxtRepairOrder repairOrder, GxtWorkOrder workOrder, Long userId);

    /**
     * 查询我的待评分工单列表（合并维修工单和维保工单）
     *
     * @param repairOrder 维修工单查询条件
     * @param workOrder 维保工单查询条件
     * @return 合并的工单列表
     */
    List<OrderScoreInfo> selectUnionOrderListMyRate(GxtRepairOrder repairOrder, GxtWorkOrder workOrder);
}