Selaa lähdekoodia

往来账款查询条件优化

dudm 3 vuotta sitten
vanhempi
commit
d429f91af7
1 muutettua tiedostoa jossa 25 lisäystä ja 95 poistoa
  1. 25 95
      sc-service/src/main/resources/mapper/bill/OwnBillMapper.xml

+ 25 - 95
sc-service/src/main/resources/mapper/bill/OwnBillMapper.xml

@@ -5,129 +5,59 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 <mapper namespace="com.huyi.service.bill.mapper.OwnBillMapper">
 
     <select id="selectBillInfList" parameterType="map" resultType="map">
-        (SELECT
-            b.create_time,
-            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'
+        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'
         FROM
             zc_bill_inf b
-            INNER JOIN zc_finance_bill_rel rel
+            LEFT JOIN zc_finance_bill_rel rel
             ON rel.zfbr_bill_id = b.zbi_id
-            INNER JOIN zc_finance_inf f
+            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
         WHERE b.zbi_status != '99'
-            AND f.zfi_status != '03'
-            AND f.zfi_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})
+                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}
+                AND b.zbi_payer_id = #{paramMap.payerId}
             </if>
             <if test="paramMap.payeeId != null  and paramMap.payeeId != ''">
-                and b.zbi_payee_id = #{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}, '%')
+                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}, '%')
+                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}, '%')
+                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}, '%')
-                and b.zbi_pay_date between
-                #{paramMap.start} and #{paramMap.end}
+                AND e.scy_name LIKE CONCAT('%', #{paramMap.payeeName}, '%')
             </if>
             <if test="paramMap.zbiStatus != null  and paramMap.zbiStatus != ''">
-                and b.zbi_status = #{paramMap.zbiStatus}
+                AND b.zbi_status = #{paramMap.zbiStatus}
             </if>
-            <if test="paramMap.end != null  and paramMap.end != ''">
-            </if>
-        )
-        UNION
-        (SELECT
-            b.create_time,
-            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',
-            '' AS '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 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 b.zbi_id NOT IN
-            (SELECT
-            zfbr_bill_id
-            FROM
-            zc_finance_bill_rel rel
-            INNER JOIN zc_finance_inf f
-            ON rel.zfbr_finance_id = f.zfi_id
-            AND f.zfi_status != '03'
-            AND f.zfi_status != '99')
-            <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.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>
-            <if test="paramMap.end != null  and paramMap.end != ''">
-                and b.zbi_pay_date between
-                #{paramMap.start} and #{paramMap.end}
-            </if>
-        )
-        ORDER BY create_time DESC
+        ORDER BY b.create_time DESC
     </select>