From 53408a414a0ae72ceac2cb9f169a6abacfea6f09 Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Tue, 23 Jan 2024 10:05:27 +0800
Subject: [PATCH] sql优化

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageMapper.xml |   46 +++++++++++++++++++++++++---------------------
 1 files changed, 25 insertions(+), 21 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageMapper.xml b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageMapper.xml
index 2bfcbef..3808f4e 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageMapper.xml
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/resDataCheck/mapper/QualityManageMapper.xml
@@ -22,8 +22,17 @@
                rule.description AS ruleDesc,
                rule.pro_description AS proDesc,
                qm.*
-        FROM
-            SM_RES_DATA_QUALITY_MANAGE qm
+        FROM (
+            select * from  SM_RES_DATA_QUALITY_MANAGE qm
+            WHERE qm.is_deleted = 0
+            <if test="vo.startTime !=null and vo.startTime !=''">
+                AND qm.create_time &gt;= #{vo.startTime}
+            </if>
+            <if test="vo.endTime !=null and vo.endTime !=''">
+                AND qm.create_time &lt;= #{vo.endTime}
+            </if>
+        ) as qm
+
         LEFT JOIN SJZT_MD."att_res_base" arb ON arb."guid" = qm.res_id
         LEFT JOIN SM_RES_DATA_CHECK_RULES rule ON rule.id = qm.rule_id
 
@@ -31,26 +40,21 @@
         left join "SJZT_MD"."att_ad_base" aa on aab."p_ad_code" = aa."ad_code"
         left join "SJZT_MD"."att_ad_base" ab on aa."p_ad_code" = ab."ad_code"
         left join "SJZT_MD"."att_ad_base" ac on ab."p_ad_code" = ac."ad_code"
+        <where>
+            <if test="vo.resName !=null and vo.resName !='' ">
+                AND arb."name" LIKE CONCAT('%',#{vo.resName},'%')
+            </if>
+            <if test="vo.engScal !=null and vo.engScal !='' ">
+                AND arb."eng_scal"  = #{vo.engScal}
+            </if>
+            <if test="vo.ruleName !=null and vo.ruleName !='' ">
+                AND rule.name LIKE CONCAT('%',#{vo.ruleName},'%')
+            </if>
 
-        WHERE qm.is_deleted = 0
-        <if test="vo.resName !=null and vo.resName !='' ">
-            AND arb."name" LIKE CONCAT('%',#{vo.resName},'%')
-        </if>
-        <if test="vo.engScal !=null and vo.engScal !='' ">
-            AND arb."eng_scal"  = #{vo.engScal}
-        </if>
-        <if test="vo.ruleName !=null and vo.ruleName !='' ">
-            AND rule.name LIKE CONCAT('%',#{vo.ruleName},'%')
-        </if>
-        <if test="vo.startTime !=null and vo.startTime !=''">
-            AND qm.create_time &gt;= #{vo.startTime}
-        </if>
-        <if test="vo.endTime !=null and vo.endTime !=''">
-            AND qm.create_time &lt;= #{vo.endTime}
-        </if>
-        <if test="vo.adCode != null and vo.adCode != '' ">
-            and (aab."ad_code" = #{vo.adCode} or aa."ad_code" = #{vo.adCode} or ab."ad_code" = #{vo.adCode} or ac."ad_code" = #{vo.adCode})
-        </if>
+            <if test="vo.adCode != null and vo.adCode != '' ">
+                and (aab."ad_code" = #{vo.adCode} or aa."ad_code" = #{vo.adCode} or ab."ad_code" = #{vo.adCode} or ac."ad_code" = #{vo.adCode})
+            </if>
+        </where>
         order by qm.create_time desc
     </select>
     <select id="getDetail" resultType="cn.gistack.sm.resDataCheck.vo.QualityManageVO">

--
Gitblit v1.9.3