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/sale/mapper/SaleMapper.xml |   85 ++++++++++++++++++++++++++++++------------
 1 files changed, 60 insertions(+), 25 deletions(-)

diff --git a/src/main/java/org/springblade/modules/sale/mapper/SaleMapper.xml b/src/main/java/org/springblade/modules/sale/mapper/SaleMapper.xml
index 0d20db2..df266f2 100644
--- a/src/main/java/org/springblade/modules/sale/mapper/SaleMapper.xml
+++ b/src/main/java/org/springblade/modules/sale/mapper/SaleMapper.xml
@@ -23,6 +23,8 @@
         <result column="url" property="url"/>
         <result column="district" property="district"/>
         <result column="land_id" property="landId"/>
+        <result column="city_name" property="cityName"/>
+        <result column="district_name" property="countyName"/>
     </resultMap>
 
 
@@ -32,14 +34,24 @@
             user.real_name,
             strain.strain_name,
             strain.url,
-            district.name as district
+            district.name as district,
+            region.city_name,
+            region.district_name
         FROM
             sys_sale sale
         LEFT JOIN blade_user user on sale.create_user = user.id
         LEFT JOIN sys_strain strain on sale.strain_id = strain.id
         LEFT JOIN sys_district district on sale.sale_destination = district.code
+        LEFT JOIN blade_region region on sale.county = region.district_code
+        LEFT JOIN sys_land land ON land.id = sale.land_id
         WHERE
-            sale.is_deleted = 0
+        <if test="sale.strainId !=null and sale.strainId != '' ">
+            sale.strain_id = #{sale.strainId} AND
+        </if>
+        <if test="sale.farmId != null and sale.farmId !=''">
+           land.farm_id = #{sale.farmId} AND
+        </if>
+            sale.is_deleted = 0 ORDER BY sale.create_time DESC
     </select>
 
 
@@ -60,8 +72,12 @@
             IFNULL(SUM( CASE WHEN MONTH ( s.sale_time ) = 12 THEN s.sale_num * sale_price END ),0) AS '12'
         FROM
             sys_sale AS s
+        LEFT JOIN sys_land sl ON sl.id = s.land_id
         WHERE
             YEAR ( sale_time ) = YEAR ( NOW( ) )
+        <if test="farmId != null and farmId != ''">
+            and sl.farm_id = #{farmId}
+        </if>
     </select>
 
     <!--统计今年和去年的销售总额-->
@@ -69,37 +85,43 @@
         SELECT
             IFNULL( SUM( sale_num * sale_price), 0 ) AS num
         FROM
-            sys_sale
+            sys_sale ss
+        LEFT JOIN sys_land sl ON sl.id = ss.land_id
         WHERE
-            YEAR ( sale_time ) = YEAR ( NOW( )-1 ) UNION ALL
+            YEAR ( sale_time ) = YEAR ( NOW( )-1 )
+        <if test="sale.farmId != null and sale.farmId != ''">
+            and sl.farm_id = #{sale.farmId}
+        </if>
+            UNION ALL
         SELECT
             IFNULL( SUM( sale_num * sale_price ), 0 ) AS num
         FROM
-            sys_sale
+            sys_sale ss
+        LEFT JOIN sys_land sl ON sl.id = ss.land_id
         WHERE
             YEAR ( sale_time ) = YEAR ( date_sub( now( ), INTERVAL 1 YEAR ) )
+        <if test="sale.farmId != null and sale.farmId != ''">
+            and sl.farm_id = #{sale.farmId}
+        </if>
     </select>
     <!--统计市场流通/去年流通量/本月流通量-->
     <select id="selectMarketCirculate" resultType="java.util.HashMap" >
-        SELECT
-            IFNULL( SUM( sale_num ), 0 ) AS num
-        FROM
-            sys_sale
-        WHERE
-            YEAR ( sale_time ) = YEAR ( NOW( ) ) UNION ALL
-        SELECT
-            IFNULL( SUM( sale_num ), 0 ) AS num
-        FROM
-            sys_sale
-        WHERE
-            YEAR ( sale_time ) = YEAR ( date_sub( now( ), INTERVAL 1 YEAR ) ) UNION ALL
-        SELECT
-            IFNULL( SUM( sale_num ), 0 ) AS num
-        FROM
-            sys_sale
-        WHERE
-            DATE_FORMAT( sale_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
+        SELECT IFNULL( SUM( sale_num ), 0 ) AS num FROM sys_sale ss
+        left join sys_land sl on sl.id = ss.land_id
+        WHERE YEAR ( ss.sale_time ) = YEAR ( NOW())
+        and sl.farm_id = #{sale.farmId}
+        UNION ALL
+        SELECT IFNULL(SUM(sale_num), 0) AS num FROM sys_sale ss
+        left join sys_land sl on sl.id = ss.land_id
+        WHERE YEAR ( ss.sale_time ) = YEAR ( date_sub( now( ), INTERVAL 1 YEAR ) )
+        and sl.farm_id = #{sale.farmId}
+        UNION ALL
+        SELECT IFNULL( SUM( sale_num ), 0 ) AS num FROM sys_sale ss
+        left join sys_land sl on sl.id = ss.land_id
+        WHERE DATE_FORMAT( ss.sale_time, '%Y%m' ) = DATE_FORMAT( CURDATE( ), '%Y%m' )
+        and sl.farm_id = #{sale.farmId}
     </select>
+
     <select id="selectMarketDistrict" resultType="java.util.HashMap" >
         SELECT
             IFNULL( SUM( sale_num ), 0 ) AS num,
@@ -109,8 +131,21 @@
         FROM
             sys_sale sale
             LEFT JOIN sys_district dis ON sale.sale_destination = dis.CODE
-        WHERE
-            YEAR ( sale_time ) = YEAR ( NOW( ) )
+            LEFT JOIN sys_land sl ON sl.id = sale.land_id
+        WHERE 1 = 1
+        <if test="startTime != null and startTime != ''">
+            and sale_time &gt;= #{startTime}
+        </if>
+        <if test="endTime != null and endTime != ''">
+            and sale_time &lt;= #{endTime}
+        </if>
+        <if test="startTime == null and endTime == null ">
+            and YEAR ( sale_time ) = YEAR ( NOW( ) )
+        </if>
+
+        <if test="farmId != null and farmId != ''">
+            and sl.farm_id = #{farmId}
+        </if>
         GROUP BY
             dis.NAME,
             dis.lat,

--
Gitblit v1.9.3