FirefightingPressureMapper.xml 4.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.zksy.base.pressure.mapper.FirefightingPressureMapper">
  6. <resultMap id="BaseResultMap" type="com.zksy.base.pressure.domain.FirefightingPressure">
  7. <id property="id" column="id" jdbcType="VARCHAR"/>
  8. <result property="centralStation" column="central_station" jdbcType="VARCHAR"/>
  9. <result property="telemeteringStation" column="telemetering_station" jdbcType="VARCHAR"/>
  10. <result property="password" column="password" jdbcType="VARCHAR"/>
  11. <result property="functionCode" column="function_code" jdbcType="VARCHAR"/>
  12. <result property="serialNumber" column="serial_number" jdbcType="VARCHAR"/>
  13. <result property="sendingTime" column="sending_time" jdbcType="TIMESTAMP"/>
  14. <result property="observedTime" column="observed_time" jdbcType="TIMESTAMP"/>
  15. <result property="gprsSignal" column="gprs_signal" jdbcType="DOUBLE"/>
  16. <result property="hostVoltage" column="host_voltage" jdbcType="DOUBLE"/>
  17. <result property="longitude" column="longitude" jdbcType="DECIMAL"/>
  18. <result property="latitude" column="latitude" jdbcType="DECIMAL"/>
  19. <result property="pressureValue" column="pressure_value" jdbcType="DOUBLE"/>
  20. <result property="d31D12" column="D31_D12" jdbcType="TINYINT"/>
  21. <result property="d14" column="D14" jdbcType="TINYINT"/>
  22. <result property="d13" column="D13" jdbcType="TINYINT"/>
  23. <result property="d12" column="D12" jdbcType="TINYINT"/>
  24. <result property="d11" column="D11" jdbcType="TINYINT"/>
  25. <result property="d10" column="D10" jdbcType="TINYINT"/>
  26. <result property="d9" column="D9" jdbcType="TINYINT"/>
  27. <result property="d8" column="D8" jdbcType="TINYINT"/>
  28. <result property="d7" column="D7" jdbcType="TINYINT"/>
  29. <result property="d6" column="D6" jdbcType="TINYINT"/>
  30. <result property="d5" column="D5" jdbcType="TINYINT"/>
  31. <result property="d4" column="D4" jdbcType="TINYINT"/>
  32. <result property="d3" column="D3" jdbcType="TINYINT"/>
  33. <result property="d2" column="D2" jdbcType="TINYINT"/>
  34. <result property="d1" column="D1" jdbcType="TINYINT"/>
  35. <result property="d0" column="D0" jdbcType="TINYINT"/>
  36. <result property="createTime" column="createTime" jdbcType="TIMESTAMP"/>
  37. </resultMap>
  38. <sql id="Base_Column_List">
  39. id,central_station,telemetering_station,
  40. password,function_code,serial_number,
  41. sending_time,observed_time,gprs_signal,
  42. host_voltage,longitude,latitude,
  43. pressure_value,D31_D12,D14,
  44. D13,D12,D11,
  45. D10,D9,D8,
  46. D7,D6,D5,
  47. D4,D3,D2,
  48. D1,D0
  49. </sql>
  50. <!-- 按天统计压力(保留两位小数) -->
  51. <select id="getDailyPressureStats" resultType="map">
  52. SELECT DATE(observed_time) as date,
  53. ROUND(MAX(pressure_value), 2) as maxPressure,
  54. ROUND(MIN(pressure_value), 2) as minPressure,
  55. ROUND(AVG(pressure_value), 2) as avgPressure
  56. FROM firefighting_pressure
  57. WHERE observed_time BETWEEN #{startTime} AND #{endTime}
  58. GROUP BY DATE(observed_time)
  59. ORDER BY date
  60. </select>
  61. <!-- 压力地理分布(保留两位小数) -->
  62. <select id="getPressureDistribution" resultType="map">
  63. SELECT telemetering_station,
  64. longitude,
  65. latitude,
  66. ROUND(AVG(pressure_value), 2) as avgPressure
  67. FROM firefighting_pressure
  68. WHERE observed_time BETWEEN #{startTime} AND #{endTime}
  69. GROUP BY telemetering_station, longitude, latitude
  70. </select>
  71. <!-- 信号质量 vs 压力(保留两位小数) -->
  72. <select id="getSignalVsPressure" resultType="map">
  73. SELECT ROUND(gprs_signal) as signalLevel,
  74. ROUND(AVG(pressure_value), 2) as avgPressure,
  75. ROUND(STDDEV(pressure_value), 2) as pressureStdDev
  76. FROM firefighting_pressure
  77. WHERE observed_time BETWEEN #{startTime} AND #{endTime}
  78. GROUP BY ROUND(gprs_signal)
  79. ORDER BY signalLevel
  80. </select>
  81. </mapper>