gongchunyi
昨天 0a4a0ad0af9eca1a486912d3ed378c5600bfe1e1
src/main/resources/mapper/sales/InvoiceLedgerMapper.xml
@@ -109,5 +109,85 @@
        WHERE T1.id = #{id}
    </select>
    <select id="invoiceLedgerSalesAccount" resultType="com.ruoyi.sales.dto.InvoiceLedgerDto">
        SELECT
    T1.customer_id AS id,
    T1.customer_name,
    SUM(T1.contract_amount) AS invoice_total,
    IFNULL(SUM(T2.receipt_payment_amount), 0) AS receipt_payment_amount,
    IFNULL(SUM(T1.contract_amount) - IFNULL(SUM(T2.receipt_payment_amount), 0), 0) AS unReceipt_payment_amount
FROM (
    SELECT id,customer_id, customer_name, SUM(contract_amount) contract_amount
    FROM sales_ledger
    GROUP BY customer_id, customer_name
) T1
LEFT JOIN (
    SELECT sales_ledger_id, SUM(receipt_payment_amount) receipt_payment_amount
    FROM receipt_payment
    GROUP BY sales_ledger_id
) T2 ON T1.id  = T2.sales_ledger_id
<where>
    <if test="invoiceLedgerDto.searchText != null and invoiceLedgerDto.searchText != '' ">
        T1.customer_name LIKE CONCAT('%',#{invoiceLedgerDto.searchText},'%')
    </if>
</where>
GROUP BY T1.customer_id, T1.customer_name
    </select>
</mapper>
    <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>