From cd7beee3c18d5875a556cb9da86d805ff2045618 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Thu, 01 Sep 2022 17:31:05 +0800
Subject: [PATCH] 大屏返回加工数据

---
 src/main/java/org/springblade/modules/process/mapper/ProcessMapper.java                    |    7 +
 src/main/java/org/springblade/modules/farmplant/controller/FarmProductStockController.java |    8 +
 src/main/java/org/springblade/modules/process/mapper/ProcessMapper.xml                     |  153 ++++++++++++++++++++++++++++++++++++++
 src/main/java/org/springblade/modules/process/service/impl/ProcessServiceImpl.java         |   20 +++++
 src/main/java/org/springblade/modules/process/service/IProcessService.java                 |    5 +
 5 files changed, 190 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/springblade/modules/farmplant/controller/FarmProductStockController.java b/src/main/java/org/springblade/modules/farmplant/controller/FarmProductStockController.java
index fc8d666..3d515d0 100644
--- a/src/main/java/org/springblade/modules/farmplant/controller/FarmProductStockController.java
+++ b/src/main/java/org/springblade/modules/farmplant/controller/FarmProductStockController.java
@@ -233,12 +233,14 @@
 	public R statisticsStockMonth(String year,String farmId) {
 
 		//采收数量统计
-		Map map = new HashMap();
+		Map<String,List<Map<String, String>>> map = new HashMap();
 		List<Map<String, String>> cssum = farmProductStockService.statisticsStockMonth(year, farmId);
 		//加工产品数量统计
-		Map<String, String> jgsum = null;
+		List<Map<String, String>> jgsum = processService.statisticsMonth(year,farmId);
 
-		return R.data(cssum);
+		map.put("csssum",cssum);
+		map.put("jgsum",jgsum);
+		return R.data(map);
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.java b/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.java
index c8bfdbc..791b2ef 100644
--- a/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.java
+++ b/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.java
@@ -22,6 +22,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 加工记录表 Mapper 接口
@@ -45,4 +46,10 @@
 	Boolean stockReduce(@Param("saleNum") Double saleNum, @Param("proid") String proid);
 
     Double statistics(@Param("year") String year, @Param("farmId") String farmId);
+
+	List<Map<String, String>> statisticsMonth(@Param("year") String year, @Param("farmId") String farmId);
+
+	List<Map<String, String>> statisticsYear(@Param("year") String year, @Param("farmId") String farmId);
+
+	List<Map<String, String>> statisticsDay(@Param("year") String year, @Param("farmId") String farmId);
 }
diff --git a/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.xml b/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.xml
index bc60994..da57229 100644
--- a/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.xml
+++ b/src/main/java/org/springblade/modules/process/mapper/ProcessMapper.xml
@@ -73,4 +73,157 @@
         and land.farm_id = #{farmId}
     </if>
     </select>
+    <select id="statisticsMonth" resultType="java.util.Map">
+        SELECT
+        DAY(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( #{year}, '-01' ) AS FIRST,
+        DAY ( LAST_DAY( str_to_date( concat( #{year}, '-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( sum( process.process_num ), 0 ) AS m,
+        DATE_FORMAT( process.sale_time, '%Y-%c-%d' ) AS gptime
+        FROM
+        sys_process process
+        left join sys_land sl on sl.id = process.land_id
+        WHERE DATE_FORMAT( process.sale_time, '%Y-%m' ) = #{year}
+        and sl.farm_id = #{farmId}
+        GROUP BY
+        gptime
+        ) AS righttable ON DATE_FORMAT( lefttable.date, '%Y-%c-%d' ) = righttable.gptime
+        ORDER BY time
+
+    </select>
+
+    <select id="statisticsYear" resultType="java.util.Map">
+         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(p.sale_time) a,sum(p.process_num) b from sys_process p
+                    left join sys_land sl on sl.id = p.land_id
+                    where  year(p.sale_time) = #{year}
+                    and sl.farm_id = #{farmId}
+                    GROUP BY month(p.sale_time)
+                ) n
+            on m.id = n.a
+            order by id
+    </select>
+
+    <select id="statisticsDay" resultType="java.util.Map">
+ 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(process.sale_time) AS order_hour, SUM(process.process_num) AS num from sys_process process
+        left join sys_land sl on sl.id = process.land_id
+        WHERE process.sale_time >= str_to_date(concat(#{year},' 00:00:00'),'%Y-%m-%d %T')
+        AND process.sale_time &lt;= str_to_date(concat(#{year},' 23:59:59'),'%Y-%m-%d %T')
+        and sl.farm_id = #{farmId}
+        GROUP BY order_hour
+        ) b ON a.order_hour=b.order_hour
+        ORDER BY a.order_hour
+    </select>
 </mapper>
diff --git a/src/main/java/org/springblade/modules/process/service/IProcessService.java b/src/main/java/org/springblade/modules/process/service/IProcessService.java
index 6bf94c9..97a8820 100644
--- a/src/main/java/org/springblade/modules/process/service/IProcessService.java
+++ b/src/main/java/org/springblade/modules/process/service/IProcessService.java
@@ -21,6 +21,9 @@
 import org.springblade.core.mp.base.BaseService;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * 加工记录表 服务类
  *
@@ -55,4 +58,6 @@
 	Boolean stockReduce(Double saleNum, String proid);
 
     Double statistics(String year, String farmId);
+
+	List<Map<String, String>> statisticsMonth(String year, String farmId);
 }
diff --git a/src/main/java/org/springblade/modules/process/service/impl/ProcessServiceImpl.java b/src/main/java/org/springblade/modules/process/service/impl/ProcessServiceImpl.java
index 8b3527d..78ca4b3 100644
--- a/src/main/java/org/springblade/modules/process/service/impl/ProcessServiceImpl.java
+++ b/src/main/java/org/springblade/modules/process/service/impl/ProcessServiceImpl.java
@@ -24,6 +24,9 @@
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 
+import java.util.List;
+import java.util.Map;
+
 /**
  * 加工记录表 服务实现类
  *
@@ -53,4 +56,21 @@
 		return baseMapper.statistics(year,farmId);
 	}
 
+	@Override
+	public List<Map<String, String>> statisticsMonth(String year, String farmId) {
+		//按年统计
+		if (year.length()==4){
+			return baseMapper.statisticsYear(year,farmId);
+		}
+		//按月统计
+		if (year.length()==7){
+			return baseMapper.statisticsMonth(year,farmId);
+		}
+		//按日统计
+		if (year.length()==10){
+			return baseMapper.statisticsDay(year,farmId);
+		}
+		return null;
+	}
+
 }

--
Gitblit v1.9.3