liding
6 天以前 0050395dfb05425f0a929bc1587b971d78f1e95e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.sales.mapper.ReceiptPaymentMapper">
    <select id="receiptPaymentListPage" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
        SELECT
            T4.customer_id,
            IFNULL(T5.invoice_total,0) AS invoice_total,
            T1.receipt_payment_amount,
            T1.receipt_payment_date
        FROM
            receipt_payment T1
        LEFT JOIN invoice_ledger T2 ON T1.invoice_ledger_id = T2.id
        LEFT JOIN invoice_registration_product T3 ON T2.invoice_registration_product_id = T3.id
        LEFT JOIN sales_ledger T4 ON T4.id = T3.sales_ledger_id
        LEFT JOIN (
            SELECT
                T3.customer_id,
                SUM( invoice_total ) AS invoice_total
            FROM
                invoice_ledger T1
            LEFT JOIN invoice_registration_product T2 ON T1.invoice_registration_product_id = T2.id
            LEFT JOIN sales_ledger T3 ON T3.id = T2.sales_ledger_id
            GROUP BY T3.customer_id
        ) T5 ON T5.customer_id = T4.customer_id
        <where>
            <if test="receiptPaymentDto.customerId != null">
                AND T4.customer_id = #{receiptPaymentDto.customerId}
            </if>
        </where>
        ORDER BY T1.create_time ASC
    </select>
 
    <select id="receiptPaymentInfo" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
        SELECT
            T1.id                 ,
            T1.sales_ledger_id        ,
            T1.sales_contract_no      ,
            T1.customer_id            ,
            T1.invoice_no             ,
            T1.invoice_amount         ,
            T1.tax_rate               ,
            T1.receipt_payment_type   ,
            T1.receipt_payment_amount ,
            T1.registrant             ,
            T1.receipt_payment_date   ,
            T1.create_time            ,
            T1.create_user            ,
            T1.update_time            ,
            T1.update_user            ,
            T1.tenant_id,
            T1.invoice_ledger_id,
            T3.customer_contract_no,
            T2.customer_name
        FROM receipt_payment T1
                 LEFT JOIN customer T2 ON T1.customer_id = T2.id
                 LEFT JOIN sales_ledger T3 ON T1.sales_ledger_id = T3.id
        WHERE T1.id = #{id}
    </select>
 
    <select id="bindInvoiceNoRegPage" resultType="com.ruoyi.sales.dto.ReceiptPaymentDto">
        SELECT
            T1.id                ,
            T1.invoice_no        ,
            T1.invoice_total    ,
            T1.invoice_person    ,
            T1.invoice_date      ,
            T1.create_time       ,
            T1.create_user       ,
            T1.update_time       ,
            T1.update_user       ,
            T1.tenant_id         ,
            T2.tax_rate,
            T3.sales_contract_no,
            T3.customer_contract_no,
            T3.customer_name,
            T4.invoiceFileName,
            T5.product_category,
            IFNULL(T6.receipt_payment_amount_total ,0) AS receipt_payment_amount_total,
            (T1.invoice_total  - IFNULL(T6.receipt_payment_amount_total ,0)) AS no_receipt_amount
        FROM invoice_ledger T1
                 LEFT JOIN invoice_registration_product T2 ON T2.id = T1.invoice_registration_product_id
                 LEFT JOIN sales_ledger T3 ON T3.id = T2.sales_ledger_id
                 LEFT JOIN (
            SELECT
                invoice_ledger_id,
                GROUP_CONCAT( name ORDER BY id ASC SEPARATOR ' | ') AS invoiceFileName
            FROM invoice_ledger_file GROUP BY invoice_ledger_id
        ) T4 ON T4.invoice_ledger_id = T1.id
                 LEFT JOIN sales_ledger_product T5 ON T2.sales_ledger_product_id = T5.id
                 LEFT JOIN (
            SELECT SUM(receipt_payment_amount) AS receipt_payment_amount_total,invoice_ledger_id FROM receipt_payment GROUP BY invoice_ledger_id
        )  T6 ON T1.id = T6.invoice_ledger_id
        ORDER BY T2.create_time DESC
    </select>
 
    <select id="invoiceInfo" resultType="com.ruoyi.sales.dto.InvoiceLedgerDto">
        SELECT
            T1.id,
            T1.invoice_no,
            T1.invoice_total ,
            T2.tax_rate,
            T3.customer_name,
            T3.sales_contract_no
        FROM
            invoice_ledger T1
                LEFT JOIN
            invoice_registration_product T2 ON T1.invoice_registration_product_id = T2.id
                LEFT JOIN sales_ledger T3 ON T3.id = T2.sales_ledger_id
        WHERE T1.id = #{id}
    </select>
 
    <select id="getReceiptAmount" resultType="java.math.BigDecimal">
        SELECT
            SUM( receipt_payment_amount ) AS total_amount
        FROM
            (
                SELECT
                    T1.receipt_payment_amount
                FROM
                    receipt_payment T1
                        LEFT JOIN invoice_ledger T2 ON T1.invoice_ledger_id = T2.id
                        LEFT JOIN invoice_registration_product T3 ON T2.invoice_registration_product_id = T3.id
                        LEFT JOIN sales_ledger T4 ON T4.id = T3.sales_ledger_id
                        LEFT JOIN (
                        SELECT
                            T3.customer_id,
                            SUM( invoice_total ) AS invoice_total
                        FROM
                            invoice_ledger T1
                                LEFT JOIN invoice_registration_product T2 ON T1.invoice_registration_product_id = T2.id
                                LEFT JOIN sales_ledger T3 ON T3.id = T2.sales_ledger_id
                        GROUP BY
                            T3.customer_id
                    ) T5 ON T5.customer_id = T4.customer_id
                WHERE
                    T4.customer_id = #{customerId}
 
                ORDER BY
                    T1.create_time ASC
                    LIMIT #{total} ) AS limited_rows
    </select>
 
</mapper>