gongchunyi
3 天以前 60acc8dd204aea9a435ae44205bae7b97feda4b3
src/main/resources/mapper/basic/CustomerMapper.xml
@@ -112,23 +112,8 @@
    <select id="customewTransactions" resultType="com.ruoyi.sales.vo.CustomerTransactionsVo">
        select T1.customer_id,
               c.customer_name,
               T1.contractAmounts,
               IFNULL(T3.outboundAmount, 0) AS shippedAmount,
               GREATEST(T1.contractAmounts - IFNULL(T3.outboundAmount, 0), 0) AS unshippedAmount
               T1.contractAmounts
        from (select customer_id, sum(contract_amount) as contractAmounts from sales_ledger group by customer_id) T1
        left join (
            SELECT
                sl.customer_id,
                sum(sor.stock_out_num * slp.tax_inclusive_unit_price) as outboundAmount
            FROM stock_out_record sor
            LEFT join shipping_info s on sor.record_id = s.id
            LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
            LEFT JOIN sales_ledger_product slp ON s.sales_ledger_product_id = slp.id
            WHERE sor.record_type='13'
                and sor.approval_status=1
                and slp.type = 1
            group by sl.customer_id
        ) T3 on T3.customer_id=T1.customer_id
        left join customer c on T1.customer_id = c.id
        <where>
            <if test="customerName!=null and customerName!=''">
@@ -142,24 +127,45 @@
        select sl.id salesLedgerId,
               sl.sales_contract_no,
               sl.execution_date,
               sl.contract_amount,
               IFNULL(T2.outboundAmount, 0) AS shippedAmount,
               GREATEST(sl.contract_amount - IFNULL(T2.outboundAmount, 0), 0) AS unshippedAmount
               sl.contract_amount
        from sales_ledger sl
        left join (
            SELECT
                sl.id,
                sum(sor.stock_out_num * slp.tax_inclusive_unit_price) as outboundAmount
            FROM stock_out_record sor
                     left join shipping_info s on sor.record_id = s.id
                     LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
                     LEFT JOIN sales_ledger_product slp ON s.sales_ledger_product_id = slp.id
            WHERE sor.record_type='13'
              and sor.approval_status=1
              and slp.type = 1
            group by  sl.id
        )T2 on T2.id = sl.id
        where sl.customer_id = #{customerId}
        order by sl.execution_date
    </select>
    <select id="getShippedAmountByCustomerIds" resultType="java.util.Map">
        SELECT
            sl.customer_id as customerId,
            sum(sor.stock_out_num * slp.tax_inclusive_unit_price) as outboundAmount
        FROM stock_out_record sor
        LEFT join shipping_info s on sor.record_id = s.id
        LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
        LEFT JOIN sales_ledger_product slp ON s.sales_ledger_product_id = slp.id
        WHERE sor.record_type='13'
            and sor.approval_status=1
            and slp.type = 1
            and sl.customer_id IN
            <foreach collection="customerIds" item="customerId" open="(" separator="," close=")">
                #{customerId}
            </foreach>
        group by sl.customer_id
    </select>
    <select id="getShippedAmountBySalesLedgerIds" resultType="java.util.Map">
        SELECT
            sl.id as salesLedgerId,
            sum(sor.stock_out_num * slp.tax_inclusive_unit_price) as outboundAmount
        FROM stock_out_record sor
        LEFT join shipping_info s on sor.record_id = s.id
        LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
        LEFT JOIN sales_ledger_product slp ON s.sales_ledger_product_id = slp.id
        WHERE sor.record_type='13'
            and sor.approval_status=1
            and slp.type = 1
            and sl.id IN
            <foreach collection="salesLedgerIds" item="id" open="(" separator="," close=")">
                #{id}
            </foreach>
        group by sl.id
    </select>
</mapper>