Browse Source

往来账款查询sql优化

dudm 3 years ago
parent
commit
f469a2a2cf
1 changed files with 52 additions and 47 deletions
  1. 52 47
      sc-service/src/main/resources/mapper/bill/OwnBillMapper.xml

+ 52 - 47
sc-service/src/main/resources/mapper/bill/OwnBillMapper.xml

@@ -6,58 +6,63 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectBillInfList" parameterType="map" resultType="map">
         SELECT
-            b.zbi_id              'zbiId',
-            b.zbi_number          'zbiNumber',
-            b.zbi_name            'zbiName',
-            b.zbi_contract_no      'zbiContractNo',
-            b.zbi_amount          'zbiAmount',
-            b.zbi_date            'zbiDate',
-            b.zbi_pay_date         'zbiPayDate',
-            r.scy_name            'payerName',
-            e.scy_name            'payeeName',
-            f.zfi_number            'zfiNumber',
-            b.zbi_status            'zbiStatus',
-            (CASE WHEN b.zbi_payer_id = #{paramMap.companyId} THEN '00' ELSE '01' END) 'zbiType'
+        b.zbi_id		        'zbiId',
+        b.zbi_number		    'zbiNumber',
+        b.zbi_name		        'zbiName',
+        b.zbi_contract_no	    'zbiContractNo',
+        b.zbi_amount		    'zbiAmount',
+        b.zbi_date		        'zbiDate',
+        b.zbi_pay_date	        'zbiPayDate',
+        r.scy_name		        'payerName',
+        e.scy_name		        'payeeName',
+        f.zfi_number            'zfiNumber',
+        b.zbi_status            'zbiStatus',
+        (case when b.zbi_payer_id = #{paramMap.companyId} then '00' else '01' end) 'zbiType'
         FROM
-            zc_bill_inf b
-            LEFT JOIN zc_finance_bill_rel rel
-            ON rel.zfbr_bill_id = b.zbi_id
-            LEFT JOIN zc_finance_inf f
-            ON rel.zfbr_finance_id = f.zfi_id
-            LEFT JOIN sys_company r
-            ON r.scy_id = b.zbi_payer_id
-            LEFT JOIN sys_company e
-            ON e.scy_id = b.zbi_payee_id
+        zc_bill_inf b
+        LEFT JOIN zc_finance_bill_rel rel
+        ON rel.zfbr_bill_id = b.zbi_id
+        LEFT JOIN zc_finance_inf f
+        ON rel.zfbr_finance_id = f.zfi_id
+        AND f.zfi_status != '03'
+        AND f.zfi_status != '99'
+        LEFT JOIN sys_company r
+        ON r.scy_id = b.zbi_payer_id
+        LEFT JOIN sys_company e
+        ON e.scy_id = b.zbi_payee_id
         WHERE b.zbi_status != '99'
-            AND (f.zfi_status NOT IN ('03', '99') OR f.zfi_id IS NULL)
-            <if test="paramMap.companyId != null  and paramMap.companyId != ''">
-                AND (b.zbi_payer_id = #{paramMap.companyId} or b.zbi_payee_id = #{paramMap.companyId})
-            </if>
-            <if test="paramMap.payerId != null  and paramMap.payerId != ''">
-                AND b.zbi_payer_id = #{paramMap.payerId}
-            </if>
-            <if test="paramMap.payeeId != null  and paramMap.payeeId != ''">
-                AND b.zbi_payee_id = #{paramMap.payeeId}
-            </if>
-            <if test="paramMap.zbiNumber != null  and paramMap.zbiNumber != ''">
-                AND b.zbi_number LIKE CONCAT('%', #{paramMap.zbiNumber}, '%')
-            </if>
+        <if test="paramMap.companyId != null  and paramMap.companyId != ''">
+            and (b.zbi_payer_id = #{paramMap.companyId} or b.zbi_payee_id = #{paramMap.companyId})
+        </if>
+        <if test="paramMap.payerId != null  and paramMap.payerId != ''">
+            and b.zbi_payer_id = #{paramMap.payerId}
+        </if>
+        <if test="paramMap.payeeId != null  and paramMap.payeeId != ''">
+            and b.zbi_payee_id = #{paramMap.payeeId}
+        </if>
+        <if test="paramMap.zbiNumber != null  and paramMap.zbiNumber != ''">
+            and b.zbi_number like concat('%', #{paramMap.zbiNumber}, '%')
+        </if>
 
-            <if test="paramMap.zbiName != null  and paramMap.zbiName != ''">
-                AND b.zbi_name LIKE CONCAT('%', #{paramMap.zbiName}, '%')
-            </if>
+        <if test="paramMap.zbiName != null  and paramMap.zbiName != ''">
+            and b.zbi_name like concat('%', #{paramMap.zbiName}, '%')
+        </if>
 
-            <if test="paramMap.payerName != null  and paramMap.payerName != ''">
-                AND r.scy_name LIKE CONCAT('%', #{paramMap.payerName}, '%')
-            </if>
+        <if test="paramMap.payerName != null  and paramMap.payerName != ''">
+            and r.scy_name like concat('%', #{paramMap.payerName}, '%')
+        </if>
 
-            <if test="paramMap.payeeName != null  and paramMap.payeeName != ''">
-                AND e.scy_name LIKE CONCAT('%', #{paramMap.payeeName}, '%')
-            </if>
-            <if test="paramMap.zbiStatus != null  and paramMap.zbiStatus != ''">
-                AND b.zbi_status = #{paramMap.zbiStatus}
-            </if>
-        ORDER BY b.create_time DESC
+        <if test="paramMap.payeeName != null  and paramMap.payeeName != ''">
+            and e.scy_name like concat('%', #{paramMap.payeeName}, '%')
+        </if>
+        <if test="paramMap.zbiStatus != null  and paramMap.zbiStatus != ''">
+            and b.zbi_status = #{paramMap.zbiStatus}
+        </if>
+        <if test="paramMap.end != null  and paramMap.end != ''">
+            and b.zbi_pay_date between
+            #{paramMap.start} and #{paramMap.end}
+        </if>
+        order by b.create_time desc
     </select>