From 72b971c98c46531064d74b68fc8fe8864ed0b544 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Tue, 08 Nov 2022 09:04:56 +0800
Subject: [PATCH] 大屏溯源统计次数sql修改

---
 src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml |   85 +++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 82 insertions(+), 3 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 9549bd8..b5ab481 100644
--- a/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml
+++ b/src/main/java/org/springblade/modules/farmplant/mapper/FarmProductStockMapper.xml
@@ -7,6 +7,7 @@
         select sfps.id,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
+        left join sys_land sl on sl.id = sfps.land_id
         where 1=1
         <if test="farmProductStock.strainId!=null and farmProductStock.strainId!=''">
             and sfps.strain_id = #{farmProductStock.strainId}
@@ -26,13 +27,62 @@
         <if test="farmProductStock.tenantId!=null and farmProductStock.tenantId!=''">
             and sfps.tenant_id = #{farmProductStock.tenantId}
         </if>
+        <if test="farmProductStock.farmId!=null and farmProductStock.farmId!=''">
+            and sl.farm_id = #{farmProductStock.farmId}
+        </if>
         group by sfps.id,sfps.strain_id,ss.url,ss.strain_name,sfps.land_id
+    </select>
+
+    <select id="selectFarmProductStockPageCount" resultType="org.springblade.modules.farmplant.vo.FarmProductStockVO">
+        SELECT a.strainId,SUM(weight) weight,a.url,a.strainName FROM
+            (SELECT
+                 sfps.id,
+                 sfps.strain_id AS strainId,
+                 sfps.land_id,
+                 sum( sfps.weight ) AS weight,
+                 ss.url,
+                 ss.strain_name AS strainName
+             FROM
+                 sys_farm_product_stock sfps
+                     LEFT JOIN sys_strain ss ON ss.id = sfps.strain_id
+                     LEFT JOIN sys_land sl ON sl.id = sfps.land_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>
+        <if test="farmProductStock.farmId!=null and farmProductStock.farmId!=''">
+            and sl.farm_id = #{farmProductStock.farmId}
+        </if>
+             GROUP BY
+                 sfps.id,
+                 sfps.strain_id,
+                 ss.url,
+                 ss.strain_name,
+                 sfps.land_id
+            ) a WHERE weight !=0 GROUP BY strainId
     </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
+        left join sys_land sl on sl.id = sfps.land_id
         where 1=1
         <if test="farmProductStock.strainId!=null and farmProductStock.strainId!=''">
             and sfps.strain_id = #{farmProductStock.strainId}
@@ -52,7 +102,17 @@
         <if test="farmProductStock.tenantId!=null and farmProductStock.tenantId!=''">
             and sfps.tenant_id = #{farmProductStock.tenantId}
         </if>
+        <if test="farmProductStock.farmId!=null and farmProductStock.farmId!=''">
+            and sl.farm_id = #{farmProductStock.farmId}
+        </if>
         group by sfps.strain_id,ss.url,ss.strain_name,sfps.land_id
+    </select>
+
+    <!--根据农场id和品种类型查询  关系:农产品库存表关联地块 -》 地块关联农场 -》 需要联合查询    -->
+    <select id="findFarmProductStockByFarmIdAndStrainId" resultType="org.springblade.modules.farmplant.entity.FarmProductStock">
+        select a.* from sys_farm_product_stock a
+        left join sys_land b on a.land_id = b.id
+        where 1=1 and a.strain_id = #{strainId} and b.farm_id = #{farmId}
     </select>
 
 
@@ -61,6 +121,7 @@
         select sfps.id,sfps.strain_id strainId,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
+        LEFT JOIN sys_land sl ON sl.id = sfps.land_id
         where 1=1
         <if test="farmProductStock.strainId!=null and farmProductStock.strainId!=''">
             and sfps.strain_id = #{farmProductStock.strainId}
@@ -79,6 +140,9 @@
         </if>
         <if test="farmProductStock.tenantId!=null and farmProductStock.tenantId!=''">
             and sfps.tenant_id = #{farmProductStock.tenantId}
+        </if>
+        <if test="farmProductStock.farmId!=null and farmProductStock.farmId!=''">
+            and sl.farm_id = #{farmProductStock.farmId}
         </if>
         group by sfps.id,sfps.strain_id,ss.url,ss.strain_name
     </select>
@@ -294,7 +358,7 @@
         left join sys_land sl on sr.land_id = sl.id
         WHERE 1 = 1
         <if test="year!=null and year!=''">
-            and YEAR ( sr.time ) = #{year}
+            and sr.time like concat('%',#{year},'%')
         </if>
         <if test="farmId!=null and farmId!=''">
             and sl.farm_id = #{farmId}
@@ -323,9 +387,10 @@
 
     <!--小程序农产品库存详情数据-->
     <select id="statisticsProductx" resultType="org.springblade.modules.farmplant.vo.FarmProductStockVO">
-        select sfps.strain_id strainId,sfps.weight,ss.url,ss.strain_name strainName from
+        select sfps.strain_id strainId,SUM(sfps.weight) AS weight,ss.url,ss.strain_name strainName from
         sys_farm_product_stock sfps
         left join sys_strain ss on ss.id = sfps.strain_id
+        LEFT JOIN sys_land land ON land.id = sfps.land_id
         where 1=1
         <if test="farmProductStock.strainId!=null and farmProductStock.strainId!=''">
             and sfps.strain_id = #{farmProductStock.strainId}
@@ -345,6 +410,13 @@
         <if test="farmProductStock.tenantId!=null and farmProductStock.tenantId!=''">
             and sfps.tenant_id = #{farmProductStock.tenantId}
         </if>
+        <if test="farmProductStock.strainType !=null and farmProductStock.strainType !='' ">
+            and ss.strain_type = #{farmProductStock.strainType}
+        </if>
+        <if test="farmProductStock.farmId !=null and farmProductStock.farmId !='' ">
+            and land.farm_id = #{farmProductStock.farmId}
+        </if>
+        GROUP BY sfps.strain_id
     </select>
 
     <!--销售对比库存是否充足-->
@@ -352,7 +424,7 @@
         SELECT
         CASE
             WHEN
-                weight > #{sale} THEN
+                weight >= #{sale} THEN
                 TRUE ELSE FALSE
                 END result
         FROM
@@ -360,10 +432,17 @@
         WHERE
             id = #{id}
     </select>
+
     <!--减去对应库存-->
     <update id="stockReduce">
         UPDATE sys_farm_product_stock SET weight = weight - #{sale}
         WHERE
             id = #{id}
     </update>
+
+    <select id="selectBy2Id" resultType="org.springblade.modules.farmplant.entity.FarmProductStock">
+        SELECT id,strain_id,weight,leaves,time,operator,remark,
+               create_time,farm_plant_id,dept_id,tenant_id,recovery,land_id
+        FROM sys_farm_product_stock  WHERE strain_id = #{strainId} AND land_id = #{landId}
+    </select>
 </mapper>

--
Gitblit v1.9.3