ZhuDongming
2019-08-06 543b91f79c55687337984d39beb757648e6e73c1
src/main/resources/mapper/HistoryMapper.xml
@@ -6,34 +6,45 @@
      where  time = #{time} and mac = #{mac}
      limit 0,1
   </select>
   <select id="getAreaAllDataByAccount" resultType="java.util.LinkedHashMap">
      SELECT
         <if test="macKey != null">
            d.`name`,
         </if>
         <foreach  collection="sensorKeys" separator="," item="sensorKey">
            AVG(h.`value` ->'$.${sensorKey}[0]') AS '${sensorKey}'
         </foreach>
      <if test="macKey != null">
         d.`name`,
      </if>
      <foreach collection="sensorKeys" separator="," item="sensorKey">
         AVG(h.`value` ->'$.${sensorKey}[0]') AS '${sensorKey}'
      </foreach>
      FROM
         history h,
         device d,
         monitor_point mp
      WHERE
         mp.area_code = #{areaCode}
         AND h.time >= #{start}
         AND h.time &lt; #{end}
         AND h.mac = d.mac
         AND d.monitor_point_id = mp.id
      <if test="orgIds != null and orgIds.size &gt; 0">
         AND mp.organization_id IN
         <foreach  collection="orgIds" open="(" separator="," close=")" item="listItem">
            #{listItem}
         </foreach>
      </if>
         h.mac = d.mac
         AND d.monitor_point_id = mp.id
         <if test="areaCode != null">
            AND mp.area_code = #{areaCode}
         </if>
         <if test="start != null">
            AND h.time >= #{start}
         </if>
         <if test="end != null">
            AND h.time &lt; #{end}
         </if>
         <if test="monitorPointId != null">
            AND mp.id = #{monitorPointId}
         </if>
         <if test="orgIds != null and orgIds.size &gt; 0">
            AND mp.organization_id IN
            <foreach collection="orgIds" open="(" separator="," close=")"
               item="listItem">
               #{listItem}
            </foreach>
         </if>
      <if test="macKey != null">
         GROUP BY d.id
         ORDER BY ${macKey} desc
      </if>
      </if>
   </select>
   <select id="getRegionRankingData" resultType="java.util.Map">
@@ -128,4 +139,27 @@
         time DESC 
      LIMIT #{size}
   </select>
   <select id="getActualDataByRegion" resultType="java.util.Map">
      SELECT
      <foreach collection="sensorKeys" separator="," item="sensorKey">
         MAX( `value` ->> '$.${sensorKey}' ) * 1 AS '${sensorKey}'
      </foreach>
      FROM
         history h ,
         device d,
         monitor_point mp
      <where>
         h.mac = d.mac
         AND d.monitor_point_id = mp.id
      <if test="orgIds != null and orgIds.size &gt; 0">
         AND mp.organization_id IN
         <foreach  collection="orgIds" open="(" separator="," close=")" item="listItem">
            #{listItem}
         </foreach>
      </if>
         AND h.time >= #{start}
         AND h.time &lt; #{end}
      </where>
   </select>
</mapper>