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

    <resultMap id="BaseResultMap" type="com.ruoyi.domain.ReviewEnterpriseArchive">
            <id property="id" column="id" jdbcType="BIGINT"/>
            <result property="enterpriseName" column="enterprise_name" jdbcType="VARCHAR"/>
            <result property="fileName" column="file_name" jdbcType="VARCHAR"/>
            <result property="version" column="version" jdbcType="VARCHAR"/>
            <result property="publishDate" column="publish_date" jdbcType="DATE"/>
            <result property="status" column="status" jdbcType="VARCHAR"/>
            <result property="identifyNumber" column="identify_number" jdbcType="VARCHAR"/>
            <result property="storage" column="storage" jdbcType="VARCHAR"/>
            <result property="photo" column="photo" jdbcType="VARCHAR"/>
            <result property="taskId" column="task_id" jdbcType="BIGINT"/>
            <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
    </resultMap>


    <select id="findByTaskId" resultType="com.ruoyi.domain.ReviewEnterpriseArchive">
        SELECT id, enterprise_name, file_name, version, publish_date, status, identify_number, storage, photo, task_id, create_by, create_time FROM t_review_enterprise_archive WHERE task_id = #{taskId}
    </select>
    <select id="findViewItemVOByTaskId" resultType="com.ruoyi.domain.vo.ReviewEnterpriseArchiveViewItemVO">
        SELECT
            relation.catalogue AS catalogue,
            standard.chapter AS chapter,
            standard.text AS standard,
            keypoint.text AS keyPoint,
            relation.file_id AS archiveId
        FROM t_review_details_result result
                 LEFT JOIN t_review_details details ON result.review_details_id = details.id
                 LEFT JOIN t_review_keypoint keypoint ON details.review_keypoint_id = keypoint.id
                 LEFT JOIN t_review_standard standard ON keypoint.review_standard_id = standard.id
                 LEFT JOIN t_result_file_relation relation ON result.id = relation.result_id
        WHERE result.task_id = #{taskId} AND details.id IS NOT NULL;
    </select>
    <select id="findFileName" resultType="java.lang.Long">
        select COUNT(*) sum from t_review_enterprise_archive
        where task_id = #{taskId} and file_name = #{fileName}
    </select>
    <select id="findEnterpriseArchive" resultType="com.ruoyi.domain.ReviewEnterpriseArchive">
        SELECT id, enterprise_name, file_name, version, publish_date, status, identify_number, storage, photo, task_id, create_by, create_time
        FROM t_review_enterprise_archive
        <where>
            <if test="fileName != null and fileName != ''">
                file_name like concat('%',#{fileName},'%')
            </if>
            <if test="status != null and status != ''">
                and status = #{status}
            </if>
            <if test="identifyNumber != null and identifyNumber != ''">
                and identify_number like concat('%',#{identifyNumber},'%')
            </if>
        </where>
    </select>
    <select id="findByFileName" resultType="com.ruoyi.domain.ReviewEnterpriseArchive">
        SELECT id, enterprise_name, file_name, version, publish_date, status, identify_number, storage, photo, task_id, create_by, create_time
        FROM t_review_enterprise_archive
        where file_name = #{fileName}
    </select>
    <select id="findList" resultType="com.ruoyi.domain.ReviewEnterpriseArchive">
        SELECT id, enterprise_name, file_name, version, publish_date, status, identify_number, storage, photo, task_id, create_by, create_time
        FROM t_review_enterprise_archive
        where task_id = #{taskId}
    </select>
    <select id="findEnterpriseArchiveByTaskId" resultType="com.ruoyi.domain.ReviewEnterpriseArchive">
        SELECT id, enterprise_name, file_name, version, publish_date, status, identify_number, storage, photo, task_id, create_by, create_time
        FROM t_review_enterprise_archive
        <where>
            task_id = #{taskId}
            <if test="fileName != null and fileName != ''">
                and file_name like concat('%',#{fileName},'%')
            </if>
            <if test="status != null and status != ''">
                and status = #{status}
            </if>
            <if test="identifyNumber != null and identifyNumber != ''">
                and identify_number like concat('%',#{identifyNumber},'%')
            </if>
        </where>
    </select>
    <select id="findByFileNameAndId" resultType="com.ruoyi.domain.ReviewEnterpriseArchive">
        SELECT id, enterprise_name, file_name, version, publish_date, status, identify_number, storage, photo, task_id, create_by, create_time
        FROM t_review_enterprise_archive
        where file_name = #{fileName} and task_id = #{taskId}
    </select>

    <insert id="insertEnterprise" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
        insert into t_review_enterprise_archive(id,enterprise_name,file_name,version,publish_date,status,identify_number,storage,task_id,create_by,create_time)values
        <foreach item="item" index="index" collection="list" separator=",">
            (#{item.id},#{item.enterpriseName},#{item.fileName},#{item.version},#{item.publishDate},#{item.status},#{item.identifyNumber},#{item.storage},#{item.taskId},#{item.createBy},#{item.createTime})
        </foreach>
    </insert>
</mapper>