<?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.zcloud.mapper.datasource.firemanager.FirePreparedCheckListMapper">

    <insert id="saveInfo" parameterType="list">
        INSERT INTO bus_fire_device_prepared
        (`FIRE_PREPARED_ID`,`FIRE_CHECK_ID`, `FIRE_DEVICE_ID`, `CORPINFO_ID`,FIRE_CHECK_STANDARD_ID,
        `CREATOR`, `CREATTIME`, `OPERATOR`, `OPERATTIME`) VALUES
        <foreach item="item" index="index" collection="list" separator=",">
            (#{item.FIRE_PREPARED_ID},#{item.FIRE_CHECK_ID},#{item.FIRE_DEVICE_ID},#{item.CORPINFO_ID},#{item.FIRE_CHECK_STANDARD_ID},
            #{item.CREATOR},#{item.CREATTIME},#{item.OPERATOR},#{item.OPERATTIME}
            )
        </foreach>
    </insert>
    <insert id="insertBatchPreparedData" parameterType="list">
        INSERT INTO bus_fire_device_prepared
        (`FIRE_PREPARED_ID`,`FIRE_CHECK_ID`, `FIRE_DEVICE_ID`, `CORPINFO_ID`,FIRE_RECORD_ID,
        `CREATOR`, `CREATTIME`, `OPERATOR`, `OPERATTIME`) VALUES
        <foreach item="item" index="index" collection="list" separator=",">
            (#{item.FIRE_PREPARED_ID},#{item.FIRE_CHECK_ID},#{item.FIRE_DEVICE_ID},#{item.CORPINFO_ID},#{item.FIRE_RECORD_ID},
            #{item.CREATOR},#{item.CREATTIME},#{item.OPERATOR},#{item.OPERATTIME}
            )
        </foreach>
    </insert>
    <update id="delAllByFireCheckId" parameterType="pd">
        update bus_fire_device_prepared set ISDELETE = 1 where ISDELETE = 0 and
        FIRE_CHECK_ID in
        <foreach item="item" index="index" collection="array" open="(" separator="," close=")">
            #{item}
        </foreach>
    </update>
    <update id="updateHiddenByPID">
        update bus_fire_device_prepared
        set HASHIDDEN = 1
        where HIDDEN_ID is not null
          and HIDDEN_ID != ''
        and FIRE_CHECK_ID = #{LISTMANAGER_ID}
    </update>
    <update id="removeDevicePreparedById">
        update bus_fire_device_prepared
        set ISDELETE = 1
        where
        FIRE_PREPARED_ID in
        <foreach item="item" index="index" collection="array" open="(" separator="," close=")">
            #{item}
        </foreach>
    </update>
    <update id="addHiddenByCidDid">
        update bus_fire_device_prepared
        set
            HIDDEN_ID = #{HIDDEN_ID},
            HASHIDDEN = 1
        where
        FIRE_CHECK_ID = #{FIRE_CHECK_ID} and FIRE_DEVICE_ID = #{FIRE_DEVICE_ID}
    </update>
    <select id="getNotCheckEd" resultType="com.zcloud.entity.PageData">
        SELECT GROUP_CONCAT(f.FIRE_DEVICE_ID) DEVICELIST,
               CORPINFO_ID,
               FIRE_CHECK_ID
        FROM bus_fire_device_prepared f
        GROUP BY f.CORPINFO_ID,
                 f.FIRE_RECORD_ID,
                 f.FIRE_CHECK_ID

    </select>
    <select id="getPreparedCheckItem" resultType="com.zcloud.entity.PageData">
        SELECT fpc.FIRE_PREPARED_ID,
               fpc.FIRE_CHECK_ID,
               fcs.DEVICE_NAME,
               fp.FIRE_POINT_ID,
               fp.FIRE_POINT_NAME,
               fr.FIRE_REGION_ID,
               fr.FIRE_REGION_NAME,
               fd.FIRE_DEVICE_ID,
               fd.FIRE_DEVICE_CODE,
               fd.FIRE_DEVICE_TYPE_ID,
               fcs.FIRE_CHECK_STANDARD_ITEM
        FROM bus_fire_device_prepared AS fpc
                 LEFT JOIN bus_fire_device fd ON fpc.FIRE_DEVICE_ID = fd.FIRE_DEVICE_ID
                 LEFT JOIN bus_fire_check_standard AS fcs ON fcs.FIRE_DEVICE_TYPE = fd.FIRE_DEVICE_TYPE_ID
                 LEFT JOIN bus_fire_region fr on fr.FIRE_REGION_ID = fd.FIRE_REGION_ID
                 LEFT JOIN bus_fire_point fp on fp.FIRE_POINT_ID = fd.FIRE_POINT_ID
        WHERE fpc.FIRE_CHECK_ID = #{FIRE_CHECK_ID}
          AND fcs.ISDELETE = 0
          AND fpc.ISDELETE = 0
          AND fd.ISDELETE = 0
          and fr.ISDELETE = 0
          and fp.ISDELETE = 0
        order by fp.FIRE_POINT_NAME desc

    </select>
    <select id="getHiddenIdList" resultType="com.zcloud.entity.PageData">
         SELECT GROUP_CONCAT(HIDDEN_ID) HIDDEN_ID_LIST FROM `bus_fire_device_prepared` where FIRE_CHECK_ID = #{LISTMANAGER_ID}
    </select>
    <select id="getPcStandardByCheckId" resultType="com.zcloud.entity.PageData">
        SELECT
            fpc.FIRE_CHECK_ID,
            fp.FIRE_POINT_ID,
            fp.FIRE_POINT_CODE,
            GROUP_CONCAT( DISTINCT fp.FIRE_POINT_NAME ) FIRE_POINT_NAME,
            fr.FIRE_REGION_ID,
            fr.FIRE_REGION_NAME,
            fd.FIRE_DEVICE_CODE,
            fd.FIRE_DEVICE_ID,
            fd.FIRE_DEVICE_TYPE_ID,
            d.`NAME` dicName
        FROM
            bus_fire_device_prepared AS fpc
                LEFT JOIN bus_fire_device fd ON fpc.FIRE_DEVICE_ID = fd.FIRE_DEVICE_ID
                LEFT JOIN bus_fire_check_standard AS fcs ON fcs.FIRE_DEVICE_TYPE = fd.FIRE_DEVICE_TYPE_ID
                LEFT JOIN bus_fire_region fr ON fr.FIRE_REGION_ID = fd.FIRE_REGION_ID
                LEFT JOIN bus_fire_point fp ON fp.FIRE_POINT_ID = fd.FIRE_POINT_ID
                LEFT JOIN sys_dictionaries d on fd.FIRE_DEVICE_TYPE_ID = d.BIANMA
        WHERE
            fpc.FIRE_CHECK_ID = #{FIRE_CHECK_ID}
          AND fcs.ISDELETE = 0
          AND fpc.ISDELETE = 0
          AND fd.ISDELETE = 0
          AND fr.ISDELETE = 0
          AND fp.ISDELETE = 0
        GROUP BY
            fd.FIRE_DEVICE_CODE
        ORDER BY
            fp.FIRE_POINT_NAME,
            fd.FIRE_DEVICE_CODE,
            fcs.FIRE_CHECK_STANDARD_ITEM DESC
    </select>
    <select id="getPcStandard4Edit" resultType="com.zcloud.entity.PageData">
        SELECT
            fpc.FIRE_PREPARED_ID,
            fp.USER_ID,
            fp.DEPARTMENT_ID,
            fp.FIRE_POINT_NAME,
            fp.FIRE_POINT_CODE,
            fp.FIRE_POINT_ID,
            fr.FIRE_REGION_NAME,
            fr.FIRE_REGION_ID,
            fd.FIRE_DEVICE_CODE,
            fd.FIRE_DEVICE_TYPE_ID,
            fd.VALIDITY_START_TIME,
            fd.VALIDITY_END_TIME,
            fd.REMAKE,
            fd.FIRE_DEVICE_ID,
            su.`NAME` AS USERNAME,
            d.`NAME` AS DEPARTMENTNAME,
            p.`NAME` POSTNAME,
            sys_dictionaries.`NAME` AS FIRE_DEVICE_TYPE_NAME
        FROM
            bus_fire_device_prepared fpc
                LEFT JOIN bus_fire_device AS fd ON fd.FIRE_DEVICE_ID = fpc.FIRE_DEVICE_ID
                LEFT JOIN bus_fire_point AS fp ON fd.FIRE_POINT_ID = fp.FIRE_POINT_ID
                LEFT JOIN bus_fire_region AS fr ON fd.FIRE_REGION_ID = fr.FIRE_REGION_ID
                LEFT JOIN sys_user AS su ON fp.USER_ID = su.USER_ID
                LEFT JOIN oa_department AS d ON fd.DEPARTMENT_ID = d.DEPARTMENT_ID
                LEFT JOIN sys_post AS p ON p.POST_ID = su.POST_ID
                LEFT JOIN sys_dictionaries ON fd.FIRE_DEVICE_TYPE_ID = sys_dictionaries.BIANMA
        WHERE
            fp.ISDELETE = 0
          AND fd.ISDELETE = 0
          and fpc.ISDELETE = 0
          AND fpc.FIRE_CHECK_ID = #{FIRE_CHECK_ID}
    </select>
    <select id="getAppRiskByDevice" resultType="com.zcloud.entity.PageData">
        SELECT
            rd.EQUIPMENT_RECORD_ID,
            rd.FIRE_DEVICE_ID,
            ifnull(rd.HIDDEN_ID,"")HIDDEN_ID,
            fpc.HASHIDDEN,
            rd.ISNORMAL,
            rd.EQUIPMENT_RECORD_ID,
            GROUP_CONCAT( DISTINCT fd.FIRE_DEVICE_TYPE_ID) FIRE_DEVICE_TYPE_ID,
            fpc.FIRE_PREPARED_ID,
            fr.FINISHED,
            fp.FIRE_POINT_NAME,
            reg.FIRE_REGION_NAME,
            d.`NAME` dicName,
            fd.FIRE_DEVICE_CODE,
            GROUP_CONCAT( FIRE_CHECK_STANDARD_ITEM order by FIRE_CHECK_STANDARD_ITEM desc SEPARATOR '@@') FIRE_CHECK_STANDARD_ITEM
        FROM
                bus_fire_record_device AS rd
                LEFT JOIN bus_fire_record fr ON rd.FIRE_RECORD_ID = fr.FIRE_RECORD_ID
                LEFT JOIN bus_fire_device fd ON rd.FIRE_DEVICE_ID = fd.FIRE_DEVICE_ID
                LEFT JOIN bus_fire_point fp ON fp.FIRE_POINT_ID = rd.FIRE_POINT_ID
                LEFT JOIN bus_fire_region reg ON reg.FIRE_REGION_ID = fp.FIRE_REGION_ID
                LEFT JOIN sys_dictionaries d ON fd.FIRE_DEVICE_TYPE_ID = d.BIANMA
                LEFT JOIN bus_fire_check_standard fcs ON fd.FIRE_DEVICE_TYPE_ID = fcs.FIRE_DEVICE_TYPE
                LEFT JOIN bus_fire_device_prepared fpc ON fpc.FIRE_CHECK_ID = fr.FIRE_CHECK_ID
                AND rd.FIRE_DEVICE_ID = fpc.FIRE_DEVICE_ID
        WHERE
          reg.ISDELETE = 0
          <if test="FIRE_CHECK_ID != null and FIRE_CHECK_ID != ''">
              and fr.FIRE_CHECK_ID = #{FIRE_CHECK_ID}
          </if>
        <if test="FIRE_RECORD_ID != null and FIRE_RECORD_ID != ''">
            AND fr.FIRE_RECORD_ID = #{FIRE_RECORD_ID}
        </if>
        <if test="FIRE_POINT_ID != null and FIRE_POINT_ID != ''">
            AND fd.FIRE_POINT_ID = #{FIRE_POINT_ID}
        </if>
          AND fr.ISDELETE = 0
          AND rd.ISDELETE = 0
          AND fp.ISDELETE = 0
          AND fd.ISDELETE = 0
          AND fcs.ISDELETE = 0
          AND fpc.ISDELETE = 0

        GROUP BY
            fd.FIRE_DEVICE_CODE
    </select>
    <select id="getStandardByDeviceIds" resultType="com.zcloud.entity.PageData">
        SELECT
            DISTINCT
            fcs.DEVICE_NAME,
            fcs.FIRE_CHECK_STANDARD_ITEM
        FROM
            bus_fire_check_standard fcs
        WHERE fcs.FIRE_DEVICE_TYPE in (SELECT DISTINCT FIRE_DEVICE_TYPE_ID FROM bus_fire_device WHERE FIRE_DEVICE_ID in
        <foreach item="item" index="index" collection="list" open="(" separator="," close=")">
            #{item.FIRE_DEVICE_ID}
        </foreach>
        )
    </select>

</mapper>