|
@@ -127,20 +127,51 @@
|
|
|
<select id="receivableCheck" resultType="com.fjhx.form.entity.ReceivableCheckBo">
|
|
|
SELECT cu.`name` AS customerName,
|
|
|
cu.short_name AS customerShortName,
|
|
|
- cu.user_id AS saleUserId,
|
|
|
- c1.receivable_amount
|
|
|
+ cu.user_id as saleUserId,
|
|
|
+ c1.receivable_amount,
|
|
|
+ c1.ageLess30Amount,
|
|
|
+ c1.age30To60Amount,
|
|
|
+ c1.age60To90Amount,
|
|
|
+ c1.age90To120Amount,
|
|
|
+ c1.ageGreater120Amount
|
|
|
FROM customer cu
|
|
|
- JOIN (SELECT c.buy_corporation_id,
|
|
|
- IFNULL(sum(cor1.truck_amount), 0) - IFNULL(sum(cc1.claim_amount), 0) AS receivable_amount
|
|
|
- FROM contract c
|
|
|
- LEFT JOIN (SELECT cor.contract_id, sum(cor.truck_quantity * cor.price) AS truck_amount
|
|
|
- FROM contract_outbound_records cor
|
|
|
- GROUP BY cor.contract_id) cor1 ON cor1.contract_id = c.id
|
|
|
- LEFT JOIN (SELECT cc.contract_id, sum(cc.money) AS claim_amount
|
|
|
- FROM claim_contract cc
|
|
|
- GROUP BY cc.contract_id) cc1 ON cc1.contract_id = c.id
|
|
|
- WHERE c.create_time <= #{dto.checkDate}
|
|
|
- GROUP BY c.buy_corporation_id
|
|
|
+ JOIN (SELECT t1.buy_corporation_id,
|
|
|
+ sum(t1.receivable_amount) AS receivable_amount,
|
|
|
+ sum(
|
|
|
+ IF
|
|
|
+ (t1.account_age <= 30, t1.receivable_amount,
|
|
|
+ 0)) AS ageLess30Amount,
|
|
|
+ sum(
|
|
|
+ IF
|
|
|
+ (t1.account_age > 30 AND t1.account_age <= 60, t1.receivable_amount,
|
|
|
+ 0)) AS age30To60Amount,
|
|
|
+ sum(
|
|
|
+ IF
|
|
|
+ (t1.account_age > 60 AND t1.account_age <= 90, t1.receivable_amount,
|
|
|
+ 0)) AS age60To90Amount,
|
|
|
+ sum(
|
|
|
+ IF
|
|
|
+ (t1.account_age > 90 AND t1.account_age <= 120, t1.receivable_amount,
|
|
|
+ 0)) AS age90To120Amount,
|
|
|
+ sum(
|
|
|
+ IF
|
|
|
+ (t1.account_age > 120, t1.receivable_amount,
|
|
|
+ 0)) AS ageGreater120Amount
|
|
|
+ FROM (SELECT c.buy_corporation_id,
|
|
|
+ IFNULL(cor1.truck_amount, 0) - IFNULL(cc1.claim_amount, 0) AS receivable_amount,
|
|
|
+ IFNULL(DATEDIFF(#{dto.checkDate}, cor1.firstTruckDate), 0) AS account_age
|
|
|
+ FROM contract c
|
|
|
+ LEFT JOIN (SELECT cor.contract_id,
|
|
|
+ sum(cor.truck_quantity * cor.price) AS truck_amount,
|
|
|
+ min(coi.truck_date) AS firstTruckDate
|
|
|
+ FROM contract_outbound_records cor
|
|
|
+ JOIN contract_outbound_info coi ON cor.record_id = coi.id
|
|
|
+ GROUP BY cor.contract_id) cor1 ON cor1.contract_id = c.id
|
|
|
+ LEFT JOIN (SELECT cc.contract_id, sum(cc.money) AS claim_amount
|
|
|
+ FROM claim_contract cc
|
|
|
+ GROUP BY cc.contract_id) cc1 ON cc1.contract_id = c.id
|
|
|
+ WHERE c.create_time <= #{dto.checkDate}) t1
|
|
|
+ GROUP BY t1.buy_corporation_id
|
|
|
HAVING receivable_amount != 0) c1 ON c1.buy_corporation_id = cu.id
|
|
|
${ew.customSqlSegment}
|
|
|
</select>
|