chenrui
8 天以前 d1903c17568e1c373ca37a8baddbefbc330d12bf
src/main/resources/mapper/sales/InvoiceLedgerMapper.xml
@@ -19,9 +19,19 @@
            T1.update_time       ,
            T1.update_user       ,
            T1.tenant_id         ,
            T2.customer_name
            T2.customer_name,
            T3.customer_contract_no,
            T3.salesman,
            T4.invoiceFileName
        FROM invoice_ledger T1
        LEFT JOIN customer T2 ON T1.customer_id = T2.id
        LEFT JOIN sales_ledger T3 ON T1.sales_ledger_id = T3.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
        <where>
            <if test="invoiceLedgerDto.searchText != null and invoiceLedgerDto.searchText != ''">
                AND (
@@ -36,6 +46,48 @@
    </select>
    <select id="invoiceLedgerList" resultType="com.ruoyi.sales.dto.InvoiceLedgerDto">
        SELECT
            T1.id                ,
            T1.sales_ledger_id   ,
            T1.sales_contract_no ,
            T1.customer_id       ,
            T1.invoice_no        ,
            T1.invoice_amount    ,
            T1.tax_rate          ,
            T1.invoice_person    ,
            T1.invoice_date      ,
            T1.create_time       ,
            T1.create_user       ,
            T1.update_time       ,
            T1.update_user       ,
            T1.tenant_id         ,
            T2.customer_name,
            T3.salesman,
            T3.customer_contract_no,
            T4.invoiceFileName
        FROM invoice_ledger T1
        LEFT JOIN customer T2 ON T1.customer_id = T2.id
        LEFT JOIN sales_ledger T3 ON T1.sales_ledger_id = T3.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
        <where>
            <if test="invoiceLedgerDto.searchText != null and invoiceLedgerDto.searchText != ''">
                AND (
                T2.customer_name LIKE CONCAT('%',#{invoiceLedgerDto.searchText},'%')
                OR T1.sales_contract_no LIKE CONCAT('%',#{invoiceLedgerDto.searchText},'%')
                )
            </if>
            <if test="invoiceLedgerDto.invoiceDate != null">
                AND DATE_FORMAT(T1.invoice_date,'%Y-%m-%d') = DATE_FORMAT(#{invoiceLedgerDto.invoiceDate},'%Y-%m-%d')
            </if>
        </where>
    </select>
    <select id="invoiceLedgerInfo" resultType="com.ruoyi.sales.dto.InvoiceLedgerDto">
        SELECT
        T1.id                ,
        T1.sales_ledger_id   ,
@@ -54,16 +106,83 @@
        T2.customer_name
        FROM invoice_ledger T1
        LEFT JOIN customer T2 ON T1.customer_id = T2.id
        WHERE T1.id = #{id}
    </select>
    <select id="invoiceLedgerSalesAccount" resultType="com.ruoyi.sales.dto.InvoiceLedgerDto">
        SELECT
            T4.id,T4.customer_name ,
            SUM(invoice_total) AS invoice_total,
            IFNULL( T5.receipt_payment_amount , 0 ) AS receipt_payment_amount,
            (invoice_total - receipt_payment_amount) AS unReceipt_payment_amount
        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
                LEFT JOIN customer T4 ON T4.id = T3.customer_id
                LEFT JOIN ( SELECT invoice_ledger_id, SUM( receipt_payment_amount ) AS receipt_payment_amount FROM receipt_payment GROUP BY invoice_ledger_id ) T5 ON T5.invoice_ledger_id = T1.id
        <where>
            <if test="invoiceLedgerDto.searchText != null and invoiceLedgerDto.searchText != ''">
                AND (
                T2.customer_name LIKE CONCAT('%',#{invoiceLedgerDto.searchText},'%')
                OR T1.sales_contract_no LIKE CONCAT('%',#{invoiceLedgerDto.searchText},'%')
                )
            </if>
            <if test="invoiceLedgerDto.invoiceDate != null">
                AND DATE_FORMAT(T1.invoice_date,'%Y-%m-%d') = DATE_FORMAT(#{invoiceLedgerDto.invoiceDate},'%Y-%m-%d')
            <if test="invoiceLedgerDto.searchText != null and invoiceLedgerDto.searchText != '' ">
                T4.customer_name LIKE CONCAT ('%',#{invoiceLedgerDto.searchText},'%')
            </if>
        </where>
        GROUP BY T4.id,T4.customer_name
    </select>
    <select id="invoiceLedgerProductInfo" resultType="com.ruoyi.sales.dto.InvoiceRegistrationProductDto">
        SELECT
            T1.id   ,
            T1.sales_ledger_id           ,
            T1.sales_ledger_product_id   ,
            T1.invoice_registration_id   ,
            T1.product_category          ,
            T1.specification_model       ,
            T1.unit                      ,
            T1.quantity                  ,
            T1.tax_rate                  ,
            T1.tax_inclusive_unit_price  ,
            T1.tax_inclusive_total_price ,
            T1.tax_exclusive_total_price ,
            T1.invoice_type              ,
            T1.invoice_num               ,
            T1.invoice_amount            ,
            T1.no_invoice_num            ,
            T1.no_invoice_amount         ,
            T1.create_time               ,
            T1.create_user               ,
            T1.update_time               ,
            T1.update_user               ,
            T1.tenant_id,
            T2.sales_contract_no,
            T2.customer_contract_no,
            T2.customer_name,
            T3.invoice_no,
            T3.invoice_total,
            T3.invoice_person,
            T3.invoice_date,
            T3.id AS invoice_ledger_id
        FROM invoice_registration_product T1
                 LEFT JOIN sales_ledger T2 ON T1.sales_ledger_id = T2.id
                 LEFT JOIN invoice_ledger T3 ON T1.id = T3.invoice_registration_product_id
        WHERE T1.id = #{id}
    </select>
    <select id="invoicedTotal" resultType="com.ruoyi.sales.dto.InvoiceLedgerDto">
        SELECT
            IFNULL(SUM(T1.invoice_total),0) AS invoice_total,
            T2.sales_ledger_id
        FROM
            invoice_ledger T1
                LEFT JOIN invoice_registration_product T2 ON T1.invoice_registration_product_id = T2.id
        <where>
            AND T2.sales_ledger_id IN
            <foreach collection="salesLedgerIds" item="item" open="(" close=")" separator=",">
                #{item}
            </foreach>
        </where>
        GROUP BY
            T2.sales_ledger_id
    </select>
</mapper>