From 05dbe39d762b9fc6845884f5978ff4a688c55b7a Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Mon, 11 Jul 2022 21:07:41 +0800
Subject: [PATCH] 大屏接口对接

---
 src/main/java/org/springblade/modules/stock/vo/StockVO.java                                   |    2 
 src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml                    |    3 
 src/main/java/org/springblade/modules/farmplant/service/FarmProductStockService.java          |    2 
 src/main/java/org/springblade/modules/farmplant/service/impl/FarmProductStockServiceImpl.java |   16 +++
 src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.java            |    4 
 src/main/java/org/springblade/modules/farmplant/controller/FarmProductStockController.java    |    2 
 src/main/java/org/springblade/modules/task/mapper/TaskMapper.xml                              |    6 
 src/main/java/org/springblade/modules/farmplant/vo/FarmPlantVO.java                           |    5 +
 src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml             |  189 ++++++++++++++++++++++++++++++++++++++++++-----
 src/main/java/org/springblade/modules/stock/mapper/StockMapper.xml                            |    3 
 10 files changed, 202 insertions(+), 30 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 894cf67..dfbf22d 100644
--- a/src/main/java/org/springblade/modules/farmplant/controller/FarmProductStockController.java
+++ b/src/main/java/org/springblade/modules/farmplant/controller/FarmProductStockController.java
@@ -203,7 +203,7 @@
 
 		//采收数量统计
 		Map map = new HashMap();
-		Map<String, String> cssum = farmProductStockService.statisticsStockMonth(year, deptId);
+		List<Map<String, String>> cssum = farmProductStockService.statisticsStockMonth(year, deptId);
 		//加工产品数量统计
 		Map<String, String> jgsum = null;
 
diff --git a/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml b/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml
index d3525a2..b17b9d6 100644
--- a/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml
+++ b/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml
@@ -12,6 +12,9 @@
         <if test="farmPlant.plant!=null and farmPlant.plant!=''">
             and sfp.plant = #{farmPlant.plant}
         </if>
+        <if test="farmPlant.year!=null and farmPlant.year!=''">
+            and sfp.create_time like concat('%',#{farmPlant.year},'%')
+        </if>
         <if test="farmPlant.landId!=null and farmPlant.landId!=''">
             and sfp.land_id = #{farmPlant.landId}
         </if>
diff --git a/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.java b/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.java
index 0238b34..be95ceb 100644
--- a/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.java
+++ b/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.java
@@ -36,7 +36,9 @@
 	List<FarmProductStockVO> statisticsProductx(@Param("page") IPage page, @Param("farmProductStock") FarmProductStockVO farmProductStock);
 	Map<String, String> selctProductCount(String year);
 	Map<String, String> statisticsStock(String year,String deptId);
-	Map<String, String> statisticsStockMonth(String year,String deptId);
+	List<Map<String, String>> statisticsStockYear(String year,String deptId);
+	List<Map<String, String>> statisticsStockMonth(String year,String deptId);
+	List<Map<String, String>> statisticsStockDay(String year,String deptId);
 	Map<String, String> productsSupervise(String year,String deptId);
 	List<Map<String, Double>> statisticsYield(String year,String deptId);
 	boolean stockCompare(double sale,String id);
diff --git a/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml b/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml
index 1361dc9..8bf68ba 100644
--- a/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml
+++ b/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml
@@ -107,31 +107,178 @@
             and stock.dept_id = #{deptId}
         </if>
     </select>
+    <!--按年统计产量-->
+<!--    <select id="statisticsStockYear" resultType="java.util.HashMap">-->
+<!--        SELECT-->
+<!--        IFNULL( SUM( CASE WHEN MONTH ( time ) = 1 THEN weight  END ), 0 ) AS '1',-->
+<!--        IFNULL( SUM( CASE WHEN MONTH ( time ) = 2 THEN weight  END ), 0 ) AS '2',-->
+<!--        IFNULL( SUM( CASE WHEN MONTH ( time ) = 3 THEN weight  END ), 0 ) AS '3',-->
+<!--        IFNULL( SUM( CASE WHEN MONTH ( time ) = 4 THEN weight  END ), 0 ) AS '4',-->
+<!--        IFNULL( SUM( CASE WHEN MONTH ( time ) = 5 THEN weight  END ), 0 ) AS '5',-->
+<!--        IFNULL( SUM( CASE WHEN MONTH ( time ) = 6 THEN weight  END ), 0 ) AS '6',-->
+<!--        IFNULL( SUM( CASE WHEN MONTH ( time ) = 7 THEN weight  END ), 0 ) AS '7',-->
+<!--        IFNULL( SUM( CASE WHEN MONTH ( time ) = 8 THEN weight  END ), 0 ) AS '8',-->
+<!--        IFNULL( SUM( CASE WHEN MONTH ( time ) = 9 THEN weight  END ), 0 ) AS '9',-->
+<!--        IFNULL( SUM( CASE WHEN MONTH ( time ) = 10 THEN weight  END ), 0 ) AS '10',-->
+<!--        IFNULL( SUM( CASE WHEN MONTH ( time ) = 11 THEN weight  END ), 0 ) AS '11',-->
+<!--        IFNULL( SUM( CASE WHEN MONTH ( time ) = 12 THEN weight  END ), 0 ) AS '12'-->
+<!--        FROM-->
+<!--        sys_recovery-->
+<!--        where-->
+<!--        1 = 1-->
+<!--        <if test="year!=null and year!=''">-->
+<!--            and YEAR ( time ) = #{year}-->
+<!--        </if>-->
+<!--        <if test="deptId!=null and deptId!=''">-->
+<!--            and dept_id = #{deptId}-->
+<!--        </if>-->
+<!--    </select>-->
+        <select id="statisticsStockYear" resultType="java.util.HashMap">
+            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.time) a,sum(weight) b from sys_recovery ssr
+
+            where  year(ssr.time) = #{year}
+            GROUP BY month(ssr.time)
+        ) n
+        on m.id = n.a
+        order by id
+        </select>
     <!--按月份统计产量-->
     <select id="statisticsStockMonth" resultType="java.util.HashMap">
         SELECT
