AlarmSettingMapper.xml 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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.AlarmSettingMapper">
  4. <!-- 结果集 -->
  5. <resultMap type="com.huaxu.dto.AlarmSettingDto" id="alarmSettingMap">
  6. <result property="id" column="ID" jdbcType="INTEGER"/>
  7. <result property="companyOrgId" column="company_org_id" jdbcType="INTEGER"/>
  8. <result property="deptOrgId" column="dept_org_id" jdbcType="INTEGER"/>
  9. <result property="sceneId" column="scene_id" jdbcType="INTEGER"/>
  10. <result property="sceneName" column="scene_name" jdbcType="VARCHAR"/>
  11. <result property="deviceId" column="device_id" jdbcType="INTEGER"/>
  12. <result property="deviceName" column="device_name" jdbcType="VARCHAR"/>
  13. <result property="deviceType" column="device_type" jdbcType="VARCHAR"/>
  14. <result property="attributeId" column="attribute_id" jdbcType="INTEGER"/>
  15. <result property="attributeName" column="attribute_name" jdbcType="VARCHAR"/>
  16. <result property="alarmType" column="alarm_type" jdbcType="VARCHAR"/>
  17. <result property="alarmCondition" column="alarm_condition" jdbcType="VARCHAR"/>
  18. <result property="alarmValue" column="alarm_value" jdbcType="VARCHAR"/>
  19. <result property="remark" column="remark" jdbcType="VARCHAR"/>
  20. <result property="status" column="status" jdbcType="INTEGER"/>
  21. <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
  22. <result property="dateCreate" column="date_create" jdbcType="TIMESTAMP"/>
  23. <result property="updateBy" column="update_by" jdbcType="VARCHAR"/>
  24. <result property="dateUpdate" column="date_update" jdbcType="TIMESTAMP"/>
  25. </resultMap>
  26. <!-- 基本字段 -->
  27. <sql id="Base_Column_List">
  28. t1.*,t2.company_org_id,t2.dept_org_id,t2.scene_id,t3.scene_name,t2.device_name,t2.device_type_id,t5.device_type,t4.name attribute_name
  29. </sql>
  30. <!-- 外联表 -->
  31. <sql id="leftJoins">
  32. left join sms_device t2 on t1.device_id=t2.id and t2.status =1
  33. left join sms_scene t3 on t2.scene_id=t3.id and t3.status =1
  34. left join sms_device_attribute t4 on t1.attribute_id=t4.id and t4.status =1
  35. left join sms_device_type t5 on t2.device_type_id=t5.id and t5.status =1
  36. </sql>
  37. <select id="findPage" resultMap="alarmSettingMap">
  38. select
  39. <include refid="Base_Column_List"/>
  40. from sms_alarm_setting t1
  41. <include refid="leftJoins"/>
  42. <where>
  43. <if test="alarm.id != null">
  44. and t1.id = #{alarm.id}
  45. </if>
  46. <if test="alarm.tenantId != null and alarm.tenantId != ''">
  47. and t1.tenant_id = #{alarm.tenantId}
  48. </if>
  49. <if test="alarm.attributeName != null and alarm.attributeName != ''">
  50. and t4.name like CONCAT('%',#{alarm.attributeName},'%')
  51. </if>
  52. <if test="alarm.sceneId != null ">
  53. and t2.scene_id = #{alarm.sceneId}
  54. </if>
  55. <if test="alarm.sceneIds != null and alarm.sceneIds.size()>0">
  56. and t2.scene_id in
  57. <foreach item="item" index="index" collection="alarm.sceneIds" open="("
  58. separator="," close=")">
  59. #{item}
  60. </foreach>
  61. </if>
  62. <if test="alarm.userType!=null and alarm.userType!=-999 and alarm.userType!=-9999 and alarm.programItems != null and alarm.programItems.size() > 0">
  63. <if test="alarm.permissonType == 5 or alarm.permissonType == 2">
  64. and ( t2.DEPT_ORG_ID in
  65. <foreach collection="alarm.programItems" item="item" open="(" close=")" separator=",">
  66. #{item.orgId}
  67. </foreach>
  68. or
  69. t2.COMPANY_ORG_ID in
  70. <foreach collection="alarm.programItems" item="item" open="(" close=")" separator=",">
  71. #{item.orgId}
  72. </foreach>
  73. )
  74. </if>
  75. <if test="alarm.permissonType == 4 or alarm.permissonType == 3">
  76. and t2.DEPT_ORG_ID in
  77. <foreach collection="alarm.programItems" item="item" open="(" close=")" separator=",">
  78. #{item.orgId}
  79. </foreach>
  80. </if>
  81. <if test="alarm.permissonType == 1">
  82. and t2.COMPANY_ORG_ID in
  83. <foreach collection="alarm.programItems" item="item" open="(" close=")" separator=",">
  84. #{item.orgId}
  85. </foreach>
  86. and (t2.DEPT_ORG_ID is null or t2.DEPT_ORG_ID =0)
  87. </if>
  88. </if>
  89. and t1.status =1
  90. </where>
  91. order by t1.device_id,t1.date_create
  92. </select>
  93. <select id="selectAttributes" resultMap="alarmSettingMap">
  94. select t2.id attribute_id,t2.name attribute_name
  95. from sms_device t1
  96. inner join sms_device_attribute t2 on t1.device_type_id=t2.device_type_id and t2.status =1
  97. inner join sms_device_parm t3 on t3.device_id=t1.id and t3.attribute_id=t2.id and t3.status=1
  98. where t1.id=#{deviceId} and t1.status=1 and t3.is_alarm=1
  99. order by t2.name
  100. </select>
  101. </mapper>