package net.northking.cctp.dw.api.service;

import net.northking.cctp.dw.db.entity.*;
import net.northking.cctp.dw.dto.ManualExecJobPieDto;

import java.util.List;

/**
 * @author: puchao.ma
 * @date: 2021/12/15 10:17
 */
public interface MtManualExecJobApiService {
    /**
     * 清空中间表数据
     */
    void deleteAllMid(List<MidProjectInfo> midProjectInfos);

    /**
     * 新增中间表数据
     * @param execJobs
     */
    void addBatchMid(List<MidManualExecJob> execJobs);

    /**
     * 用例执行饼图
     * @param projectId
     * @return
     */
    ManualExecJobPieDto execJobPie(String projectId);

    /**
     * 生成用例执行进度数据
     * @return
     */
    List<MtTestChart> createExecJobProgress(String tenantId);

    /**
     * 清空执行通过率数据
     */
    void deleteAllExecPassRatioData(MtCaseExecPassRatio ratio );

    /**
     * 新增执行铜绿数据
     * @param ratios
     */
    void addBatchExecPassRatio(List<MtCaseExecPassRatio> ratios);

    /**
     * 清空用户有效执行用例数中间表
     */
    void deleteAllMidValid(List<MidProjectInfo> dataList, String tenantId);

    /**
     * 新增用户有效执行用例数中间表
     * @param ratios
     */
    void addBatchMidValid(List<MidValidExecJob> ratios);

    /**
     * 查询有效用例数据
     * @return
     */
    List<MidValidExecJob> queryValidExecJob();

    /**
     * 删除案例执行总体情况
     */
    void deleteAllOverall(MtCaseExecOverall mtCaseExecOverall);

    /**
     * 新增案例执行总体情况
     * @param mtCaseExecOveralls
     */
    void addOveralls(List<MtCaseExecOverall> mtCaseExecOveralls);

    List<MidManualExecJob> findAll(List<MidProjectInfo> midProjectInfos);

    Integer countExecJobData(List<MidProjectInfo> midProjectInfos,String tenantId);

    Integer caseExecPassRatio(DwManualExecJob dwManualExecJob);

    Integer validExecJob(List<MidProjectInfo> dataList, String tenantId);

    Integer caseExecOverall(DwManualExecJob dwManualExecJob);

    List<DwManualExecJob> findProIdList();

    Integer deleteAllExecPassRatioDataByProjectIds(MtCaseExecPassRatio ratio);

    Integer deleteAllOverallByProjectIds(MtCaseExecOverall overall);
}
