From 3df8757ade3bdef3b5a142c846680102589260bc Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Wed, 13 Jul 2022 10:36:37 +0800
Subject: [PATCH] 农事操作,种植记录查询新增,地块,溯源码查询修改

---
 src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml |  317 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 315 insertions(+), 2 deletions(-)

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 873edb4..c74a8df 100644
--- a/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml
+++ b/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml
@@ -4,7 +4,7 @@
 
     <!--自定义查询农产品库存分页数据-->
     <select id="selectFarmProductStockPage" resultType="org.springblade.modules.farmplant.vo.FarmProductStockVO">
-        select sfps.strain_id strainId,sum(sfps.weight) weight,ss.url,ss.strain_name strainName from
+        select sfps.strain_id strainId,sfps.land_id,sum(sfps.weight) weight,ss.url,ss.strain_name strainName from
         sys_farm_product_stock sfps
         left join sys_strain ss on ss.id = sfps.strain_id
         where 1=1
@@ -20,7 +20,39 @@
         <if test="farmProductStock.endTime!=null and farmProductStock.endTime!=''">
             and sfps.time &lt;= #{farmProductStock.endTime}
         </if>
-        group by sfps.strain_id,ss.url,ss.strain_name
+        <if test="farmProductStock.deptId!=null and farmProductStock.deptId!=''">
+            and sfps.dept_id = #{farmProductStock.deptId}
+        </if>
+        <if test="farmProductStock.tenantId!=null and farmProductStock.tenantId!=''">
+            and sfps.tenant_id = #{farmProductStock.tenantId}
+        </if>
+        group by sfps.strain_id,ss.url,ss.strain_name,sfps.land_id
+    </select>
+
+    <select id="selectFarmProductStockPages" resultType="org.springblade.modules.farmplant.vo.FarmProductStockVO">
+        select sfps.strain_id strainId,sfps.land_id,sum(sfps.weight) weight,ss.url,ss.strain_name strainName from
+        sys_farm_product_stock sfps
+        left join sys_strain ss on ss.id = sfps.strain_id
+        where 1=1
+        <if test="farmProductStock.strainId!=null and farmProductStock.strainId!=''">
+            and sfps.strain_id = #{farmProductStock.strainId}
+        </if>
+        <if test="farmProductStock.leaves!=null and farmProductStock.leaves!=''">
+            and sfps.leaves = #{farmProductStock.leaves}
+        </if>
+        <if test="farmProductStock.startTime!=null and farmProductStock.startTime!=''">
+            and sfps.time &gt;= #{farmProductStock.startTime}
+        </if>
+        <if test="farmProductStock.endTime!=null and farmProductStock.endTime!=''">
+            and sfps.time &lt;= #{farmProductStock.endTime}
+        </if>
+        <if test="farmProductStock.deptId!=null and farmProductStock.deptId!=''">
+            and sfps.dept_id = #{farmProductStock.deptId}
+        </if>
+        <if test="farmProductStock.tenantId!=null and farmProductStock.tenantId!=''">
+            and sfps.tenant_id = #{farmProductStock.tenantId}
+        </if>
+        group by sfps.strain_id,ss.url,ss.strain_name,sfps.land_id
     </select>
 
 
@@ -42,6 +74,12 @@
         <if test="farmProductStock.endTime!=null and farmProductStock.endTime!=''">
             and sfps.time &lt;= #{farmProductStock.endTime}
         </if>
+        <if test="farmProductStock.deptId!=null and farmProductStock.deptId!=''">
+            and sfps.dept_id = #{farmProductStock.deptId}
+        </if>
+        <if test="farmProductStock.tenantId!=null and farmProductStock.tenantId!=''">
+            and sfps.tenant_id = #{farmProductStock.tenantId}
+        </if>
         group by sfps.strain_id,ss.url,ss.strain_name
     </select>
 
