IotAlarmRuleSourceMapper.xml 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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.IotAlarmRuleSourceMapper">
  4. <select id="selectDetailData" resultType="com.xunmei.iot.vo.alarm.IotAlarmRuleSourceDetailVo">
  5. select r.id as ruleId,
  6. r.enabled as enable,
  7. r.name as ruleName,
  8. r.remark as ruleRemark,
  9. r.type as ruleType,
  10. e.source_type as sourceType
  11. from t_app_alarm_rule r
  12. inner join t_app_alarm_rule_express e on r.id = e.rule_id
  13. where r.id = #{ruleId}
  14. </select>
  15. <resultMap id="product_type_data" type="com.xunmei.iot.vo.alarm.ProductTypeDataVo">
  16. <result property="type" column="type"/>
  17. <result property="valueType" column="value_type"/>
  18. <result property="typeText" column="type_text"/>
  19. <collection property="deviceTempList" ofType="com.xunmei.iot.vo.alarm.ProductDeviceTempVo">
  20. <result property="deviceId" column="device_id"/>
  21. <result property="orgId" column="org_id"/>
  22. <result property="orgName" column="org_name"/>
  23. <result property="orgPath" column="org_path"/>
  24. </collection>
  25. </resultMap>
  26. <select id="selectRuleDevice" resultMap="product_type_data">
  27. SELECT
  28. a.source_type AS type,
  29. d.source_type_des as type_text,
  30. b.value_type,
  31. b.`value` AS device_id,
  32. b.org_id,
  33. c.`name` AS org_name,
  34. c.path AS org_path
  35. FROM
  36. ( SELECT rule_id, source_type FROM iot_alarm_rule_express GROUP BY source_type, rule_id ) a
  37. LEFT JOIN iot_alarm_rule_source b ON a.rule_id = b.rule_id AND a.source_type = b.source_type
  38. LEFT JOIN sys_org c ON b.org_id = c.id
  39. LEFT JOIN (select source_type,source_type_des from iot_alarm_system_field GROUP BY source_type,source_type_des) d on a.source_type = d.source_type
  40. where a.rule_id = #{ruleId}
  41. </select>
  42. <select id="selectDeviceList" resultType="com.xunmei.iot.vo.alarm.IotAlarmRuleSourceDeviceVo">
  43. SELECT DISTINCT
  44. d.device_code AS deviceId,
  45. d.device_name AS deviceName,
  46. d.org_id AS orgId,
  47. d.org_path AS orgPath,
  48. CONCAT(b.affiliated_area,'-',b.affiliated_bank,'-',b.short_name) as org_name
  49. FROM
  50. iot_sensor d
  51. LEFT JOIN sys_org b ON d.org_id = b.id
  52. where 1=1
  53. <if test="param.includeSub == false">
  54. and d.org_id = #{param.orgId}
  55. </if>
  56. <if test="param.includeSub == true">
  57. and b.path like concat((select path from sys_org where id = #{param.orgId} ),'%')
  58. </if>
  59. and d.device_type = #{param.type}
  60. <if test="param.deviceName != null and param.deviceName != ''">
  61. and d.device_name like concat('%',#{param.deviceName},'%')
  62. </if>
  63. </select>
  64. <select id="getRuleSourceSize" resultType="com.xunmei.iot.vo.alarm.IotAlarmRuleSourceTotalVo">
  65. SELECT
  66. a.source_type,
  67. a.source_type_des AS source_name,
  68. IFNULL( b.source_size, 0 ) AS source_size
  69. FROM
  70. ( SELECT source_type, source_type_des FROM iot_alarm_system_field GROUP BY source_type, source_type_des ) a
  71. LEFT JOIN ( SELECT rule_id, source_type, count(*) source_size FROM iot_alarm_rule_source WHERE rule_id = #{ruleId} GROUP BY rule_id, source_type ) b ON a.source_type = b.source_type
  72. </select>
  73. </mapper>