-        IFNULL( SUM( CASE WHEN MONTH ( time ) = 1 THEN weight  END ), 0 ) AS '1',
-        IFNULL( SUM( CASE WHEN MONTH ( time ) = 2 THEN weight  END ), 0 ) AS '2',
-        IFNULL( SUM( CASE WHEN MONTH ( time ) = 3 THEN weight  END ), 0 ) AS '3',
-        IFNULL( SUM( CASE WHEN MONTH ( time ) = 4 THEN weight  END ), 0 ) AS '4',
-        IFNULL( SUM( CASE WHEN MONTH ( time ) = 5 THEN weight  END ), 0 ) AS '5',
-        IFNULL( SUM( CASE WHEN MONTH ( time ) = 6 THEN weight  END ), 0 ) AS '6',
-        IFNULL( SUM( CASE WHEN MONTH ( time ) = 7 THEN weight  END ), 0 ) AS '7',
-        IFNULL( SUM( CASE WHEN MONTH ( time ) = 8 THEN weight  END ), 0 ) AS '8',
-        IFNULL( SUM( CASE WHEN MONTH ( time ) = 9 THEN weight  END ), 0 ) AS '9',
-        IFNULL( SUM( CASE WHEN MONTH ( time ) = 10 THEN weight  END ), 0 ) AS '10',
-        IFNULL( SUM( CASE WHEN MONTH ( time ) = 11 THEN weight  END ), 0 ) AS '11',
-        IFNULL( SUM( CASE WHEN MONTH ( time ) = 12 THEN weight  END ), 0 ) AS '12'
+        DAY(lefttable.date) time,
+        IFNULL( righttable.m, '0' ) AS num
         FROM