@@ -52,4 +90,279 @@
         WHERE
             YEAR ( s.time ) =#{year}
     </select>
+
+    <!--大屏经营概况库存数量统计-->
+    <select id="statisticsStock" resultType="java.util.HashMap">
+        SELECT
+        SUM( stock.weight ) AS sum ,
+        SUM( stock.recovery ) AS cssum
+        FROM
+        sys_farm_product_stock AS stock
+        WHERE
+        1 = 1
+        <if test="year!=null and year!=''">
+            and YEAR ( stock.time ) = #{year}
+        </if>
+        <if test="deptId!=null and deptId!=''">
+            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
+        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( 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">
+        SELECT
+        IFNULL( SUM( CASE WHEN LEAVES = 0 THEN weight END ), 0 ) AS '0',
+        IFNULL( SUM( CASE WHEN LEAVES = 1 THEN weight END ), 0 ) AS '1',
+        IFNULL( SUM( CASE WHEN LEAVES = 2 THEN weight END ), 0 ) AS '2',
+        IFNULL( SUM( CASE WHEN LEAVES = 3 THEN weight END ), 0 ) AS '3',
+        IFNULL( SUM( CASE WHEN LEAVES = 4 THEN weight END ), 0 ) AS '4'
+        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="statisticsYield" resultType="java.util.HashMap">
+        SELECT
+            SUM( sale.sale_num ) AS sum
+        FROM
+            sys_sale AS sale
+        WHERE 1 = 1
+            <if test="year!=null and year!=''">
+                and YEAR ( sale.sale_time ) = #{year}
+            </if>
+            union all
+            SELECT
+            SUM( inventory.sale_num ) AS sum
+        FROM
+            sys_inventory AS inventory
+        WHERE 1 = 1
+        <if test="year!=null and year!=''">
+            and YEAR ( inventory.loss_time ) = #{year}
+        </if>
+    </select>
+
+    <!--小程序农产品库存详情数据-->
+    <select id="statisticsProductx" resultType="org.springblade.modules.farmplant.vo.FarmProductStockVO">
+        select sfps.strain_id strainId,sfps.weight,ss.url,ss.strain_name strainName from
+        sys_farm_product_stock sfps
+        left join sys_strain ss on ss.id = sfps.strain_id
+        where 1=1
+        <if test="farmProductStock.strainId!=null and farmProductStock.strainId!=''">
+            and sfps.strain_id = #{farmProductStock.strainId}
+        </if>
+        <if test="farmProductStock.leaves!=null and farmProductStock.leaves!=''">
+            and sfps.leaves = #{farmProductStock.leaves}
+        </if>
+        <if test="farmProductStock.startTime!=null and farmProductStock.startTime!=''">
+            and sfps.time &gt;= #{farmProductStock.startTime}
+        </if>
+        <if test="farmProductStock.endTime!=null and farmProductStock.endTime!=''">
+            and sfps.time &lt;= #{farmProductStock.endTime}
+        </if>
+        <if test="farmProductStock.deptId!=null and farmProductStock.deptId!=''">
+            and sfps.dept_id = #{farmProductStock.deptId}
+        </if>
+        <if test="farmProductStock.tenantId!=null and farmProductStock.tenantId!=''">
+            and sfps.tenant_id = #{farmProductStock.tenantId}
+        </if>
+    </select>
+
+    <!--销售对比库存是否充足-->
+    <select id="stockCompare" resultType="boolean">
+        SELECT
+        CASE
+            WHEN
+                weight > #{sale} THEN
+                TRUE ELSE FALSE
+                END result
+        FROM
+            sys_farm_product_stock
+        WHERE
+            strain_id = #{id}
+    </select>
+    <!--减去对应库存-->
+    <update id="stockReduce">
+        UPDATE sys_farm_product_stock SET weight = weight - #{sale}
+        WHERE
+            strain_id = #{id}
+    </update>
 </mapper>

--
Gitblit v1.9.3