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/sale/mapper/SaleMapper.xml | 140 +++++++++++++++++++++++++++++++++++++---------
1 files changed, 111 insertions(+), 29 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..6f97f7c 100644
--- a/src/main/java/org/springblade/modules/sale/mapper/SaleMapper.xml
+++ b/src/main/java/org/springblade/modules/sale/mapper/SaleMapper.xml
@@ -23,23 +23,82 @@
<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>
<select id="selectSalePage" resultMap="saleResultMap">
+<!-- SELECT-->
+<!-- sale.*,-->
+<!-- user.real_name,-->
+<!-- strain.strain_name,-->
+<!-- strain.url,-->
+<!-- district.name as district,-->
+<!-- region.city_name,-->
+<!-- region.district_name,-->
+<!-- CASE WHEN sale.type = 1 THEN-->
+<!-- (-->
+<!-- SELECT m.machining_type FROM sys_process_inv inv-->
+<!-- LEFT JOIN sys_machining m ON m.id = inv.product_id-->
+<!-- WHERE sale.prod_id = inv.id-->
+<!-- )-->
+<!-- ELSE-->
+<!-- (-->
+<!-- SELECT strain.strain_name FROM sys_farm_product_stock sfps-->
+<!-- LEFT JOIN sys_strain strain ON strain.id = sfps.strain_id-->
+<!-- WHERE sale.prod_id = sfps.id-->
+<!-- )-->
+<!-- END AS proName-->
+<!-- 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-->
+<!-- <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
sale.*,
- user.real_name,
+ USER.real_name,
strain.strain_name,
+ mach.machining_type AS proName,
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_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
+ LEFT JOIN sys_process_inv inv ON inv.id = sale.prod_id
+ LEFT JOIN sys_machining mach ON mach.id = inv.product_id
WHERE
- sale.is_deleted = 0
+ 1 = 1
+ <if test="sale.farmId != null and sale.farmId !=''">
+ AND (land.farm_id = #{sale.farmId} OR inv.fps_id = #{sale.farmId})
+ </if>
+ <if test="sale.type != null and sale.type !='' ">
+ AND sale.type = #{sale.type}
+ </if>
+ <if test="sale.kind != null and sale.kind !='' ">
+ AND (inv.product_id = #{sale.kind} OR sale.strain_id = #{sale.kind})
+ </if>
+ AND sale.is_deleted = 0
+ ORDER BY
+ sale.create_time DESC
+
</select>
@@ -60,8 +119,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 +132,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 +178,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
+ LEFT JOIN sys_process_inv inv ON inv.id = sale.prod_id
+ WHERE 1 = 1 AND sale.is_deleted = 0
+ <if test="startTime != null and startTime != ''">
+ and sale_time >= #{startTime}
+ </if>
+ <if test="endTime != null and endTime != ''">
+ and sale_time <= #{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} or inv.fps_id = #{farmId})
+ </if>
GROUP BY
dis.NAME,
dis.lat,
--
Gitblit v1.9.3