<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.mapper.ModelTestTaskMapper">

    <resultMap id="BaseResultMap" type="com.ruoyi.domain.ModelTestTask">
            <id property="id" column="id" jdbcType="BIGINT"/>
            <result property="taskNo" column="task_no" jdbcType="VARCHAR"/>
            <result property="taskStatus" column="task_status" jdbcType="VARCHAR"/>
            <result property="taskInitiator" column="task_initiator" jdbcType="VARCHAR"/>
            <result property="taskInitiatorDept" column="task_initiator_dept" jdbcType="VARCHAR"/>
            <result property="taskResult" column="task_result" jdbcType="VARCHAR"/>
            <result property="taskBeginTime" column="task_begin_time" jdbcType="TIMESTAMP"/>
            <result property="taskEndTime" column="task_end_time" jdbcType="TIMESTAMP"/>
            <result property="testCase" column="test_case" typeHandler="com.ruoyi.common.StandardJsonTypeHandler"/>
            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
            <result property="leaderId" column="leader_id" jdbcType="BIGINT"/>
            <result property="leader" column="leader" jdbcType="VARCHAR"/>
            <result property="standardId" column="standard_id" jdbcType="BIGINT"/>
            <result property="name" column="name" jdbcType="VARCHAR"/>
            <result property="standardNo" column="standard_no" jdbcType="VARCHAR"/>
            <result property="submitId" column="submit_id" jdbcType="BIGINT"/>
            <result property="submitName" column="submit_name" jdbcType="VARCHAR"/>
            <result property="imagesUrl" column="images_url" jdbcType="VARCHAR"/>
            <result property="details" column="details" jdbcType="INTEGER"/>
            <result property="standards" column="standards" jdbcType="INTEGER"/>
            <result property="testSchemeId" column="test_scheme_id" jdbcType="VARCHAR"/>
    </resultMap>
    <select id="findByStatus" resultType="com.ruoyi.domain.ModelTestTask">
        SELECT id,task_no,task_status,task_initiator,task_initiator_dept,task_result,task_begin_time,task_end_time,test_case,create_time,leader_id,leader,standard_id,name,standard_no,submit_id,submit_name,images_url,details,standards,test_scheme_id
        FROM t_model_test_task WHERE task_status = 'PENDING'
    </select>
    <select id="findByTaskList" resultType="com.ruoyi.domain.ModelTestTask">
        SELECT id,task_no,task_status,task_initiator,task_initiator_dept,task_result,task_begin_time,task_end_time,test_case,create_time,leader_id,leader,standard_id,name,standard_no,submit_id,submit_name,images_url,details,standards,test_scheme_id
        FROM t_model_test_task
        WHERE id IN
        <foreach collection="responses" item="task" open="(" separator="," close=")">
            #{task.modelTestTaskId}
        </foreach>
    </select>
    <select id="testAnswerCount" resultType="com.ruoyi.web.response.ResultCountResponse">
        <foreach item="task" collection="responses" separator="UNION ALL">
            SELECT
            #{task.modelTestTaskId} AS taskId,
            (IFNULL(
            (SELECT COUNT(*) FROM t_test_records WHERE task_id = #{task.modelTestTaskId}),
            0
            ) /
            IFNULL(
            (SELECT COUNT(*) FROM t_task_scenario_relation tsr
            INNER JOIN t_test_scenario tts ON tts.id = tsr.test_scenario_id
            INNER JOIN t_test_usecase ttu ON tts.id = ttu.test_scenario_id
            WHERE tsr.task_id = #{task.id}),
            1
            )) * 90 AS schedule,
            tm.task_status AS taskStatus
            from t_model_test_task tm where tm.id = #{task.modelTestTaskId}
        </foreach>
        group by taskId
    </select>


</mapper>