-        sys_recovery
-        where
-        1 = 1
-        <if test="year!=null and year!=''">
-            and YEAR ( time ) = #{year}
-        </if>
-        <if test="deptId!=null and deptId!=''">
-            and dept_id = #{deptId}
-        </if>
+        (
+        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( weight ), 0 ) AS m,
+        DATE_FORMAT( recovery.time, '%Y-%c-%d' ) AS gptime
+        FROM
+        sys_recovery recovery
+        WHERE
+        DATE_FORMAT( recovery.time, '%Y-%m' ) = #{year}
+        GROUP BY
+        gptime
+        ) AS righttable ON DATE_FORMAT( lefttable.date, '%Y-%c-%d' ) = righttable.gptime
+    </select>
+    <!--按日统计产量-->
+    <select id="statisticsStockDay" resultType="java.util.HashMap">
+        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(recovery.time) AS order_hour, SUM(weight) AS num from sys_recovery recovery
+        WHERE recovery.time >= str_to_date(concat(#{year},' 00:00:00'),'%Y-%m-%d %T')
+        AND recovery.time &lt;= str_to_date(concat(#{year},' 23:59:59'),'%Y-%m-%d %T')
+        GROUP BY order_hour
+        ) b ON a.order_hour=b.order_hour
+        ORDER BY a.order_hour
     </select>
     <!--农产品监管-->
     <select id="productsSupervise" resultType="java.util.HashMap">
diff --git a/src/main/java/org/springblade/modules/farmplant/service/FarmProductStockService.java b/src/main/java/org/springblade/modules/farmplant/service/FarmProductStockService.java
index c18b35d..a81a7e1 100644
--- a/src/main/java/org/springblade/modules/farmplant/service/FarmProductStockService.java
+++ b/src/main/java/org/springblade/modules/farmplant/service/FarmProductStockService.java
@@ -35,7 +35,7 @@
 	IPage<FarmProductStockVO> statisticsProductx(IPage<FarmProductStockVO> page, FarmProductStockVO farmProductStock);
 	Map<String, String> selctProductCount(String year);
 	Map<String, String> statisticsStock(String year,String deptId);
-	Map<String, String> statisticsStockMonth(String year,String deptId);
+	List<Map<String, String>> statisticsStockMonth(String year,String deptId);
 	Map<String, String> productsSupervise(String year,String deptId);
 	List<Map<String, Double>> statisticsYield(String year, String deptId);
 	//查看库存是否充足
diff --git a/src/main/java/org/springblade/modules/farmplant/service/impl/FarmProductStockServiceImpl.java b/src/main/java/org/springblade/modules/farmplant/service/impl/FarmProductStockServiceImpl.java
index c87451b..26b6df4 100644
--- a/src/main/java/org/springblade/modules/farmplant/service/impl/FarmProductStockServiceImpl.java
+++ b/src/main/java/org/springblade/modules/farmplant/service/impl/FarmProductStockServiceImpl.java
@@ -71,8 +71,20 @@
 		return baseMapper.statisticsStock(year,deptId);
 	}
 	@Override
-	public Map<String, String> statisticsStockMonth(String year,String deptId) {
-		return baseMapper.statisticsStockMonth(year,deptId);
+	public List<Map<String, String>> statisticsStockMonth(String year,String deptId) {
+		//按年统计
+		if (year.length()==4){
+			return baseMapper.statisticsStockYear(year,deptId);
+		}
+		//按月统计
+		if (year.length()==7){
+			return baseMapper.statisticsStockMonth(year,deptId);
+		}
+		//按日统计
+		if (year.length()==10){
+			return baseMapper.statisticsStockDay(year,deptId);
+		}
+		return null;
 	}
 	@Override
 	public Map<String, String> productsSupervise(String year,String deptId) {
diff --git a/src/main/java/org/springblade/modules/farmplant/vo/FarmPlantVO.java b/src/main/java/org/springblade/modules/farmplant/vo/FarmPlantVO.java
index de03cf7..a2cb7d5 100644
--- a/src/main/java/org/springblade/modules/farmplant/vo/FarmPlantVO.java
+++ b/src/main/java/org/springblade/modules/farmplant/vo/FarmPlantVO.java
@@ -56,4 +56,9 @@
 	 */
 	private Double areas;
 	private Integer fate;
+
+	/**
+	 * 大屏年月日查询
+	 */
+	private String year;
 }
diff --git a/src/main/java/org/springblade/modules/stock/mapper/StockMapper.xml b/src/main/java/org/springblade/modules/stock/mapper/StockMapper.xml
index a74508d..f8619e3 100644
--- a/src/main/java/org/springblade/modules/stock/mapper/StockMapper.xml
+++ b/src/main/java/org/springblade/modules/stock/mapper/StockMapper.xml
@@ -63,6 +63,9 @@
         <if test="stock.specsValue1!=null and stock.specsValue1 != ''">
             and st.specs_value1 = #{stock.specsValue1}
         </if>
+        <if test="stock.year!=null and stock.year != ''">
+            and st.create_time like concat('%',#{stock.year},'%')
+        </if>
         <if test="stock.specsValue2!=null and stock.specsValue2 != ''">
             and st.specs_value2 = #{stock.specsValue2}
         </if>
diff --git a/src/main/java/org/springblade/modules/stock/vo/StockVO.java b/src/main/java/org/springblade/modules/stock/vo/StockVO.java
index 1f5fc20..62a59b5 100644
--- a/src/main/java/org/springblade/modules/stock/vo/StockVO.java
+++ b/src/main/java/org/springblade/modules/stock/vo/StockVO.java
@@ -38,5 +38,5 @@
 	String agrname;
 	Integer cnum;
 	String codes;
-
+	String year;
 }
diff --git a/src/main/java/org/springblade/modules/task/mapper/TaskMapper.xml b/src/main/java/org/springblade/modules/task/mapper/TaskMapper.xml
index 814ab86..f720add 100644
--- a/src/main/java/org/springblade/modules/task/mapper/TaskMapper.xml
+++ b/src/main/java/org/springblade/modules/task/mapper/TaskMapper.xml
@@ -181,7 +181,7 @@
     WHERE
         1 = 1
         AND STATUS = '0'
-        AND MONTH ( time ) = '7' UNION ALL
+        AND create_time like concat('%',#{year},'%') UNION ALL
     SELECT
         count( * ) AS count
     FROM
@@ -189,7 +189,7 @@
     WHERE
         1 = 1
         AND ( STATUS = '1' OR STATUS = '2' )
-        AND MONTH ( time ) = '7' UNION ALL
+        AND  create_time like concat('%',#{year},'%') UNION ALL
     SELECT
         count( * ) AS count
     FROM
@@ -197,7 +197,7 @@
     WHERE
         1 = 1
         AND ( STATUS = '1' OR STATUS = '2' )
-        AND MONTH ( time ) = '7'
+        AND  create_time like concat('%',#{year},'%')
         AND now( ) > time
     </select>
 </mapper>

--
Gitblit v1.9.3