<?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`, 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 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, 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 <where> <if test="warningType != null and warningType != ''"> and warning_type = #{warningType}</if> <if test="warningSubclass != null and warningSubclass != ''"> and warning_subclass = #{warningSubclass}</if> </where> </select> <select id="selectSectionPerceivedEventsList" resultType="hashmap"> select s.section_name sectionName, (select COUNT(1) FROM `dc_warning` as w where DATE_FORMAT(w.create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%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 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 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.create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%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 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 </select> <select id="selectDailyCumulative" resultType="java.util.HashMap"> SELECT DATE_FORMAT(create_time, '%Y-%m-%d %H') AS time, COUNT(*) AS number FROM dc_warning WHERE create_time >= CURDATE() AND create_time <![CDATA[<]]> CURDATE() + INTERVAL 1 DAY GROUP BY time ORDER BY time </select> <select id="selectDailyCumulativeMonth" resultType="java.util.HashMap"> SELECT HOUR(create_time) AS time, COUNT(*) AS number FROM dc_warning WHERE MONTH(create_time) = MONTH(CURDATE()) AND YEAR(create_time) = YEAR(CURDATE()) GROUP BY HOUR(create_time) ORDER BY HOUR(create_time); </select> <select id="selectWarningSourceGroup" resultType="java.util.HashMap"> SELECT warning_source warningSource,COUNT(*) AS number FROM dc_warning where DATE_FORMAT(create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%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(create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%Y-%m-%d') </select> <select id="selectWarningStateDay" resultType="java.util.HashMap"> SELECT warning_state warningState,COUNT(*) AS number FROM dc_warning where DATE_FORMAT(create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%Y-%m-%d') GROUP BY warning_state </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.create_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.create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%Y-%m-%d') AND warning.direction=#{direction} AND mark.`section_id`=#{sectionId} GROUP BY time </select> <select id="selectWarningTrendMonth" resultType="java.util.HashMap"> SELECT DATE(warning.create_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.create_time,'%Y-%m') =DATE_FORMAT(#{createTime},'%Y-%m') AND warning.direction=#{direction} and mark.`section_id`=#{sectionId} GROUP BY day ORDER BY day </select> <select id="selectWarningTrendQuarter" resultType="java.util.HashMap"> SELECT CASE WHEN MONTH(warning.create_time) BETWEEN 1 AND 3 THEN '第一季度' WHEN MONTH(warning.create_time) BETWEEN 4 AND 6 THEN '第二季度' WHEN MONTH(warning.create_time) BETWEEN 7 AND 9 THEN '第三季度' ELSE '第四季度' END AS QUARTER, MONTH(warning.create_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 YEAR(warning.create_time) =DATE_FORMAT(#{createTime},'%Y') AND warning.direction=#{direction} and mark.`section_id`=#{sectionId} GROUP BY QUARTER, MONTH ORDER BY QUARTER, MONTH; </select> <select id="selectWarningTrendYear" resultType="java.util.HashMap"> SELECT month(warning.create_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 DATE_FORMAT(warning.create_time,'%Y')=DATE_FORMAT(#{createTime},'%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.create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%Y-%m-%d') AND warning.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.create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%Y-%m-%d') AND warning.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.create_time,'%Y-%m') =DATE_FORMAT(#{createTime},'%Y-%m') AND warning.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.create_time,'%Y-%m') =DATE_FORMAT(#{createTime},'%Y-%m') AND warning.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 YEAR(warning.create_time) =DATE_FORMAT(#{createTime},'%Y') AND warning.direction=#{direction} and mark.`section_id`=#{sectionId} </select> <select id="selectWarningSectionTypeQuarter" resultType="java.util.HashMap"> SELECT CASE WHEN MONTH(warning.create_time) BETWEEN 1 AND 3 THEN '第一季度' WHEN MONTH(warning.create_time) BETWEEN 4 AND 6 THEN '第二季度' WHEN MONTH(warning.create_time) BETWEEN 7 AND 9 THEN '第三季度' ELSE '第四季度' END AS QUARTER, 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 YEAR(warning.create_time) =DATE_FORMAT(#{createTime},'%Y') AND warning.direction=#{direction} and mark.`section_id`=#{sectionId} GROUP BY QUARTER, warningType ORDER BY QUARTER; </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 DATE_FORMAT(warning.create_time,'%Y')=DATE_FORMAT(#{createTime},'%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 DATE_FORMAT(warning.create_time,'%Y')=DATE_FORMAT(#{createTime},'%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, 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 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(create_time)=DATE_FORMAT(#{createTime},'%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(create_time,'%Y-%m') =DATE_FORMAT(#{createTime},'%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(create_time) =DATE_FORMAT(#{createTime},'%Y') </select> <select id="selectWarningMarkQuarter" resultType="hashmap"> select count(1) number,stake_mark stakeMark, CASE WHEN MONTH(create_time) BETWEEN 1 AND 3 THEN '第一季度' WHEN MONTH(create_time) BETWEEN 4 AND 6 THEN '第二季度' WHEN MONTH(create_time) BETWEEN 7 AND 9 THEN '第三季度' ELSE '第四季度' END AS QUARTER from dc_warning where stake_mark=#{stakeMark} and YEAR(create_time) =DATE_FORMAT(#{createTime},'%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, CASE WHEN MONTH ( w.create_time ) BETWEEN 1 AND 3 THEN '第一季度' WHEN MONTH ( w.create_time ) BETWEEN 4 AND 6 THEN '第二季度' WHEN MONTH ( w.create_time ) BETWEEN 7 AND 9 THEN '第三季度' ELSE '第四季度' END AS QUARTER FROM dc_warning w LEFT JOIN dc_stake_mark m ON w.stake_mark = m.stake_mark WHERE m.stake_mark IS NOT null and w.direction=#{direction} and YEAR(w.create_time) =DATE_FORMAT(#{createTime},'%Y') GROUP BY QUARTER ORDER BY QUARTER; </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.create_time)= DATE_FORMAT(#{createTime},'%Y-%m-%d')</if> <if test = 'type == "month"' >and DATE_FORMAT(w.create_time,'%Y-%m') =DATE_FORMAT(#{createTime},'%Y-%m')</if> <if test = 'type == "year"' >and YEAR(w.create_time) =DATE_FORMAT(#{createTime},'%Y')</if> AND w.direction = #{direction}) sectionNumber FROM dc_stake_mark AS m WHERE m.section_id = #{sectionId} </select> </mapper>