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.
341 lines
14 KiB
341 lines
14 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.StatusMapper">
|
|
|
|
<resultMap id="BaseResultMap" type="com.zc.business.domain.Status">
|
|
<result column="id" jdbcType="BIGINT" property="id"/>
|
|
<result column="device_no" jdbcType="VARCHAR" property="deviceNo"/>
|
|
<result column="device_name" jdbcType="VARCHAR" property="deviceName"/>
|
|
<result column="device_status" jdbcType="INTEGER" property="deviceStatus"/>
|
|
<result column="device_id" jdbcType="INTEGER" property="deviceId"/>
|
|
<result column="device_ip" jdbcType="VARCHAR" property="deviceIp"/>
|
|
<result column="success_rate" jdbcType="VARCHAR" property="successRate"/>
|
|
<result column="lost_rate" jdbcType="VARCHAR" property="lostRate"/>
|
|
<result column="success_rate" jdbcType="VARCHAR" property="successRate"/>
|
|
|
|
<result column="direction" jdbcType="VARCHAR" property="direction"/>
|
|
<result column="manufacturer" jdbcType="VARCHAR" property="production"/>
|
|
<result column="model" jdbcType="VARCHAR" property="model"/>
|
|
<result column="facilities_type" jdbcType="VARCHAR" property="network"/>
|
|
<result column="remark" jdbcType="VARCHAR" property="content"/>
|
|
<result column="type" jdbcType="VARCHAR" property="type"/>
|
|
<result column="use_state" jdbcType="VARCHAR" property="useState"/>
|
|
</resultMap>
|
|
|
|
|
|
|
|
<insert id="Add" parameterType="com.zc.business.domain.Status">
|
|
INSERT INTO status
|
|
<trim prefix="(" suffix=")" suffixOverrides=",">
|
|
<if test="status.deviceNo != null">
|
|
device_no,
|
|
</if>
|
|
<if test="status.deviceName != null">
|
|
device_name,
|
|
</if>
|
|
<if test="status.deviceStatus != null">
|
|
device_status,
|
|
</if>
|
|
<if test="status.deviceId != null">
|
|
device_id,
|
|
</if>
|
|
<if test="status.time != null">
|
|
time,
|
|
</if>
|
|
<if test="status.successRate != null">
|
|
success_rate,
|
|
</if>
|
|
|
|
<if test="status.lostRate != null">
|
|
lost_rate,
|
|
</if>
|
|
<if test="status.deviceIp != null">
|
|
device_ip,
|
|
</if>
|
|
</trim>
|
|
<trim prefix="VALUES (" suffix=")" suffixOverrides=",">
|
|
<if test="status.deviceNo != null">
|
|
#{status.deviceNo,jdbcType=VARCHAR},
|
|
</if>
|
|
<if test="status.deviceName != null">
|
|
#{status.deviceName,jdbcType=VARCHAR},
|
|
</if>
|
|
<if test="status.deviceStatus != null">
|
|
#{status.deviceStatus,jdbcType=INTEGER},
|
|
</if>
|
|
<if test="status.deviceId != null">
|
|
#{status.deviceId,jdbcType=BIGINT},
|
|
</if>
|
|
<if test="status.time != null">
|
|
#{status.time,jdbcType=DATE},
|
|
</if>
|
|
<if test="status.successRate != null">
|
|
#{status.successRate,jdbcType=VARCHAR},
|
|
</if>
|
|
<if test="status.lostRate != null">
|
|
#{status.lostRate,jdbcType=VARCHAR},
|
|
</if>
|
|
|
|
<if test="status.deviceIp != null">
|
|
#{status.deviceIp,jdbcType=VARCHAR}
|
|
</if>
|
|
</trim>
|
|
</insert>
|
|
|
|
<sql id="selectStatus">
|
|
select id, device_no, device_name, device_status, time from status
|
|
</sql>
|
|
|
|
|
|
<select id="export" parameterType="com.zc.business.domain.Status" resultMap="BaseResultMap">
|
|
select s.id, s.device_no, s.device_name,s.time,
|
|
d.device_ip,s.success_rate,s.lost_rate,e.manufacturer,e.model,d.facilities_type,d.remark,COALESCE(d.child_type,
|
|
d.device_type) AS type,
|
|
CASE
|
|
WHEN d.direction = 1 THEN '菏泽方向'
|
|
WHEN d.direction = 3 THEN '济南方向'
|
|
ELSE '双向'
|
|
END AS direction,
|
|
CASE
|
|
WHEN s.device_status = 1 THEN '在线'
|
|
WHEN s.device_status = 0 THEN '离线'
|
|
ELSE '设备未接入'
|
|
END AS device_status
|
|
from dc_device d
|
|
LEFT JOIN status s on (s.device_id = d.id)
|
|
LEFT JOIN dc_product e on e.id = d.product_id
|
|
<where>
|
|
<if test="status.time != null">
|
|
AND s.time BETWEEN #{status.startTime,jdbcType=DATE} AND #{status.time,jdbcType=DATE}
|
|
</if>
|
|
<if test="status.deviceNo != null">
|
|
AND s.device_no = #{status.deviceNo}
|
|
</if>
|
|
<if test="status.type != null">
|
|
AND (d.device_type in
|
|
<foreach item="typeItem" collection="status.types" open="(" separator="," close=")">
|
|
#{typeItem}
|
|
</foreach>
|
|
or d.child_type in
|
|
<foreach item="typeItem" collection="status.types" open="(" separator="," close=")">
|
|
#{typeItem}
|
|
</foreach>
|
|
)
|
|
</if>
|
|
<if test="status.deviceId != null">
|
|
AND s.device_id = #{status.deviceId}
|
|
</if>
|
|
<if test="status.useState != null and status.useState != 0">
|
|
AND d.use_state = #{status.useState}
|
|
</if>
|
|
<if test="status.deviceName != null and status.deviceName != ''">
|
|
AND s.device_name like concat('%', #{status.deviceName}, '%')
|
|
</if>
|
|
<if test="status.direction != null">
|
|
AND d.direction = #{status.direction}
|
|
</if>
|
|
</where>
|
|
<if test="status.orderByField != null and status.orderDirection != null">
|
|
ORDER BY ${status.orderByField} ${status.orderDirection}
|
|
</if>
|
|
</select>
|
|
|
|
|
|
<select id="listStatus" parameterType="com.zc.business.domain.Status" resultMap="BaseResultMap">
|
|
select s.id, s.device_no, s.device_name, s.device_status,s.time, d.device_ip,s.success_rate,s.lost_rate,d.direction,e.manufacturer,e.model,d.facilities_type,d.remark,COALESCE(d.child_type, d.device_type) AS type
|
|
from dc_device d
|
|
LEFT JOIN status s on (s.device_id=d.id)
|
|
LEFT JOIN dc_product e on e.id=d.product_id
|
|
<where>
|
|
<if test="status.time != null">
|
|
AND s.time BETWEEN #{status.startTime,jdbcType=DATE} AND #{status.time,jdbcType=DATE}
|
|
</if>
|
|
<if test="status.deviceNo != null">
|
|
AND s.device_no = #{status.deviceNo}
|
|
</if>
|
|
<if test="status.type != null">
|
|
AND (d.device_type = #{status.type} or d.child_type=#{status.type})
|
|
</if>
|
|
<if test="status.deviceId != null">
|
|
AND s.device_id = #{status.deviceId}
|
|
</if>
|
|
<if test="status.useState != null and status.useState != 0">
|
|
AND d.use_state = #{status.useState}
|
|
</if>
|
|
<if test="status.deviceName != null and status.deviceName != ''">
|
|
AND s.device_name like concat('%', #{status.deviceName}, '%')
|
|
</if>
|
|
<if test="status.direction != null">
|
|
AND d.direction = #{status.direction}
|
|
</if>
|
|
</where>
|
|
|
|
<if test="status.orderByField != null and status.orderDirection != null">
|
|
ORDER BY ${status.orderByField} ${status.orderDirection}
|
|
</if>
|
|
</select>
|
|
|
|
|
|
<select id="listStatusByTypes" parameterType="com.zc.business.domain.Status" resultMap="BaseResultMap">
|
|
select s.id, s.device_no, s.device_name, s.device_status,s.time,
|
|
d.device_ip,s.success_rate,s.lost_rate,d.direction,e.manufacturer,e.model,d.facilities_type,d.remark,COALESCE(d.child_type,
|
|
d.device_type) AS type
|
|
from dc_device d
|
|
LEFT JOIN status s on (s.device_id=d.id)
|
|
LEFT JOIN dc_product e on e.id=d.product_id
|
|
<where>
|
|
<if test="status.time != null">
|
|
AND s.time BETWEEN #{status.startTime,jdbcType=DATE} AND #{status.time,jdbcType=DATE}
|
|
</if>
|
|
<if test="status.deviceNo != null">
|
|
AND s.device_no = #{status.deviceNo}
|
|
</if>
|
|
<if test="status.type != null">
|
|
AND (d.device_type in
|
|
<foreach item="typeItem" collection="status.types" open="(" separator="," close=")">
|
|
#{typeItem}
|
|
</foreach>
|
|
or d.child_type in
|
|
<foreach item="typeItem" collection="status.types" open="(" separator="," close=")">
|
|
#{typeItem}
|
|
</foreach>
|
|
)
|
|
</if>
|
|
<if test="status.deviceId != null">
|
|
AND s.device_id = #{status.deviceId}
|
|
</if>
|
|
<if test="status.useState != null and status.useState != 0">
|
|
AND d.use_state = #{status.useState}
|
|
</if>
|
|
<if test="status.deviceName != null and status.deviceName != ''">
|
|
AND s.device_name like concat('%', #{status.deviceName}, '%')
|
|
</if>
|
|
<if test="status.direction != null">
|
|
AND d.direction = #{status.direction}
|
|
</if>
|
|
</where>
|
|
<if test="status.orderByField != null and status.orderDirection != null">
|
|
ORDER BY ${status.orderByField} ${status.orderDirection}
|
|
</if>
|
|
<!-- <if test="status.pageNum != null and status.pageSize != null">-->
|
|
<!-- LIMIT #{status.pageSize} OFFSET #{status.pageNum}-->
|
|
<!-- </if>-->
|
|
</select>
|
|
|
|
|
|
<select id="getStatusList" parameterType="com.zc.business.domain.Status" resultMap="BaseResultMap">
|
|
SELECT COALESCE
|
|
(d.child_type,d.device_type ) AS type,
|
|
s.time,
|
|
ROUND( avg( s.success_rate ), 2 ) success_rate
|
|
FROM
|
|
status s
|
|
LEFT JOIN dc_device d ON s.device_id = d.id
|
|
<where>
|
|
<if test="status.time != null">
|
|
AND s.time BETWEEN #{status.startTime,jdbcType=DATE} AND #{status.time,jdbcType=DATE}
|
|
</if>
|
|
<if test="status.type != null">
|
|
AND (d.device_type in
|
|
<foreach item="typeItem" collection="status.types" open="(" separator="," close=")">
|
|
#{typeItem}
|
|
</foreach>
|
|
or d.child_type in
|
|
<foreach item="typeItem" collection="status.types" open="(" separator="," close=")">
|
|
#{typeItem}
|
|
</foreach>
|
|
)
|
|
</if>
|
|
<if test="status.deviceId != null">
|
|
AND s.device_id = #{status.deviceId}
|
|
</if>
|
|
<if test="status.useState != null and status.useState != 0">
|
|
AND d.use_state = #{status.useState}
|
|
</if>
|
|
<if test="status.deviceName != null and status.deviceName != ''">
|
|
AND s.device_name like concat('%', #{status.deviceName}, '%')
|
|
</if>
|
|
<if test="status.direction != null">
|
|
AND d.direction = #{status.direction}
|
|
</if>
|
|
GROUP BY
|
|
d.child_type,
|
|
d.device_type,
|
|
DAY (s.time)
|
|
</where>
|
|
<if test="status.orderByField != null and status.orderDirection != null">
|
|
ORDER BY ${status.orderByField} ${status.orderDirection}
|
|
</if>
|
|
</select>
|
|
|
|
|
|
<select id="listStatusBySection" parameterType="com.zc.business.domain.Status" resultMap="BaseResultMap">
|
|
select s.id, s.device_no, s.device_name, s.device_status,s.time,
|
|
d.device_ip,s.success_rate,s.lost_rate,d.direction,e.manufacturer,e.model,d.facilities_type,m.section_id,d.remark,COALESCE(d.child_type,
|
|
d.device_type) AS type
|
|
from dc_device d
|
|
LEFT JOIN dc_stake_mark m on m.stake_mark=d.stake_mark and m.direction = d.direction
|
|
LEFT JOIN dc_road_section r on r.id=m.section_id
|
|
LEFT JOIN status s on (s.device_id=d.id)
|
|
LEFT JOIN dc_product e on e.id=d.product_id
|
|
<where>
|
|
<if test="status.time != null">
|
|
AND s.time BETWEEN #{status.startTime,jdbcType=DATE} AND #{status.time,jdbcType=DATE}
|
|
</if>
|
|
<if test="status.deviceNo != null">
|
|
AND s.device_no = #{status.deviceNo}
|
|
</if>
|
|
<if test="status.type != null">
|
|
AND (d.device_type = #{status.type} or d.child_type=#{status.type})
|
|
</if>
|
|
<if test="status.deviceId != null">
|
|
AND s.device_id = #{status.deviceId}
|
|
</if>
|
|
<if test="status.useState != null and status.useState != 0">
|
|
AND d.use_state = #{status.useState}
|
|
</if>
|
|
<if test="status.deviceName != null and status.deviceName != ''">
|
|
AND s.device_name like concat('%', #{status.deviceName}, '%')
|
|
</if>
|
|
<if test="status.direction != null">
|
|
AND d.direction = #{status.direction}
|
|
</if>
|
|
</where>
|
|
<if test="status.orderByField != null and status.orderDirection != null">
|
|
ORDER BY ${status.orderByField} ${status.orderDirection}
|
|
</if>
|
|
</select>
|
|
|
|
<select id="deviceStatusListById" parameterType="com.zc.business.domain.Status" resultMap="BaseResultMap">
|
|
select s.id,s.time,s.success_rate,s.lost_rate
|
|
from status s
|
|
<where>
|
|
<if test="status.time != null">
|
|
AND s.time BETWEEN #{status.startTime,jdbcType=DATE} AND #{status.time,jdbcType=DATE}
|
|
</if>
|
|
<if test="status.deviceId != null">
|
|
AND s.device_id = #{status.deviceId}
|
|
</if>
|
|
<if test="status.deviceName != null and status.deviceName != ''">
|
|
AND s.device_name like concat('%', #{status.deviceName}, '%')
|
|
</if>
|
|
<if test="status.direction != null">
|
|
AND d.direction = #{status.direction}
|
|
</if>
|
|
</where>
|
|
<if test="status.orderByField != null and status.orderDirection != null">
|
|
ORDER BY ${status.orderByField} ${status.orderDirection}
|
|
</if>
|
|
</select>
|
|
|
|
<delete id="delStatusByTime" parameterType="com.zc.business.domain.Status">
|
|
DELETE FROM status
|
|
<where>
|
|
<if test="startTime != null">
|
|
AND status.time < #{startTime,jdbcType=DATE}
|
|
|
|
</if>
|
|
</where>
|
|
</delete>
|
|
|
|
</mapper>
|
|
|