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/recovery/mapper/RecoveryMapper.xml | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 111 insertions(+), 6 deletions(-)
diff --git a/src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml b/src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml
index 802bc44..af07b4e 100644
--- a/src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml
+++ b/src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml
@@ -4,10 +4,15 @@
<!--自定义查询采收记录分页数据-->
<select id="selectRecoveryPage" resultType="org.springblade.modules.recovery.vo.RecoveryVO">
- select sr.*,sl.land_name landName,ss.strain_name strainName from sys_recovery sr
+ select sr.*,sl.land_name landName,ss.strain_name strainName,user.real_name as realName,GROUP_CONCAT(tr.id) AS trIds from sys_recovery sr
left join sys_land sl on sl.id = sr.land_id
left join sys_strain ss on ss.id = sr.strain_id
+ left join blade_user user ON user.id = sr.operator
+ LEFT JOIN sys_traceability tr ON tr.recovery_id = sr.id
where 1=1
+ <if test="recovery.strainName!=null and recovery.strainName!=''">
+ and ss.strain_name like concat ('%',#{recovery.strainName},'%')
+ </if>
<if test="recovery.strainId!=null and recovery.strainId!=''">
and sr.strain_id = #{recovery.strainId}
</if>
@@ -23,12 +28,21 @@
<if test="recovery.operator!=null and recovery.operator!=''">
and sr.operator = #{recovery.operator}
</if>
- <if test="recovery.deptId!=null and recovery.deptId!=''">
- and sr.dept_id = #{recovery.deptId}
+ <if test="recovery.farmId != null and recovery.farmId != ''">
+ and sl.farm_id = #{recovery.farmId}
+ and sr.dept_id = #{recovery.farmId}
</if>
<if test="recovery.tenantId!=null and recovery.tenantId!=''">
and sr.tenant_id = #{recovery.tenantId}
</if>
+ <if test="recovery.startTime != null and recovery.startTime !=''">
+ AND DATE_FORMAT(sr.time,'%Y-%m-%d') >= #{recovery.startTime}
+ </if>
+ <if test="recovery.endTime != null and recovery.endTime !=''">
+ and DATE_FORMAT(sr.time,'%Y-%m-%d') <= #{recovery.endTime}
+ </if>
+ GROUP BY sr.id
+ ORDER BY sr.create_time DESC
</select>
<!--查询当前前缀已有的溯源码编号,取倒数7位的最大值-->
@@ -39,15 +53,106 @@
<!--查询农产品采收记录信息-->
<select id="getRecoveryDetail" resultType="org.springblade.modules.recovery.vo.RecoveryVO">
- select sr.id,sr.strain_id strainId,sr.land_id landId,sr.time,ss.strain_name strainName,ss.url,
+ select sr.id,sr.strain_id strainId,sr.land_id landId,sr.time,ss.strain_name strainName,ss.url,sr.farm_plant_id farmPlantId,
case
when sfp.plant = '0' then '有机'
when sfp.plant = 1 then '绿色'
when sfp.plant = 2 then '无公害'
- else '普通' end as lx
- from sys_recovery sr
+ else '普通' end as lx,
+ sl.farm_id farmId from sys_recovery sr
left join sys_strain ss on sr.strain_id = ss.id
left join sys_farm_plant sfp on sfp.id = sr.farm_plant_id
+ left join sys_land sl on sl.id = sr.land_id
where sr.id = #{recoveryId}
</select>
+ <select id="recoveryStatistics" resultType="org.springblade.modules.recovery.vo.RecoveryVO">
+ SELECT
+ sr.strain_id,
+ SUM(sr.weight) AS weight,
+ strain.strain_name,
+ strain.url
+ FROM sys_recovery sr
+ LEFT JOIN sys_strain strain ON sr.strain_id = strain.id
+ WHERE 1=1
+ <if test="recovery.deptId !=null and recovery.deptId !=''">
+ AND sr.dept_id = #{recovery.deptId}
+ </if>
+ <if test="recovery.startTime != null and recovery.startTime !=''">
+ AND DATE_FORMAT(sr.time,'%Y-%m-%d') >= #{recovery.startTime}
+ </if>
+ <if test="recovery.endTime != null and recovery.endTime !=''">
+ and DATE_FORMAT(sr.time,'%Y-%m-%d') <= #{recovery.endTime}
+ </if>
+ GROUP BY sr.strain_id
+
+ UNION
+
+ SELECT a.process_id,SUM(a.process_num),a.machining_type,a.machining_tp FROM
+ (
+ SELECT DISTINCT
+ p.process_id,
+ p.process_num,
+ m.machining_type,
+ m.machining_tp
+ FROM sys_process p
+ LEFT JOIN sys_machining m ON p.process_id = m.id
+ LEFT JOIN sys_land sl ON sl.id = p.land_id
+ LEFT JOIN sys_process_inv inv ON inv.product_id = p.process_id
+ WHERE 1=1 AND p.is_deleted = 0
+ <if test="recovery.deptId !=null and recovery.deptId !=''">
+ AND( sl.farm_id = #{recovery.deptId} OR (inv.fps_id = #{recovery.deptId} AND p.land_id IS NULL))
+ </if>
+ <if test="recovery.startTime != null and recovery.startTime !=''">
+ AND DATE_FORMAT(p.sale_time,'%Y-%m-%d') >= #{recovery.startTime}
+ </if>
+ <if test="recovery.endTime != null and recovery.endTime !=''">
+ and DATE_FORMAT(p.sale_time,'%Y-%m-%d') <= #{recovery.endTime}
+ </if>
+ ) a GROUP BY a.process_id
+ </select>
+ <select id="recoveryStatisticsx" resultType="org.springblade.modules.recovery.vo.RecoveryVO">
+ SELECT
+ sr.strain_id,
+ SUM(sr.weight) AS weight,
+ strain.strain_name,
+ strain.url
+ FROM sys_recovery sr
+ LEFT JOIN sys_strain strain ON sr.strain_id = strain.id
+ WHERE 1=1
+ <if test="recovery.deptId !=null and recovery.deptId !=''">
+ AND sr.dept_id = #{recovery.deptId}
+ </if>
+ <if test="recovery.startTime != null and recovery.startTime !=''">
+ AND DATE_FORMAT(sr.time,'%Y-%m-%d') >= #{recovery.startTime}
+ </if>
+ <if test="recovery.endTime != null and recovery.endTime !=''">
+ and DATE_FORMAT(sr.time,'%Y-%m-%d') <= #{recovery.endTime}
+ </if>
+ GROUP BY sr.strain_id
+
+ UNION
+
+ SELECT a.process_id,SUM(a.process_num),a.machining_type,a.machining_tp FROM
+ (
+ SELECT DISTINCT
+ p.process_id,
+ p.process_num,
+ m.machining_type,
+ m.machining_tp
+ FROM sys_process p
+ LEFT JOIN sys_machining m ON p.process_id = m.id
+ LEFT JOIN sys_land sl ON sl.id = p.land_id
+ LEFT JOIN sys_process_inv inv ON inv.product_id = p.process_id
+ WHERE 1=1 AND p.is_deleted = 0
+ <if test="recovery.deptId !=null and recovery.deptId !=''">
+ AND( sl.farm_id = #{recovery.deptId} OR (inv.fps_id = #{recovery.deptId} AND p.land_id IS NULL))
+ </if>
+ <if test="recovery.startTime != null and recovery.startTime !=''">
+ AND DATE_FORMAT(p.sale_time,'%Y-%m-%d') >= #{recovery.startTime}
+ </if>
+ <if test="recovery.endTime != null and recovery.endTime !=''">
+ and DATE_FORMAT(p.sale_time,'%Y-%m-%d') <= #{recovery.endTime}
+ </if>
+ ) a GROUP BY a.process_id
+ </select>
</mapper>
--
Gitblit v1.9.3