DataWeatherLocalMapper.xml 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  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.ufo.project.weather.mapper.DataWeatherLocalMapper">
  6. <resultMap type="DataWeatherLocal" id="DataWeatherLocalResult">
  7. <result property="tm" column="tm" />
  8. <result property="configStationId" column="config_station_id" />
  9. <result property="irradiance" column="irradiance" />
  10. <result property="inclinedIrradiance" column="inclined_irradiance" />
  11. <result property="boardTemperature" column="board_temperature" />
  12. <result property="temperature" column="temperature" />
  13. <result property="pressure" column="pressure" />
  14. <result property="humidity" column="humidity" />
  15. <result property="windSpeed" column="wind_speed" />
  16. <result property="windDirection" column="wind_direction" />
  17. <result property="dailyIrradiance" column="daily_irradiance" />
  18. </resultMap>
  19. <sql id="selectDataWeatherLocalVo">
  20. select tm, config_station_id, irradiance, inclined_irradiance, temperature, pressure, humidity, wind_speed, wind_direction, board_temperature, daily_irradiance from data_weather_local
  21. </sql>
  22. <select id="selectDataWeatherLocalList" parameterType="DataWeatherLocal" resultMap="DataWeatherLocalResult">
  23. <include refid="selectDataWeatherLocalVo"/>
  24. <where>
  25. <if test="tm != null "> and tm = #{tm}</if>
  26. <if test="configStationId != null "> and config_station_id = #{configStationId}</if>
  27. <if test="irradiance != null "> and irradiance = #{irradiance}</if>
  28. <if test="inclinedIrradiance != null "> and inclined_irradiance = #{inclinedIrradiance}</if>
  29. <if test="temperature != null "> and temperature = #{temperature}</if>
  30. <if test="pressure != null "> and pressure = #{pressure}</if>
  31. <if test="humidity != null "> and humidity = #{humidity}</if>
  32. <if test="windSpeed != null "> and wind_speed = #{windSpeed}</if>
  33. <if test="windDirection != null "> and wind_direction = #{windDirection}</if>
  34. <if test="boardTemperature != null "> and board_temperature = #{boardTemperature}</if>
  35. <if test="dailyIrradiance != null "> and daily_irradiance = #{dailyIrradiance}</if>
  36. </where>
  37. </select>
  38. <!--
  39. tm 为 TIMESTAMPTZ,插入时已按各自来源时区归一化为 UTC 时刻存储,
  40. 因此与 startTime/endTime(unix秒,绝对时刻)直接按时刻比较即可,
  41. 不依赖任何固定时区(如 GMT+8)。to_timestamp(double precision) 以
  42. UTC 为基准,与会话时区无关。
  43. -->
  44. <select id="selectDataWeatherLocalListByTimeRange" resultMap="DataWeatherLocalResult">
  45. <include refid="selectDataWeatherLocalVo"/>
  46. where config_station_id = #{stationId}
  47. and tm &gt;= #{startTime}
  48. and tm &lt;= #{endTime}
  49. order by tm asc
  50. </select>
  51. <!-- 按时间范围查询天气字段(ISO 8601 格式字符串参数) -->
  52. <select id="selectWeatherFieldsByTimeRange" resultMap="DataWeatherLocalResult">
  53. select tm, config_station_id, irradiance, wind_speed, temperature, board_temperature
  54. from data_weather_local
  55. where config_station_id = #{configStationId}
  56. and tm &gt;= #{startTime} and tm &lt;= #{endTime}
  57. order by tm asc
  58. </select>
  59. <!-- 按日期区间查询辐照度数据(左闭右开,service 层将含截止日转换为截止日次日 00:00 传入) -->
  60. <select id="selectIrradianceRange" resultMap="DataWeatherLocalResult">
  61. <include refid="selectDataWeatherLocalVo"/>
  62. where config_station_id = #{configStationId}
  63. and tm &gt;= #{startTime}
  64. and tm &lt; #{endTime}
  65. order by tm asc
  66. </select>
  67. <select id="selectDataWeatherLocalByTm" parameterType="Date" resultMap="DataWeatherLocalResult">
  68. <include refid="selectDataWeatherLocalVo"/>
  69. where tm = #{tm}
  70. </select>
  71. <insert id="insertDataWeatherLocal" parameterType="DataWeatherLocal">
  72. insert into data_weather_local
  73. <trim prefix="(" suffix=")" suffixOverrides=",">
  74. <if test="tm != null">tm,</if>
  75. <if test="configStationId != null">config_station_id,</if>
  76. <if test="irradiance != null">irradiance,</if>
  77. <if test="inclinedIrradiance != null">inclined_irradiance,</if>
  78. <if test="boardTemperature != null">board_temperature,</if>
  79. <if test="temperature != null">temperature,</if>
  80. <if test="pressure != null">pressure,</if>
  81. <if test="humidity != null">humidity,</if>
  82. <if test="windSpeed != null">wind_speed,</if>
  83. <if test="windDirection != null">wind_direction,</if>
  84. <if test="dailyIrradiance != null">daily_irradiance,</if>
  85. </trim>
  86. <trim prefix="values (" suffix=")" suffixOverrides=",">
  87. <if test="tm != null">#{tm},</if>
  88. <if test="configStationId != null">#{configStationId},</if>
  89. <if test="irradiance != null">#{irradiance},</if>
  90. <if test="inclinedIrradiance != null">#{inclinedIrradiance},</if>
  91. <if test="boardTemperature != null">#{boardTemperature},</if>
  92. <if test="temperature != null">#{temperature},</if>
  93. <if test="pressure != null">#{pressure},</if>
  94. <if test="humidity != null">#{humidity},</if>
  95. <if test="windSpeed != null">#{windSpeed},</if>
  96. <if test="windDirection != null">#{windDirection},</if>
  97. <if test="dailyIrradiance != null">#{dailyIrradiance},</if>
  98. </trim>
  99. </insert>
  100. <update id="updateDataWeatherLocal" parameterType="DataWeatherLocal">
  101. update data_weather_local
  102. <trim prefix="SET" suffixOverrides=",">
  103. <if test="configStationId != null">config_station_id = #{configStationId},</if>
  104. <if test="irradiance != null">irradiance = #{irradiance},</if>
  105. <if test="inclinedIrradiance != null">inclined_irradiance = #{inclinedIrradiance},</if>
  106. <if test="boardTemperature != null">board_temperature = #{boardTemperature},</if>
  107. <if test="temperature != null">temperature = #{temperature},</if>
  108. <if test="pressure != null">pressure = #{pressure},</if>
  109. <if test="humidity != null">humidity = #{humidity},</if>
  110. <if test="windSpeed != null">wind_speed = #{windSpeed},</if>
  111. <if test="windDirection != null">wind_direction = #{windDirection},</if>
  112. <if test="dailyIrradiance != null">daily_irradiance = #{dailyIrradiance},</if>
  113. </trim>
  114. where tm = #{tm}
  115. </update>
  116. <delete id="deleteDataWeatherLocalByTm" parameterType="Date">
  117. delete from data_weather_local where tm = #{tm}
  118. </delete>
  119. <delete id="deleteDataWeatherLocalByTms" parameterType="String">
  120. delete from data_weather_local where tm in
  121. <foreach item="tm" collection="array" open="(" separator="," close=")">
  122. #{tm}
  123. </foreach>
  124. </delete>
  125. </mapper>