From 4d60a2ee6bbfe76e2740307c832c8f309090a41e Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Fri, 19 Aug 2022 10:42:06 +0800
Subject: [PATCH] 加工产品在销售记录表和损耗记录表中加上相应的地块

---
 src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml |  205 ++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 193 insertions(+), 12 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 e333f40..a4a5f11 100644
--- a/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml
+++ b/src/main/java/org/springblade/modules/farmplant/mapper/FarmPlantMapper.xml
@@ -4,7 +4,9 @@
 
     <!--自定义查询农场养殖记录分页数据-->
     <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 from
+        select sfp.*,ss.strain_name strainName,ss.url,sl.land_name landName,sl.land_area area,land_unit landUnit
+        ,(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
@@ -51,12 +53,85 @@
         <if test="farmPlant.farmId!=null and farmPlant.farmId!=''">
             and sl.farm_id = #{farmPlant.farmId}
         </if>
+        <if test="farmPlant.transplanTimeStart !=null and farmPlant.transplanTimeStart!= ''">
+            and sfp.transplan_time >= #{farmPlant.transplanTimeStart}
+        </if>
+        <if test="farmPlant.transplanTimeEnd !=null and farmPlant.transplanTimeEnd!= ''">
+            and sfp.transplan_time &lt; #{farmPlant.transplanTimeEnd}
+        </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
+        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
     </select>
 
     <!--自定义查询农场养殖记录分页数据-->
     <select id="getFarmPlantStatistics" resultType="org.springblade.modules.farmplant.vo.FarmPlantVO">
-        select sfp.strain_id,ss.strain_name strainName,sum(sl.land_area) areas,land_unit landUnit from sys_farm_plant
+        select sfp.strain_id,ss.strain_name strainName,sum(TRUNCATE(sl.land_area,3)) areas,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
@@ -72,6 +147,9 @@
         </if>
         <if test="farmPlant.tenantId!=null and farmPlant.tenantId!=''">
             and sfp.tenant_id = #{farmPlant.tenantId}
+        </if>
+        <if test="farmPlant.status !=null and farmPlant.status!=''">
+            and sfp.status = #{farmPlant.status}
         </if>
         group by sfp.strain_id,strain_name,land_unit
     </select>
@@ -89,8 +167,8 @@
         <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 test="farmPlant.farmId!=null and farmPlant.farmId!=''">
+            and sl.farm_id = #{farmPlant.farmId}
         </if>
         <if test="farmPlant.tenantId!=null and farmPlant.tenantId!=''">
             and sfp.tenant_id = #{farmPlant.tenantId}
@@ -112,7 +190,14 @@
 
     <select id="selectCount" resultType="java.lang.Integer">
         SELECT IFNULL(COUNT(*), 0) as num
-        FROM (SELECT strain_id FROM `sys_farm_plant` WHERE STATUS = 1 GROUP BY strain_id) a
+        FROM (SELECT strain_id
+        FROM `sys_farm_plant` ss
+        LEFT JOIN sys_land sl ON sl.id = ss.land_id
+        WHERE  ss.STATUS = 1
+        <if test="farmPlant.farmId != null and farmPlant.farmId != ''">
+            and sl.farm_id = #{farmPlant.farmId}
+        </if>
+        GROUP BY strain_id) a
     </select>
 
     <!--种植品种监管 0:有机 code=1(当天) =2(月) =3(年)-->
@@ -286,6 +371,31 @@
 
     <!--小程序查询农场养殖记录数据-->
     <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
         sfp.strain_id,
         ss.strain_name strainName,
@@ -301,31 +411,97 @@
         <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 test="farmPlant.farmId!=null and farmPlant.farmId!=''">
+            and sl.farm_id = #{farmPlant.farmId}
         </if>
-        <if test="farmPlant.status!=null and farmPlant.status!=''">
+        <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>
+<!--        <if test=" farmPlant.deptId !=null and farmPlant.deptId != ''">-->
+<!--            and sfp.dept_id = #{farmPlant.deptId}-->
+<!--        </if>-->
         group by sfp.strain_id,strain_name,land_unit
     </select>
 
     <!--查询种养记录列表(不分页)-->
     <select id="getFarmPlantList" resultType="org.springblade.modules.farmplant.vo.FarmPlantVO">
+<!--        SELECT-->
+<!--        sfp.*,-->
+<!--        ss.strain_name strainName,-->
+<!--        ss.url,-->
+<!--        sl.land_area area,-->
+<!--        sl.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.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>-->
+<!--        <if test="farmPlant.status!=null and farmPlant.status!=''">-->
+<!--            and sfp.status = #{farmPlant.status}-->
+<!--        </if>-->
+
+        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>
@@ -335,6 +511,11 @@
         <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
     </select>
 
 </mapper>

--
Gitblit v1.9.3