EcoDeviceFlowMapper.xml 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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.huimv.environ.eco.mapper.EcoDeviceFlowMapper">
  4. <!-- 通用查询映射结果 -->
  5. <resultMap id="BaseResultMap" type="com.huimv.environ.eco.entity.EcoDeviceFlow">
  6. <id column="id" property="id" />
  7. <result column="device_code" property="deviceCode" />
  8. <result column="device_name" property="deviceName" />
  9. <result column="device_status" property="deviceStatus" />
  10. <result column="device_open" property="deviceOpen" />
  11. <result column="id1_name" property="id1Name" />
  12. <result column="id1_value" property="id1Value" />
  13. <result column="id1_alarm_status" property="id1AlarmStatus" />
  14. <result column="id1_alarm_msg" property="id1AlarmMsg" />
  15. <result column="id2_name" property="id2Name" />
  16. <result column="id2_value" property="id2Value" />
  17. <result column="id2_alarm_status" property="id2AlarmStatus" />
  18. <result column="id2_alarm_msg" property="id2AlarmMsg" />
  19. </resultMap>
  20. <!-- 通用查询结果列 -->
  21. <sql id="Base_Column_List">
  22. id, device_code, device_name, device_status, device_open, id1_name, id1_value, id1_alarm_status, id1_alarm_msg, id2_name, id2_value, id2_alarm_status, id2_alarm_msg
  23. </sql>
  24. <select id="getLastFlow" resultType="com.huimv.environ.eco.entity.dto.LastFlowDto">
  25. SELECT CONCAT(b.pigpen_name,a.pigpen_name) room,df.id1_value 'tem',df.id2_value 'hum'
  26. FROM `base_pigpen` a INNER JOIN `base_pigpen` b ON a.parent_id =b.id AND a.farm_code = #{farmId}
  27. LEFT JOIN `eco_device` d ON d.unit_id = a.id AND d.device_type ='1'
  28. LEFT JOIN `eco_device_flow` df ON d.device_code = df.device_code
  29. AND df.id IN (SELECT MAX(df.id) FROM `eco_device_flow` df GROUP BY device_code)
  30. ORDER BY a.id DESC,a.parent_id DESC
  31. </select>
  32. <select id="listDevice" resultType="com.huimv.environ.eco.entity.dto.EcoDeviceDto">
  33. SELECT d.location 'roomName',ROUND(AVG(df.id1_value),2) 'tem',ROUND(AVG(df.id2_value),2) 'hum',DATE_FORMAT(df.add_time,'%Y-%m-%d') 'addTime' FROM `eco_device` d
  34. LEFT JOIN `eco_device_flow` df ON df.device_code = d.device_code
  35. WHERE d.farm_id = ${farmId} AND unit_id = ${unitId}
  36. AND add_time BETWEEN '${startDate}' AND '${endDate}'
  37. GROUP BY DATE_FORMAT(df.add_time,"%Y-%m-%d")
  38. </select>
  39. <select id="listDayDevice" resultType="com.huimv.environ.eco.entity.dto.EcoDeviceDto">
  40. SELECT d.location 'roomName',df.id1_value 'tem',df.id2_value 'hum',df.add_time FROM `eco_device` d
  41. LEFT JOIN `eco_device_flow` df ON df.device_code = d.device_code
  42. WHERE d.farm_id = ${farmId} AND unit_id = ${unitId}
  43. AND TO_DAYS(add_time) = TO_DAYS(NOW());
  44. </select>
  45. <select id="listWeekDevice" resultType="com.huimv.environ.eco.entity.dto.EcoDeviceDto">
  46. SELECT d.location 'roomName',ROUND(AVG(df.id1_value),2) 'tem',ROUND(AVG(df.id2_value)) 'hum',DATE_FORMAT(df.add_time,'%Y-%m-%d') add_time FROM `eco_device` d
  47. LEFT JOIN `eco_device_flow` df ON df.device_code = d.device_code
  48. WHERE d.farm_id = ${farmId} AND unit_id = ${unitId}
  49. AND add_time BETWEEN (SELECT DATE_SUB(CURDATE(),INTERVAL WEEKDAY(CURDATE()) DAY)) AND NOW()
  50. GROUP BY DATE_FORMAT(df.add_time,"%Y-%m-%d")
  51. </select>
  52. <select id="listMonthDevice" resultType="com.huimv.environ.eco.entity.dto.EcoDeviceDto">
  53. SELECT d.location 'roomName',ROUND(AVG(df.id1_value),2) 'tem',ROUND(AVG(df.id2_value)) 'hum',DATE_FORMAT(df.add_time,'%Y-%m-%d') add_time FROM `eco_device` d
  54. LEFT JOIN `eco_device_flow` df ON df.device_code = d.device_code
  55. WHERE d.farm_id = ${farmId} AND unit_id = ${unitId}
  56. AND add_time BETWEEN (SELECT DATE_ADD(CURDATE(),INTERVAL -DAY(CURDATE())+1 DAY)) AND NOW()
  57. GROUP BY DATE_FORMAT(df.add_time,"%Y-%m-%d")
  58. </select>
  59. <select id="getLastFlowByUnitId" resultType="com.huimv.environ.eco.entity.dto.LastFlowDto">
  60. SELECT d.location 'room',df.id1_value 'tem',df.id2_value 'hum' FROM `eco_device` d
  61. LEFT JOIN `eco_device_flow` df ON d.device_code = df.device_code
  62. AND df.id IN (SELECT MAX(df.id) FROM `eco_device_flow` df GROUP BY device_code)
  63. AND d.device_type = 1
  64. WHERE d.unit_id = #{unitId}
  65. </select>
  66. </mapper>