| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 | <?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.xunmei.iot.mapper.IotDvrChannelMapper">    <resultMap id="diagnosisDetailMap" type="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisWebVo">        <result column="hostName" property="hostName"></result>        <result column="channelName" property="channelName"></result>        <result column="channelIp" property="channelIp"></result>        <association property="quality" javaType="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisQualityVo">            <result column="quality_update_time" property="updateTime"></result>            <result column="quality_signal_lost" property="signalLost"></result>            <result column="quality_occlude" property="occlude"></result>            <result column="quality_brightness" property="brightness"></result>            <result column="quality_colorCast" property="colorCast"></result>            <result column="quality_snowflake" property="snowflake"></result>            <result column="quality_stripe" property="stripe"></result>            <result column="quality_contrast" property="contrast"></result>            <result column="quality_blurry" property="blurry"></result>            <result column="quality_image" property="image"></result>        </association>        <association property="integrity" javaType="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisIntegrityVo">            <result column="integrity_record_date" property="recordDate"></result>            <result column="integrity_lose_duration" property="loseDuration"></result>            <result column="integrity_lose_span" property="loseSpan"></result>            <result column="integrity_check_span" property="checkSpan"></result>            <result column="integrity_update_time" property="updateTime"></result>        </association>        <association property="storage" javaType="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisStorageVo">            <result column="storage_plan_days" property="planDays"></result>            <result column="storage_real_days" property="realDays"></result>            <result column="storage_earliest_video_time" property="earliestTime"></result>        </association>    </resultMap>    <resultMap id="appPageMap" type="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisAppPageVo">        <result column="equipment_code" property="hostCode"></result>        <result column="equipment_name" property="hostName"></result>        <result column="org_name" property="orgName"></result>        <result column="state" property="state"></result>        <collection property="channels" ofType="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisAppPageChannelVo"                    column="equipmentCode=equipment_code,state=state"                    select="selectAppChannels">            <result column="channel_code" property="channelCode"></result>            <result column="channel_name" property="channelName"></result>            <result column="state" property="state"></result>        </collection>    </resultMap>    <select id="selectPage" resultType="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisWebPageVo">        SELECT DISTINCT        c.id,        c.host_code,        c.channel_code,        c.org_name,        o.affiliated_area,        o.affiliated_bank,        c.channel_name,        c.channel_addr as channelIP,        vic.lose_duration,        vdc.plan_days,        vdc.real_days,        if(vdr.id is        null,null,if(vdr.signal_lost+vdr.occlude+vdr.brightness+vdr.color_cast+vdr.snowflake+vdr.stripe+vdr.contrast+vdr.blurry>=1,1,0))        as quality        from iot_dvr_channel c        INNER JOIN iot_device d on c.host_code=d.equipment_code        inner  join sys_org o on c.org_id =o.id and o.deleted=0 and o.is_lock='0'        left JOIN mediator_video_days_check vdc on c.host_code=vdc.equipment_code and c.channel_code=vdc.channel_code        left JOIN mediator_video_integrity_check vic on c.host_code=vic.equipment_code and        c.channel_code=vic.channel_code        left JOIN mediator_video_diagnosis_record vdr on c.host_code=vdr.equipment_code and        c.channel_code=vdr.channel_code        where c.deleted=0 and d.deleted=0        <if test="pageDto.checkSub==true">            and c.org_path like concat(#{orgPath},"%")        </if>        <if test="pageDto.checkSub==false">            and c.org_id = #{pageDto.orgId}        </if>        <if test="pageDto.hostName!=null and pageDto.hostName!=''">            and d.equipment_name like concat('%', #{pageDto.hostName},'%')        </if>        <if test="pageDto.channelName!=null and pageDto.channelName!=''">            and c.channel_name like concat('%', #{pageDto.channelName},'%')        </if>        <if test="pageDto.integrityState!=null">            and vic.status=#{pageDto.integrityState}        </if>        <if test="pageDto.daysState!=null">            and vdc.status=#{pageDto.daysState}        </if>        <if test="pageDto.diagnosisState!=null">            and vdr.is_alarm=#{pageDto.diagnosisState}        </if>        <!--        <if test="pageDto.status !=null">-->        <!--            and dhd.`status` = #{pageDto.status}-->        <!--        </if>-->    </select>    <select id="diagnosisDetail" resultMap="diagnosisDetailMap">        SELECT d.equipment_name        as hostName,               c.channel_name          as channelName,               c.channel_addr          as channelIp,               vdr.update_time         as quality_update_time,               vdr.signal_lost         as quality_signal_lost,               vdr.occlude             as quality_occlude,               vdr.brightness          as quality_brightness,               vdr.color_cast          as quality_colorCast,               vdr.snowflake           as quality_snowflake,               vdr.stripe              as quality_stripe,               vdr.contrast            as quality_contrast,               vdr.blurry              as quality_blurry,               vdr.img_url             as quality_image,               vic.record_date         as integrity_record_date,               vic.lose_duration       as integrity_lose_duration,               vic.lose_span           as integrity_lose_span,               vic.check_span          as integrity_check_span,               vic.update_time         as integrity_update_time,               vdc.plan_days           as storage_plan_days,               vdc.real_days           as storage_real_days,               vdc.earliest_video_time as storage_earliest_video_time        FROM iot_dvr_channel c                 INNER JOIN iot_device d ON c.host_code = d.equipment_code                 LEFT JOIN mediator_video_days_check vdc                           ON c.host_code = vdc.equipment_code AND c.channel_code = vdc.channel_code                 LEFT JOIN mediator_video_integrity_check vic                           ON c.host_code = vic.equipment_code AND c.channel_code = vic.channel_code                 LEFT JOIN mediator_video_diagnosis_record vdr                           ON c.host_code = vdr.equipment_code AND c.channel_code = vdr.channel_code        WHERE c.host_code = #{hostCode}          and c.channel_code = #{channelCode}    </select>    <select id="selectAppChannels" resultType="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisAppPageChannelVo">        select dc.channel_code,        dc.channel_name,        if(vdc.status=0 and vic.status=0 and vdr.is_alarm=0,0,if(vdc.status =1 or vic.status>0 or vdr.is_alarm=1,1,2))        as state        FROM iot_dvr_channel dc        LEFT JOIN mediator_video_days_check vdc on dc.host_code=vdc.equipment_code and dc.channel_code        =vdc.channel_code        LEFT JOIN mediator_video_integrity_check vic on dc.host_code=vic.equipment_code and dc.channel_code        =vic.channel_code        LEFT JOIN mediator_video_diagnosis_record vdr on dc.host_code=vdr.equipment_code and dc.channel_code        =vdr.channel_code        where dc.host_code=#{equipmentCode} and dc.deleted=0        <if test="state==0">            and (vdc.`status`=0 or vic.`status`=0 or vdr.is_alarm=0)        </if>        <if test="state==1">            and (vdc.`status`=1 or vic.`status`>0 or vdr.is_alarm=1)        </if>        <if test="state==2">            and (vdc.`status` is null or vic.`status` is null or vdr.is_alarm is null)        </if>        order by dc.channel_code asc    </select>    <select id="selectAppPage" resultMap="appPageMap">        SELECT equipment_code,        equipment_name,        org_name,        #{pageDto.state} as state        from iot_device        WHERE category_id = #{pageDto.categoryId}        <if test="pageDto.checkSub==true">            and org_path like concat(#{orgPath}, '%')        </if>        <if test="pageDto.checkSub==false">            and org_id=#{pageDto.orgId}        </if>        and deleted=0        <if test="pageDto.state!=null">            and equipment_code in (            SELECT dc.host_code            FROM iot_dvr_channel dc            LEFT JOIN mediator_video_days_check vdc on dc.host_code=vdc.equipment_code and dc.channel_code            =vdc.channel_code            LEFT JOIN mediator_video_integrity_check vic on dc.host_code=vic.equipment_code and dc.channel_code            =vic.channel_code            LEFT JOIN mediator_video_diagnosis_record vdr on dc.host_code=vdr.equipment_code and dc.channel_code            =vdr.channel_code            WHERE dc.deleted=0            <if test="pageDto.state==0">                and (vdc.`status`=0 and vic.`status`=0 and vdr.is_alarm=0)            </if>            <if test="pageDto.state==1">                and (vdc.`status`=1 or vic.`status`>0 or vdr.is_alarm=1)            </if>            <if test="pageDto.state==2">                and (vdc.`status` is null or vic.`status` is null or vdr.is_alarm is null)            </if>            <if test="pageDto.checkSub==true">                and dc.org_path like concat(#{orgPath}, '%')            </if>            <if test="pageDto.checkSub==false">                and dc.org_id=#{pageDto.orgId}            </if>            GROUP BY dc.host_code            )        </if>    </select>    <select id="selectBadge" resultType="java.lang.Integer">        SELECT sum(vdc.`status` > 0 or vic.`status` > 0 or vdc.`status` > 0) as count        FROM iot_dvr_channel dc                 LEFT JOIN mediator_video_days_check vdc                           on vdc.equipment_code = dc.host_code and vdc.channel_code = dc.channel_code                 LEFT JOIN mediator_video_integrity_check vic                           on vic.equipment_code = dc.host_code and vic.channel_code = dc.channel_code                 LEFT JOIN mediator_video_diagnosis_record vdr                           on vdr.equipment_code = dc.host_code and vdr.channel_code = dc.channel_code        WHERE dc.org_id = #{orgId}          AND dc.deleted = 0    </select></mapper>
 |