IotDvrChannelMapper.xml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.xunmei.iot.mapper.IotDvrChannelMapper">
  4. <resultMap id="diagnosisDetailMap" type="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisWebVo">
  5. <result column="hostName" property="hostName"></result>
  6. <result column="channelName" property="channelName"></result>
  7. <result column="channelIp" property="channelIp"></result>
  8. <association property="quality" javaType="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisQualityVo">
  9. <result column="quality_update_time" property="updateTime"></result>
  10. <result column="quality_signal_lost" property="signalLost"></result>
  11. <result column="quality_occlude" property="occlude"></result>
  12. <result column="quality_brightness" property="brightness"></result>
  13. <result column="quality_colorCast" property="colorCast"></result>
  14. <result column="quality_snowflake" property="snowflake"></result>
  15. <result column="quality_stripe" property="stripe"></result>
  16. <result column="quality_contrast" property="contrast"></result>
  17. <result column="quality_blurry" property="blurry"></result>
  18. <result column="quality_image" property="image"></result>
  19. </association>
  20. <association property="integrity" javaType="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisIntegrityVo">
  21. <result column="integrity_record_date" property="recordDate"></result>
  22. <result column="integrity_lose_duration" property="loseDuration"></result>
  23. <result column="integrity_lose_span" property="loseSpan"></result>
  24. <result column="integrity_check_span" property="checkSpan"></result>
  25. <result column="integrity_update_time" property="updateTime"></result>
  26. <result column="integrity_status" property="state"></result>
  27. </association>
  28. <association property="storage" javaType="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisStorageVo">
  29. <result column="storage_plan_days" property="planDays"></result>
  30. <result column="storage_real_days" property="realDays"></result>
  31. <result column="storage_earliest_video_time" property="earliestTime"></result>
  32. </association>
  33. </resultMap>
  34. <resultMap id="appPageMap" type="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisAppPageVo">
  35. <result column="equipment_code" property="hostCode"></result>
  36. <result column="equipment_name" property="hostName"></result>
  37. <result column="org_name" property="orgName"></result>
  38. <result column="state" property="state"></result>
  39. <collection property="channels" ofType="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisAppPageChannelVo"
  40. column="equipmentCode=equipment_code,state=state"
  41. select="selectAppChannels">
  42. <result column="channel_code" property="channelCode"></result>
  43. <result column="channel_name" property="channelName"></result>
  44. <result column="state" property="state"></result>
  45. </collection>
  46. </resultMap>
  47. <select id="selectPage" resultType="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisWebPageVo">
  48. SELECT DISTINCT
  49. c.id,
  50. c.host_code,
  51. c.channel_code,
  52. c.org_name,
  53. o.affiliated_area,
  54. o.affiliated_bank,
  55. d.equipment_name as hostName,
  56. c.channel_name,
  57. c.channel_addr as channelIP,
  58. vic.lose_duration,
  59. vdc.plan_days,
  60. vdc.real_days,
  61. if(vdr.id is
  62. null,null,if(vdr.signal_lost+vdr.occlude+vdr.brightness+vdr.color_cast+vdr.snowflake+vdr.stripe+vdr.contrast+vdr.blurry>=1,1,0))
  63. as quality
  64. from iot_dvr_channel c
  65. INNER JOIN iot_device d on c.host_code=d.equipment_code
  66. inner join sys_org o on c.org_id =o.id and o.deleted=0 and o.is_lock='0'
  67. left JOIN mediator_video_days_check vdc on c.host_code=vdc.equipment_code and c.channel_code=vdc.channel_code
  68. left JOIN mediator_video_integrity_check vic on c.host_code=vic.equipment_code and
  69. c.channel_code=vic.channel_code
  70. left JOIN mediator_video_diagnosis_record vdr on c.host_code=vdr.equipment_code and
  71. c.channel_code=vdr.channel_code
  72. where c.deleted=0 and d.deleted=0
  73. <if test="pageDto.checkSub==true">
  74. and c.org_path like concat(#{orgPath},"%")
  75. </if>
  76. <if test="pageDto.checkSub==false">
  77. and c.org_id = #{pageDto.orgId}
  78. </if>
  79. <if test="pageDto.hostName!=null and pageDto.hostName!=''">
  80. and d.equipment_name like concat('%', #{pageDto.hostName},'%')
  81. </if>
  82. <if test="pageDto.channelName!=null and pageDto.channelName!=''">
  83. and c.channel_name like concat('%', #{pageDto.channelName},'%')
  84. </if>
  85. <if test="pageDto.integrityState!=null">
  86. and vic.status=#{pageDto.integrityState}
  87. </if>
  88. <if test="pageDto.daysState==0">
  89. and vdc.plan_days=vdc.real_days
  90. </if>
  91. <if test="pageDto.daysState==1">
  92. and vdc.plan_days!=vdc.real_days
  93. </if>
  94. <if test="pageDto.diagnosisState!=null">
  95. and vdr.is_alarm=#{pageDto.diagnosisState}
  96. </if>
  97. <!-- <if test="pageDto.status !=null">-->
  98. <!-- and dhd.`status` = #{pageDto.status}-->
  99. <!-- </if>-->
  100. </select>
  101. <select id="diagnosisDetail" resultMap="diagnosisDetailMap">
  102. SELECT d.equipment_name as hostName,
  103. c.channel_name as channelName,
  104. c.channel_addr as channelIp,
  105. vdr.update_time as quality_update_time,
  106. vdr.signal_lost as quality_signal_lost,
  107. vdr.occlude as quality_occlude,
  108. vdr.brightness as quality_brightness,
  109. vdr.color_cast as quality_colorCast,
  110. vdr.snowflake as quality_snowflake,
  111. vdr.stripe as quality_stripe,
  112. vdr.contrast as quality_contrast,
  113. vdr.blurry as quality_blurry,
  114. vdr.img_url as quality_image,
  115. vic.record_date as integrity_record_date,
  116. vic.lose_duration as integrity_lose_duration,
  117. vic.lose_span as integrity_lose_span,
  118. vic.check_span as integrity_check_span,
  119. vic.update_time as integrity_update_time,
  120. vic.status as integrity_status,
  121. vdc.plan_days as storage_plan_days,
  122. vdc.real_days as storage_real_days,
  123. vdc.earliest_video_time as storage_earliest_video_time
  124. FROM iot_dvr_channel c
  125. INNER JOIN iot_device d ON c.host_code = d.equipment_code
  126. LEFT JOIN mediator_video_days_check vdc
  127. ON c.host_code = vdc.equipment_code AND c.channel_code = vdc.channel_code
  128. LEFT JOIN mediator_video_integrity_check vic
  129. ON c.host_code = vic.equipment_code AND c.channel_code = vic.channel_code
  130. LEFT JOIN mediator_video_diagnosis_record vdr
  131. ON c.host_code = vdr.equipment_code AND c.channel_code = vdr.channel_code
  132. WHERE c.host_code = #{hostCode}
  133. and c.channel_code = #{channelCode}
  134. </select>
  135. <select id="selectAppChannels" resultType="com.xunmei.iot.vo.videoDiagnosis.VideoDiagnosisAppPageChannelVo">
  136. select dc.channel_code,
  137. dc.channel_name,
  138. 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))
  139. as state
  140. FROM iot_dvr_channel dc
  141. LEFT JOIN mediator_video_days_check vdc on dc.host_code=vdc.equipment_code and dc.channel_code
  142. =vdc.channel_code
  143. LEFT JOIN mediator_video_integrity_check vic on dc.host_code=vic.equipment_code and dc.channel_code
  144. =vic.channel_code
  145. LEFT JOIN mediator_video_diagnosis_record vdr on dc.host_code=vdr.equipment_code and dc.channel_code
  146. =vdr.channel_code
  147. where dc.host_code=#{equipmentCode} and dc.deleted=0
  148. <if test="state==0">
  149. and (vdc.`status`=0 or vic.`status`=0 or vdr.is_alarm=0)
  150. </if>
  151. <if test="state==1">
  152. and (vdc.`status`=1 or vic.`status`>0 or vdr.is_alarm=1)
  153. </if>
  154. <if test="state==2">
  155. and (vdc.`status` is null or vic.`status` is null or vdr.is_alarm is null)
  156. </if>
  157. order by dc.channel_code asc
  158. </select>
  159. <select id="selectAppPage" resultMap="appPageMap">
  160. SELECT equipment_code,
  161. equipment_name,
  162. org_name,
  163. #{pageDto.state} as state
  164. from iot_device
  165. WHERE category_id = #{pageDto.categoryId}
  166. <if test="pageDto.checkSub==true">
  167. and org_path like concat(#{orgPath}, '%')
  168. </if>
  169. <if test="pageDto.checkSub==false">
  170. and org_id=#{pageDto.orgId}
  171. </if>
  172. and deleted=0
  173. <if test="pageDto.state!=null">
  174. and equipment_code in (
  175. SELECT dc.host_code
  176. FROM iot_dvr_channel dc
  177. LEFT JOIN mediator_video_days_check vdc on dc.host_code=vdc.equipment_code and dc.channel_code
  178. =vdc.channel_code
  179. LEFT JOIN mediator_video_integrity_check vic on dc.host_code=vic.equipment_code and dc.channel_code
  180. =vic.channel_code
  181. LEFT JOIN mediator_video_diagnosis_record vdr on dc.host_code=vdr.equipment_code and dc.channel_code
  182. =vdr.channel_code
  183. WHERE dc.deleted=0
  184. <if test="pageDto.state==0">
  185. and (vdc.`status`=0 and vic.`status`=0 and vdr.is_alarm=0)
  186. </if>
  187. <if test="pageDto.state==1">
  188. and (vdc.`status`=1 or vic.`status`>0 or vdr.is_alarm=1)
  189. </if>
  190. <if test="pageDto.state==2">
  191. and (vdc.`status` is null or vic.`status` is null or vdr.is_alarm is null)
  192. </if>
  193. <if test="pageDto.checkSub==true">
  194. and dc.org_path like concat(#{orgPath}, '%')
  195. </if>
  196. <if test="pageDto.checkSub==false">
  197. and dc.org_id=#{pageDto.orgId}
  198. </if>
  199. GROUP BY dc.host_code
  200. )
  201. </if>
  202. </select>
  203. <select id="selectBadge" resultType="java.lang.Integer">
  204. SELECT sum(vdc.`status` > 0 or vic.`status` > 0 or vdc.`status` > 0) as count
  205. FROM iot_dvr_channel dc
  206. LEFT JOIN mediator_video_days_check vdc
  207. on vdc.equipment_code = dc.host_code and vdc.channel_code = dc.channel_code
  208. LEFT JOIN mediator_video_integrity_check vic
  209. on vic.equipment_code = dc.host_code and vic.channel_code = dc.channel_code
  210. LEFT JOIN mediator_video_diagnosis_record vdr
  211. on vdr.equipment_code = dc.host_code and vdr.channel_code = dc.channel_code
  212. WHERE dc.org_id = #{orgId}
  213. AND dc.deleted = 0
  214. </select>
  215. </mapper>