AlarmDetailMapper.xml 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555
  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.huaxu.dao.AlarmDetailMapper">
  4. <sql id="Base_Column_List">
  5. a.ID as "id"
  6. ,a.TENANT_ID as "tenantId"
  7. ,a.DEVICE_ID as "deviceId"
  8. ,a.COMPANY_ORG_ID as "companyOrgId"
  9. ,a.DEPT_ORG_ID as "deptOrgId"
  10. ,a.ALARM_TYPE as "alarmType"
  11. ,a.ATTRIBUTE_ID as "attributeId"
  12. ,a.ALARM_VALUE as "alarmValue"
  13. ,a.ALARM_CONTENT as "alarmContent"
  14. ,a.ALARM_START_TIME as "alarmStartTime"
  15. ,a.ALARM_END_TIME as "alarmEndTime"
  16. ,a.STATE as "state"
  17. ,a.OP_STATE as "opState"
  18. ,a.REMARK as "remark"
  19. ,a.STATUS as "status"
  20. ,a.DATE_CREATE as "dateCreate"
  21. ,a.CREATE_BY as "createBy"
  22. ,a.DATE_UPDATE as "dateUpdate"
  23. ,a.UPDATE_BY as "updateBy"
  24. ,a.MIN_VALUE as "minValue"
  25. ,a.MAX_VALUE as "maxValue"
  26. ,timestampdiff(MINUTE,ifnull(a.ALARM_END_TIME,now()),a.ALARM_START_TIME) as "duration"
  27. /*,(case when ALARM_END_TIME is not null then timestampdiff(MINUTE,a.ALARM_END_TIME,a.ALARM_START_TIME) else null end ) as "duration"*/
  28. ,att.`NAME` as "attributeName"
  29. ,s.SCENE_NAME as "sceneName"
  30. ,d.DEVICE_NAME as "deviceName"
  31. ,t.DEVICE_TYPE as "deviceType"
  32. ,d.ADDRESS as "address"
  33. ,d.POINT_X as "pointX"
  34. ,d.POINT_Y as "pointY"
  35. ,ast.ALARM_CONDITION +" " +ast.ALARM_VALUE as "alermRule"
  36. ,concat(ifnull(ast.ALARM_CONDITION,''),ifnull(ast.ALARM_VALUE,'')) as "alermRule"
  37. ,att.UNIT as "unit"
  38. </sql>
  39. <sql id="Base_Column_List_real_time">
  40. a.ID as "id"
  41. ,a.STATE as "state"
  42. ,a.OP_STATE as "opState"
  43. ,s.SCENE_NAME as "sceneName"
  44. ,d.DEVICE_NAME as "deviceName"
  45. ,t.DEVICE_TYPE as "deviceType"
  46. ,a.ALARM_TYPE as "alarmType"
  47. ,att.`NAME` as "attributeName"
  48. ,a.ALARM_START_TIME as "alarmStartTime"
  49. ,d.ADDRESS as "address"
  50. ,d.POINT_X as "pointX"
  51. ,d.POINT_Y as "pointY"
  52. ,a.ALARM_VALUE as "alarmValue"
  53. ,a.ALARM_CONTENT as "alarmContent"
  54. </sql>
  55. <sql id="Base_Column_List_history">
  56. a.ID as "id"
  57. ,a.STATE as "state"
  58. ,a.OP_STATE as "opState"
  59. ,s.SCENE_NAME as "sceneName"
  60. ,d.DEVICE_NAME as "deviceName"
  61. ,t.DEVICE_TYPE as "deviceType"
  62. ,a.ALARM_TYPE as "alarmType"
  63. ,att.`NAME` as "attributeName"
  64. ,a.ALARM_START_TIME as "alarmStartTime"
  65. ,d.ADDRESS as "address"
  66. ,d.POINT_X as "pointX"
  67. ,d.POINT_Y as "pointY"
  68. ,a.MIN_VALUE as "minValue"
  69. ,a.MAX_VALUE as "maxValue"
  70. ,concat(ifnull(ast.ALARM_CONDITION,''),ifnull(ast.ALARM_VALUE,'')) as "alermRule"
  71. ,a.ALARM_END_TIME as "alarmEndTime"
  72. ,timestampdiff(MINUTE,ifnull(a.ALARM_END_TIME,now()),a.ALARM_START_TIME) as "duration"
  73. </sql>
  74. <sql id="alarmDetailJoins">
  75. left join sms_device d on a.DEVICE_ID =d.id and d.`STATUS` = 1
  76. left join sms_scene s on d.SCENE_ID =s.id and s.`STATUS` =1
  77. left join sms_device_type t on d.DEVICE_TYPE_ID =t.ID
  78. left join sms_alarm_setting ast on ast.id= a.ATTRIBUTE_ID
  79. left join sms_device_attribute att on att.id=ast.ATTRIBUTE_ID
  80. </sql>
  81. <select id="selectById" resultType="com.huaxu.dto.AlarmDetailsDto">
  82. select
  83. <include refid="Base_Column_List"/>
  84. from sms_alarm_details a
  85. <include refid="alarmDetailJoins"/>
  86. where a.`STATUS` = 1
  87. and a.id=#{id}
  88. </select>
  89. <!--通过实体作为筛选条件查询-->
  90. <select id="selectList" resultType="com.huaxu.dto.AlarmDetailsDto">
  91. select
  92. <include refid="Base_Column_List"/>
  93. from sms_alarm_details a
  94. <include refid="alarmDetailJoins"/>
  95. where a.`STATUS` = 1
  96. <if test="alarmDetailsDto.condition != null and alarmDetailsDto.condition != ''">
  97. and (s.SCENE_NAME like concat('%', #{alarmDetailsDto.condition},'%') or d.DEVICE_NAME like concat('%', #{alarmDetailsDto.condition},'%') )
  98. </if>
  99. <if test="alarmDetailsDto.tenantId != null and alarmDetailsDto.tenantId != ''">
  100. and a.TENANT_ID = #{alarmDetailsDto.tenantId}
  101. </if>
  102. <if test="alarmDetailsDto.alarmType != null and alarmDetailsDto.alarmType != ''">
  103. and a.ALARM_TYPE = #{alarmDetailsDto.alarmType}
  104. </if>
  105. <if test="alarmDetailsDto.opState != null">
  106. and a.OP_STATE =#{alarmDetailsDto.opState}
  107. </if>
  108. <if test="alarmDetailsDto.startTime != null">
  109. and a.ALARM_START_TIME >=#{alarmDetailsDto.startTime}
  110. </if>
  111. <if test="alarmDetailsDto.endTime != null">
  112. and a.ALARM_START_TIME &lt;=DATE_ADD(#{alarmDetailsDto.endTime},INTERVAL 1 DAY)
  113. </if>
  114. <if test="alarmDetailsDto.userType!=null and alarmDetailsDto.userType!=-999 and alarmDetailsDto.userType!=-9999 and alarmDetailsDto.programItems != null and alarmDetailsDto.programItems.size() > 0">
  115. <if test="alarmDetailsDto.permissonType == 5 or alarmDetailsDto.permissonType == 2">
  116. and ( a.DEPT_ORG_ID in
  117. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  118. #{item.orgId}
  119. </foreach>
  120. or
  121. a.COMPANY_ORG_ID in
  122. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  123. #{item.orgId}
  124. </foreach>
  125. )
  126. </if>
  127. <if test="alarmDetailsDto.permissonType == 4 or alarmDetailsDto.permissonType == 3">
  128. and a.DEPT_ORG_ID in
  129. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  130. #{item.orgId}
  131. </foreach>
  132. </if>
  133. <if test="alarmDetailsDto.permissonType == 1">
  134. and a.COMPANY_ORG_ID in
  135. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  136. #{item.orgId}
  137. </foreach>
  138. and (a.DEPT_ORG_ID is null or a.DEPT_ORG_ID =0)
  139. </if>
  140. </if>
  141. </select>
  142. <!-- 新增所有列 -->
  143. <insert id="insert" keyProperty="id" useGeneratedKeys="true">
  144. INSERT INTO sms_alarm_details ( TENANT_ID , DEVICE_ID , COMPANY_ORG_ID , DEPT_ORG_ID , ALARM_TYPE , ATTRIBUTE_ID , ALARM_VALUE , ALARM_CONTENT , ALARM_START_TIME , ALARM_END_TIME , STATE , OP_STATE , REMARK , STATUS , DATE_CREATE , CREATE_BY , DATE_UPDATE , UPDATE_BY )
  145. VALUES ( #{tenantId} , #{deviceId} , #{companyOrgId} , #{deptOrgId} , #{alarmType} , #{attributeId} , #{alarmValue} , #{alarmContent} , #{alarmStartTime} , #{alarmEndTime} , #{state} , #{opState} , #{remark} , #{status} , #{dateCreate} , #{createBy} , #{dateUpdate} , #{updateBy} )
  146. </insert>
  147. <!-- 批量新增 -->
  148. <insert id="batchInsert">
  149. INSERT INTO sms_alarm_details ( TENANT_ID , DEVICE_ID , COMPANY_ORG_ID , DEPT_ORG_ID , ALARM_TYPE , ATTRIBUTE_ID , ALARM_VALUE , ALARM_CONTENT , ALARM_START_TIME , ALARM_END_TIME , STATE , OP_STATE , REMARK , STATUS , DATE_CREATE , CREATE_BY , DATE_UPDATE , UPDATE_BY )
  150. values
  151. <foreach collection="alarmDetails" item="item" index="index" separator=",">
  152. ( #{item.tenantId} , #{item.deviceId} , #{item.companyOrgId} , #{item.deptOrgId} , #{item.alarmType} , #{item.attributeId} , #{item.alarmValue} , #{item.alarmContent} , #{item.alarmStartTime} , #{item.alarmEndTime} , #{item.state} , #{item.opState} , #{item.remark} , #{item.status} , #{item.dateCreate} , #{item.createBy} , #{item.dateUpdate} , #{item.updateBy} )
  153. </foreach>
  154. </insert>
  155. <!-- 通过主键修改数据 -->
  156. <update id="update">
  157. UPDATE sms_alarm_details
  158. <set>
  159. <if test="tenantId != null and tenantId != '' ">
  160. TENANT_ID = #{tenantId},
  161. </if>
  162. <if test="deviceId != null ">
  163. DEVICE_ID = #{deviceId},
  164. </if>
  165. <if test="companyOrgId != null ">
  166. COMPANY_ORG_ID = #{companyOrgId},
  167. </if>
  168. <if test="deptOrgId != null ">
  169. DEPT_ORG_ID = #{deptOrgId},
  170. </if>
  171. <if test="alarmType != null ">
  172. ALARM_TYPE = #{alarmType},
  173. </if>
  174. <if test="attributeId != null ">
  175. ATTRIBUTE_ID = #{attributeId},
  176. </if>
  177. <if test="alarmValue != null ">
  178. ALARM_VALUE = #{alarmValue},
  179. </if>
  180. <if test="alarmContent != null and alarmContent != '' ">
  181. ALARM_CONTENT = #{alarmContent},
  182. </if>
  183. <if test="alarmStartTime != null ">
  184. ALARM_START_TIME = #{alarmStartTime},
  185. </if>
  186. <if test="alarmStartTime != null ">
  187. ALARM_START_TIME = #{alarmStartTime},
  188. </if>
  189. <if test="alarmEndTime != null ">
  190. ALARM_END_TIME = #{alarmEndTime},
  191. </if>
  192. <if test="state != null ">
  193. STATE = #{state},
  194. </if>
  195. <if test="opState != null ">
  196. OP_STATE = #{opState},
  197. </if>
  198. <if test="remark != null and remark != '' ">
  199. REMARK = #{remark},
  200. </if>
  201. <if test="status != null ">
  202. STATUS = #{status},
  203. </if>
  204. <if test="dateUpdate != null ">
  205. DATE_UPDATE = #{dateUpdate},
  206. </if>
  207. <if test="updateBy != null and updateBy != ''">
  208. UPDATE_BY = #{updateBy}
  209. </if>
  210. </set>
  211. WHERE ID = #{id};
  212. </update>
  213. <!--通过主键删除-->
  214. <delete id="deleteById">
  215. UPDATE sms_alarm_details set STATUS = 0 where id = #{id}
  216. </delete>
  217. <!--删除-->
  218. <delete id="batchDelete">
  219. UPDATE sms_alarm_details set STATUS = 0
  220. where id in
  221. <foreach collection="ids" item="item" open="(" close=")" separator=",">
  222. #{item}
  223. </foreach>
  224. </delete>
  225. <!-- 报警挂起、恢复 -->
  226. <delete id="suspendedById">
  227. UPDATE sms_alarm_details set op_state = #{opState} , DATE_UPDATE = #{dateUpdate}, UPDATE_BY = #{updateBy} where id = #{id}
  228. </delete>
  229. <!-- 分页查询 -->
  230. <select id="selectPage" resultType="com.huaxu.dto.AlarmDetailsDto">
  231. select
  232. <include refid="Base_Column_List"/>
  233. from sms_alarm_details a
  234. <include refid="alarmDetailJoins"/>
  235. where a.`STATUS` = 1
  236. <if test="alarmDetailsDto.condition != null and alarmDetailsDto.condition != ''">
  237. and (s.SCENE_NAME like concat('%', #{alarmDetailsDto.condition},'%') or d.DEVICE_NAME like concat('%', #{alarmDetailsDto.condition},'%') )
  238. </if>
  239. <if test="alarmDetailsDto.tenantId != null and alarmDetailsDto.tenantId != ''">
  240. and a.TENANT_ID = #{alarmDetailsDto.tenantId}
  241. </if>
  242. <if test="alarmDetailsDto.alarmType != null and alarmDetailsDto.alarmType != ''">
  243. and a.ALARM_TYPE = #{alarmDetailsDto.alarmType}
  244. </if>
  245. <if test="alarmDetailsDto.state != null">
  246. and a.STATE =#{alarmDetailsDto.state}
  247. </if>
  248. <if test="alarmDetailsDto.opState != null">
  249. and a.OP_STATE =#{alarmDetailsDto.opState}
  250. </if>
  251. <if test="alarmDetailsDto.startTime != null">
  252. and a.ALARM_START_TIME >=#{alarmDetailsDto.startTime}
  253. </if>
  254. <if test="alarmDetailsDto.endTime != null">
  255. and a.ALARM_START_TIME &lt;=DATE_ADD(#{alarmDetailsDto.endTime},INTERVAL 1 DAY)
  256. </if>
  257. <if test="alarmDetailsDto.userType!=null and alarmDetailsDto.userType!=-999 and alarmDetailsDto.userType!=-9999 and alarmDetailsDto.programItems != null and alarmDetailsDto.programItems.size() > 0">
  258. <if test="alarmDetailsDto.permissonType == 5 or alarmDetailsDto.permissonType == 2">
  259. and ( a.DEPT_ORG_ID in
  260. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  261. #{item.orgId}
  262. </foreach>
  263. or
  264. a.COMPANY_ORG_ID in
  265. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  266. #{item.orgId}
  267. </foreach>
  268. )
  269. </if>
  270. <if test="alarmDetailsDto.permissonType == 4 or alarmDetailsDto.permissonType == 3">
  271. and a.DEPT_ORG_ID in
  272. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  273. #{item.orgId}
  274. </foreach>
  275. </if>
  276. <if test="alarmDetailsDto.permissonType == 1">
  277. and a.COMPANY_ORG_ID in
  278. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  279. #{item.orgId}
  280. </foreach>
  281. and (a.DEPT_ORG_ID is null or a.DEPT_ORG_ID =0)
  282. </if>
  283. </if>
  284. </select>
  285. <!-- 实时数据分页分页查询 -->
  286. <select id="selectRealTimePage" resultType="com.huaxu.dto.AlarmDetailsRealTimeDto">
  287. select
  288. <include refid="Base_Column_List_real_time"/>
  289. from sms_alarm_details a
  290. <include refid="alarmDetailJoins"/>
  291. where a.`STATUS` = 1 and a.state = 1
  292. <if test="alarmDetailsDto.condition != null and alarmDetailsDto.condition != ''">
  293. and (s.SCENE_NAME like concat('%', #{alarmDetailsDto.condition},'%') or d.DEVICE_NAME like concat('%', #{alarmDetailsDto.condition},'%') )
  294. </if>
  295. <if test="alarmDetailsDto.tenantId != null and alarmDetailsDto.tenantId != ''">
  296. and a.TENANT_ID = #{alarmDetailsDto.tenantId}
  297. </if>
  298. <if test="alarmDetailsDto.alarmType != null and alarmDetailsDto.alarmType != ''" >
  299. and a.ALARM_TYPE = #{alarmDetailsDto.alarmType}
  300. </if>
  301. <if test="alarmDetailsDto.opState != null">
  302. and a.OP_STATE =#{alarmDetailsDto.opState}
  303. </if>
  304. <if test="alarmDetailsDto.startTime != null">
  305. and a.ALARM_START_TIME >=#{alarmDetailsDto.startTime}
  306. </if>
  307. <if test="alarmDetailsDto.endTime != null">
  308. and a.ALARM_START_TIME &lt;=DATE_ADD(#{alarmDetailsDto.endTime},INTERVAL 1 DAY)
  309. </if>
  310. <if test="alarmDetailsDto.userType!=null and alarmDetailsDto.userType!=-999 and alarmDetailsDto.userType!=-9999 and alarmDetailsDto.programItems != null and alarmDetailsDto.programItems.size() > 0">
  311. <if test="alarmDetailsDto.permissonType == 5 or alarmDetailsDto.permissonType == 2">
  312. and ( a.DEPT_ORG_ID in
  313. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  314. #{item.orgId}
  315. </foreach>
  316. or
  317. a.COMPANY_ORG_ID in
  318. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  319. #{item.orgId}
  320. </foreach>
  321. )
  322. </if>
  323. <if test="alarmDetailsDto.permissonType == 4 or alarmDetailsDto.permissonType == 3">
  324. and a.DEPT_ORG_ID in
  325. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  326. #{item.orgId}
  327. </foreach>
  328. </if>
  329. <if test="alarmDetailsDto.permissonType == 1">
  330. and a.COMPANY_ORG_ID in
  331. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  332. #{item.orgId}
  333. </foreach>
  334. and (a.DEPT_ORG_ID is null or a.DEPT_ORG_ID =0)
  335. </if>
  336. </if>
  337. </select>
  338. <!-- 历史数据分页分页查询 -->
  339. <select id="selectHistoryPage" resultType="com.huaxu.dto.AlarmDetailsHistoryDto">
  340. select
  341. <include refid="Base_Column_List_history"/>
  342. from sms_alarm_details a
  343. <include refid="alarmDetailJoins"/>
  344. where a.`STATUS` = 1 and a.state = 0
  345. <if test="alarmDetailsDto.condition != null and alarmDetailsDto.condition != ''">
  346. and (s.SCENE_NAME like concat('%', #{alarmDetailsDto.condition},'%') or d.DEVICE_NAME like concat('%', #{alarmDetailsDto.condition},'%') )
  347. </if>
  348. <if test="alarmDetailsDto.tenantId != null and alarmDetailsDto.tenantId != ''">
  349. and a.TENANT_ID = #{alarmDetailsDto.tenantId}
  350. </if>
  351. <if test="alarmDetailsDto.alarmType != null and alarmDetailsDto.alarmType != ''">
  352. and a.ALARM_TYPE = #{alarmDetailsDto.alarmType}
  353. </if>
  354. <if test="alarmDetailsDto.opState != null">
  355. and a.OP_STATE =#{alarmDetailsDto.opState}
  356. </if>
  357. <if test="alarmDetailsDto.startTime != null">
  358. and a.ALARM_START_TIME >=#{alarmDetailsDto.startTime}
  359. </if>
  360. <if test="alarmDetailsDto.endTime != null">
  361. and a.ALARM_START_TIME &lt;=DATE_ADD(#{alarmDetailsDto.endTime},INTERVAL 1 DAY)
  362. </if>
  363. <if test="alarmDetailsDto.userType!=null and alarmDetailsDto.userType!=-999 and alarmDetailsDto.userType!=-9999 and alarmDetailsDto.programItems != null and alarmDetailsDto.programItems.size() > 0">
  364. <if test="alarmDetailsDto.permissonType == 5 or alarmDetailsDto.permissonType == 2">
  365. and ( a.DEPT_ORG_ID in
  366. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  367. #{item.orgId}
  368. </foreach>
  369. or
  370. a.COMPANY_ORG_ID in
  371. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  372. #{item.orgId}
  373. </foreach>
  374. )
  375. </if>
  376. <if test="alarmDetailsDto.permissonType == 4 or alarmDetailsDto.permissonType == 3">
  377. and a.DEPT_ORG_ID in
  378. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  379. #{item.orgId}
  380. </foreach>
  381. </if>
  382. <if test="alarmDetailsDto.permissonType == 1">
  383. and a.COMPANY_ORG_ID in
  384. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  385. #{item.orgId}
  386. </foreach>
  387. and (a.DEPT_ORG_ID is null or a.DEPT_ORG_ID =0)
  388. </if>
  389. </if>
  390. </select>
  391. <!--通过实体作为筛选条件查询-->
  392. <select id="selectRealTimeList" resultType="com.huaxu.dto.AlarmDetailsRealTimeDto">
  393. select
  394. <include refid="Base_Column_List_real_time"/>
  395. from sms_alarm_details a
  396. <include refid="alarmDetailJoins"/>
  397. where a.`STATUS` = 1 and a.state = 1
  398. <if test="alarmDetailsDto.condition != null and alarmDetailsDto.condition != ''">
  399. and (s.SCENE_NAME like concat('%', #{alarmDetailsDto.condition},'%') or d.DEVICE_NAME like concat('%', #{alarmDetailsDto.condition},'%') )
  400. </if>
  401. <if test="alarmDetailsDto.tenantId != null and alarmDetailsDto.tenantId != ''">
  402. and a.TENANT_ID = #{alarmDetailsDto.tenantId}
  403. </if>
  404. <if test="alarmDetailsDto.alarmType != null and alarmDetailsDto.alarmType != ''">
  405. and a.ALARM_TYPE = #{alarmDetailsDto.alarmType}
  406. </if>
  407. <if test="alarmDetailsDto.opState != null">
  408. and a.OP_STATE =#{alarmDetailsDto.opState}
  409. </if>
  410. <if test="alarmDetailsDto.startTime != null">
  411. and a.ALARM_START_TIME >=#{alarmDetailsDto.startTime}
  412. </if>
  413. <if test="alarmDetailsDto.endTime != null">
  414. and a.ALARM_START_TIME &lt;=DATE_ADD(#{alarmDetailsDto.endTime},INTERVAL 1 DAY)
  415. </if>
  416. <if test="alarmDetailsDto.userType!=null and alarmDetailsDto.userType!=-999 and alarmDetailsDto.userType!=-9999 and alarmDetailsDto.programItems != null and alarmDetailsDto.programItems.size() > 0">
  417. <if test="alarmDetailsDto.permissonType == 5 or alarmDetailsDto.permissonType == 2">
  418. and ( a.DEPT_ORG_ID in
  419. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  420. #{item.orgId}
  421. </foreach>
  422. or
  423. a.COMPANY_ORG_ID in
  424. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  425. #{item.orgId}
  426. </foreach>
  427. )
  428. </if>
  429. <if test="alarmDetailsDto.permissonType == 4 or alarmDetailsDto.permissonType == 3">
  430. and a.DEPT_ORG_ID in
  431. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  432. #{item.orgId}
  433. </foreach>
  434. </if>
  435. <if test="alarmDetailsDto.permissonType == 1">
  436. and a.COMPANY_ORG_ID in
  437. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  438. #{item.orgId}
  439. </foreach>
  440. and (a.DEPT_ORG_ID is null or a.DEPT_ORG_ID =0)
  441. </if>
  442. </if>
  443. </select>
  444. <!--通过实体作为筛选条件查询-->
  445. <select id="selectHistoryList" resultType="com.huaxu.dto.AlarmDetailsHistoryDto">
  446. select
  447. <include refid="Base_Column_List_history"/>
  448. from sms_alarm_details a
  449. <include refid="alarmDetailJoins"/>
  450. where a.`STATUS` = 1 and a.state = 0
  451. <if test="alarmDetailsDto.condition != null and alarmDetailsDto.condition != ''">
  452. and (s.SCENE_NAME like concat('%', #{alarmDetailsDto.condition},'%') or d.DEVICE_NAME like concat('%', #{alarmDetailsDto.condition},'%') )
  453. </if>
  454. <if test="alarmDetailsDto.tenantId != null and alarmDetailsDto.tenantId != ''">
  455. and a.TENANT_ID = #{alarmDetailsDto.tenantId}
  456. </if>
  457. <if test="alarmDetailsDto.alarmType != null and alarmDetailsDto.alarmType != ''">
  458. and a.ALARM_TYPE = #{alarmDetailsDto.alarmType}
  459. </if>
  460. <if test="alarmDetailsDto.opState != null">
  461. and a.OP_STATE =#{alarmDetailsDto.opState}
  462. </if>
  463. <if test="alarmDetailsDto.startTime != null">
  464. and a.ALARM_START_TIME >=#{alarmDetailsDto.startTime}
  465. </if>
  466. <if test="alarmDetailsDto.endTime != null">
  467. and a.ALARM_START_TIME &lt;=DATE_ADD(#{alarmDetailsDto.endTime},INTERVAL 1 DAY)
  468. </if>
  469. <if test="alarmDetailsDto.userType!=null and alarmDetailsDto.userType!=-999 and alarmDetailsDto.userType!=-9999 and alarmDetailsDto.programItems != null and alarmDetailsDto.programItems.size() > 0">
  470. <if test="alarmDetailsDto.permissonType == 5 or alarmDetailsDto.permissonType == 2">
  471. and ( a.DEPT_ORG_ID in
  472. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  473. #{item.orgId}
  474. </foreach>
  475. or
  476. a.COMPANY_ORG_ID in
  477. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  478. #{item.orgId}
  479. </foreach>
  480. )
  481. </if>
  482. <if test="alarmDetailsDto.permissonType == 4 or alarmDetailsDto.permissonType == 3">
  483. and a.DEPT_ORG_ID in
  484. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  485. #{item.orgId}
  486. </foreach>
  487. </if>
  488. <if test="alarmDetailsDto.permissonType == 1">
  489. and a.COMPANY_ORG_ID in
  490. <foreach collection="alarmDetailsDto.programItems" item="item" open="(" close=")" separator=",">
  491. #{item.orgId}
  492. </foreach>
  493. and (a.DEPT_ORG_ID is null or a.DEPT_ORG_ID =0)
  494. </if>
  495. </if>
  496. </select>
  497. <select id="selectDeviceForCheckAlarm" resultType="com.huaxu.dto.DeviceStateAlarmDto">
  498. select
  499. d.TENANT_ID as "tenantId"
  500. ,d.id as "deviceId"
  501. ,d.COMPANY_ORG_ID as "companyOrgId"
  502. ,d.DEPT_ORG_ID as "deptOrgId"
  503. ,a.ALARM_TYPE as "alarmType"
  504. ,a.ATTRIBUTE_ID as "attributeId"
  505. ,d.LAST_UPDATE_TIME as "lastUpdateTime"
  506. ,timestampdiff(MINUTE,d.LAST_UPDATE_TIME,now()) as "duration"
  507. ,a.ALARM_CONDITION as "alarmCondition"
  508. ,a.ALARM_VALUE as "alarmValue"
  509. from sms_device d
  510. left join sms_alarm_setting a on a.DEVICE_ID =d.ID and a.ALARM_TYPE ='状态报警'
  511. </select>
  512. <select id="selectStateAlarm" resultType="com.huaxu.dto.AlarmDetailsDto">
  513. select
  514. id as "id"
  515. ,ALARM_VALUE as "alarmValue"
  516. ,ALARM_CONTENT as "alarmContent"
  517. ,ALARM_START_TIME as "alarmStartTime"
  518. ,max_value as "maxValue"
  519. ,min_value as "minValue"
  520. from sms_alarm_details where ALARM_TYPE='状态报警' and STATE = 1 and status = 1
  521. </select>
  522. </mapper>