<?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.FireCheckStandardMapper">
    <insert id="saveImportCheckStandard" parameterType="list">
        insert into bus_fire_check_standard ( `FIRE_CHECK_STANDARD_ID`, `DEVICE_NAME`, `FIRE_CHECK_STANDARD_ITEM`,
        `EMPLOYER`, `CORPINFO_ID`, `CREATOR`, `CREATTIME`, `OPERATOR`, `OPERATTIME`,FIRE_DEVICE_TYPE )
        values
        <foreach item="item" index="index" collection="list" separator=",">
            (#{item.FIRE_CHECK_STANDARD_ID},#{item.var0},#{item.var2},#{item.var1},
            #{item.CORPINFO_ID},
            #{item.CREATOR},#{item.CREATTIME},#{item.OPERATOR},#{item.OPERATTIME},#{item.FIRE_DEVICE_TYPE}
            )
        </foreach>
    </insert>

    <update id="updById" parameterType="pd">
        UPDATE bus_fire_check_standard
        SET DEVICE_NAME              = #{DEVICE_NAME},
            FIRE_CHECK_STANDARD_ITEM = #{FIRE_CHECK_STANDARD_ITEM},
            EMPLOYER                 = #{EMPLOYER},
            FIRE_DEVICE_TYPE         = #{FIRE_DEVICE_TYPE},
            OPERATOR                 = #{OPERATOR},
            OPERATTIME               = #{OPERATTIME}
        WHERE FIRE_CHECK_STANDARD_ID = #{FIRE_CHECK_STANDARD_ID}
    </update>

    <update id="delByIds" parameterType="pd">
        UPDATE bus_fire_check_standard
        SET ISDELETE = 1
        WHERE FIRE_CHECK_STANDARD_ID in (#{DATA_IDS})
    </update>

    <insert id="saveInfo" parameterType="pd">
        insert into bus_fire_check_standard
        (`FIRE_CHECK_STANDARD_ID`, `DEVICE_NAME`,
         `FIRE_CHECK_STANDARD_ITEM`,
         `EMPLOYER`, FIRE_DEVICE_TYPE, `CORPINFO_ID`, `CREATOR`, `CREATTIME`, `OPERATOR`,
         `OPERATTIME`)
        values (#{FIRE_CHECK_STANDARD_ID}, #{DEVICE_NAME},
                #{FIRE_CHECK_STANDARD_ITEM},
                #{EMPLOYER},
                #{FIRE_DEVICE_TYPE},
                #{CORPINFO_ID},
                #{CREATOR},
                #{CREATTIME},
                #{OPERATOR},
                #{OPERATTIME})
    </insert>

    <select id="datalistPage" parameterType="page" resultType="pd">
        SELECT
        cs.FIRE_CHECK_STANDARD_ID,
        cs.DEVICE_NAME,
        cs.FIRE_CHECK_STANDARD_ITEM,
        cs.EMPLOYER,
        cs.FIRE_DEVICE_ID,
        cs.CORPINFO_ID,
        cs.OPERATTIME,
        cs.OPERATOR
        FROM
        bus_fire_check_standard AS cs
        WHERE
        cs.ISDELETE = 0 AND
        cs.FIRE_DEVICE_ID = #{pd.FIRE_DEVICE_ID}
        <if test=" pd.DEVICE_NAME != null and pd.DEVICE_NAME!= ''">
            AND cs.DEVICE_NAME like #{pd.DEVICE_NAME}
        </if>
        <if test="pd.EMPLOYER != null and pd.EMPLOYER!= '' ">
            and cs.EMPLOYER like #{pd.EMPLOYER}
        </if>
        order by OPERATTIME desc
    </select>

    <select id="getInfo" parameterType="pd" resultType="com.zcloud.entity.PageData">
        SELECT cs.FIRE_CHECK_STANDARD_ID,
               cs.DEVICE_NAME,
               cs.FIRE_DEVICE_TYPE,
               cs.FIRE_CHECK_STANDARD_ITEM,
               cs.EMPLOYER,
               cs.CORPINFO_ID,
               cs.OPERATTIME,
               cs.OPERATOR
        FROM bus_fire_check_standard AS cs
        WHERE cs.ISDELETE = 0
          and cs.FIRE_CHECK_STANDARD_ID = #{FIRE_CHECK_STANDARD_ID}
    </select>
    <select id="getRecordDeviceByApp" parameterType="pd" resultType="com.zcloud.entity.PageData">
        SELECT fcs.FIRE_CHECK_STANDARD_ITEM,
               fcs.FIRE_CHECK_STANDARD_ID,
               fd.FIRE_DEVICE_CODE,
               fp.FIRE_POINT_NAME,
               fr.FIRE_REGION_NAME,
               fd.FIRE_DEVICE_ID,
               frd.EQUIPMENT_RECORD_ID,
               frd.ISNORMAL,
               frd.ISCHECKED,
               frd.HIDDENDESCR,
               frd.HIDDEN_ID,
               frd.OPERATTIME,
               frd.OPERATOR,
               frd.CREATTIME,
               frd.CREATOR,
               frd.ISDELETE,
               frd.FIRE_RECORD_ID
        FROM bus_fire_check_standard AS fcs
                 INNER JOIN
             bus_fire_device AS fd
                 INNER JOIN
             bus_fire_point AS fp
             ON
                 fd.FIRE_POINT_ID = fp.FIRE_POINT_ID
                 INNER JOIN
             bus_fire_region AS fr
             ON
                 fp.FIRE_REGION_ID = fr.FIRE_REGION_ID
                 INNER JOIN
             bus_fire_record_device AS frd
             ON
                         fcs.FIRE_DEVICE_ID = frd.FIRE_DEVICE_ID AND
                         fd.FIRE_DEVICE_ID = frd.FIRE_DEVICE_ID
        WHERE fcs.ISDELETE = 0
          AND frd.ISDELETE = 0
          AND frd.ISDELETE = 0
          AND fd.ISDELETE = 0
          and FIRE_RECORD_ID = #{FIRE_RECORD_ID}

        GROUP BY FIRE_DEVICE_ID
    </select>
    <select id="getCheckStandardByRecordId" parameterType="pd" resultType="com.zcloud.entity.PageData">
        SELECT bus_fire_check_standard.FIRE_CHECK_STANDARD_ITEM,
               bus_fire_check_standard.FIRE_CHECK_STANDARD_ITEM CHECK_CONTENT,
               bus_fire_check_standard.FIRE_CHECK_STANDARD_ID,
               bus_fire_device_prepared.FIRE_PREPARED_ID,
               bus_fire_device.FIRE_DEVICE_CODE,
               bus_fire_point.FIRE_POINT_NAME,
               '' AS                                            HIDDEN_ID,
               '' AS                                            HIDDENDESCR,
               2  AS                                            ISNORMAL,
               bus_fire_region.FIRE_REGION_NAME,
               bus_fire_device_prepared.FIRE_CHECK_ID,
               bus_fire_device.FIRE_DEVICE_ID
        FROM bus_fire_device_prepared
                 INNER JOIN
             bus_fire_device
             ON
                     bus_fire_device_prepared.FIRE_DEVICE_ID = bus_fire_device.FIRE_DEVICE_ID
                 RIGHT JOIN
             bus_fire_check_standard
             ON
                     bus_fire_device.FIRE_DEVICE_TYPE_ID = bus_fire_check_standard.FIRE_DEVICE_TYPE
                 INNER JOIN
             bus_fire_point
             ON
                 bus_fire_device.FIRE_POINT_ID = bus_fire_point.FIRE_POINT_ID
                 INNER JOIN
             bus_fire_region
             ON
                 bus_fire_device.FIRE_REGION_ID = bus_fire_region.FIRE_REGION_ID
        WHERE bus_fire_device_prepared.FIRE_CHECK_ID = #{FIRE_CHECK_ID}
          AND bus_fire_check_standard.ISDELETE = 0
          AND bus_fire_device_prepared.ISDELETE = 0
        ORDER BY bus_fire_check_standard.OPERATTIME DESC
    </select>
    <select id="tryDel" resultType="pd">
        SELECT COUNT(rd.FIRE_CHECK_STANDARD_ID) AS sum
        FROM
            bus_fire_check_standard AS cs
            RIGHT JOIN
            bus_fire_record_device AS rd
        ON
            cs.FIRE_CHECK_STANDARD_ID = rd.FIRE_CHECK_STANDARD_ID
        WHERE
            rd.ISDELETE = 0
          AND
            cs.FIRE_CHECK_STANDARD_ID
            in (#{DATA_IDS})
    </select>
    <select id="getdatalistPage" resultType="com.zcloud.entity.PageData">
        SELECT FIRE_CHECK_STANDARD_ID,
        DEVICE_NAME,
        FIRE_DEVICE_TYPE,
        FIRE_CHECK_STANDARD_ITEM,
        OPERATTIME,
        EMPLOYER,
        sys_dictionaries.`NAME` DEVICE_TYPE_NAME
        FROM bus_fire_check_standard AS cs
        inner join
        sys_dictionaries
        ON
        cs.FIRE_DEVICE_TYPE = sys_dictionaries.BIANMA
        WHERE cs.ISDELETE = 0
        <if test="pd.FIRE_DEVICE_TYPE != null and pd.FIRE_DEVICE_TYPE !=''">
            and cs.FIRE_DEVICE_TYPE = #{pd.FIRE_DEVICE_TYPE}
        </if>
        <if test="pd.KEYWORDS != null and pd.KEYWORDS !=''">
            and cs.FIRE_CHECK_STANDARD_ITEM like concat(#{pd.KEYWORDS},'%')
        </if>
        ORDER BY OPERATTIME desc
    </select>
    <select id="getStandardByDeviceId" resultType="com.zcloud.entity.PageData">
        SELECT bus_fire_check_standard.FIRE_CHECK_STANDARD_ID,
               bus_fire_check_standard.FIRE_CHECK_STANDARD_ITEM,
               bus_fire_check_standard.EMPLOYER,
               bus_fire_check_standard.DEVICE_NAME,
               bus_fire_check_standard.FIRE_DEVICE_TYPE,
               bus_fire_device.FIRE_DEVICE_ID,
               bus_fire_device.CORPINFO_ID,
               bus_fire_device.FIRE_DEVICE_CODE
        FROM bus_fire_device
                 CROSS JOIN
             bus_fire_check_standard
        WHERE bus_fire_check_standard.ISDELETE = 0
          AND bus_fire_device.ISDELETE = 0
          <if test="pd.FIRE_DEVICE_ID != null and pd.FIRE_DEVICE_ID != ''">
              and bus_fire_device.FIRE_DEVICE_ID = #{pd.FIRE_DEVICE_ID}
          </if>
          AND bus_fire_check_standard.FIRE_DEVICE_TYPE = #{pd.FIRE_DEVICE_TYPE_ID}
          AND bus_fire_device.FIRE_DEVICE_TYPE_ID = #{pd.FIRE_DEVICE_TYPE_ID}
        order by bus_fire_check_standard.FIRE_CHECK_STANDARD_ITEM desc
    </select>
    <select id="getCheckStandardByRecordIdApp" resultType="com.zcloud.entity.PageData">
        SELECT bus_fire_check_standard.FIRE_CHECK_STANDARD_ITEM,
               bus_fire_check_standard.FIRE_CHECK_STANDARD_ITEM CHECK_CONTENT,
               bus_fire_check_standard.FIRE_CHECK_STANDARD_ID,
               bus_fire_device_prepared.FIRE_PREPARED_ID,
               bus_fire_device.FIRE_DEVICE_CODE,
               bus_fire_point.FIRE_POINT_NAME,
               '' AS                                            HIDDEN_ID,
               '' AS                                            HIDDENDESCR,
               2  AS                                            ISNORMAL,
               bus_fire_region.FIRE_REGION_NAME,
               bus_fire_device_prepared.FIRE_CHECK_ID,
               bus_fire_device.FIRE_DEVICE_ID
        FROM bus_fire_device_prepared
                 INNER JOIN bus_fire_device
                            ON bus_fire_device_prepared.FIRE_DEVICE_ID = bus_fire_device.FIRE_DEVICE_ID
                 RIGHT JOIN bus_fire_check_standard
                            ON bus_fire_device.FIRE_DEVICE_TYPE_ID = bus_fire_check_standard.FIRE_DEVICE_TYPE
                 INNER JOIN bus_fire_point ON bus_fire_device.FIRE_POINT_ID = bus_fire_point.FIRE_POINT_ID
                 INNER JOIN bus_fire_region ON bus_fire_device.FIRE_REGION_ID = bus_fire_region.FIRE_REGION_ID
        WHERE bus_fire_device_prepared.FIRE_CHECK_ID = #{FIRE_CHECK_ID}

          AND bus_fire_check_standard.ISDELETE = 0
          AND bus_fire_device_prepared.ISDELETE = 0
    </select>
    <select id="getTypeNameByDeviceType" resultType="com.zcloud.entity.PageData">
        SELECT name
        from sys_dictionaries
        WHERE BIANMA =
              #{FIRE_DEVICE_TYPE}
    </select>
    <select id="getStandardByRidAndHAShidden" resultType="com.zcloud.entity.PageData">
        SELECT bus_fire_check_standard.FIRE_CHECK_STANDARD_ITEM,
               bus_fire_check_standard.FIRE_CHECK_STANDARD_ITEM AS CHECK_CONTENT,
               bus_fire_check_standard.FIRE_CHECK_STANDARD_ID,
               bus_fire_device_prepared.FIRE_PREPARED_ID,
               bus_fire_device.FIRE_DEVICE_CODE,
               bus_fire_point.FIRE_POINT_NAME,
               bus_fire_region.FIRE_REGION_NAME,
               bus_fire_device_prepared.FIRE_CHECK_ID,
               bus_fire_device.FIRE_DEVICE_ID,
               bus_fire_device_prepared.HASHIDDEN,
               IFNULL(CASE bus_fire_device_prepared.HIDDEN_ID
                          WHEN NULL THEN ' '
                          ELSE bus_fire_device_prepared.HIDDEN_ID END, '') HIDDEN_ID,
            IF (bus_fire_device_prepared.HIDDEN_ID != '', 3, 2) ISNORMAL,
               ''AS HIDDENDESCR,
               bus_fire_check_standard.FIRE_DEVICE_TYPE
        FROM bus_fire_device_prepared
                 INNER JOIN bus_fire_device
                            ON bus_fire_device_prepared.FIRE_DEVICE_ID = bus_fire_device.FIRE_DEVICE_ID
                 LEFT JOIN bus_fire_check_standard ON bus_fire_device_prepared.FIRE_CHECK_STANDARD_ID =
                                                      bus_fire_check_standard.FIRE_CHECK_STANDARD_ID
                 INNER JOIN bus_fire_point ON bus_fire_device.FIRE_POINT_ID = bus_fire_point.FIRE_POINT_ID
                 INNER JOIN bus_fire_region ON bus_fire_device.FIRE_REGION_ID = bus_fire_region.FIRE_REGION_ID
        WHERE bus_fire_device_prepared.FIRE_CHECK_ID = #{FIRE_CHECK_ID}
          AND bus_fire_check_standard.ISDELETE = 0
          AND bus_fire_device_prepared.ISDELETE = 0
        ORDER BY bus_fire_check_standard.FIRE_CHECK_STANDARD_ITEM DESC
    </select>
    <select id="getStandardByApp" resultType="com.zcloud.entity.PageData">
        SELECT
            bus_fire_device_prepared.FIRE_PREPARED_ID,
            bus_fire_device.FIRE_DEVICE_CODE,
            bus_fire_point.FIRE_POINT_NAME,
            bus_fire_point.FIRE_POINT_ID,
            bus_fire_region.FIRE_REGION_NAME,
            IFNULL( CASE bus_fire_device_prepared.HIDDEN_ID WHEN NULL THEN ' ' ELSE bus_fire_device_prepared.HIDDEN_ID END, '' ) HIDDEN_ID,
            IF
                ( bus_fire_device_prepared.HIDDEN_ID != '', 1, 2 ) ISNORMAL,
            '' AS HIDDENDESCR,
            bus_fire_device_prepared.FIRE_CHECK_ID,
            bus_fire_device.FIRE_DEVICE_ID,
            bus_fire_device_prepared.HASHIDDEN
        FROM
            bus_fire_device_prepared
                left JOIN bus_fire_device ON bus_fire_device_prepared.FIRE_DEVICE_ID = bus_fire_device.FIRE_DEVICE_ID
                left JOIN bus_fire_point ON bus_fire_device.FIRE_POINT_ID = bus_fire_point.FIRE_POINT_ID
                left JOIN bus_fire_region ON bus_fire_device.FIRE_REGION_ID = bus_fire_region.FIRE_REGION_ID
        WHERE bus_fire_device_prepared.FIRE_CHECK_ID = #{FIRE_CHECK_ID}

          AND bus_fire_device_prepared.ISDELETE = 0
    </select>

    <select id="getListAll" parameterType="pd" resultType="pd">
        SELECT
        cs.*
        FROM
        bus_fire_check_standard AS cs
        WHERE
        cs.ISDELETE = 0
        <if test=" FIRE_DEVICE_TYPE_LIST != null and FIRE_DEVICE_TYPE_LIST.size() > 0 ">
          and  cs.FIRE_DEVICE_TYPE in
            <foreach item="item" index="index" collection="FIRE_DEVICE_TYPE_LIST" open="(" separator="," close=")">
                #{item,jdbcType=VARCHAR}
            </foreach>
        </if>
        <if test=" CORPINFO_ID != null and CORPINFO_ID!= ''">
            AND cs.CORPINFO_ID = #{CORPINFO_ID}
        </if>
        <if test=" FIRE_DEVICE_TYPE != null and FIRE_DEVICE_TYPE!= ''">
            AND cs.FIRE_DEVICE_TYPE = #{FIRE_DEVICE_TYPE}
        </if>
        <if test=" DEVICE_NAME != null and DEVICE_NAME!= ''">
            AND cs.DEVICE_NAME like #{DEVICE_NAME}
        </if>
        <if test="EMPLOYER != null and EMPLOYER!= '' ">
            and cs.EMPLOYER like #{EMPLOYER}
        </if>
        order by FIRE_CHECK_STANDARD_ITEM desc
    </select>
    <select id="getStandardListByDeviceType" resultType="com.zcloud.entity.PageData">
        select FIRE_CHECK_STANDARD_ID,FIRE_CHECK_STANDARD_ITEM from bus_fire_check_standard where ISDELETE = 0
        <if test="CORPINFO_ID != null and CORPINFO_ID!= ''">
            and CORPINFO_ID = #{CORPINFO_ID}
        </if>
        <if test="FIRE_DEVICE_TYPE != null and FIRE_DEVICE_TYPE!= ''">
           and FIRE_DEVICE_TYPE = #{FIRE_DEVICE_TYPE}
        </if>
    </select>

    <select id="getPointListByUserId" resultType="com.zcloud.entity.PageData">
        SELECT DISTINCT
            fpp.FIRE_POINT_ID
        FROM
            bus_fire_point_prepared fpp
        WHERE
                fpp.FIRE_CHECK_ID IN (
                SELECT
                    fc.FIRE_CHECK_ID
                FROM
                    bus_fire_checklist fc
                WHERE
                    fc.USER_ID = #{USER_ID}
                  AND fc.ISDELETE = 0
            )
    </select>
</mapper>