gaoluyang
2026-11-04 befe7f238921f08091ba22f8a6c067e9aced28ba
src/main/resources/mapper/basic/CustomerMapper.xml
@@ -163,16 +163,24 @@
               IFNULL(T3.returnAmount, 0) AS returnAmount
        from sales_ledger sl
        left join (
            select
                sl.id,
                sum(ascc.collection_amount) as receiptPaymentAmount
            from account_sales_collection ascc
            left join stock_out_record sor on FIND_IN_SET(sor.id, ascc.stock_out_record_ids) > 0
            left join shipping_info s on sor.record_id = s.id
            LEFT JOIN sales_ledger sl ON s.sales_ledger_id = sl.id
            WHERE sor.record_type='13'
              and sor.approval_status=1
            group by  sl.id
            -- 一笔收款可能关联多张出库单,先按「收款单 + 销售台账」去重再求和,
            -- 否则 FIND_IN_SET 展开后会按出库单条数把同一笔收款重复累加
            select x.id,
                   sum(x.collection_amount) as receiptPaymentAmount
            from (
                select distinct
                       ascc.id as collection_id,
                       ascc.collection_amount,
                       sl.id as id
                from account_sales_collection ascc
                left join stock_out_record sor on FIND_IN_SET(sor.id, ascc.stock_out_record_ids) > 0
                left join shipping_info s on sor.record_id = s.id
                left join sales_ledger sl on s.sales_ledger_id = sl.id
                WHERE sor.record_type='13'
                  and sor.approval_status=1
            ) x
            where x.id is not null
            group by x.id
        )T1 on T1.id = sl.id
        left join (
            select sl.id,