fengxiang
2018-03-26 53d155ae4b7c4d5d7258c3d15cfff78ec41561f7
src/main/resources/mapper/HistoryMinutelyMapper.xml
@@ -41,15 +41,22 @@
      ORDER BY
         time
   </select>
   <select id="selectLineChartDateByCrieria" resultMap="PairDataResultMap">
   <select id="selectLineChartDateByCrieria" resultType="java.util.Map">
         SELECT
           <if test='"MINUTE"!=dataCondition.timeUnits.toString()'>
               AVG(json->'$.${sensorKey}[0]')
           </if>
           <if test='"MINUTE"==dataCondition.timeUnits.toString()'>
             json->'$.${sensorKey}[0]'
          </if>
            as value,
            <choose>
               <when test="'MINUTE'==dataCondition.timeUnits.toString() and 'DEVICE'==dataCondition.areaRange.toString()">
                  <foreach collection="sensorKeys"
                         item="sensorKey" separator="," close=",">
                          json->'$.${sensorKey}[0]' as '${sensorKey}'
                  </foreach>
               </when>
               <otherwise>
                  <foreach collection="sensorKeys"
                         item="sensorKey" separator="," close=",">
                     AVG(json->'$.${sensorKey}[0]') as '${sensorKey}'
                  </foreach>
               </otherwise>
            </choose>
           DATE_FORMAT(time,'${@com.moral.common.util.ReportTimeFormat@toMySqlTimeFormat(timePeriod.timeUnits)}') as format_time
           FROM
         `history_minutely` hmi
@@ -70,7 +77,7 @@
                  and mpt.id = #{dataCondition.areaRangeId}
               </if>
               <if test='"PROVINCE"==dataCondition.areaRange.toString()'>
                  and mpt.provice_code = #{dataCondition.areaRangeId}
                  and mpt.province_code = #{dataCondition.areaRangeId}
               </if>
               <if test='"CITY"==dataCondition.areaRange.toString()'>
                  and mpt.city_code = #{dataCondition.areaRangeId}
@@ -81,7 +88,7 @@
            </where>
            )
         </where>
         <if test='"MINUTE"!=dataCondition.timeUnits.toString()'>
         <if test="'MINUTE'!=dataCondition.timeUnits.toString() or 'DEVICE'!=dataCondition.areaRange.toString()">
            GROUP BY format_time
         </if>
          ORDER BY format_time asc