From 596a15d10884a1af78b5a2e9cc591cce1694d492 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Mon, 11 Jul 2022 17:51:49 +0800
Subject: [PATCH] 新增溯源查询统计

---
 src/main/java/org/springblade/modules/traceability/mapper/SweepRecordMapper.xml |  156 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 156 insertions(+), 0 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..8c89416 100644
--- a/src/main/java/org/springblade/modules/traceability/mapper/SweepRecordMapper.xml
+++ b/src/main/java/org/springblade/modules/traceability/mapper/SweepRecordMapper.xml
@@ -46,4 +46,160 @@
         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
+    </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.farmId}
+            and sl.farm_id = #{sweepRecord.farmId}
+            GROUP BY month(ssr.create_time)
+        ) n
+        on m.id = n.a
+        order by id
+    </select>
 </mapper>

--
Gitblit v1.9.3