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/FarmPlantMapper.xml |  282 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 230 insertions(+), 52 deletions(-)

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 ac473f4..0bb238b 100644
--- a/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml
+++ b/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml
@@ -4,13 +4,19 @@
 
     <!--自定义查询农场养殖记录分页数据-->
     <select id="selectFarmPlantPage" resultType="org.springblade.modules.farmplant.vo.FarmPlantVO">
-        select sfp.*,ss.strain_name strainName,ss.url,sl.land_name landName,sl.land_area area,land_unit landUnit
+        select DISTINCT sfp.*,ss.strain_name strainName,ss.url,sl.land_name landName,sl.land_area area,land_unit landUnit,bdb.dict_value dica,a.farm_id AS otherFarmId
         ,(SELECT IFNULL(SUM(r.weight),0) from sys_recovery r where sfp.land_id = r.land_id and sfp.strain_id = r.strain_id) as outputNum
         from
         sys_farm_plant sfp
         left join sys_strain ss on ss.id = sfp.strain_id
         left join sys_land sl on sl.id = sfp.land_id
+        LEFT JOIN (
+        SELECT l.id,l.land_name,l.farm_id FROM sys_land l
+        ) a ON a.id = sfp.other_land_id
+        LEFT JOIN sys_farm farm ON farm.id = a.farm_id
+        LEFT JOIN blade_dict_biz bdb ON bdb.dict_key = sl.land_unit
         where 1=1
+        AND bdb.code = "landunit"
         <if test="farmPlant.plant!=null and farmPlant.plant!=''">
             and sfp.plant = #{farmPlant.plant}
         </if>
