Jelajahi Sumber

费用审核订单 优化sql

785834757 2 tahun lalu
induk
melakukan
d1de1643bc

+ 32 - 15
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -162,14 +162,14 @@
         sd.management_source,
         CASE ifa.audituser
         WHEN '自动审核' THEN ifa.audituser
-        ELSE su2.name  END
+        ELSE su2.name END
         AS auditUser,
         ifa.audittime as auditTime,
         ifa.auditstatus as auditStatus,
         eic.namesimple as partnerCompaniesName,
-        iac.id as  subOrderId,
+        iac.id as subOrderId,
         iac.signing_time as signingTime,
-        iac.pay_date  as payDate,
+        iac.pay_date as payDate,
         pa.agreement_code as agreementCode,
         pa.agreement_name as agreementName
         FROM
@@ -182,14 +182,27 @@
         LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
         LEFT JOIN esm_ins_company eic on eic.id = pa.partner_companies_id
         WHERE
-        io.orderno IN ( SELECT orderno FROM ins_area_company WHERE id IN (
-        SELECT ins_order_no FROM ins_fee_order_new
-        WHERE ins_order_no
+        io.orderno IN (
+        SELECT
+        orderno
+        FROM
+        ins_area_company iac,(
+        SELECT
+        ins_order_no
+        FROM
+        ins_fee_order_new AS o
+        WHERE
         <if test="params.auditStatus != null and params.auditStatus == 0">
-            NOT
+            NOT EXISTS
+        </if>
+        <if test="params.auditStatus != null and params.auditStatus == 1">
+            ins_order_no in
         </if>
-        IN ( SELECT ins_order_no FROM ins_fee_audit) ) AND orderstatus = 3 )
-        AND io.orderstatus = 3
+        ( SELECT ins_order_no FROM ins_fee_audit AS a WHERE a.ins_order_no = o.ins_order_no )
+        ) a
+        WHERE
+        iac.id = a.ins_order_no
+        AND orderstatus = 3
         <if test="params.taskNo != null and params.taskNo != ''">
             AND io.orderno = #{params.taskNo}
         </if>
@@ -209,20 +222,22 @@
             AND io.company_id = #{params.companyId}
         </if>
         <if test="params.engineNo != null and params.engineNo != ''">
-            and JSON_EXTRACT( io.carinfo, '$.engineNo' )  = #{params.engineNo}
+            and JSON_EXTRACT( io.carinfo, '$.engineNo' ) = #{params.engineNo}
         </if>
         <if test="params.riskCode != null and params.riskCode != ''">
             and iac.product = #{params.riskCode}
         </if>
         <if test="params.quoteStartDateStr != null and params.quoteStartDateStr != '' and params.quoteEndDateStr != null and params.quoteEndDateStr != ''">
-            and  DATE_FORMAT(iac.createtime, '%Y-%m-%d') between #{params.quoteStartDateStr} AND #{params.quoteEndDateStr}
+            and DATE_FORMAT(iac.createtime, '%Y-%m-%d') between #{params.quoteStartDateStr} AND
+            #{params.quoteEndDateStr}
         </if>
         <if test="params.attachStartDateStr != null and params.attachStartDateStr != '' and params.attachStartDateStr != null and params.attachStartDateStr != '' ">
-            and  ((
+            and ((
             DATE_FORMAT(iac.jq_start_date, '%Y-%m-%d') BETWEEN #{params.attachStartDateStr}
             AND #{params.attachEndDateStr}
             )
-            OR ( DATE_FORMAT(iac.sy_start_date, '%Y-%m-%d')  BETWEEN #{params.attachStartDateStr} AND #{params.attachEndDateStr} )
+            OR ( DATE_FORMAT(iac.sy_start_date, '%Y-%m-%d') BETWEEN #{params.attachStartDateStr} AND
+            #{params.attachEndDateStr} )
             )
         </if>
         <if test="params.provinceId != null and params.provinceId != ''">
@@ -253,11 +268,13 @@
             and sd.management_source = #{params.managementSource}
         </if>
         <if test="params.signStartDateStr != null and params.signStartDateStr != '' and params.signEndDateStr != null and params.signEndDateStr != ''">
-            and  DATE_FORMAT(iac.signing_time, '%Y-%m-%d') between #{params.signStartDateStr} AND #{params.signEndDateStr}
+            and DATE_FORMAT(iac.signing_time, '%Y-%m-%d') between #{params.signStartDateStr} AND
+            #{params.signEndDateStr}
         </if>
         <if test="params.payStartDateStr != null and params.payStartDateStr != '' and params.payEndDateStr != null and params.payEndDateStr != ''">
-            and  DATE_FORMAT(iac.pay_date, '%Y-%m-%d') between #{params.payStartDateStr} AND #{params.payEndDateStr}
+            and DATE_FORMAT(iac.pay_date, '%Y-%m-%d') between #{params.payStartDateStr} AND #{params.payEndDateStr}
         </if>
+        )
         order by iac.createtime desc
     </select>