From fa326e87de2805d8b66b301daee596b1d959e430 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Thu, 15 Sep 2022 11:42:45 +0800
Subject: [PATCH] 出入库记录删除回滚逻辑修改

---
 src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml |   94 ++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 88 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..6a5eaac 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') &gt;= #{recovery.startTime}
+        </if>
+        <if test="recovery.endTime != null and recovery.endTime !=''">
+            and DATE_FORMAT(sr.time,'%Y-%m-%d') &lt;= #{recovery.endTime}
+        </if>
+        GROUP BY sr.id
+        ORDER BY sr.create_time DESC
     </select>
 
     <!--查询当前前缀已有的溯源码编号,取倒数7位的最大值-->
@@ -39,15 +53,83 @@
 
     <!--查询农产品采收记录信息-->
     <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,sr.dept_id,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') &gt;= #{recovery.startTime}
+        </if>
+        <if test="recovery.endTime != null and recovery.endTime !=''">
+            and DATE_FORMAT(sr.time,'%Y-%m-%d') &lt;= #{recovery.endTime}
+        </if>
+        GROUP BY sr.strain_id
+        UNION
+        SELECT p.process_id,SUM(p.process_num),l.farm_id,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 l ON p.land_id = l.id
+        WHERE 1=1
+        <if test="recovery.deptId !=null and recovery.deptId !=''">
+            AND l.farm_id = #{recovery.deptId}
+        </if>
+        <if test="recovery.startTime != null and recovery.startTime !=''">
+            AND DATE_FORMAT(p.sale_time,'%Y-%m-%d') &gt;= #{recovery.startTime}
+        </if>
+        <if test="recovery.endTime != null and recovery.endTime !=''">
+            and DATE_FORMAT(p.sale_time,'%Y-%m-%d') &lt;= #{recovery.endTime}
+        </if>
+        GROUP BY p.process_id,l.farm_id
+    </select>
+    <select id="recoveryStatisticsx" resultType="org.springblade.modules.recovery.vo.RecoveryVO">
+        SELECT sr.strain_id,SUM(sr.weight) AS weight,sr.dept_id,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') &gt;= #{recovery.startTime}
+        </if>
+        <if test="recovery.endTime != null and recovery.endTime !=''">
+            and DATE_FORMAT(sr.time,'%Y-%m-%d') &lt;= #{recovery.endTime}
+        </if>
+        <if test="recovery.strainType != null and recovery.strainType !=''">
+            AND strain.strain_type = #{recovery.strainType}
+        </if>
+        GROUP BY sr.strain_id
+        UNION
+        SELECT p.process_id,SUM(p.process_num),l.farm_id,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 l ON p.land_id = l.id
+        WHERE 1=1
+        <if test="recovery.deptId !=null and recovery.deptId !=''">
+            AND l.farm_id = #{recovery.deptId}
+        </if>
+        <if test="recovery.startTime != null and recovery.startTime !=''">
+            AND DATE_FORMAT(p.sale_time,'%Y-%m-%d') &gt;= #{recovery.startTime}
+        </if>
+        <if test="recovery.endTime != null and recovery.endTime !=''">
+            and DATE_FORMAT(p.sale_time,'%Y-%m-%d') &lt;= #{recovery.endTime}
+        </if>
+        GROUP BY p.process_id,l.farm_id
+    </select>
 </mapper>

--
Gitblit v1.9.3