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;

/**
 * 工单工时Mapper接口
 * 
 * @author ouyj
 * @date 2025-11-12
 */
public interface GxtOrderHourMapper 
{
    /**
     * 查询合并的工单列表（维修工单和维保工单）
     * 
     * @param repairOrder 维修工单查询条件
     * @param workOrder 维保工单查询条件
     * @param orderType 工单类型筛选条件
     * @param keyword 搜索关键字
     * @return 合并的工单列表
     */
    public List<OrderScoreInfo> selectUnionOrderList(@Param("repairOrder") GxtRepairOrder repairOrder, 
                                                     @Param("workOrder") GxtWorkOrder workOrder, 
                                                     @Param("orderType") String orderType,
                                                     @Param("keyword") String keyword);

    /**
     * 查询维修工单挂起时长记录
     * 
     * @param orderId 工单ID
     * @return 挂起时长记录数组 [开工前挂起秒数, 作业中挂起秒数, 夜间自动挂起秒数]
     */
    public int[] selectRepairOrderSuspensionTime(@Param("orderId") Long orderId);
    
    /**
     * 查询维保工单挂起时长记录
     * 
     * @param orderId 工单ID
     * @return 挂起时长记录数组 [开工前挂起秒数, 作业中挂起秒数, 夜间自动挂起秒数]
     */
    public int[] selectWorkOrderSuspensionTime(@Param("orderId") Long orderId);

}