@@ -37,6 +43,9 @@
         </if>
         <if test="farmPlant.varieties!=null and farmPlant.varieties!=''">
             and sfp.varieties like concat('%',#{farmPlant.varieties},'%')
+        </if>
+        <if test="farmPlant.landName!=null and farmPlant.landName!=''">
+            and sl.land_name like concat('%',#{farmPlant.landName},'%')
         </if>
         <if test="farmPlant.startTime!=null and farmPlant.startTime!=''">
             and sfp.transplan_time &gt;= #{farmPlant.startTime}
@@ -59,27 +68,103 @@
         <if test="farmPlant.transplanTimeEnd !=null and farmPlant.transplanTimeEnd!= ''">
             and sfp.transplan_time &lt; #{farmPlant.transplanTimeEnd}
         </if>
+        <if test="farmPlant.otherLandId !=null and farmPlant.otherLandId !=''">
+            AND sfp.other_land_id = #{farmPlant.otherLandId}
+        </if>
         order by sfp.id desc
     </select>
 
     <select id="selectFarmPlantPageCount" resultType="org.springblade.modules.farmplant.vo.FarmPlantVO">
-        SELECT
-            a.strain_id,a.strainName,SUM(TRUNCATE(a.land_area,3)) area,a.url,a.tenant_id,a.dept_id
+        SELECT b.strain_id,b.strainName,SUM(b.area) AS area,b.url,b.tenant_id,b.dept_id FROM
+        (
+            SELECT
+            a.strain_id,a.strainName,SUM(TRUNCATE(a.land_area,3)) area,a.url,a.tenant_id,a.dept_id,a.planting_way
         FROM
             (
                 SELECT
-                    sfp.*,
-                    ss.strain_name AS strainName,
-                    ss.url,
-                    sl.land_name AS landName,
-                    land_unit AS landUnit,
-                    ( CASE WHEN land_unit = 2 THEN FORMAT(sl.land_area * 0.0015,3) WHEN land_unit = 1 THEN sl.land_area * 0.1 ELSE sl.land_area END ) land_area
+                sfp.*,
+                ss.strain_name AS strainName,
+                ss.url,
+                sl.land_name AS landName,
+                land_unit AS landUnit,
+                ( CASE WHEN land_unit = 2 THEN FORMAT(sl.land_area * 0.0015,3) WHEN land_unit = 1 THEN sl.land_area * 0.1 ELSE
+                sl.land_area END ) land_area
                 FROM
-                    sys_farm_plant sfp
-                        LEFT JOIN sys_strain ss ON ss.id = sfp.strain_id
-                        LEFT JOIN sys_land sl ON sl.id = sfp.land_id
+                sys_farm_plant sfp
+                LEFT JOIN sys_strain ss ON ss.id = sfp.strain_id
+                LEFT JOIN sys_land sl ON sl.id = sfp.land_id
                 WHERE
-                    1 = 1
+                1 = 1
+                <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>
+                <if test="farmPlant.strainId!=null and farmPlant.strainId!=''">
+                    and sfp.strain_id = #{farmPlant.strainId}
+                </if>
+                <if test="farmPlant.plantingWay!=null and farmPlant.plantingWay!=''">
+                    and sfp.planting_way = #{farmPlant.plantingWay}
+                </if>
+                <if test="farmPlant.jobWay!=null and farmPlant.jobWay!=''">
+                    and sfp.job_way = #{farmPlant.jobWay}
+                </if>
+                <if test="farmPlant.status!=null and farmPlant.status!=''">
+                    and sfp.status = #{farmPlant.status}
+                </if>
+                <if test="farmPlant.strainName!=null and farmPlant.strainName!=''">
+                    and ss.strain_name like concat('%',#{farmPlant.strainName},'%')
+                </if>
+                <if test="farmPlant.varieties!=null and farmPlant.varieties!=''">
+                    and sfp.varieties like concat('%',#{farmPlant.varieties},'%')
+                </if>
+                <if test="farmPlant.startTime!=null and farmPlant.startTime!=''">
+                    and sfp.transplan_time &gt;= #{farmPlant.startTime}
+                </if>
+                <if test="farmPlant.endTime!=null and farmPlant.endTime!=''">
+                    and sfp.transplan_time &lt;= #{farmPlant.endTime}
+                </if>
+                <if test="farmPlant.deptId!=null and farmPlant.deptId!=''">
+                    and sfp.dept_id = #{farmPlant.deptId}
+                </if>
+                <if test="farmPlant.tenantId!=null and farmPlant.tenantId!=''">
+                    and sfp.tenant_id = #{farmPlant.tenantId}
+                </if>
+                <if test="farmPlant.farmId!=null and farmPlant.farmId!=''">
+                    and sl.farm_id = #{farmPlant.farmId}
+                </if>ORDER BY
+                sfp.id
+                DESC
+            ) a
+            GROUP BY
+            a.strain_id,a.dept_id,a.planting_way HAVING planting_way !=2
+        ) b
+        GROUP BY
+        b.strain_id,b.dept_id
+    </select>
+
+    <select id="selectFarmPlantPageCountYM" resultType="org.springblade.modules.farmplant.vo.FarmPlantVO">
+        SELECT
+        a.strain_id,a.strainName,SUM(TRUNCATE(a.land_area,3)) area,a.url,a.tenant_id,a.dept_id,a.planting_way
+        FROM
+        (
+        SELECT
+        sfp.*,
+        ss.strain_name AS strainName,
+        ss.url,
+        sl.land_name AS landName,
+        land_unit AS landUnit,
+        ( CASE WHEN land_unit = 2 THEN FORMAT(sl.land_area * 0.0015,3) WHEN land_unit = 1 THEN sl.land_area * 0.1 ELSE sl.land_area END ) land_area
+        FROM
+        sys_farm_plant sfp
+        LEFT JOIN sys_strain ss ON ss.id = sfp.strain_id
+        LEFT JOIN sys_land sl ON sl.id = sfp.land_id
+        WHERE
+        1 = 1
         <if test="farmPlant.plant!=null and farmPlant.plant!=''">
             and sfp.plant = #{farmPlant.plant}
         </if>
@@ -122,11 +207,11 @@
         <if test="farmPlant.farmId!=null and farmPlant.farmId!=''">
             and sl.farm_id = #{farmPlant.farmId}
         </if>
-                ORDER BY
-                    sfp.id DESC
-            ) a
+        ORDER BY
+        sfp.id DESC
+        ) a
         GROUP BY
-            a.strain_id,a.dept_id
+        a.strain_id,a.dept_id,a.planting_way HAVING planting_way !=0 AND planting_way !=1
     </select>
 
     <!--自定义查询农场养殖记录分页数据-->
@@ -378,31 +463,6 @@
 
     <!--小程序查询农场养殖记录数据-->
     <select id="getFarmPlantStatisticsCountz" resultType="org.springblade.modules.farmplant.vo.FarmPlantVO">
-<!--        SELECT-->
-<!--        sfp.strain_id,-->
-<!--        ss.strain_name strainName,-->
-<!--        sum( sl.land_area ) area,-->
-<!--        land_unit landUnit-->
-<!--        FROM-->
-<!--        sys_farm_plant sfp-->
-<!--        LEFT JOIN sys_strain ss ON ss.id = sfp.strain_id-->
-<!--        LEFT JOIN sys_land sl ON sl.id = sfp.land_id where 1=1-->
-<!--        <if test="farmPlant.startTime!=null and farmPlant.startTime!=''">-->
-<!--            and sfp.transplan_time &gt;= #{farmPlant.startTime}-->
-<!--        </if>-->
-<!--        <if test="farmPlant.endTime!=null and farmPlant.endTime!=''">-->
-<!--            and sfp.transplan_time &lt;= #{farmPlant.endTime}-->
-<!--        </if>-->
-<!--        <if test="farmPlant.farmId!=null and farmPlant.farmId!=''">-->
-<!--            and sl.farm_id = #{farmPlant.farmId}-->
-<!--        </if>-->
-<!--        <if test="farmPlant.status!=null and farmPlant.status!=''">-->
-<!--            and sfp.status = #{farmPlant.status}-->
-<!--        </if>-->
-<!--        <if test="farmPlant.tenantId!=null and farmPlant.tenantId!=''">-->
-<!--            and sfp.tenant_id = #{farmPlant.tenantId}-->
-<!--        </if>-->
-<!--        group by sfp.strain_id,strain_name,land_unit-->
         SELECT a.strain_id,a.strainName,SUM(TRUNCATE(a.land_area,3)) areas,a.url FROM
         (
         select sfp.strain_id,ss.url,
@@ -436,16 +496,55 @@
     <!--查询种养记录列表(不分页)-->
     <select id="getFarmPlantList" resultType="org.springblade.modules.farmplant.vo.FarmPlantVO">
 <!--        SELECT-->
+<!--        a.strain_id,a.strainName,SUM(TRUNCATE(a.land_area,3)) area,a.url-->
+<!--        FROM-->
+<!--        (-->
+<!--        SELECT-->
 <!--        sfp.*,-->
-<!--        ss.strain_name strainName,-->
+<!--        ss.strain_name AS strainName,-->
 <!--        ss.url,-->
-<!--        sl.land_area area,-->
-<!--        sl.land_unit landUnit-->
+<!--        sl.land_name AS landName,-->
+<!--        land_unit AS landUnit,-->
+<!--        ( CASE WHEN land_unit = 2 THEN FORMAT(sl.land_area * 0.0015,3) WHEN land_unit = 1 THEN sl.land_area * 0.1 ELSE sl.land_area END ) land_area-->
 <!--        FROM-->
 <!--        sys_farm_plant sfp-->
 <!--        LEFT JOIN sys_strain ss ON ss.id = sfp.strain_id-->
 <!--        LEFT JOIN sys_land sl ON sl.id = sfp.land_id-->
-<!--        where 1=1-->
+<!--        WHERE-->
+<!--        1 = 1-->
+<!--        <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>-->
+<!--        <if test="farmPlant.strainId!=null and farmPlant.strainId!=''">-->
+<!--            and sfp.strain_id = #{farmPlant.strainId}-->
+<!--        </if>-->
+<!--        <if test="farmPlant.plantingWay!=null and farmPlant.plantingWay!=''">-->
+<!--            and sfp.planting_way = #{farmPlant.plantingWay}-->
+<!--        </if>-->
+<!--        <if test="farmPlant.jobWay!=null and farmPlant.jobWay!=''">-->
+<!--            and sfp.job_way = #{farmPlant.jobWay}-->
+<!--        </if>-->
+<!--        <if test="farmPlant.status!=null and farmPlant.status!=''">-->
+<!--            and sfp.status = #{farmPlant.status}-->
+<!--        </if>-->
+<!--        <if test="farmPlant.strainName!=null and farmPlant.strainName!=''">-->
+<!--            and ss.strain_name like concat('%',#{farmPlant.strainName},'%')-->
+<!--        </if>-->
+<!--        <if test="farmPlant.varieties!=null and farmPlant.varieties!=''">-->
+<!--            and sfp.varieties like concat('%',#{farmPlant.varieties},'%')-->
+<!--        </if>-->
+<!--        <if test="farmPlant.startTime!=null and farmPlant.startTime!=''">-->
+<!--            and sfp.transplan_time &gt;= #{farmPlant.startTime}-->
+<!--        </if>-->
+<!--        <if test="farmPlant.endTime!=null and farmPlant.endTime!=''">-->
+<!--            and sfp.transplan_time &lt;= #{farmPlant.endTime}-->
+<!--        </if>-->
 <!--        <if test="farmPlant.deptId!=null and farmPlant.deptId!=''">-->
 <!--            and sfp.dept_id = #{farmPlant.deptId}-->
 <!--        </if>-->
@@ -455,12 +554,91 @@
 <!--        <if test="farmPlant.farmId!=null and farmPlant.farmId!=''">-->
 <!--            and sl.farm_id = #{farmPlant.farmId}-->
 <!--        </if>-->
-<!--        <if test="farmPlant.status!=null and farmPlant.status!=''">-->
-<!--            and sfp.status = #{farmPlant.status}-->
-<!--        </if>-->
-
+<!--        ORDER BY-->
+<!--        sfp.id DESC-->
+<!--        ) a-->
+<!--        GROUP BY-->
+<!--        a.strain_id,a.dept_id-->
+        SELECT b.strain_id,b.strainName,SUM(b.area) AS area,b.url,b.tenant_id,b.dept_id FROM
+        (
         SELECT
-        a.strain_id,a.strainName,SUM(TRUNCATE(a.land_area,3)) area,a.url
+        a.strain_id,a.strainName,SUM(TRUNCATE(a.land_area,3)) area,a.url,a.tenant_id,a.dept_id,a.planting_way
+        FROM
+        (
+        SELECT
+        sfp.*,
+        ss.strain_name AS strainName,
+        ss.url,
+        sl.land_name AS landName,
+        land_unit AS landUnit,
+        ( CASE WHEN land_unit = 2 THEN FORMAT(sl.land_area * 0.0015,3) WHEN land_unit = 1 THEN sl.land_area * 0.1 ELSE
+        sl.land_area END ) land_area
+        FROM
+        sys_farm_plant sfp
+        LEFT JOIN sys_strain ss ON ss.id = sfp.strain_id
+        LEFT JOIN sys_land sl ON sl.id = sfp.land_id
+        WHERE
+        1 = 1
+        <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>
+        <if test="farmPlant.strainId!=null and farmPlant.strainId!=''">
+            and sfp.strain_id = #{farmPlant.strainId}
+        </if>
+        <if test="farmPlant.plantingWay!=null and farmPlant.plantingWay!=''">
+            and sfp.planting_way = #{farmPlant.plantingWay}
+        </if>
+        <if test="farmPlant.jobWay!=null and farmPlant.jobWay!=''">
+            and sfp.job_way = #{farmPlant.jobWay}
+        </if>
+        <if test="farmPlant.status!=null and farmPlant.status!=''">
+            and sfp.status = #{farmPlant.status}
+        </if>
+        <if test="farmPlant.strainName!=null and farmPlant.strainName!=''">
+            and ss.strain_name like concat('%',#{farmPlant.strainName},'%')
+        </if>
+        <if test="farmPlant.varieties!=null and farmPlant.varieties!=''">
+            and sfp.varieties like concat('%',#{farmPlant.varieties},'%')
+        </if>
+        <if test="farmPlant.startTime!=null and farmPlant.startTime!=''">
+            and sfp.transplan_time &gt;= #{farmPlant.startTime}
+        </if>
+        <if test="farmPlant.endTime!=null and farmPlant.endTime!=''">
+            and sfp.transplan_time &lt;= #{farmPlant.endTime}
+        </if>
+        <if test="farmPlant.deptId!=null and farmPlant.deptId!=''">
+            and sfp.dept_id = #{farmPlant.deptId}
+        </if>
+        <if test="farmPlant.tenantId!=null and farmPlant.tenantId!=''">
+            and sfp.tenant_id = #{farmPlant.tenantId}
+        </if>
+        <if test="farmPlant.farmId!=null and farmPlant.farmId!=''">
+            and sl.farm_id = #{farmPlant.farmId}
+        </if>ORDER BY
+        sfp.id
+        DESC
+        ) a
+        GROUP BY
+        a.strain_id,
+        a.dept_id,
+        a.tenant_id,
+        a.planting_way HAVING planting_way !=2
+        ) b
+        GROUP BY
+        b.strain_id,
+        b.dept_id,
+        b.tenant_id
+    </select>
+
+    <select id="getFarmPlantYMList" resultType="org.springblade.modules.farmplant.vo.FarmPlantVO">
+        SELECT
+        a.strain_id,a.strainName,SUM(TRUNCATE(a.land_area,3)) area,a.url,a.tenant_id,a.dept_id,a.planting_way
         FROM
         (
         SELECT
@@ -522,7 +700,7 @@
         sfp.id DESC
         ) a
         GROUP BY
-        a.strain_id,a.dept_id
+        a.strain_id,a.dept_id,a.tenant_id,a.planting_way HAVING planting_way !=0 AND planting_way !=1
     </select>
 
 </mapper>

--
Gitblit v1.9.3