<?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.yssh.mapper.WarningDetailMapper">
|
<resultMap id="WarningDetailResult" type="com.yssh.entity.WarningDetail">
|
<id property="id" column="id" />
|
<result property="tableName" column="table_name" />
|
<result property="suYuanId" column="su_yuan_id" />
|
<result property="locationName" column="location_name" />
|
<result property="type" column="type" />
|
<result property="createTime" column="create_time" />
|
<result property="value" column="value" />
|
</resultMap>
|
|
<resultMap id="WarningVoResult" type="com.yssh.entity.WarningVo">
|
<result property="location_name" column="locationName" />
|
<result property="suYuanId" column="su_yuan_id" />
|
<result property="value" column="value" />
|
</resultMap>
|
|
<select id="selectWarningDetailByType" resultMap="WarningVoResult">
|
SELECT location_name, su_yuan_id, format(value, 2) "value"
|
FROM warning_detail
|
WHERE date_format(create_time, '%Y%m%d%H%I') >= date_format(NOW(), '%Y%m%d%H%I')
|
AND type = #{type}
|
</select>
|
|
<select id="selectWarningDetailByMap_old" parameterType="java.util.Map" resultMap="WarningVoResult">
|
SELECT location_name, su_yuan_id, format(value, 2) "value"
|
FROM warning_detail
|
WHERE date_format(create_time, '%Y%m%d%H%I%S') >= date_format(#{startTime}, '%Y%m%d%H%I%S')
|
AND date_format(create_time, '%Y%m%d%H%I%S') <= date_format(#{endTime}, '%Y%m%d%H%I%S')
|
AND type = #{type}
|
</select>
|
|
<select id="selectWarningDetailByMap" parameterType="java.util.Map" resultMap="WarningVoResult">
|
select location_name, su_yuan_id, format(value, 2) "value"
|
from warning_detail
|
where create_time between #{startTime} and #{endTime} and type = #{type};
|
</select>
|
|
<select id="countWarnByMap" resultType="java.lang.Integer">
|
with rs as (select jcyj, jcbj from alert_config limit 1)
|
select count(*)
|
from warning_detail
|
where create_time between #{startTime} and #{endTime}
|
and value >= (select jcyj from rs) and value < (select jcbj from rs);
|
</select>
|
|
<select id="countAlarmByMap" resultType="java.lang.Integer">
|
with rs as (select jcyj, jcbj from alert_config limit 1)
|
select count(*)
|
from warning_detail
|
where create_time between #{startTime} and #{endTime}
|
and value >= (select jcbj from rs);
|
</select>
|
|
<select id="selectWarningDayCountByMap_old" parameterType="java.util.Map" resultType="java.util.Map">
|
SELECT date_format(create_time,'%Y%m%d') AS createTime, count(id) AS num
|
FROM warning_detail
|
WHERE date_format(create_time, '%Y%m%d%H%I%S') >= date_format(#{startTime}, '%Y%m%d%H%I%S')
|
AND date_format(create_time, '%Y%m%d%H%I%S') <= date_format(#{endTime}, '%Y%m%d%H%I%S')
|
AND type = #{type}
|
GROUP BY DATE_FORMAT(create_time,'%Y%m%d%')
|
ORDER BY create_time ASC
|
</select>
|
|
<select id="selectWarningDayCountByMap" parameterType="java.util.Map" resultType="java.util.Map">
|
with rs as (
|
select date_format(create_time, '%Y%m%d') AS ct, id, type
|
from warning_detail
|
where create_time between #{startTime} and #{endTime} and type = #{type}
|
)
|
select ct as createTime, count(id) as num
|
from rs
|
group by ct
|
order by ct asc;
|
</select>
|
|
<select id="selectByTime" resultMap="WarningDetailResult">
|
select id, table_name, su_yuan_id, location_name, type, create_time, format(value, 2) "value"
|
from warning_detail
|
where create_time between #{startTime} and #{endTime}
|
order by create_time;
|
</select>
|
|
<select id="selectByTimeForYj" resultMap="WarningDetailResult">
|
with rs as (select jcyj, jcbj from alert_config limit 1)
|
select id, table_name, su_yuan_id, location_name, 1 "type", create_time, format(value, 2) "value"
|
from warning_detail
|
where create_time between #{startTime} and #{endTime}
|
and value >= (select jcyj from rs) and value < (select jcbj from rs)
|
order by value;
|
</select>
|
|
<select id="selectByTimeForBj" resultMap="WarningDetailResult">
|
with rs as (select jcyj, jcbj from alert_config limit 1)
|
select id, table_name, su_yuan_id, location_name, 0 "type", create_time, format(value, 2) "value"
|
from warning_detail
|
where create_time between #{startTime} and #{endTime}
|
and value >= (select jcbj from rs)
|
order by value;
|
</select>
|
|
<select id="getLastYearVal" resultType="java.lang.Double">
|
with rs as (
|
select su_yuan_id "id", date_sub(create_time, interval 1 year) "time"
|
from warning_detail where id = ${id})
|
select format(value, 2) "val"
|
from warning_detail
|
where su_yuan_id = (select id from rs) and create_time = (select time from rs);
|
</select>
|
|
<insert id="batchInsert">
|
INSERT INTO warning_detail (table_name, su_yuan_id, location_name, type, create_time, value)VALUES
|
<foreach collection="datas" item="item" separator=",">
|
(
|
#{item.tableName},
|
#{item.suYuanId},
|
#{item.locationName},
|
#{item.type},
|
#{item.createTime},
|
#{item.value}
|
)
|
</foreach>
|
</insert>
|
</mapper>
|