|
@@ -128,88 +128,124 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
<if test="startTime != null and endTime != null">and src.invoice_date BETWEEN #{startTime} AND #{endTime}</if>
|
|
|
</select>
|
|
|
|
|
|
- <select id="selectBillingDetails">
|
|
|
+ <select id="selectBillingDetails" parameterType="map" resultType="map">
|
|
|
SELECT
|
|
|
c.id,
|
|
|
- c.custom_no,
|
|
|
- c.custom_name,
|
|
|
+ c.custom_no as customerNo,
|
|
|
+ c.custom_name as customerName,
|
|
|
COALESCE(qc.qcys, 0) AS qcys,
|
|
|
COALESCE(qkp.qckp, 0) AS qckp,
|
|
|
COALESCE(sq.sqys, 0) AS sqys,
|
|
|
COALESCE(skp.sqkp, 0) AS sqkp,
|
|
|
COALESCE(bq.bqys, 0) AS bqys,
|
|
|
COALESCE(bkp.bqkp, 0) AS bqkp,
|
|
|
- COALESCE(bqs.bqys, 0) AS bqys_received,
|
|
|
+ COALESCE(bqs.bqys, 0) AS bqyishou,
|
|
|
COALESCE(qm.qmys, 0) AS qmys,
|
|
|
- COALESCE(qmk.qmkp, 0) AS qmkp
|
|
|
+ COALESCE(qmk.qmkp, 0) AS qmkp,
|
|
|
+ COALESCE(ce.ysce, 0) AS ysce
|
|
|
FROM
|
|
|
- customer c
|
|
|
+ {DBNAME}.customer c
|
|
|
LEFT JOIN (
|
|
|
SELECT customer_id, TRUNCATE(SUM(amount_receivable), 2) AS qcys
|
|
|
- FROM sale_accounts_receivable_detail
|
|
|
- WHERE del_flag = '0' AND `status` = '2' AND accounts_receivable_date <'2024-1-1'
|
|
|
+ FROM {DBNAME}.sale_accounts_receivable_detail
|
|
|
+ WHERE del_flag = '0' AND `status` = '2' AND accounts_receivable_date <#{qcDate}
|
|
|
GROUP BY customer_id
|
|
|
) qc ON c.id = qc.customer_id
|
|
|
LEFT JOIN (
|
|
|
SELECT customer_id, TRUNCATE(SUM(billing_amount), 2) AS qckp
|
|
|
- FROM finished_product_invoice
|
|
|
- WHERE del_flag = '0' AND invoice_date <'2024-1-1'
|
|
|
+ FROM {DBNAME}.finished_product_invoice
|
|
|
+ WHERE del_flag = '0' AND invoice_date <#{qcDate}
|
|
|
GROUP BY customer_id
|
|
|
) qkp ON c.id = qkp.customer_id
|
|
|
LEFT JOIN (
|
|
|
SELECT customer_id, TRUNCATE(SUM(amount_receivable), 2) AS sqys
|
|
|
- FROM sale_accounts_receivable_detail
|
|
|
+ FROM {DBNAME}.sale_accounts_receivable_detail
|
|
|
WHERE del_flag = '0' AND `status` = '2'
|
|
|
- AND YEAR(accounts_receivable_date) = YEAR(CURDATE() - INTERVAL 1 MONTH)
|
|
|
- AND MONTH(accounts_receivable_date) = MONTH(CURDATE() - INTERVAL 1 MONTH)
|
|
|
+ AND YEAR(accounts_receivable_date) = YEAR(#{startDate} - INTERVAL 1 MONTH)
|
|
|
+ AND MONTH(accounts_receivable_date) = MONTH(#{startDate} - INTERVAL 1 MONTH)
|
|
|
+ <if test="customerId != null"> and customer_id = #{customerId}</if>
|
|
|
+ <if test="settlementUnitId != null"> and settlement_unit = #{settlementUnitId}</if>
|
|
|
GROUP BY customer_id
|
|
|
) sq ON c.id = sq.customer_id
|
|
|
LEFT JOIN (
|
|
|
SELECT customer_id, TRUNCATE(SUM(billing_amount), 2) AS sqkp
|
|
|
- FROM finished_product_invoice
|
|
|
+ FROM {DBNAME}.finished_product_invoice
|
|
|
WHERE del_flag = '0'
|
|
|
- AND YEAR(invoice_date) = YEAR(CURDATE() - INTERVAL 1 MONTH)
|
|
|
- AND MONTH(invoice_date) = MONTH(CURDATE() - INTERVAL 1 MONTH)
|
|
|
+ AND YEAR(invoice_date) = YEAR(#{startDate} - INTERVAL 1 MONTH)
|
|
|
+ AND MONTH(invoice_date) = MONTH(#{startDate} - INTERVAL 1 MONTH)
|
|
|
+ <if test="customerId != null"> and customer_id = #{customerId}</if>
|
|
|
+ <if test="settlementUnitId != null">and settlement_unit_id = #{settlementUnitId}</if>
|
|
|
GROUP BY customer_id
|
|
|
) skp ON c.id = skp.customer_id
|
|
|
LEFT JOIN (
|
|
|
SELECT customer_id, TRUNCATE(SUM(amount_receivable), 2) AS bqys
|
|
|
- FROM sale_accounts_receivable_detail
|
|
|
+ FROM {DBNAME}.sale_accounts_receivable_detail
|
|
|
WHERE del_flag = '0' AND `status` = '2'
|
|
|
- AND YEAR(accounts_receivable_date) = YEAR(CURDATE())
|
|
|
- AND MONTH(accounts_receivable_date) = MONTH(CURDATE())
|
|
|
+ AND accounts_receivable_date between #{startDate} and #{endDate}
|
|
|
+ <if test="customerId != null"> and customer_id = #{customerId}</if>
|
|
|
+ <if test="settlementUnitId != null"> and settlement_unit = #{settlementUnitId}</if>
|
|
|
GROUP BY customer_id
|
|
|
) bq ON c.id = bq.customer_id
|
|
|
LEFT JOIN (
|
|
|
SELECT customer_id, TRUNCATE(SUM(billing_amount), 2) AS bqkp
|
|
|
- FROM finished_product_invoice
|
|
|
+ FROM {DBNAME}.finished_product_invoice
|
|
|
WHERE del_flag = '0'
|
|
|
- AND YEAR(invoice_date) = YEAR(CURDATE())
|
|
|
- AND MONTH(invoice_date) = MONTH(CURDATE())
|
|
|
+ AND invoice_date between #{startDate} and #{endDate}
|
|
|
+ <if test="customerId != null"> and customer_id = #{customerId}</if>
|
|
|
+ <if test="settlementUnitId != null">and settlement_unit_id = #{settlementUnitId}</if>
|
|
|
GROUP BY customer_id
|
|
|
) bkp ON c.id = bkp.customer_id
|
|
|
LEFT JOIN (
|
|
|
SELECT customer_id, TRUNCATE(SUM(received_amount), 2) AS bqys
|
|
|
- FROM sale_accounts_receivable_detail
|
|
|
+ FROM {DBNAME}.sale_accounts_receivable_detail
|
|
|
WHERE del_flag = '0' AND `status` = '2'
|
|
|
- AND YEAR(accounts_receivable_date) = YEAR(CURDATE())
|
|
|
- AND MONTH(accounts_receivable_date) = MONTH(CURDATE())
|
|
|
+ AND accounts_receivable_date between #{startDate} and #{endDate}
|
|
|
+ <if test="customerId != null"> and customer_id = #{customerId}</if>
|
|
|
+ <if test="settlementUnitId != null"> and settlement_unit = #{settlementUnitId}</if>
|
|
|
GROUP BY customer_id
|
|
|
) bqs ON c.id = bqs.customer_id
|
|
|
LEFT JOIN (
|
|
|
SELECT customer_id, TRUNCATE(SUM(amount_receivable), 2) AS qmys
|
|
|
- FROM sale_accounts_receivable_detail
|
|
|
+ FROM {DBNAME}.sale_accounts_receivable_detail
|
|
|
WHERE del_flag = '0' AND `status` = '2'
|
|
|
AND accounts_receivable_date <= CURDATE()
|
|
|
GROUP BY customer_id
|
|
|
) qm ON c.id = qm.customer_id
|
|
|
LEFT JOIN (
|
|
|
SELECT customer_id, TRUNCATE(SUM(billing_amount), 2) AS qmkp
|
|
|
- FROM finished_product_invoice
|
|
|
+ FROM {DBNAME}.finished_product_invoice
|
|
|
WHERE del_flag = '0'
|
|
|
AND invoice_date <= CURDATE()
|
|
|
GROUP BY customer_id
|
|
|
- ) qmk ON c.id = qmk.customer_id;
|
|
|
+ ) qmk ON c.id = qmk.customer_id
|
|
|
+ left join (
|
|
|
+
|
|
|
+ SELECT
|
|
|
+ c.id,
|
|
|
+ COALESCE ( f.kpze - a.addAmount, 0 ) AS ysce
|
|
|
+ FROM
|
|
|
+ {DBNAME}.customer c
|
|
|
+ LEFT JOIN ( SELECT customer_id, TRUNCATE ( sum( billing_amount ), 2 ) AS kpze FROM {DBNAME}.finished_product_invoice WHERE del_flag = '0' and invoice_date between #{startDate} and #{endDate}
|
|
|
+ <if test="customerId != null"> and customer_id = #{customerId}</if>
|
|
|
+ <if test="settlementUnitId != null"> and settlement_unit_id = #{settlementUnitId}</if>
|
|
|
+ GROUP BY customer_id ) AS f ON c.id = f.customer_id
|
|
|
+ LEFT JOIN (
|
|
|
+ SELECT
|
|
|
+ customer_id,
|
|
|
+ TRUNCATE ( sum( amount_receivable ), 2 ) + TRUNCATE ( sum( received_amount ), 2 ) AS addAmount
|
|
|
+ FROM
|
|
|
+ {DBNAME}.sale_accounts_receivable_detail
|
|
|
+ WHERE
|
|
|
+ del_flag = '0'
|
|
|
+ AND `status` = '2'
|
|
|
+ and accounts_receivable_date between #{startDate} and #{endDate}
|
|
|
+ <if test="customerId != null"> and customer_id = #{customerId}</if>
|
|
|
+ <if test="settlementUnitId != null"> and settlement_unit = #{settlementUnitId}</if>
|
|
|
+ GROUP BY
|
|
|
+ customer_id
|
|
|
+ ) AS a ON c.id = a.customer_id
|
|
|
+
|
|
|
+ )as ce on c.id = ce.id
|
|
|
|
|
|
</select>
|
|
|
|