From 28ce1b2fbf0d66a9cce4fddf0823691b15dbc659 Mon Sep 17 00:00:00 2001 From: wangsixiang <2970484253@qq.com> Date: Thu, 26 Dec 2024 18:57:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=84=9F=E7=9F=A5=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E5=92=8C=E5=88=86=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DcPerceivedEventsWarningServiceImpl.java | 30 +++++------ .../DcPerceivedEventsWarningMapper.xml | 54 ++++++++++--------- 2 files changed, 43 insertions(+), 41 deletions(-) diff --git a/zc-business/src/main/java/com/zc/business/service/impl/DcPerceivedEventsWarningServiceImpl.java b/zc-business/src/main/java/com/zc/business/service/impl/DcPerceivedEventsWarningServiceImpl.java index 0b69ff3c..9eec57a3 100644 --- a/zc-business/src/main/java/com/zc/business/service/impl/DcPerceivedEventsWarningServiceImpl.java +++ b/zc-business/src/main/java/com/zc/business/service/impl/DcPerceivedEventsWarningServiceImpl.java @@ -327,24 +327,17 @@ public class DcPerceivedEventsWarningServiceImpl implements IDCPerceivedEventsWa switch (type){ case "day": hashMap.put("currentlyMap", perceivedEventsWarningMapper.newSelectSectionDay(dcWarning)); - break; - case "month": - hashMap.put("currentlyMap", perceivedEventsWarningMapper.newSelectSectionMonth(dcWarning)); - break; - case "year": - hashMap.put("currentlyMap", perceivedEventsWarningMapper.newSelectSectionYear(dcWarning)); - break; - } - - dcWarning.setCurrently(dcWarning.getLastYear());//把传入的去年的时间参数,转为当下时间作为查询参数(因为mapper中的查询提交参数是当下时间) - switch (type) { - case "day": + dcWarning.setCurrently(dcWarning.getLastYear()); hashMap.put("lastYearMap", perceivedEventsWarningMapper.newSelectSectionDay(dcWarning)); break; case "month": + hashMap.put("currentlyMap", perceivedEventsWarningMapper.newSelectSectionMonth(dcWarning)); + dcWarning.setCurrently(dcWarning.getLastYear()); hashMap.put("lastYearMap", perceivedEventsWarningMapper.newSelectSectionMonth(dcWarning)); break; case "year": + hashMap.put("currentlyMap", perceivedEventsWarningMapper.newSelectSectionYear(dcWarning)); + dcWarning.setCurrently(dcWarning.getLastYear()); hashMap.put("lastYearMap", perceivedEventsWarningMapper.newSelectSectionYear(dcWarning)); break; } @@ -368,10 +361,15 @@ public class DcPerceivedEventsWarningServiceImpl implements IDCPerceivedEventsWa @Override public HashMap newSelectSection(DcWarning dcWarning) { HashMap hashMap = new HashMap<>(); - String startStakeMark = StakeMarkUtils.formatMetre(dcWarning.getStartStakeMark()); - dcWarning.setStartStakeMark(startStakeMark); - String endStakeMark = StakeMarkUtils.formatMetre(dcWarning.getEndStakeMark()); - dcWarning.setEndStakeMark(endStakeMark); + if (StringUtils.isNotEmpty(dcWarning.getStartStakeMark())){ + String startStakeMark = StakeMarkUtils.formatMetre(dcWarning.getStartStakeMark()); + dcWarning.setStartStakeMark(startStakeMark); + } + + if (StringUtils.isNotEmpty(dcWarning.getEndStakeMark())){ + String endStakeMark = StakeMarkUtils.formatMetre(dcWarning.getEndStakeMark()); + dcWarning.setEndStakeMark(endStakeMark); + } hashMap.put("currentlyMap", selectSectionUtils(dcWarning)); dcWarning.setCurrently(dcWarning.getLastYear());//时间参数转换,把去年的时间替换为查询时间参数 hashMap.put("lastYearMap", selectSectionUtils(dcWarning)); diff --git a/zc-business/src/main/resources/mapper/business/DcPerceivedEventsWarningMapper.xml b/zc-business/src/main/resources/mapper/business/DcPerceivedEventsWarningMapper.xml index 76ce6b7e..1703737b 100644 --- a/zc-business/src/main/resources/mapper/business/DcPerceivedEventsWarningMapper.xml +++ b/zc-business/src/main/resources/mapper/business/DcPerceivedEventsWarningMapper.xml @@ -28,15 +28,13 @@ where warning.`id`=#{id} @@ -598,8 +599,7 @@ h.hour_num AS time, COUNT(dw.warning_time) AS number FROM ( - SELECT 0 AS hour_num UNION ALL - SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 + SELECT 0 AS hour_num UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION ALL SELECT 11 UNION ALL SELECT 12 @@ -608,15 +608,16 @@ UNION ALL SELECT 19 UNION ALL SELECT 20 UNION ALL SELECT 21 UNION ALL SELECT 22 UNION ALL SELECT 23 ) h - LEFT JOIN dc_warning dw ON HOUR(dw.warning_time) = h.hour_num - AND DATE_FORMAT(dw.warning_time, '%Y-%m') = DATE_FORMAT(#{currently}, '%Y-%m') + INNER JOIN dc_warning dw + ON HOUR(dw.warning_time) = h.hour_num + AND dw.warning_time >= DATE_FORMAT(#{currently}, '%Y-%m-01 00:00:00') + AND dw.warning_time < DATE_FORMAT(DATE_ADD(#{currently}, INTERVAL 1 MONTH), '%Y-%m-01') AND dw.warning_source != 6 AND ( CAST(SUBSTRING(SUBSTRING_INDEX(dw.stake_mark, '+', 1), 2) AS UNSIGNED) * 1000 + - CAST(SUBSTRING_INDEX(dw.stake_mark, '+', -1) AS UNSIGNED) >= #{startStakeMark} AND - CAST(SUBSTRING(SUBSTRING_INDEX(dw.stake_mark, '+', 1), 2) AS UNSIGNED) * 1000 + - CAST(SUBSTRING_INDEX(dw.stake_mark, '+', -1) AS UNSIGNED) <#{endStakeMark} - ) and dw.direction=#{direction} + CAST(SUBSTRING_INDEX(dw.stake_mark, '+', -1) AS UNSIGNED) BETWEEN #{startStakeMark} AND #{endStakeMark} - 1 + ) + AND dw.direction = #{direction} GROUP BY h.hour_num ORDER BY h.hour_num; @@ -652,8 +653,9 @@ COUNT(*) AS number FROM dc_warning as warning where - DATE_FORMAT(warning.warning_time,'%Y-%m-%d')=DATE_FORMAT(#{currently},'%Y-%m-%d') - DATE_FORMAT(warning_time,'%Y-%m') =DATE_FORMAT(#{currently},'%Y-%m') + warning_time >= #{currently} AND warning_time < #{currently} + INTERVAL 1 DAY + warning.warning_time >= #{currently} + AND warning.warning_time < DATE_ADD( #{currently}, INTERVAL 1 month) YEAR(warning_time) =DATE_FORMAT(#{currently},'%Y') AND warning.direction=#{direction} and warning.warning_source!=6 AND ( @@ -670,15 +672,16 @@ COUNT(*) AS number FROM dc_warning as warning where - DATE_FORMAT(warning.warning_time,'%Y-%m-%d')=DATE_FORMAT(#{currently},'%Y-%m-%d') - DATE_FORMAT(warning_time,'%Y-%m') =DATE_FORMAT(#{currently},'%Y-%m') + warning_time >= #{currently} AND warning_time < #{currently} + INTERVAL 1 DAY + warning.warning_time >= #{currently} + AND warning.warning_time < DATE_ADD( #{currently}, INTERVAL 1 month) YEAR(warning_time) =DATE_FORMAT(#{currently},'%Y') AND warning.direction=#{direction} and warning.warning_source!=6 AND ( - CAST(SUBSTRING(SUBSTRING_INDEX(warning.stake_mark, '+', 1), 2) AS UNSIGNED) * 1000 + - CAST(SUBSTRING_INDEX(warning.stake_mark, '+', -1) AS UNSIGNED) >= #{startStakeMark} AND - CAST(SUBSTRING(SUBSTRING_INDEX(warning.stake_mark, '+', 1), 2) AS UNSIGNED) * 1000 + - CAST(SUBSTRING_INDEX(warning.stake_mark, '+', -1) AS UNSIGNED)<#{endStakeMark} + CAST(SUBSTRING(SUBSTRING_INDEX(warning.stake_mark,'+',1),2)AS UNSIGNED)*1000 + +CAST(SUBSTRING_INDEX(warning.stake_mark, '+', -1) AS UNSIGNED)>#{startStakeMark} AND + CAST(SUBSTRING(SUBSTRING_INDEX(warning.stake_mark,'+',1),2)AS UNSIGNED)*1000 + +CAST(SUBSTRING_INDEX(warning.stake_mark, '+', -1) AS UNSIGNED)<#{endStakeMark} ) GROUP BY stakeMark ORDER BY number DESC @@ -688,8 +691,8 @@ FROM dc_warning AS w LEFT JOIN dc_stake_mark AS sm ON w.stake_mark = sm.stake_mark and w.direction=sm.direction LEFT JOIN dc_road_section AS s ON sm.section_id = s.id - WHERE w.warning_source != 6 AND DATE_FORMAT(w.warning_time, '%Y-%m-%d') = DATE_FORMAT(#{currently}, '%Y-%m-%d') - GROUP BY w.warning_state,sectionName + WHERE w.warning_source != 6 AND DATE(w.warning_time) = DATE(#{currently}) + GROUP BY w.warning_state,s.section_name ORDER BY s.start_stake_mark