From 72b971c98c46531064d74b68fc8fe8864ed0b544 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Tue, 08 Nov 2022 09:04:56 +0800
Subject: [PATCH] 大屏溯源统计次数sql修改

---
 src/main/java/org/springblade/modules/traceability/mapper/SweepRecordMapper.xml |  188 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 187 insertions(+), 1 deletions(-)

diff --git a/src/main/java/org/springblade/modules/traceability/mapper/SweepRecordMapper.xml b/src/main/java/org/springblade/modules/traceability/mapper/SweepRecordMapper.xml
index 058a0f4..53b4b2f 100644
--- a/src/main/java/org/springblade/modules/traceability/mapper/SweepRecordMapper.xml
+++ b/src/main/java/org/springblade/modules/traceability/mapper/SweepRecordMapper.xml
@@ -10,40 +10,226 @@
 
     <!--获取扫描次数统计数据-->
     <select id="getSweepRecordStatistics" resultType="java.lang.Integer">
+--         今天
         select count(*) from sys_sweep_record  ssr left join sys_traceability st on ssr.code = st.id
         left join sys_recovery sr on sr.id = st.recovery_id
         left join sys_land sl on sl.id = sr.land_id
-        WHERE DAY(ssr.create_time) = NOW()
+        WHERE TO_DAYS( ssr.create_time )  = TO_DAYS(NOW())
         and sl.farm_id = #{sweepRecord.farmId}
         union all
+--         昨天
         select count(*) from sys_sweep_record  ssr left join sys_traceability st on ssr.code = st.id
         left join sys_recovery sr on sr.id = st.recovery_id
         left join sys_land sl on sl.id = sr.land_id
         WHERE TO_DAYS( NOW( ) ) - TO_DAYS( ssr.create_time) = 1
         and sl.farm_id = #{sweepRecord.farmId}
         union all
+--         本周
         select count(*) from sys_sweep_record  ssr left join sys_traceability st on ssr.code = st.id
         left join sys_recovery sr on sr.id = st.recovery_id
         left join sys_land sl on sl.id = sr.land_id
         WHERE YEARWEEK(date_format(ssr.create_time,'%Y-%m-%d')) = YEARWEEK(now())
         and sl.farm_id = #{sweepRecord.farmId}
         union all
+--         上周
         select count(*) from sys_sweep_record  ssr left join sys_traceability st on ssr.code = st.id
         left join sys_recovery sr on sr.id = st.recovery_id
         left join sys_land sl on sl.id = sr.land_id
         WHERE YEARWEEK(date_format(ssr.create_time,'%Y-%m-%d')) = YEARWEEK(now())-1
         and sl.farm_id = #{sweepRecord.farmId}
         union all
+--         本月
         select count(*) from sys_sweep_record  ssr left join sys_traceability st on ssr.code = st.id
         left join sys_recovery sr on sr.id = st.recovery_id
         left join sys_land sl on sl.id = sr.land_id
         WHERE DATE_FORMAT( ssr.create_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )
         and sl.farm_id = #{sweepRecord.farmId}
         union all
+--         上月
         select count(*) from sys_sweep_record  ssr left join sys_traceability st on ssr.code = st.id
         left join sys_recovery sr on sr.id = st.recovery_id
         left join sys_land sl on sl.id = sr.land_id
         WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( ssr.create_time, '%Y%m' ) ) =1
         and sl.farm_id = #{sweepRecord.farmId}
     </select>
