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/controller/SweepRecordController.java | 10 ++
src/main/java/org/springblade/modules/traceability/service/impl/SweepRecordServiceImpl.java | 22 ++++
src/main/java/org/springblade/modules/traceability/dto/SweepRecordStatisticDTO.java | 22 ++++
src/main/java/org/springblade/modules/traceability/mapper/SweepRecordMapper.java | 22 ++++
src/main/java/org/springblade/modules/traceability/vo/SweepRecordVO.java | 6 +
src/main/java/org/springblade/modules/traceability/service/SweepRecordService.java | 7 +
src/main/java/org/springblade/modules/task/mapper/TaskMapper.java | 1
src/main/java/org/springblade/modules/traceability/mapper/SweepRecordMapper.xml | 156 +++++++++++++++++++++++++++++++
8 files changed, 246 insertions(+), 0 deletions(-)
diff --git a/src/main/java/org/springblade/modules/task/mapper/TaskMapper.java b/src/main/java/org/springblade/modules/task/mapper/TaskMapper.java
index d8210de..2cff998 100644
--- a/src/main/java/org/springblade/modules/task/mapper/TaskMapper.java
+++ b/src/main/java/org/springblade/modules/task/mapper/TaskMapper.java
@@ -42,5 +42,6 @@
List<TaskVO> selectTaskPage(IPage page, TaskVO task);
int selectCount(String taskuser);
+
List<Map<Object,String>> countTaskNum(String year);
}
diff --git a/src/main/java/org/springblade/modules/traceability/controller/SweepRecordController.java b/src/main/java/org/springblade/modules/traceability/controller/SweepRecordController.java
index 7d78861..48be1d4 100644
--- a/src/main/java/org/springblade/modules/traceability/controller/SweepRecordController.java
+++ b/src/main/java/org/springblade/modules/traceability/controller/SweepRecordController.java
@@ -118,4 +118,14 @@
return R.data(sweepRecordService.getSweepRecordStatistics(sweepRecord));
}
+ /**
+ * 获取扫描次数统计数据(日,月,年统计)
+ * @param sweepRecord
+ * @return
+ */
+ @GetMapping("/getSweepRecordStatisticsByDayOrMonthOrYear")
+ public R getSweepRecordStatisticsByDayOrMonthOrYear(SweepRecordVO sweepRecord){
+ return R.data(sweepRecordService.getSweepRecordStatisticsByDayOrMonthOrYear(sweepRecord));
+ }
+
}
diff --git a/src/main/java/org/springblade/modules/traceability/dto/SweepRecordStatisticDTO.java b/src/main/java/org/springblade/modules/traceability/dto/SweepRecordStatisticDTO.java
new file mode 100644
index 0000000..3aac182
--- /dev/null
+++ b/src/main/java/org/springblade/modules/traceability/dto/SweepRecordStatisticDTO.java
@@ -0,0 +1,22 @@
+package org.springblade.modules.traceability.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author zhongrj
+ */
+@Data
+public class SweepRecordStatisticDTO implements Serializable {
+ /**
+ * 日期
+ */
+ private String time;
+
+ /**
+ * 数量
+ */
+ private Integer num;
+
+}
diff --git a/src/main/java/org/springblade/modules/traceability/mapper/SweepRecordMapper.java b/src/main/java/org/springblade/modules/traceability/mapper/SweepRecordMapper.java
index 143838a..99f7cdc 100644
--- a/src/main/java/org/springblade/modules/traceability/mapper/SweepRecordMapper.java
+++ b/src/main/java/org/springblade/modules/traceability/mapper/SweepRecordMapper.java
@@ -4,6 +4,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.traceability.dto.SweepRecordDTO;
+import org.springblade.modules.traceability.dto.SweepRecordStatisticDTO;
import org.springblade.modules.traceability.entity.SweepRecord;
import org.springblade.modules.traceability.vo.SweepRecordVO;
@@ -31,4 +32,25 @@
* @return
*/
List<Integer> getSweepRecordStatistics(@Param("sweepRecord") SweepRecordVO sweepRecord);
+
+ /**
+ * 获取扫描次数统计数据(年统计)
+ * @param sweepRecord
+ * @return
+ */
+ List<SweepRecordStatisticDTO> getSweepRecordStatisticsByYear(@Param("sweepRecord") SweepRecordVO sweepRecord);
+
+ /**
+ * 获取扫描次数统计数据(月统计)
+ * @param sweepRecord
+ * @return
+ */
+ List<SweepRecordStatisticDTO> getSweepRecordStatisticsByMonth(@Param("sweepRecord") SweepRecordVO sweepRecord);
+
+ /**
+ * 获取扫描次数统计数据(日统计)
+ * @param sweepRecord
+ * @return
+ */
+ List<SweepRecordStatisticDTO> getSweepRecordStatisticsByDay(@Param("sweepRecord") SweepRecordVO sweepRecord);
}
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<= 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 <= y.last
+ AND ADDDATE( y.FIRST
+ , x.d - 1 ) <= 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>
diff --git a/src/main/java/org/springblade/modules/traceability/service/SweepRecordService.java b/src/main/java/org/springblade/modules/traceability/service/SweepRecordService.java
index 2a6282f..c1f1c78 100644
--- a/src/main/java/org/springblade/modules/traceability/service/SweepRecordService.java
+++ b/src/main/java/org/springblade/modules/traceability/service/SweepRecordService.java
@@ -29,4 +29,11 @@
* @return
*/
SweepRecordDTO getSweepRecordStatistics(SweepRecordVO sweepRecord);
+
+ /**
+ * 获取扫描次数统计数据(日,月,年统计)
+ * @param sweepRecord
+ * @return
+ */
+ Object getSweepRecordStatisticsByDayOrMonthOrYear(SweepRecordVO sweepRecord);
}
diff --git a/src/main/java/org/springblade/modules/traceability/service/impl/SweepRecordServiceImpl.java b/src/main/java/org/springblade/modules/traceability/service/impl/SweepRecordServiceImpl.java
index fabe867..05bb5f4 100644
--- a/src/main/java/org/springblade/modules/traceability/service/impl/SweepRecordServiceImpl.java
+++ b/src/main/java/org/springblade/modules/traceability/service/impl/SweepRecordServiceImpl.java
@@ -49,4 +49,26 @@
//返回
return dto;
}
+
+ /**
+ * 获取扫描次数统计数据(日,月,年统计)
+ * @param sweepRecord
+ * @return
+ */
+ @Override
+ public Object getSweepRecordStatisticsByDayOrMonthOrYear(SweepRecordVO sweepRecord) {
+ //按年统计
+ if (sweepRecord.getTime().length()==4){
+ return baseMapper.getSweepRecordStatisticsByYear(sweepRecord);
+ }
+ //按月统计
+ if (sweepRecord.getTime().length()==7){
+ return baseMapper.getSweepRecordStatisticsByMonth(sweepRecord);
+ }
+ //按日统计
+ if (sweepRecord.getTime().length()==10){
+ return baseMapper.getSweepRecordStatisticsByDay(sweepRecord);
+ }
+ return null;
+ }
}
diff --git a/src/main/java/org/springblade/modules/traceability/vo/SweepRecordVO.java b/src/main/java/org/springblade/modules/traceability/vo/SweepRecordVO.java
index 6343945..b98db43 100644
--- a/src/main/java/org/springblade/modules/traceability/vo/SweepRecordVO.java
+++ b/src/main/java/org/springblade/modules/traceability/vo/SweepRecordVO.java
@@ -18,4 +18,10 @@
*/
private String farmId;
+
+ /**
+ * 时间
+ */
+ private String time;
+
}
--
Gitblit v1.9.3