| | |
| | | <?xml version="1.0" encoding="UTF-8"?>
|
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
| | | <mapper namespace="com.moral.mapper.AlarmMapper">
|
| | | <select id="getAlarmData" resultType="java.util.LinkedHashMap">
|
| | | SELECT
|
| | | <if test="dimension=='monitorPoint'">
|
| | | `name`,
|
| | | </if>
|
| | | <choose>
|
| | | <when test="sensorKeys.size > 0">
|
| | | <foreach collection="sensorKeys" separator="," item="sensorKey">
|
| | | SUM( ${sensorKey} ) AS '${sensorKey}'
|
| | | </foreach>
|
| | | <foreach collection="sensorKeys" open="," separator="+" close=" AS 'sum' " item="sensorKey">
|
| | | SUM( ${sensorKey} )
|
| | | </foreach>
|
| | | </when>
|
| | | <otherwise>
|
| | | time
|
| | | </otherwise>
|
| | | </choose>
|
| | | FROM
|
| | | (
|
| | | SELECT |
| | | <if test="dimension=='monitorPoint'">
|
| | | mp.`name`,
|
| | | </if>
|
| | | <choose>
|
| | | <when test="sensorKeys.size > 0">
|
| | | <foreach collection="sensorKeys" separator="," item="sensorKey">
|
| | | CASE COUNT( json -> '$.${sensorKey}' ) WHEN 0 THEN 0 ELSE 1 END AS '${sensorKey}'
|
| | | </foreach>
|
| | | </when>
|
| | | <otherwise>
|
| | | DATE_FORMAT( h.time, '%Y-%m-%d' ) AS 'time'
|
| | | </otherwise>
|
| | | </choose>
|
| | | FROM
|
| | | alarm h, |
| | | device d,
|
| | | monitor_point mp |
| | | WHERE d.monitor_point_id = mp.id |
| | | AND h.mac = d.mac |
| | | AND h.time >= #{start}
|
| | | AND h.time <![CDATA[<]]> #{end}
|
| | | <if test="provinceCode != null">
|
| | | AND mp.province_code = #{provinceCode}
|
| | | </if>
|
| | | <if test="cityCode != null">
|
| | | AND mp.city_code = #{cityCode}
|
| | | </if>
|
| | | <if test="areaCode != null">
|
| | | AND mp.area_code = #{areaCode}
|
| | | </if>
|
| | | <if test="monitorPointId != null">
|
| | | AND mp.id = #{monitorPointId}
|
| | | </if>
|
| | | <if test="organizationId != null">
|
| | | AND mp.organization_id = #{organizationId}
|
| | | </if>
|
| | | <if test="mac != null">
|
| | | AND d.mac = #{mac}
|
| | | </if>
|
| | | GROUP BY
|
| | | <if test="dimension=='monitorPoint'">
|
| | | mp.id,
|
| | | </if>
|
| | | DATE_FORMAT( h.time, '%Y-%m-%d' )
|
| | | ) a
|
| | | <if test="dimension=='monitorPoint'">
|
| | | GROUP BY name
|
| | | <select id="countByTimes" resultType="java.util.Map">
|
| | | select
|
| | | <if test="format !=null">
|
| | | DATE_FORMAT(time,#{format}) as time,
|
| | | </if>
|
| | | |
| | | COUNT(*) as count from alarm
|
| | | <where>
|
| | | <if test="start != null">
|
| | | time >= #{start}
|
| | | </if>
|
| | | <if test="end != null">
|
| | | and time
|
| | | <![CDATA[
|
| | | <=
|
| | | ]]> #{end}
|
| | | </if>
|
| | | </where>
|
| | | <if test="format !=null">
|
| | | GROUP BY DATE_FORMAT(time,#{format}) ;
|
| | | </if>
|
| | | </select>
|
| | | |
| | | </mapper> |