ZhuDongming
2020-05-19 e51e2d053b498e236097bcb4012c8446d672be86
src/main/resources/mapper/HistoryMinutelyMapper.xml
@@ -31,6 +31,32 @@
        AND time < #{end}
    </select>
    <select id="getAvgByDevice" resultType="java.util.Map">
        SELECT
        <foreach collection="sensorKeys" separator="," item="sensorKey">
            AVG(json->'$.${sensorKey}[0]') AS '${sensorKey}'
        </foreach>
        FROM
        history_daily
        WHERE
        mac IN
        (SELECT
        d.mac
        FROM
        device d
        WHERE
        d.is_delete = 0
        <if test="monitorPointId != null">
            AND d.monitor_point_id = #{monitorPointId}
        </if>
        <if test="mac != null">
            AND d.mac = #{mac}
        </if>
        )
        AND time >= #{start}
        AND time &lt; #{end}
    </select>
    <select id="getMonitorPointOrDeviceAvgData" resultType="java.util.Map">
        SELECT
        DATE_FORMAT(time, #{typeFormat}) time
@@ -77,6 +103,7 @@
        ORDER BY
        time
    </select>
    <select id="selectLineChartDateByCrieria" resultType="java.util.Map">
        SELECT
        <choose>
@@ -96,7 +123,7 @@
        DATE_FORMAT(time,'${@com.moral.common.util.ReportTimeFormat@toMySqlTimeFormat(timePeriod.timeUnits)}') as
        format_time
        FROM
        `history_minutely` hmi
        history_${timeUnits} hmi
        <where>
            and hmi.time >= #{timePeriod.startTime}
            and hmi.time <![CDATA[<=]]> #{timePeriod.endTime}
@@ -149,7 +176,7 @@
        history_minutely as hm
        <where>
            <if test="mac!=null">
                and hm.mac=#{mac}
                and hm.mac = #{mac}
            </if>
            and hm.time >= #{startTime}
            and hm.time <![CDATA[<]]> #{endTime}
@@ -170,7 +197,7 @@
        history_minutely_${yearAndMonth} as hm
        <where>
            <if test="mac!=null">
                and hm.mac=#{mac}
                and hm.mac = #{mac}
            </if>
            and hm.time >= #{startTime}
            and hm.time <![CDATA[<]]> #{endTime}
@@ -196,8 +223,38 @@
        device d,
        monitor_point m
        WHERE
        h.mac=d.mac
        AND d.monitor_point_id=m.id
        h.mac = d.mac
        AND d.monitor_point_id = m.id
        AND h.time >= #{start}
        AND h.time <![CDATA[<=]]> #{end}
        AND h.mac in
        <foreach collection="macs" open="(" separator="," close=")" item="mac">
            #{mac}
        </foreach>
        GROUP BY
        h.mac,m.name,d.name,DATE_FORMAT(time, #{typeFormat})
        ORDER BY
        h.mac) rs
        GROUP BY rs.monitorPointName,rs.name
        order by rs.monitorPointName
    </select>
    <select id="getDevicesSensorsAvgDataToExcel" resultType="java.util.LinkedHashMap">
        select
        rs.monitorPointName,rs.name,
        <foreach collection="timeList" separator="," item="time">
            max(case time when #{time} then rs.json else "" end) as #{time}
        </foreach>
        from
        (SELECT
        m.name as monitorPointName,d.name,DATE_FORMAT(time, #{typeFormat}) time,h.json
        FROM
        history_${timeUnits} h,
        device d,
        monitor_point m
        WHERE
        h.mac = d.mac
        AND d.monitor_point_id = m.id
        AND h.time >= #{start}
        AND h.time <![CDATA[<=]]> #{end}
        AND h.mac in
@@ -205,8 +262,6 @@
                 item="mac">
            #{mac}
        </foreach>
        GROUP BY
        h.mac,m.name,d.name,DATE_FORMAT(time, #{typeFormat})
        ORDER BY
        h.mac) rs
        GROUP BY rs.monitorPointName,rs.name