package com.cmvr.inspection.service;

import java.util.List;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cmvr.inspection.domain.InspectionTaskInstance;
import com.cmvr.inspection.domain.dto.InspectionTaskInstanceQuery;
import com.cmvr.inspection.domain.vo.InspectionTaskInstanceVo;
/**
 * 巡检任务执行实例Service接口
 * 
 * @author cmvr-iot
 * @since 2026-06-01
 */
public interface IInspectionTaskInstanceService extends IService<InspectionTaskInstance>
{

    /**
     * 查询巡检任务执行实例视图详情（包含关联信息）
     * 
     * @param id 巡检任务执行实例主键
     * @return 巡检任务执行实例视图
     */
    InspectionTaskInstanceVo selectInspectionTaskInstanceVoById(String id);

    /**
     * 查询巡检任务执行实例列表
     * 
     * @param inspectionTaskInstance 巡检任务执行实例
     * @return 巡检任务执行实例集合
     */
    List<InspectionTaskInstanceVo> selectInspectionTaskInstanceList(InspectionTaskInstanceQuery inspectionTaskInstance);

    /**
     * 新增巡检任务执行实例
     * 
     * @param inspectionTaskInstance 巡检任务执行实例
     * @return 结果
     */
    int insertInspectionTaskInstance(InspectionTaskInstance inspectionTaskInstance);

    /**
     * 修改巡检任务执行实例
     * 
     * @param inspectionTaskInstance 巡检任务执行实例
     * @return 结果
     */
    int updateInspectionTaskInstance(InspectionTaskInstance inspectionTaskInstance);

    /**
     * 批量删除巡检任务执行实例
     * 
     * @param ids 需要删除的巡检任务执行实例主键集合
     * @return 结果
     */
    int deleteInspectionTaskInstanceByIds(String[] ids);

    /**
     * 开始执行任务实例
     * 
     * @param id 任务实例主键
     * @return 结果
     */
    int startInstance(String id);

    /**
     * 暂停任务实例
     * 
     * @param id 任务实例主键
     * @return 结果
     */
    int pauseInstance(String id);

    /**
     * 终止任务实例
     * 
     * @param id 任务实例主键
     * @return 结果
     */
    int stopInstance(String id);

    /**
     * 恢复任务实例（从暂停恢复为执行中）
     * 
     * @param id 任务实例主键
     * @return 结果
     */
    int resumeInstance(String id);
}
