gongchunyi
3 天以前 0997eacb098ca63a7e83d08a0d40140bef72b18b
src/main/resources/mapper/purchase/PaymentRegistrationMapper.xml
@@ -9,7 +9,7 @@
        <result property="saleLedgerId" column="sale_ledger_id"/>
        <result property="purchaseLedgerId" column="purchase_ledger_id"/>
        <result property="supplierId" column="supplier_id"/>
        <result property="invoicePurchaseId" column="invoice_purchase_id"/>
        <result property="ticketRegistrationId" column="ticket_registration_id"/>
        <result property="currentPaymentAmount" column="current_payment_amount"/>
        <result property="paymentMethod" column="payment_method"/>
        <result property="registrantId" column="registrant_id"/>
@@ -17,6 +17,7 @@
        <result property="createTime" column="create_time"/>
        <result property="updateTime" column="update_time"/>
        <result property="tenantId" column="tenant_id"/>
        <result property="registrationtDate" column="registrationt_date"/>
    </resultMap>
    <resultMap type="com.ruoyi.purchase.dto.PaymentRegistrationDto" id="PaymentRegistrationDtoResult">
@@ -24,7 +25,7 @@
        <result property="saleLedgerId" column="sale_ledger_id"/>
        <result property="purchaseLedgerId" column="purchase_ledger_id"/>
        <result property="supplierId" column="supplier_id"/>
        <result property="invoicePurchaseId" column="invoice_purchase_id"/>
        <result property="ticketRegistrationId" column="ticket_registration_id"/>
        <result property="currentPaymentAmount" column="current_payment_amount"/>
        <result property="paymentMethod" column="payment_method"/>
        <result property="registrantId" column="registrant_id"/>
@@ -38,6 +39,7 @@
        <result property="taxRate" column="tax_rate"/>
        <result property="invoiceAmount" column="invoice_amount"/>
        <result property="tenantId" column="tenant_id"/>
        <result property="registrationtDate" column="registrationt_date"/>
    </resultMap>
    <sql id="selectPaymentRegistrationVo">
@@ -45,7 +47,7 @@
               pr.sale_ledger_id,
               pr.purchase_ledger_id,
               pr.supplier_id,
               pr.invoice_purchase_id,
               pr.ticket_registration_id,
               pr.current_payment_amount,
               pr.payment_method,
               pr.registrant_id,
@@ -57,13 +59,15 @@
               pl.purchase_contract_number as purchase_contract_number,
               sm.supplier_name as supplier_name,
               ip.invoice_number as invoice_number,
               ip.tax_rate as tax_rate,
               ip.invoice_amount as invoice_amount
               ip.invoice_amount as invoice_amount,
               pr.tax_rate,
               pr.registrationt_date,
               su.nick_name as registrant
        from payment_registration pr
                 left join sales_ledger sl on pr.sale_ledger_id = sl.id
                 left join purchase_ledger pl on pr.purchase_ledger_id = pl.id
                 left join supplier_manage sm on pr.supplier_id = sm.id
                 left join invoice_purchase ip on pr.invoice_purchase_id = ip.id
                 left join ticket_registration ip on pr.ticket_registration_id = ip.id
                 left join sys_user su on pr.registrant_id = su.user_id
    </sql>
@@ -84,4 +88,157 @@
        where pr.id = #{id}
    </select>