+
+
+    <!--获取扫描次数统计数据(日统计)-->
+    <select id="getSweepRecordStatisticsByDay" resultType="org.springblade.modules.traceability.dto.SweepRecordStatisticDTO">
+        select a.order_hour as time, ifnull(b.num, 0) as num
+        from (
+        SELECT 0 AS order_hour UNION ALL SELECT 1 AS order_hour UNION ALL
+        SELECT 2 AS order_hour UNION ALL SELECT 3 AS order_hour UNION ALL
+        SELECT 4 AS order_hour UNION ALL SELECT 5 AS order_hour UNION ALL
+        SELECT 6 AS order_hour UNION ALL SELECT 7 AS order_hour UNION ALL
+        SELECT 8 AS order_hour UNION ALL SELECT 9 AS order_hour UNION ALL
+        SELECT 10 AS order_hour UNION ALL SELECT 11 AS order_hour UNION ALL
+        SELECT 12 AS order_hour UNION ALL SELECT 13 AS order_hour UNION ALL
+        SELECT 14 AS order_hour UNION ALL SELECT 15 AS order_hour UNION ALL
+        SELECT 16 AS order_hour UNION ALL SELECT 17 AS order_hour UNION ALL
+        SELECT 18 AS order_hour UNION ALL SELECT 19 AS order_hour UNION ALL
+        SELECT 20 AS order_hour UNION ALL SELECT 21 AS order_hour UNION ALL
+        SELECT 22 AS order_hour UNION ALL SELECT 23 AS order_hour
+        ) as a
+        LEFT JOIN
+        (
+        SELECT HOUR(ssr.create_time) AS order_hour, count(*) AS num from sys_sweep_record ssr
+        left join sys_traceability st on ssr.code = st.id
+        left join sys_recovery sr on sr.id = st.recovery_id
+        left join sys_land sl on sl.id = sr.land_id
+        WHERE ssr.create_time >= str_to_date(concat(#{sweepRecord.time},' 00:00:00'),'%Y-%m-%d %T')
+        AND ssr.create_time&lt;= str_to_date(concat(#{sweepRecord.time},' 23:59:59'),'%Y-%m-%d %T')
+        and sl.farm_id = #{sweepRecord.farmId}
+        GROUP BY order_hour
+        ) b ON a.order_hour=b.order_hour
+        ORDER BY a.order_hour
+    </select>
+
+    <!--获取扫描次数统计数据(月统计)-->
+    <select id="getSweepRecordStatisticsByMonth" resultType="org.springblade.modules.traceability.dto.SweepRecordStatisticDTO">
+        SELECT lefttable.date time,
+        IFNULL(righttable.m, '0') AS num
+        FROM (
+        SELECT ADDDATE(y.FIRST, x.d - 1) AS date
+        FROM
+        (
+        SELECT
+        1 AS d 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 UNION ALL
+        SELECT
+        13 UNION ALL
+        SELECT
+        14 UNION ALL
+        SELECT
+        15 UNION ALL
+        SELECT
+        16 UNION ALL
+        SELECT
+        17 UNION ALL
+        SELECT
+        18 UNION ALL
+        SELECT
+        19 UNION ALL
+        SELECT
+        20 UNION ALL
+        SELECT
+        21 UNION ALL
+        SELECT
+        22 UNION ALL
+        SELECT
+        23 UNION ALL
+        SELECT
+        24 UNION ALL
+        SELECT
+        25 UNION ALL
+        SELECT
+        26 UNION ALL
+        SELECT
+        27 UNION ALL
+        SELECT
+        28 UNION ALL
+        SELECT
+        29 UNION ALL
+        SELECT
+        30 UNION ALL
+        SELECT
+        31
+        ) x,
+        ( SELECT CONCAT( #{sweepRecord.time}, '-01' ) AS FIRST, DAY ( LAST_DAY( str_to_date( concat(#{sweepRecord.time},'-01'), '%Y-%m-%d' ) ) ) AS
+        last ) y
+        WHERE
+        x.d &lt;= y.last
+        AND ADDDATE( y.FIRST
+        , x.d - 1 ) &lt;= CURDATE()
+        ) AS lefttable
+        LEFT JOIN (
+        SELECT
+		IFNULL( COUNT( * ), 0 ) AS m,
+		DATE_FORMAT( ssr.create_time, '%Y-%c-%d' ) AS gptime
+	FROM
+		sys_sweep_record ssr left join sys_traceability st on ssr.code = st.id
+        left join sys_recovery sr on sr.id = st.recovery_id
+        left join sys_land sl on sl.id = sr.land_id
+	WHERE
+		DATE_FORMAT( ssr.create_time, '%Y-%m' ) = #{sweepRecord.time}
+		and sl.farm_id = #{sweepRecord.farmId}
+        GROUP BY gptime
+        ) AS righttable ON DATE_FORMAT(lefttable.date, '%Y-%c-%d') = righttable.gptime
+        ORDER BY time
+    </select>
+
+    <!--获取扫描次数统计数据(年统计)-->
+    <select id="getSweepRecordStatisticsByYear" resultType="org.springblade.modules.traceability.dto.SweepRecordStatisticDTO">
+        select m.id time, IFNULL(b,0) num from
+        (
+          select 1 as id union
+            select 2 union
+            select 3 union
+            select 4 union
+            select 5 union
+            select 6 union
+            select 7 union
+            select 8 union
+            select 9 union
+            select 10 union
+            select 11 union
+            select 12
+        ) m
+        left join
+        (
+            select month(ssr.create_time) a,count(*) b from sys_sweep_record ssr
+            left join sys_traceability st on ssr.code = st.id
+            left join sys_recovery sr on sr.id = st.recovery_id
+            left join sys_land sl on sl.id = sr.land_id
+            where  year(ssr.create_time) = #{sweepRecord.time}
+            and sl.farm_id = #{sweepRecord.farmId}
+            GROUP BY month(ssr.create_time)
+        ) n
+        on m.id = n.a
+        order by id
+    </select>
+
+    <!--获取扫描次数统计数据(年统计)-->
+    <select id="getSweepRecordStatisticCount" resultType="java.lang.Integer">
+--         总计
+        select count(*) from sys_sweep_record  ssr left join sys_traceability st on ssr.code = st.id
+        left join sys_recovery sr on sr.id = st.recovery_id
+        left join sys_land sl on sl.id = sr.land_id
+        WHERE sl.farm_id = #{sweepRecord.farmId}
+        union all
+--         今天
+        select count(*) from sys_sweep_record  ssr left join sys_traceability st on ssr.code = st.id
+        left join sys_recovery sr on sr.id = st.recovery_id
+        left join sys_land sl on sl.id = sr.land_id
+        WHERE TO_DAYS( ssr.create_time )  = TO_DAYS(NOW())
+        and sl.farm_id = #{sweepRecord.farmId}
+        union all
+--         昨天
+        select count(*) from sys_sweep_record  ssr left join sys_traceability st on ssr.code = st.id
+        left join sys_recovery sr on sr.id = st.recovery_id
+        left join sys_land sl on sl.id = sr.land_id
+        WHERE TO_DAYS( NOW( ) ) - TO_DAYS( ssr.create_time) = 1
+        and sl.farm_id = #{sweepRecord.farmId}
+    </select>
 </mapper>

--
Gitblit v1.9.3