MonitorDataMapper.xml 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  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.MonitorDataMapper">
  4. <resultMap id="DeviceMonitorInfo" type="com.huaxu.entity.MonitorDataEntity">
  5. <result property="tenantId" column="tenantId" jdbcType="INTEGER"/>
  6. <result property="parentSceneId" column="parentSceneId" jdbcType="INTEGER"/>
  7. <result property="parentSceneName" column="parentSceneName" jdbcType="INTEGER"/>
  8. <result property="sceneId" column="sceneId" jdbcType="INTEGER"/>
  9. <result property="sceneName" column="sceneName" jdbcType="INTEGER"/>
  10. <result property="deviceId" column="deviceId" jdbcType="INTEGER"/>
  11. <result property="deviceName" column="deviceName" jdbcType="INTEGER"/>
  12. <result property="deviceCode" column="deviceCode" jdbcType="INTEGER"/>
  13. <collection property="dataValues" ofType="com.huaxu.entity.MonitorDataValueEntity" >
  14. <result property="attributeId" column="attributeId" jdbcType="INTEGER"/>
  15. <result property="attributeName" column="attributeName" jdbcType="INTEGER"/>
  16. <result property="identifier" column="identifier" jdbcType="INTEGER"/>
  17. <result property="unit" column="unit" jdbcType="INTEGER"/>
  18. </collection>
  19. </resultMap>
  20. <select id="getDeviceMonitorInfoByDeviceCode" resultMap="DeviceMonitorInfo">
  21. select
  22. d.TENANT_ID as "tenantId"
  23. ,ps.id as "parentSceneId"
  24. ,ps.SCENE_NAME as "parentSceneName"
  25. ,s.id as "sceneId"
  26. ,s.SCENE_NAME as "sceneName"
  27. ,d.id as "deviceId"
  28. ,d.DEVICE_NAME as "deviceName"
  29. ,d.DEVICE_CODE as "deviceCode"
  30. ,da.id as "attributeId"
  31. ,da.NAME as "attributeName"
  32. ,da.IDENTIFIER as "identifier"
  33. ,da.UNIT as "unit"
  34. from sms_device d
  35. left join sms_scene s on s.id = d.SCENE_ID and s.STATUS = 1
  36. left join sms_scene ps on s.PARENT_SCENE_IDS LIKE concat('%,', ps.id ,',%') and ps.PARENT_SCENE_ID ='0' and ps.STATUS = 1
  37. left join sms_device_type dt on dt.id=d.DEVICE_TYPE_ID and dt.STATUS = 1
  38. left join sms_device_attribute da on dt.id=da.DEVICE_TYPE_ID and da.STATUS = 1
  39. where d.STATUS =1 and d.DEVICE_CODE=#{deviceCode}
  40. </select>
  41. <insert id="batchInsertDayReport">
  42. INSERT INTO sms_day_report(
  43. TENANT_ID, YEAR, MONTH, DAY, HOUR, PARENT_SCENE_ID, PARENT_SCENE_NAME, SCENE_ID, SCENE_NAME, DEVICE_ID, DEVICE_NAME, DEVICE_CODE, ATTRIBUTE_ID,
  44. ATTRIBUTE_NAME, MIN_VALUE, MAX_VALUE, AVG_VALUE, SUM_VALUE, LATEST_VALUE, COLLECT_DATE)
  45. VALUES
  46. <foreach collection="dayReportEntities" item="item" index="index" separator=",">
  47. (#{item.tenantId},#{item.year},#{item.month},#{item.day},#{item.hour},#{item.parentSceneId},#{item.parentSceneName},#{item.sceneId},#{item.sceneName},#{item.deviceId},#{item.deviceName},#{item.deviceCode},#{item.attributeId},
  48. #{item.attributeName},#{item.minValue},#{item.maxValue},#{item.avgValue},#{item.sumValue},#{item.latestValue},#{item.collectDate})
  49. </foreach>
  50. </insert>
  51. <insert id="batchInsertYearReport">
  52. INSERT INTO sms_year_report( TENANT_ID, PARENT_SCENE_ID, PARENT_SCENE_NAME, SCENE_ID, SCENE_NAME, DEVICE_ID, DEVICE_NAME, DEVICE_CODE, ATTRIBUTE_ID, ATTRIBUTE_NAME, YEAR, MONTH, MIN_VALUE, MAX_VALUE, AVG_VALUE, SUM_VALUE, LATEST_VALUE, COLLECT_DATE)
  53. select TENANT_ID, PARENT_SCENE_ID, PARENT_SCENE_NAME, SCENE_ID, SCENE_NAME, DEVICE_ID, DEVICE_NAME, DEVICE_CODE, ATTRIBUTE_ID, ATTRIBUTE_NAME, YEAR, MONTH
  54. ,min(MIN_VALUE) MIN_VALUE
  55. ,max(MAX_VALUE) MAX_VALUE
  56. ,avg(AVG_VALUE) AVG_VALUE
  57. ,sum(SUM_VALUE) SUM_VALUE
  58. ,(select LATEST_VALUE from sms_day_report where DEVICE_ID =a.DEVICE_ID and ATTRIBUTE_ID = a.ATTRIBUTE_ID and COLLECT_DATE = max(a.COLLECT_DATE)) LATEST_VALUE
  59. ,max(COLLECT_DATE) COLLECT_DATE
  60. from sms_month_report a
  61. where year =#{year} and month =#{month}
  62. group by TENANT_ID, PARENT_SCENE_ID, PARENT_SCENE_NAME, SCENE_ID, SCENE_NAME, DEVICE_ID, DEVICE_NAME, DEVICE_CODE, ATTRIBUTE_ID, ATTRIBUTE_NAME, YEAR, MONTH
  63. </insert>
  64. <insert id="batchInsertMonthReport">
  65. INSERT INTO sms_month_report( TENANT_ID, PARENT_SCENE_ID, PARENT_SCENE_NAME, SCENE_ID, SCENE_NAME, DEVICE_ID, DEVICE_NAME, DEVICE_CODE, ATTRIBUTE_ID, ATTRIBUTE_NAME, YEAR, MONTH, DAY, MIN_VALUE, MAX_VALUE, AVG_VALUE, SUM_VALUE, LATEST_VALUE, COLLECT_DATE)
  66. select TENANT_ID, PARENT_SCENE_ID, PARENT_SCENE_NAME, SCENE_ID, SCENE_NAME, DEVICE_ID, DEVICE_NAME, DEVICE_CODE, ATTRIBUTE_ID, ATTRIBUTE_NAME, YEAR, MONTH, DAY
  67. ,min(MIN_VALUE) MIN_VALUE
  68. ,max(MAX_VALUE) MAX_VALUE
  69. ,avg(AVG_VALUE) AVG_VALUE
  70. ,sum(SUM_VALUE) SUM_VALUE
  71. ,(select LATEST_VALUE from sms_day_report where DEVICE_ID =a.DEVICE_ID and ATTRIBUTE_ID = a.ATTRIBUTE_ID and COLLECT_DATE = max(a.COLLECT_DATE)) LATEST_VALUE
  72. ,max(COLLECT_DATE) COLLECT_DATE
  73. from sms_day_report a
  74. where year = #{year} and month =#{month} and day=#{day}
  75. group by TENANT_ID, PARENT_SCENE_ID, PARENT_SCENE_NAME, SCENE_ID, SCENE_NAME, DEVICE_ID, DEVICE_NAME, DEVICE_CODE, ATTRIBUTE_ID, ATTRIBUTE_NAME, YEAR, MONTH, DAY
  76. </insert>
  77. </mapper>