Browse Source

感知统计相关接口

develop
zhao-meiyu 1 year ago
parent
commit
b2945d20c7
  1. 4
      zc-business/src/main/java/com/zc/business/service/impl/DcPerceivedEventsWarningServiceImpl.java
  2. 60
      zc-business/src/main/resources/mapper/business/DcPerceivedEventsWarningMapper.xml

4
zc-business/src/main/java/com/zc/business/service/impl/DcPerceivedEventsWarningServiceImpl.java

@ -146,8 +146,8 @@ public class DcPerceivedEventsWarningServiceImpl implements IDCPerceivedEventsWa
List<HashMap<String, Object>> mapList = perceivedEventsWarningMapper.selectSectionMark(dcWarning); List<HashMap<String, Object>> mapList = perceivedEventsWarningMapper.selectSectionMark(dcWarning);
for (HashMap<String,Object> list:mapList){ for (HashMap<String,Object> list:mapList){
HashMap<String, Object> mapNum = new HashMap<>(); HashMap<String, Object> mapNum = new HashMap<>();
String markId = (String) list.get("id"); String markId = (String) list.get("stakeMark");
dcWarning.setStakeMarkId(markId); dcWarning.setStakeMark(markId);
String sectionNumber=""; String sectionNumber="";
switch (type) { switch (type) {
case "day": case "day":

60
zc-business/src/main/resources/mapper/business/DcPerceivedEventsWarningMapper.xml

@ -15,14 +15,14 @@
</select> </select>
<select id="selectPerceivedEventsList" resultType="com.zc.business.domain.DcWarning"> <select id="selectPerceivedEventsList" resultType="com.zc.business.domain.DcWarning">
SELECT warning.`id`,warning.`stake_mark`, warning.`direction`, SELECT warning.`id`,warning.`stake_mark_id`, warning.`direction`,
mark.longitude,mark.latitude,warning.lane, mark.longitude,mark.latitude,warning.lane,
warning.`dept_id`,warning.`warning_state`,warning.`warning_time`, warning.`dept_id`,warning.`warning_state`,warning.`warning_time`,
warning.`user_id`, warning.`warning_source`,warning.`warning_level`, warning.`user_id`, warning.`warning_source`,warning.`warning_level`,
warning.`remark`, warning.`create_time`,warning.`update_time`, warning.`remark`, warning.`create_time`,warning.`update_time`,
warning.`warning_type`,warning.`warning_subclass`,warning.`warning_title`, warning.`warning_type`,warning.`warning_subclass`,warning.`warning_title`,
warning.`other_config` FROM dc_warning AS warning warning.`other_config` FROM dc_warning AS warning
LEFT JOIN dc_stake_mark AS mark ON mark.id=warning.stake_mark LEFT JOIN dc_stake_mark AS mark ON mark.stake_mark=warning.stake_mark_id
<where> <where>
<if test="warningType != null and warningType != ''"> and warning_type = #{warningType}</if> <if test="warningType != null and warningType != ''"> and warning_type = #{warningType}</if>
<if test="warningSubclass != null and warningSubclass != ''"> and warning_subclass = #{warningSubclass}</if> <if test="warningSubclass != null and warningSubclass != ''"> and warning_subclass = #{warningSubclass}</if>
@ -30,7 +30,7 @@
</select> </select>
<select id="selectSectionPerceivedEventsList" resultType="hashmap"> <select id="selectSectionPerceivedEventsList" resultType="hashmap">
SELECT COUNT(1) as number,section.section_name sectionName FROM dc_warning AS warning SELECT COUNT(1) as number,section.section_name sectionName FROM dc_warning AS warning
LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark=mark.id LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark_id=mark.stake_mark
LEFT JOIN dc_road_section AS section ON mark.section_id=section.id LEFT JOIN dc_road_section AS section ON mark.section_id=section.id
where DATE_FORMAT(warning.create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%Y-%m-%d') where DATE_FORMAT(warning.create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%Y-%m-%d')
group by section.section_name group by section.section_name
@ -38,7 +38,7 @@
</select> </select>
<select id="selectSectionPerceivedNumber" resultType="java.util.HashMap"> <select id="selectSectionPerceivedNumber" resultType="java.util.HashMap">
SELECT COUNT(1) as number,section.section_name sectionName FROM dc_warning AS warning SELECT COUNT(1) as number,section.section_name sectionName FROM dc_warning AS warning
LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark=mark.id LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark_id=mark.stake_mark
LEFT JOIN dc_road_section AS section ON mark.section_id=section.id LEFT JOIN dc_road_section AS section ON mark.section_id=section.id
where DATE_FORMAT(warning.create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%Y-%m-%d') where DATE_FORMAT(warning.create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%Y-%m-%d')
group by section.section_name group by section.section_name
@ -76,7 +76,7 @@
<select id="selectWarningTrendDay" resultType="java.util.HashMap"> <select id="selectWarningTrendDay" resultType="java.util.HashMap">
SELECT DATE_FORMAT(warning.create_time, '%Y-%m-%d %H') AS time, COUNT(*) AS number SELECT DATE_FORMAT(warning.create_time, '%Y-%m-%d %H') AS time, COUNT(*) AS number
FROM dc_warning AS warning FROM dc_warning AS warning
LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark=mark.id LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark_id=mark.stake_mark
WHERE DATE_FORMAT(warning.create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%Y-%m-%d') WHERE DATE_FORMAT(warning.create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%Y-%m-%d')
AND warning.direction=#{direction} AND warning.direction=#{direction}
AND mark.`section_id`=#{sectionId} AND mark.`section_id`=#{sectionId}
@ -85,7 +85,7 @@
<select id="selectWarningTrendMonth" resultType="java.util.HashMap"> <select id="selectWarningTrendMonth" resultType="java.util.HashMap">
SELECT DATE(warning.create_time) AS DAY, COUNT(*) AS number SELECT DATE(warning.create_time) AS DAY, COUNT(*) AS number
FROM dc_warning as warning FROM dc_warning as warning
LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark=mark.id LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark_id=mark.stake_mark
WHERE DATE_FORMAT(warning.create_time,'%Y-%m') =DATE_FORMAT(#{createTime},'%Y-%m') WHERE DATE_FORMAT(warning.create_time,'%Y-%m') =DATE_FORMAT(#{createTime},'%Y-%m')
AND warning.direction=#{direction} AND warning.direction=#{direction}
and mark.`section_id`=#{sectionId} and mark.`section_id`=#{sectionId}
@ -103,7 +103,7 @@
MONTH(warning.create_time) AS MONTH, MONTH(warning.create_time) AS MONTH,
COUNT(*) AS number COUNT(*) AS number
FROM dc_warning as warning FROM dc_warning as warning
LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark=mark.id LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark_id=mark.stake_mark
WHERE YEAR(warning.create_time) =DATE_FORMAT(#{createTime},'%Y') WHERE YEAR(warning.create_time) =DATE_FORMAT(#{createTime},'%Y')
AND warning.direction=#{direction} AND warning.direction=#{direction}
and mark.`section_id`=#{sectionId} and mark.`section_id`=#{sectionId}
@ -114,14 +114,14 @@
<select id="selectWarningTrendYear" resultType="java.util.HashMap"> <select id="selectWarningTrendYear" resultType="java.util.HashMap">
SELECT YEAR(warning.create_time) AS YEAR, COUNT(*) AS number SELECT YEAR(warning.create_time) AS YEAR, COUNT(*) AS number
FROM dc_warning as warning FROM dc_warning as warning
LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark=mark.id LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark_id=mark.stake_mark
where mark.`section_id`=#{sectionId} AND warning.direction=#{direction} where mark.`section_id`=#{sectionId} AND warning.direction=#{direction}
GROUP BY YEAR GROUP BY YEAR
</select> </select>
<select id="selectWarningSectionTypeDay" resultType="java.util.HashMap"> <select id="selectWarningSectionTypeDay" resultType="java.util.HashMap">
SELECT warning.warning_type warningType,COUNT(*) AS number SELECT warning.warning_type warningType,COUNT(*) AS number
FROM dc_warning as warning FROM dc_warning as warning
LEFT JOIN dc_stake_mark as mark on warning.stake_mark=mark.id LEFT JOIN dc_stake_mark as mark on warning.stake_mark_id=mark.stake_mark
where DATE_FORMAT(warning.create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%Y-%m-%d') where DATE_FORMAT(warning.create_time,'%Y-%m-%d')=DATE_FORMAT(#{createTime},'%Y-%m-%d')
AND warning.direction=#{direction} AND warning.direction=#{direction}
and mark.`section_id`=#{sectionId} and mark.`section_id`=#{sectionId}
@ -131,7 +131,7 @@
<select id="selectWarningSectionTypeMonth" resultType="java.util.HashMap"> <select id="selectWarningSectionTypeMonth" resultType="java.util.HashMap">
SELECT warning.warning_type warningType,COUNT(*) AS number SELECT warning.warning_type warningType,COUNT(*) AS number
FROM dc_warning as warning FROM dc_warning as warning
LEFT JOIN dc_stake_mark as mark on warning.stake_mark=mark.id LEFT JOIN dc_stake_mark as mark on warning.stake_mark_id=mark.stake_mark
where DATE_FORMAT(warning.create_time,'%Y-%m') =DATE_FORMAT(#{createTime},'%Y-%m') where DATE_FORMAT(warning.create_time,'%Y-%m') =DATE_FORMAT(#{createTime},'%Y-%m')
AND warning.direction=#{direction} AND warning.direction=#{direction}
and mark.`section_id`=#{sectionId} and mark.`section_id`=#{sectionId}
@ -149,7 +149,7 @@
warning.warning_type warningType, warning.warning_type warningType,
COUNT(*) AS number COUNT(*) AS number
FROM dc_warning as warning FROM dc_warning as warning
LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark=mark.id LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark_id=mark.stake_mark
WHERE YEAR(warning.create_time) =DATE_FORMAT(#{createTime},'%Y') WHERE YEAR(warning.create_time) =DATE_FORMAT(#{createTime},'%Y')
AND warning.direction=#{direction} AND warning.direction=#{direction}
and mark.`section_id`=#{sectionId} and mark.`section_id`=#{sectionId}
@ -160,23 +160,23 @@
SELECT warning.warning_type warningType, COUNT(*) AS number, SELECT warning.warning_type warningType, COUNT(*) AS number,
DATE_FORMAT(warning.create_time, '%Y') as createTime DATE_FORMAT(warning.create_time, '%Y') as createTime
FROM dc_warning as warning FROM dc_warning as warning
LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark=mark.id LEFT JOIN dc_stake_mark AS mark ON warning.stake_mark_id=mark.stake_mark
where mark.`section_id`=#{sectionId} AND warning.direction=#{direction} where mark.`section_id`=#{sectionId} AND warning.direction=#{direction}
GROUP BY warningType GROUP BY warningType
</select> </select>
<select id="selectSectionMark" resultType="java.util.HashMap"> <select id="selectSectionMark" resultType="java.util.HashMap">
SELECT id FROM dc_stake_mark AS mark WHERE mark.section_id=#{sectionId} SELECT stake_mark stakeMark FROM dc_stake_mark AS mark WHERE mark.section_id=#{sectionId}
</select> </select>
<select id="selectSectionNumber" resultType="java.lang.String"> <select id="selectSectionNumber" resultType="java.lang.String">
select count(1) from dc_warning where stake_mark=#{stakeMark} AND warning.direction=#{direction} select count(1) from dc_warning where stake_mark_id=#{stakeMarkId} AND warning.direction=#{direction}
</select> </select>
<select id="selectWarningEscalation" resultType="java.util.HashMap"> <select id="selectWarningEscalation" resultType="java.util.HashMap">
select org.organization_name,warning.warning_type,warning.warning_subclass, select org.organization_name,warning.warning_type,warning.warning_subclass,
warning_title,warning.warning_state,warning. 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 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.id LEFT JOIN dc_stake_mark as mark on warning.stake_mark_id=mark.stake_mark
LEFT JOIN dc_organization as org on mark.id=org.stake_mark AND mark.direction=org.direction LEFT JOIN dc_organization as org on mark.stake_mark=org.stake_mark_id AND mark.direction=org.direction
<where> <where>
<if test="warningState != null and warningState != ''"> and warning.warning_state = #{warningState}</if> <if test="warningState != null and warningState != ''"> and warning.warning_state = #{warningState}</if>
</where> </where>
@ -185,7 +185,7 @@
<update id="updateWarning"> <update id="updateWarning">
update dc_warning update dc_warning
<trim prefix="SET" suffixOverrides=","> <trim prefix="SET" suffixOverrides=",">
<if test="stakeMark != null and stakeMark != ''">stake_mark = #{stakeMark},</if> <if test="stakeMarkId != null and stakeMarkId != ''">stake_mark_id = #{stakeMarkId},</if>
<if test="direction != null">direction = #{direction},</if> <if test="direction != null">direction = #{direction},</if>
<if test="deptId != null">dept_id = #{deptId},</if> <if test="deptId != null">dept_id = #{deptId},</if>
<if test="warningState != null">warning_state = #{warningState},</if> <if test="warningState != null">warning_state = #{warningState},</if>
@ -203,5 +203,29 @@
</trim> </trim>
where id = #{id} where id = #{id}
</update> </update>
<select id="selectWarningMarkDay" resultType="java.lang.String">
select count(1) from dc_warning where stake_mark_id=#{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_id=#{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_id=#{stakeMark}
AND direction=#{direction} and YEAR(create_time) =DATE_FORMAT(#{createTime},'%Y')
</select>
<select id="selectWarningMarkQuarter" resultType="hashmap">
select count(1) number,stake_mark_id stakeMarkId,
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_id=#{stakeMark}
AND direction=#{direction}
GROUP BY QUARTER
ORDER BY QUARTER;
</select>
</mapper> </mapper>
Loading…
Cancel
Save