You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
5.1 KiB
108 lines
5.1 KiB
<?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.zc.business.mapper.OnlineSumMapper">
|
|
|
|
<resultMap type="com.zc.business.domain.OnlineSum" id="OnlineSum">
|
|
<result property="id" column="id"/>
|
|
<result property="deviceId" column="device_id"/>
|
|
<result property="totalCount" column="total_count"/>
|
|
<result property="onlineRate" column="online_rate"/>
|
|
<result property="offlineRate" column="offline_rate"/>
|
|
<result property="lossRate" column="loss_rate"/>
|
|
<result property="rttAvg" column="rtt_avg"/>
|
|
<result property="networkQuality" column="network_quality"/>
|
|
<result property="statisticalDate" column="statistical_date"/>
|
|
<result property="deviceType" column="device_type"/>
|
|
<result property="roadId" column="section_id"/>
|
|
<result property="deviceIp" column="device_ip"/>
|
|
<result property="deviceName" column="device_name"/>
|
|
<result property="stakeMark" column="stake_mark"/>
|
|
<result property="direction" column="direction"/>
|
|
<result property="useState" column="use_state"/>
|
|
</resultMap>
|
|
|
|
<insert id="duplicateKeyUpdate">
|
|
insert into dc_online_sum
|
|
(device_id,total_count,online_rate,offline_rate,loss_rate,rtt_avg,network_quality,statistical_date)
|
|
values
|
|
(#{deviceId},#{totalCount},#{onlineRate},#{offlineRate},#{lossRate},#{rttAvg},#{networkQuality},#{statisticalDate})
|
|
on duplicate key update
|
|
total_count= values(total_count),
|
|
online_rate = values(online_rate),
|
|
offline_rate = values(offline_rate),
|
|
loss_rate = values(loss_rate),
|
|
rtt_avg = values(rtt_avg),
|
|
network_quality = values(network_quality)
|
|
</insert>
|
|
<select id="queryByDateRangeOfDevice" resultMap="OnlineSum">
|
|
select id,device_id,total_count,online_rate,offline_rate,loss_rate,rtt_avg,network_quality,statistical_date
|
|
from dc_online_sum
|
|
where
|
|
device_id = #{deviceId} and (statistical_date between #{startDate} and #{endDate})
|
|
</select>
|
|
<select id="queryByDeviceTypeAndDate" resultMap="OnlineSum">
|
|
select s.id,s.device_id,total_count,online_rate,offline_rate,loss_rate,rtt_avg,network_quality,statistical_date,COALESCE(d.child_type,d.device_type) as device_type
|
|
from dc_online_sum s join dc_device d on s.device_id = d.id
|
|
where d.use_state = 1
|
|
AND (s.statistical_date BETWEEN #{startDate} AND #{endDate})
|
|
AND (d.device_type in
|
|
<foreach item="typeItem" collection="types" open="(" separator="," close=")">
|
|
#{typeItem}
|
|
</foreach>
|
|
or d.child_type in
|
|
<foreach item="typeItem" collection="types" open="(" separator="," close=")">
|
|
#{typeItem}
|
|
</foreach>
|
|
)
|
|
<if test="direction != null and direction != ''">
|
|
AND d.direction = #{direction}
|
|
</if>
|
|
</select>
|
|
<select id="queryByDateOfDeviceType" resultMap="OnlineSum">
|
|
select s.id,s.device_id,total_count,
|
|
online_rate,offline_rate,loss_rate,
|
|
rtt_avg,network_quality,statistical_date,COALESCE (d.child_type, d.device_type) as device_type
|
|
from dc_online_sum s join dc_device d on s.device_id = d.id
|
|
where d.use_state = 1 and s.statistical_date = #{queryDate}
|
|
</select>
|
|
<select id="queryByDateOfRoad" resultMap="OnlineSum">
|
|
select s.id,s.device_id,total_count,online_rate,
|
|
offline_rate,loss_rate,rtt_avg,network_quality,statistical_date,
|
|
m.section_id
|
|
from dc_online_sum s join dc_device d on s.device_id = d.id
|
|
LEFT JOIN dc_stake_mark m on m.stake_mark=d.stake_mark and m.direction = d.direction
|
|
where d.use_state = 1 and s.statistical_date = #{queryDate}
|
|
</select>
|
|
|
|
<select id="queryByDeviceTypesOfToday" resultMap="OnlineSum">
|
|
select d.device_ip,d.device_name,d.stake_mark,COALESCE (d.child_type, d.device_type) as device_type,
|
|
d.direction,d.use_state,
|
|
s.id,s.device_id,total_count,online_rate,
|
|
offline_rate,loss_rate,rtt_avg,network_quality,statistical_date
|
|
from dc_device d
|
|
join dc_online_sum s on s.device_id = d.id
|
|
where
|
|
s.statistical_date = CURDATE()
|
|
<if test="types.length != 0">
|
|
and (d.device_type in
|
|
<foreach item="typeItem" collection="types" open="(" separator="," close=")">
|
|
#{typeItem}
|
|
</foreach>
|
|
or d.child_type in
|
|
<foreach item="typeItem" collection="types" open="(" separator="," close=")">
|
|
#{typeItem}
|
|
</foreach>
|
|
)
|
|
</if>
|
|
<if test="searchValue != null and searchValue != ''">
|
|
and (d.device_ip like concat('%',#{searchValue},'%')
|
|
or d.stake_mark like concat('%',#{searchValue},'%'))
|
|
</if>
|
|
<if test="orderByField != null and orderDirection != null">
|
|
order by ${orderByField} ${orderDirection}
|
|
</if>
|
|
</select>
|
|
|
|
</mapper>
|
|
|