DmpDeviceStatusMapper.xml 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  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.usky.iot.mapper.DmpDeviceStatusMapper">
  4. <!-- 通用查询映射结果 -->
  5. <resultMap id="BaseResultMap" type="com.usky.iot.domain.DmpDeviceStatus">
  6. <id column="id" property="id" />
  7. <result column="device_id" property="deviceId" />
  8. <result column="product_id" property="productId" />
  9. <result column="device_status" property="deviceStatus" />
  10. <result column="last_online_time" property="lastOnlineTime" />
  11. <result column="last_offline_time" property="lastOfflineTime" />
  12. </resultMap>
  13. <select id="getAllCollect" resultType="com.usky.iot.service.vo.DmpDataOverviewVO">
  14. select ddi.product_id as productId,
  15. count(*) as deviceCount,
  16. COUNT(to_days(last_online_time) = to_days(now()) or null) as hyCount,
  17. count(service_status = 2 or null) as jhCount,
  18. count(service_status) as zcCount,
  19. count(device_status = 1 or null) as dzcCount,
  20. count(device_status = 4 or null) as dlxCount
  21. from dmp_device ddi
  22. left join dmp_device_status dds
  23. on ddi.device_id = dds.device_id
  24. <where>
  25. <if test="startTime != null and endTime != null">
  26. and ddi.created_time between #{startTime}
  27. and #{endTime}
  28. </if>
  29. <if test="productId != null">
  30. and ddi.product_id = #{productId}
  31. </if>
  32. </where>
  33. </select>
  34. <select id="getMonthHyCollect" resultType="com.usky.iot.service.vo.DmpDataOverviewVO">
  35. select ddi.product_id as productId,
  36. count(*) hyCount
  37. from dmp_device ddi
  38. left join dmp_device_status dds
  39. on ddi.device_id = dds.device_id
  40. <where>
  41. <if test="startTime != null and endTime != null">
  42. and dds.last_online_time between #{startTime}
  43. and #{endTime}
  44. </if>
  45. <if test="productId != null">
  46. and ddi.product_id = #{productId}
  47. </if>
  48. </where>
  49. group by productId
  50. </select>
  51. <select id="getAllMonthHyCollect" resultType="com.usky.iot.service.vo.DmpDataOverviewVO">
  52. select ddi.product_id as productId,
  53. count(*) hyCount
  54. from dmp_device ddi
  55. left join dmp_device_status dds
  56. on ddi.device_id = dds.device_id
  57. <where>
  58. <if test="startTime != null and endTime != null">
  59. and dds.last_online_time between #{startTime}
  60. and #{endTime}
  61. </if>
  62. <if test="productId != null">
  63. and ddi.product_id = #{productId}
  64. </if>
  65. </where>
  66. </select>
  67. <select id="getDeviceStatusCollect" resultType="com.usky.iot.service.vo.DmpDataOverviewVO">
  68. select ddi.product_id as productId,
  69. count(*) as deviceCount,
  70. COUNT(to_days(last_online_time) = to_days(now()) or null) as hyCount,
  71. count(service_status = 2 or null) as jhCount,
  72. count(service_status) as zcCount,
  73. count(device_status = 1 or null) as dzcCount,
  74. count(device_status = 4 or null) as dlxCount
  75. from dmp_device ddi
  76. left join dmp_device_status dds
  77. on ddi.device_id = dds.device_id
  78. <where>
  79. <if test="startTime != null and endTime != null">
  80. and ddi.created_time between #{startTime}
  81. and #{endTime}
  82. </if>
  83. <if test="productId != null">
  84. and ddi.product_id = #{productId}
  85. </if>
  86. </where>
  87. group by productId
  88. </select>
  89. </mapper>