/*
* Copyright (c) 京北方信息技术股份有限公司 Corporation 2022 . All rights reserved.
*
*/
package net.northking.cctp.executePlan.db.service;

import net.northking.cctp.common.db.BasicService;
import net.northking.cctp.executePlan.db.entity.AtuPlanSceneCaseTask;

import java.util.List;
import java.util.Set;

/**
 * 计划场景用例节点任务表
 *
 * <p>文件内容由代码生成器产生，请不要手动修改！ <br>
 * createdate:  2022-12-12 16:22:13  <br>
 * @author:  maven-cctp-plugin  <br>
 * @since:  1.0 <br>
 */
public interface AtuPlanSceneCaseTaskService extends BasicService<AtuPlanSceneCaseTask>
{
    /**
     * 根据任务ID查询场景节点任务设备ID集合
     * @param taskId 任务ID
     * @return 设备ID集合
     */
    Set<String> queryDeviceIdListByTaskId(String taskId);

    /**
     * 根据任务ID查询未完成节点任务信息
     * @param taskId 任务ID
     * @return 节点任务信息
     */
    AtuPlanSceneCaseTask queryUnfinishedTaskByTaskId(String taskId);


    /**
     * 查询节点最后一次执行结果文件
     * @param query 查询条件
     * @return 结果
     */
    AtuPlanSceneCaseTask queryResultFileByTaskIdAndNodeId(AtuPlanSceneCaseTask query);

    /**
     * 根据任务id查询节点任务信息
     * @param taskId 任务id
     * @return 节点任务信息集合
     */
    List<AtuPlanSceneCaseTask> queryNodeInfo(String taskId);


    /**
     * 根据批次id查询任务中的appId
     * @param batchId 批次Id
     * @return 结果集
     */
    List<String> queryAppIdListByBatchId(String batchId);

    /**
     * 根据计划id删除场景节点任务
     * @param planId 计划id
     * @param num 删除数量
     * @return 结果
     */
    int deleteByPlanIdLimit(String planId, int num);

    /**
     * 根据计划id统计场景节点任务数量
     * @param planId 计划id
     * @return 任务数量
     */
    int countByPlanId(String planId);

    /**
     * 根据任务Ids 查询场景任务
     * @param taskIds 任务Ids
     * @return 场景任务集合
     */
    List<AtuPlanSceneCaseTask> querySceneCaseTasksByTaskIds(List<String> taskIds);

}
