MonitorDataMapper.xml 4.4 KB

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