<?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.StatisticsHomeMapper">


    <select id="selectQuantityStatistics" resultType="com.ruoyi.domain.vo.QuantityStatisticsVO" parameterType="com.ruoyi.domain.vo.QuantityStatisticsVO">
        SELECT
                ( SELECT count( id ) FROM t_standard ) AS standardQuantity,
                ( SELECT count( id ) FROM t_task  WHERE task_status != 'TEMPORARILY' ) AS numberTasks,
                ( SELECT count( id ) FROM t_automobile_enterprise WHERE deleted = 0 ) AS numberCompanies,
                (
                    SELECT
                        count( su.user_id )
                    FROM
                        sys_user su
                            LEFT JOIN sys_user_role sur ON sur.user_id = su.user_id
                    WHERE
                        sur.role_id = 106
                ) AS numberInspectors,
                ( SELECT count( id ) FROM t_sample WHERE flag = '0' AND deleted = 0 ) AS numberVehicleSamples,
                ( SELECT count( id ) FROM t_sample WHERE flag = '1' AND deleted = 0 ) AS numberComponentSamples,
                ( SELECT count( id ) FROM t_task WHERE vehicle_information_url IS NOT NULL ) AS numberReports,
                ( SELECT count( id ) FROM t_task WHERE task_status = 'FINISH' ) AS completedTaskNumber,
                ( SELECT count( id ) FROM t_task WHERE task_status = 'NEW' OR task_status = 'PENDING' OR task_status = 'SIGNED') AS executeTasksNumber
    </select>

    <select id="selectStandardCategoryStatistics" resultType="com.ruoyi.domain.vo.StandardCategoryStatisticsVO">
        SELECT
            count( ta.id ) AS value,
	        st.standard_type AS name
        FROM
            t_task ta
            LEFT JOIN t_standard st ON ta.standard_id = st.id
        GROUP BY
            st.standard_type
    </select>

    <select id="selectConfidentialityLevelStatistics" resultType="com.ruoyi.domain.vo.ConfidentialityLevelProportionVO">
        SELECT
           count( id ) AS value,
           confidentiality_level AS name
        FROM
           t_task
        WHERE
           confidentiality_level IS NOT NULL AND confidentiality_level != ''
        GROUP BY
           confidentiality_level
    </select>

    <select id="selectInspectionItemPassedNum" resultType="com.ruoyi.domain.vo.InspectionItemPassedNumVO">
        SELECT
            ( SELECT COUNT( id ) FROM t_system_review_task WHERE task_status = 'FINISH' ) AS sysReviewcompletedNum,
            ( SELECT COUNT( id ) FROM t_system_review_task WHERE task_status = 'FINISH' AND task_result = 'PASS' ) AS sysReviewPassedNum,
            ( SELECT COUNT( id ) FROM t_car_review_task WHERE task_status = 'FINISH' ) AS carReviewcompletedNum,
            ( SELECT COUNT( id ) FROM t_car_review_task WHERE task_status = 'FINISH' AND task_result = 'PASS' ) AS carReviewPassedNum,
            ( SELECT COUNT( id ) FROM t_model_test_task WHERE task_status = 'FINISH' ) AS modelTestCompletedNum,
            ( SELECT COUNT( id ) FROM t_model_test_task WHERE task_status = 'FINISH' AND task_result = 'PASS' ) AS modelTestPassedNum
    </select>

    <select id="selectTaskParticipationStatistics" resultType="com.ruoyi.domain.vo.TaskParticipationStatisticsVO">
        SELECT
            count( task_id ) AS taskNum,
            tur.user_id,
            su.nick_name AS userName
        FROM
            t_task_user_relation tur
                LEFT JOIN sys_user su ON su.user_id = tur.user_id
        GROUP BY
            tur.user_id
    </select>
</mapper>