From 5f7f52e93266dc8795ad1543b333a64444c22727 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Wed, 28 Sep 2022 11:05:47 +0800
Subject: [PATCH] 修正加工表数据统计结果,取消user,detail接口的访问权限

---
 src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml |   62 +++++++++++++++++++++----------
 1 files changed, 42 insertions(+), 20 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 81bcf81..af07b4e 100644
--- a/src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml
+++ b/src/main/java/org/springblade/modules/recovery/mapper/RecoveryMapper.xml
@@ -66,7 +66,11 @@
         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
+        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
@@ -83,24 +87,35 @@
 
         UNION
 
-        SELECT p.process_id,SUM(p.process_num),inv.fps_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_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 inv.fps_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
+        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') &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>
+        ) 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,sr.dept_id,strain.strain_name,strain.url
+        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
@@ -117,13 +132,20 @@
 
         UNION
 
-        SELECT p.process_id,SUM(p.process_num),inv.fps_id,m.machining_type,m.machining_tp
+        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 inv.fps_id = #{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') &gt;= #{recovery.startTime}
@@ -131,6 +153,6 @@
         <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
+        ) a GROUP BY a.process_id
     </select>
 </mapper>

--
Gitblit v1.9.3