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.
314 lines
17 KiB
314 lines
17 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.DcPerceivedEventsWarningMapper">
|
|
|
|
|
|
|
|
<select id="perceivedEventsWarningNum" resultType="java.lang.Integer">
|
|
select count(1) from dc_warning
|
|
</select>
|
|
|
|
<select id="selectEventTypeList" resultType="com.zc.business.domain.DcEventType">
|
|
select event_type, event_name from dc_event_type
|
|
</select>
|
|
<select id="selectWarningById" resultType="com.zc.business.domain.DcWarning">
|
|
SELECT DISTINCT warning.`id`,warning.`stake_mark`, warning.`direction`,
|
|
warning.duration,
|
|
mark.longitude,mark.latitude,warning.lane,warning.vehicle_type vehicleType,
|
|
warning.`dept_id`,warning.`warning_state`,warning.`warning_time`,
|
|
warning.`user_id`, warning.`warning_source`,warning.`warning_level`,
|
|
warning.`remark`, warning.`create_time`,warning.`update_time`,
|
|
warning.`warning_type`,warning.`warning_subclass`,warning.`warning_title`,
|
|
warning.`other_config` FROM dc_warning AS warning
|
|
LEFT JOIN dc_stake_mark AS mark ON mark.stake_mark=warning.stake_mark and mark.direction=warning.direction
|
|
where warning.`id`=#{id}
|
|
</select>
|
|
<select id="selectPerceivedEventsList" resultType="com.zc.business.domain.DcWarning">
|
|
SELECT warning.`id`,warning.`stake_mark`, warning.`direction`,
|
|
mark.longitude,mark.latitude,warning.lane,duration,
|
|
warning.`dept_id`,warning.`warning_state`,warning.`warning_time`,
|
|
warning.`user_id`, warning.`warning_source`,warning.`warning_level`,
|
|
warning.`remark`, warning.`create_time`,warning.`update_time`,
|
|
warning.`warning_type`,warning.`warning_subclass`,warning.`warning_title`,
|
|
warning.`other_config` FROM dc_warning AS warning
|
|
left JOIN dc_stake_mark AS mark ON mark.stake_mark=warning.stake_mark and mark.direction=warning.direction
|
|
<where>
|
|
<if test="warningType != null and warningType != ''"> and warning.warning_type = #{warningType}</if>
|
|
<if test="warningSubclass != null and warningSubclass != ''"> and warning.warning_subclass = #{warningSubclass}</if>
|
|
<if test="warningSource != null and warningSource != ''"> and warning.warning_source = #{warningSource}</if>
|
|
<if test="direction != null and direction != ''"> and warning.direction = #{direction}</if>
|
|
<if test="stakeMark != null and stakeMark != ''"> and warning.stake_mark = #{stakeMark}</if>
|
|
<if test="startTime != null and endTime != null ">
|
|
and warning.warning_time between #{startTime} and #{endTime}</if>
|
|
</where>
|
|
order by warning.warning_time desc
|
|
</select>
|
|
<select id="selectSectionPerceivedEventsList" resultType="hashmap">
|
|
select s.section_name sectionName,
|
|
(select COUNT(1) FROM `dc_warning` as w where
|
|
DATE_FORMAT(w.warning_time,'%Y-%m-%d')=DATE_FORMAT(#{warningTime},'%Y-%m-%d')
|
|
and mark.stake_mark=w.stake_mark)number from dc_warning as w
|
|
left JOIN dc_stake_mark as mark ON mark.stake_mark=w.stake_mark and mark.direction=w.direction
|
|
LEFT JOIN dc_road_section as s ON mark.section_id=s.id
|
|
where mark.stake_mark is not null
|
|
group by w.stake_mark
|
|
HAVING number !=0
|
|
order by number desc
|
|
</select>
|
|
<select id="selectSectionPerceivedNumber" resultType="java.util.HashMap">
|
|
select s.section_name sectionName,
|
|
(select COUNT(1) FROM `dc_warning` as w where
|
|
DATE_FORMAT(w.warning_time,'%Y-%m-%d')=DATE_FORMAT(#{warningTime},'%Y-%m-%d')
|
|
and mark.stake_mark=w.stake_mark)number from dc_warning as w
|
|
left JOIN dc_stake_mark as mark ON mark.stake_mark=w.stake_mark and mark.direction=w.direction
|
|
LEFT JOIN dc_road_section as s ON mark.section_id=s.id
|
|
where mark.stake_mark is not null
|
|
group by w.stake_mark
|
|
HAVING number !=0
|
|
</select>
|
|
<select id="selectDailyCumulative" resultType="java.util.HashMap">
|
|
SELECT DATE_FORMAT(warning_time, '%Y-%m-%d %H') AS time, COUNT(*) AS number
|
|
FROM dc_warning
|
|
WHERE warning_time >= CURDATE() AND warning_time <![CDATA[<]]> CURDATE() + INTERVAL 1 DAY
|
|
GROUP BY time
|
|
ORDER BY time
|
|
</select>
|
|
<select id="selectDailyCumulativeMonth" resultType="java.util.HashMap">
|
|
SELECT HOUR(warning_time) AS time, COUNT(*) AS number
|
|
FROM dc_warning
|
|
WHERE MONTH(warning_time) = MONTH(CURDATE())
|
|
AND YEAR(warning_time) = YEAR(CURDATE())
|
|
GROUP BY HOUR(warning_time)
|
|
ORDER BY HOUR(warning_time);
|
|
</select>
|
|
<select id="selectWarningSourceGroup" resultType="java.util.HashMap">
|
|
SELECT warning_source warningSource,COUNT(*) AS number FROM dc_warning
|
|
where DATE_FORMAT(warning_time,'%Y-%m-%d')=DATE_FORMAT(#{warningTime},'%Y-%m-%d')
|
|
GROUP BY warning_source
|
|
</select>
|
|
<select id="selectWarningSourceGroupCount" resultType="java.lang.String">
|
|
SELECT COUNT(*) AS number FROM dc_warning
|
|
where DATE_FORMAT(warning_time,'%Y-%m-%d')=DATE_FORMAT(#{warningTime},'%Y-%m-%d')
|
|
</select>
|
|
<select id="selectWarningStateDay" resultType="java.util.HashMap">
|
|
select t1.warningState,t1.warningStateName,IFNULL(t2.num,0)number from
|
|
(select '1' as warningState,'上报' as warningStateName
|
|
UNION ALL select '2' as warningState,'已完成' as warningStateName
|
|
UNION ALL select '3' as warningState,'已终止' as warningStateName
|
|
UNION ALL select '4' as warningState,'自动结束' as warningStateName) t1
|
|
LEFT JOIN
|
|
(SELECT warning_state warningState,count(*) num
|
|
from dc_warning
|
|
where DATE_FORMAT(warning_time,'%Y-%m-%d')=DATE_FORMAT(now(),'%Y-%m-%d')
|
|
GROUP BY warning_state)t2
|
|
on t1.warningState=t2.warningState
|
|
</select>
|
|
<select id="selectWarningTypeDay" resultType="java.util.HashMap">
|
|
SELECT warning_type warningType,COUNT(*) AS number FROM dc_warning
|
|
GROUP BY warning_type
|
|
ORDER BY number DESC
|
|
</select>
|
|
<select id="selectWarningTrendDay" resultType="java.util.HashMap">
|
|
SELECT DATE_FORMAT(warning.warning_time, '%Y-%m-%d %H') AS time, COUNT(*) AS number
|
|
FROM dc_warning AS warning
|
|
LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark=mark.stake_mark
|
|
WHERE DATE_FORMAT(warning.warning_time,'%Y-%m-%d')=DATE_FORMAT(#{warningTime},'%Y-%m-%d')
|
|
AND warning.direction=#{direction} and mark.direction=#{direction}
|
|
AND mark.`section_id`=#{sectionId}
|
|
GROUP BY time
|
|
</select>
|
|
<select id="selectWarningTrendMonth" resultType="java.util.HashMap">
|
|
SELECT DATE(warning.warning_time) AS day, COUNT(*) AS number
|
|
FROM dc_warning as warning
|
|
LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark=mark.stake_mark
|
|
WHERE DATE_FORMAT(warning.warning_time,'%Y-%m') =DATE_FORMAT(#{warningTime},'%Y-%m')
|
|
AND warning.direction=#{direction} and mark.direction=#{direction}
|
|
and mark.`section_id`=#{sectionId}
|
|
GROUP BY day
|
|
ORDER BY day
|
|
</select>
|
|
<select id="selectWarningTrendQuarter" resultType="java.util.HashMap">
|
|
SELECT
|
|
MONTH(warning.warning_time) AS month,
|
|
COUNT(*) AS number
|
|
FROM dc_warning as warning
|
|
LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark=mark.stake_mark
|
|
WHERE QUARTER(warning.warning_time)=#{quarter}
|
|
AND warning.direction=#{direction} and mark.direction=#{direction}
|
|
and mark.`section_id`=#{sectionId}
|
|
GROUP BY MONTH
|
|
ORDER BY MONTH;
|
|
|
|
</select>
|
|
<select id="selectWarningTrendYear" resultType="java.util.HashMap">
|
|
SELECT month(warning.warning_time) AS month, COUNT(*) AS number
|
|
FROM dc_warning as warning
|
|
LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark=mark.stake_mark
|
|
where mark.`section_id`=#{sectionId} AND warning.direction=#{direction} and mark.direction=#{direction}
|
|
and DATE_FORMAT(warning.warning_time,'%Y')=DATE_FORMAT(#{warningTime},'%Y')
|
|
GROUP BY month
|
|
</select>
|
|
<select id="selectWarningSectionTypeDayCount" resultType="java.lang.String">
|
|
SELECT COUNT(*) AS number FROM dc_warning as warning
|
|
LEFT JOIN dc_stake_mark as mark on warning.stake_mark=mark.stake_mark
|
|
where DATE_FORMAT(warning.warning_time,'%Y-%m-%d')=DATE_FORMAT(#{warningTime},'%Y-%m-%d')
|
|
AND warning.direction=#{direction} and mark.direction=#{direction}
|
|
and mark.`section_id`=#{sectionId}
|
|
</select>
|
|
<select id="selectWarningSectionTypeDay" resultType="java.util.HashMap">
|
|
SELECT warning.warning_type warningType,
|
|
COUNT(*) AS number
|
|
FROM dc_warning as warning
|
|
LEFT JOIN dc_stake_mark as mark on warning.stake_mark=mark.stake_mark
|
|
where DATE_FORMAT(warning.warning_time,'%Y-%m-%d')=DATE_FORMAT(#{warningTime},'%Y-%m-%d')
|
|
AND warning.direction=#{direction} and mark.direction=#{direction}
|
|
and mark.`section_id`=#{sectionId}
|
|
GROUP BY warning_type
|
|
ORDER BY number DESC
|
|
</select>
|
|
<select id="selectWarningSectionTypeMonthCount" resultType="java.lang.String">
|
|
SELECT COUNT(*) AS number FROM dc_warning as warning
|
|
LEFT JOIN dc_stake_mark as mark on warning.stake_mark=mark.stake_mark
|
|
where DATE_FORMAT(warning.warning_time,'%Y-%m') =DATE_FORMAT(#{warningTime},'%Y-%m')
|
|
AND warning.direction=#{direction} and mark.direction=#{direction}
|
|
and mark.`section_id`=#{sectionId}
|
|
</select>
|
|
<select id="selectWarningSectionTypeMonth" resultType="java.util.HashMap">
|
|
SELECT warning.warning_type warningType,COUNT(*) AS number
|
|
FROM dc_warning as warning
|
|
LEFT JOIN dc_stake_mark as mark on warning.stake_mark=mark.stake_mark
|
|
where DATE_FORMAT(warning.warning_time,'%Y-%m') =DATE_FORMAT(#{warningTime},'%Y-%m')
|
|
AND warning.direction=#{direction} and mark.direction=#{direction}
|
|
and mark.`section_id`=#{sectionId}
|
|
GROUP BY warning_type
|
|
ORDER BY number DESC
|
|
</select>
|
|
<select id="selectWarningSectionTypeQuarterCount" resultType="string">
|
|
SELECT
|
|
COUNT(*) AS number
|
|
FROM dc_warning as warning
|
|
LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark=mark.stake_mark
|
|
WHERE QUARTER(warning.warning_time)=#{quarter}
|
|
AND warning.direction=#{direction} and mark.direction=#{direction}
|
|
and mark.`section_id`=#{sectionId}
|
|
</select>
|
|
<select id="selectWarningSectionTypeQuarter" resultType="java.util.HashMap">
|
|
SELECT
|
|
warning.warning_type warningType,
|
|
COUNT(*) AS number
|
|
FROM dc_warning as warning
|
|
LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark=mark.stake_mark
|
|
WHERE QUARTER(warning.warning_time)=#{quarter}
|
|
AND warning.direction=#{direction} and mark.direction=#{direction}
|
|
and mark.`section_id`=#{sectionId}
|
|
GROUP BY warningType
|
|
|
|
</select>
|
|
<select id="selectWarningSectionTypeYearCount" resultType="java.lang.String">
|
|
SELECT COUNT(*) AS number FROM dc_warning as warning
|
|
LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark=mark.stake_mark
|
|
where mark.`section_id`=#{sectionId} AND warning.direction=#{direction} and mark.direction=#{direction}
|
|
and DATE_FORMAT(warning.warning_time,'%Y')=DATE_FORMAT(#{warningTime},'%Y')
|
|
|
|
</select>
|
|
<select id="selectWarningSectionTypeYear" resultType="java.util.HashMap">
|
|
SELECT warning.warning_type warningType, COUNT(*) AS number
|
|
FROM dc_warning as warning
|
|
LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark=mark.stake_mark
|
|
where mark.`section_id`=#{sectionId} AND warning.direction=#{direction} and mark.direction=#{direction}
|
|
and DATE_FORMAT(warning.warning_time,'%Y')=DATE_FORMAT(#{warningTime},'%Y')
|
|
GROUP BY warningType
|
|
</select>
|
|
|
|
<select id="selectSectionMark" resultType="java.util.HashMap">
|
|
SELECT stake_mark stakeMark FROM dc_stake_mark AS mark WHERE mark.section_id=#{sectionId}
|
|
</select>
|
|
<select id="selectSectionNumber" resultType="java.lang.String">
|
|
select count(1) from dc_warning where stake_mark=#{stakeMark} AND warning.direction=#{direction}
|
|
</select>
|
|
<select id="selectWarningEscalation" resultType="java.util.HashMap">
|
|
select org.organization_name,warning.warning_type,warning.warning_subclass,
|
|
warning_title,warning.warning_state,DATE_FORMAT(warning.warning_time,'%Y-%m-%d %H:%m:%s') warningTime,
|
|
warning. warning_source,DATE_FORMAT(warning.create_time,'%Y-%m-%d %H:%m:%s') createTime from dc_warning as warning
|
|
LEFT JOIN dc_stake_mark as mark on warning.stake_mark=mark.stake_mark and mark.direction=warning.direction
|
|
LEFT JOIN dc_organization as org on mark.stake_mark=org.stake_mark
|
|
<where>
|
|
<if test="warningState != null and warningState != ''"> and warning.warning_state = #{warningState}</if>
|
|
</where>
|
|
</select>
|
|
|
|
<update id="updateWarning">
|
|
update dc_warning
|
|
<trim prefix="SET" suffixOverrides=",">
|
|
<if test="stakeMark != null and stakeMark != ''">stake_mark = #{stakeMark},</if>
|
|
<if test="direction != null">direction = #{direction},</if>
|
|
<if test="deptId != null">dept_id = #{deptId},</if>
|
|
<if test="warningState != null">warning_state = #{warningState},</if>
|
|
<if test="warningTime != null">warning_time = #{warningTime},</if>
|
|
<if test="userId != null">user_id = #{userId},</if>
|
|
<if test="warningSource != null">warning_source = #{warningSource},</if>
|
|
<if test="warningLevel != null">warning_level = #{warningLevel},</if>
|
|
<if test="remark != null">remark = #{remark},</if>
|
|
<if test="updateTime != null">update_time = #{updateTime},</if>
|
|
<if test="warningType != null">warning_type = #{warningType},</if>
|
|
<if test="warningSubclass != null">warning_subclass = #{warningSubclass},</if>
|
|
<if test="warningTitle != null">warning_title = #{warningTitle},</if>
|
|
<if test="otherConfig != null">other_config = #{otherConfig},</if>
|
|
<if test="lane != null">lane = #{lane},</if>
|
|
<if test="vehicleType != null">vehicle_type = #{vehicleType},</if>
|
|
</trim>
|
|
where id = #{id}
|
|
</update>
|
|
<select id="selectWarningMarkDay" resultType="java.lang.String">
|
|
select count(1) from dc_warning where stake_mark=#{stakeMark}
|
|
AND direction=#{direction} and DATE(warning_time)=DATE_FORMAT(#{warningTime},'%Y-%m-%d')
|
|
</select>
|
|
<select id="selectWarningMarkMonth" resultType="java.lang.String">
|
|
select count(1) from dc_warning where stake_mark=#{stakeMark}
|
|
AND direction=#{direction} and DATE_FORMAT(warning_time,'%Y-%m') =DATE_FORMAT(#{warningTime},'%Y-%m')
|
|
</select>
|
|
<select id="selectWarningMarkYear" resultType="java.lang.String">
|
|
select count(1) from dc_warning where stake_mark=#{stakeMark}
|
|
AND direction=#{direction} and YEAR(warning_time) =DATE_FORMAT(#{warningTime},'%Y')
|
|
</select>
|
|
<select id="selectWarningMarkQuarter" resultType="hashmap">
|
|
select count(1) number,stake_mark stakeMark,
|
|
CASE
|
|
WHEN MONTH(warning_time) BETWEEN 1 AND 3 THEN '第一季度'
|
|
WHEN MONTH(warning_time) BETWEEN 4 AND 6 THEN '第二季度'
|
|
WHEN MONTH(warning_time) BETWEEN 7 AND 9 THEN '第三季度'
|
|
ELSE '第四季度'
|
|
END AS QUARTER
|
|
from dc_warning where stake_mark=#{stakeMark} and
|
|
YEAR(warning_time) =DATE_FORMAT(#{warningTime},'%Y')
|
|
AND direction=#{direction} and stake_mark is not null
|
|
GROUP BY QUARTER
|
|
ORDER BY QUARTER;
|
|
</select>
|
|
<select id="selectNumber" resultType="int">
|
|
select count(1) from dc_warning
|
|
</select>
|
|
|
|
<select id="selectWarningMarkQuarterOptimize" resultType="java.util.HashMap">
|
|
SELECT count( 1 ) sectionNumber,m.stake_mark stakeMarkId
|
|
FROM dc_warning w
|
|
LEFT JOIN dc_stake_mark m ON w.stake_mark = m.stake_mark and m.direction=w.direction
|
|
WHERE m.stake_mark IS NOT null and w.direction=#{direction}
|
|
and QUARTER(w.warning_time)=#{quarter} and m.`section_id`=#{sectionId}
|
|
GROUP BY stakeMarkId
|
|
</select>
|
|
<select id="selectWarningMarkDayOptimize" resultType="java.util.HashMap">
|
|
SELECT DISTINCT m.stake_mark stakeMarkId,
|
|
(SELECT count( 0 ) FROM dc_warning w WHERE w.stake_mark = m.stake_mark
|
|
<if test = 'type == "day"' >and DATE(w.warning_time)= DATE_FORMAT(#{warningTime},'%Y-%m-%d')</if>
|
|
<if test = 'type == "month"' >and DATE_FORMAT(w.warning_time,'%Y-%m') =DATE_FORMAT(#{warningTime},'%Y-%m')</if>
|
|
<if test = 'type == "year"' >and YEAR(w.warning_time) =DATE_FORMAT(#{warningTime},'%Y')</if>
|
|
AND w.direction = #{direction}) sectionNumber FROM dc_stake_mark AS m
|
|
WHERE m.section_id = #{sectionId}
|
|
HAVING sectionNumber!=0
|
|
</select>
|
|
|
|
|
|
</mapper>
|