</mapper>
    <select id="paymentHistoryList" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto">
        SELECT
            T1.payment_date,
            T2.supplier_name,
            T1.current_payment_amount,
            T1.payment_method,
            T3.nick_name AS registrant,
            T1.registrationt_date
        FROM
            payment_registration T1
                LEFT JOIN
            supplier_manage T2 ON T1.supplier_id = T2.id
                LEFT JOIN
            sys_user T3 ON T3.user_id = T1.registrant_id
        <where>
            <if test="params.searchText != null and params.searchText != '' ">
                AND T2.supplier_name LIKE CONCAT('%',#{params.searchText},'%')
            </if>
        </where>
        ORDER BY T1.payment_date,T1.create_time DESC
    </select>
    <select id="countPaymentTotalByTicketRegId" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto">
        SELECT
            IFNULL(SUM(current_payment_amount),0) AS paymentAmountTotal,
            ticket_registration_id
        FROM
            payment_registration
        <where>
            ticket_registration_id IN
            <foreach collection="ticketRegistrationIds" separator="," open="(" close=")" item="item">
                #{item}
            </foreach>
        </where>
        GROUP BY ticket_registration_id
    </select>
    <select id="getPaymentRecordList" resultType="com.ruoyi.purchase.dto.PaymentHistoryRecordVo">
        SELECT * FROM(
             SELECT
                 T1.issue_date AS happenTime,
                 IFNULL(T1.invoice_amount,0) AS invoiceAmount,
                 '1' AS type,
                 0 AS currentPaymentAmount
             FROM
                 ticket_registration T1
                     LEFT JOIN purchase_ledger T2 ON T1.purchase_ledger_id = T2.id
             WHERE T2.supplier_id = #{supplierId}
             UNION
             SELECT
                 payment_date AS happenTime,
                 0 AS invoiceAmount,
                 '0' AS type,
                 current_payment_amount AS currentPaymentAmount
             FROM payment_registration
             WHERE supplier_id = #{supplierId}
        ) T1
        ORDER BY T1.happenTime ASC
    </select>
    <select id="paymentHistoryListPage" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto">
        SELECT
        T1.id,
        T1.payment_date,
        T2.supplier_name,
        T1.current_payment_amount,
        T1.payment_method,
        T3.nick_name AS registrant,
        T1.registrationt_date,
        t4.purchase_contract_number,
        t5.invoice_amount,
        t5.invoice_number
        FROM
        payment_registration T1
        LEFT JOIN purchase_ledger t4 ON t4.id = T1.purchase_ledger_id
        LEFT JOIN supplier_manage T2 ON T1.supplier_id = T2.id
        LEFT JOIN sys_user T3 ON T3.user_id = T1.registrant_id
        left join ticket_registration t5 on t5.id = T1.ticket_registration_id
        <where>
            <if test="params.searchText != null and params.searchText != '' ">
                AND T2.supplier_name LIKE CONCAT('%',#{params.searchText},'%')
            </if>
            <if test="params.paymentDateStart != null and params.paymentDateStart !='' ">
                AND T1.payment_date &gt;= date_format(#{params.paymentDateStart},'%Y-%m-%d')
            </if>
            <if test="params.paymentDateEnd != null and params.paymentDateEnd !='' ">
                AND T1.payment_date &lt;= date_format(#{params.paymentDateEnd},'%Y-%m-%d')
            </if>
            <if test="params.purchaseContractNumber != null and params.purchaseContractNumber !='' ">
                AND t4.purchase_contract_number LIKE CONCAT('%',#{params.purchaseContractNumber},'%')
            </if>
        </where>
        ORDER BY T1.payment_date,T1.create_time DESC
    </select>
    <select id="supplierNameListPage" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto">
        SELECT
            T1.supplier_id,
            T1.supplier_name,
            T1.invoiceAmount,
            IFNULL(T2.paymentAmount, 0) AS paymentAmount,
            IFNULL(T2.payableAmount, 0) AS payableAmount
        FROM (
            SELECT
                supplier_id,
                supplier_name,
                SUM(contract_amount) AS invoiceAmount
            FROM purchase_ledger
            <where>
                <if test="req.supplierName != null and req.supplierName != '' ">
                    AND supplier_name LIKE CONCAT ('%',#{req.supplierName},'%')
                </if>
            </where>
            GROUP BY supplier_id, supplier_name
        ) T1
        LEFT JOIN (
            SELECT
                pl.supplier_id,
                SUM(IFNULL(slp.stocked_quantity, 0) * IFNULL(slp.tax_inclusive_unit_price, 0)) AS paymentAmount,
                SUM((IFNULL(slp.quantity, 0) - IFNULL(slp.stocked_quantity, 0)) * IFNULL(slp.tax_inclusive_unit_price, 0)) AS payableAmount
            FROM purchase_ledger pl
            JOIN sales_ledger_product slp ON pl.id = slp.sales_ledger_id AND slp.type = 2
            GROUP BY pl.supplier_id
        ) T2 ON T1.supplier_id = T2.supplier_id
    </select>
    <select id="supplierNameListPageDetails" resultType="com.ruoyi.purchase.dto.PaymentRegistrationDto">
        SELECT
            pl.id,
            pl.purchase_contract_number,
            pl.contract_amount AS invoiceAmount,
            pl.entry_date AS payment_date,
            IFNULL(T2.payableAmount, 0) AS paymentAmount,
            IFNULL(T2.paymentAmount, 0) AS payableAmount
        FROM purchase_ledger pl
        LEFT JOIN (
            SELECT
                sales_ledger_id,
                SUM(IFNULL(stocked_quantity, 0) * IFNULL(tax_inclusive_unit_price, 0)) AS paymentAmount,
                SUM((IFNULL(quantity, 0) - IFNULL(stocked_quantity, 0)) * IFNULL(tax_inclusive_unit_price, 0)) AS payableAmount
            FROM sales_ledger_product
            WHERE type = 2
            GROUP BY sales_ledger_id
        ) T2 ON pl.id = T2.sales_ledger_id
        <where>
            pl.supplier_id = #{req.supplierId}
            <if test="req.supplierName != null and req.supplierName != '' ">
                AND pl.supplier_name LIKE CONCAT ('%', #{req.supplierName}, '%')
            </if>
        </where>
        ORDER BY pl.entry_date ASC, pl.id ASC
    </select>
</mapper>