动态池总表和动态池明细表部分字段代偿算已还

This commit is contained in:
tangfutang 2021-01-14 19:07:13 +08:00
parent 5734ca8e9a
commit d4c16248a2
2 changed files with 2 additions and 2 deletions

File diff suppressed because one or more lines are too long

View File

@ -34,7 +34,7 @@ public class DynamicPoolTotalRunBatch implements Job{
String deleteSql="DELETE FROM LV_DYNAMIC_POOL_TOTAL WHERE DATE_FORMAT(CREATE_TIME,'%Y/%m')=DATE_FORMAT(NOW(),'%Y/%m')";
Sqlca.executeSQL(deleteSql);
// 将当月跑批数据插入静态池表
String insertSql="INSERT INTO LV_DYNAMIC_POOL_TOTAL(SELECT REPLACE(UUID(), '-', '') AS ID,DATE_FORMAT(NOW(),'%Y/%m/%d') AS F1,SUM(IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00)) AS F2,SUM(IFNULL(LRP2.ZC_LOAN_SURPLUS_MONEY,0.00)) AS F3,SUM(CASE WHEN VOC1.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F4,SUM(CASE WHEN VOC2.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F5,SUM(CASE WHEN VOC3.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F6,SUM(CASE WHEN VOC4.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F7,SUM(CASE WHEN VOC5.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F8,SUM(CASE WHEN VOC6.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F9,SUM(CASE WHEN VOC7.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F10,DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS CREATE_TIME FROM (SELECT CONTRACT_ID,MAX(FACT_DATE) AS FACT_DATE FROM LC_FUND_INCOME WHERE FEE_TYPE = 'feetype10' AND EBANK_STATUS = '05' AND DATE_FORMAT(FACT_DATE,'%Y/%m')<=DATE_FORMAT(NOW(),'%Y/%m') GROUP BY CONTRACT_ID) LFI LEFT JOIN (SELECT LRP.CONTRACT_ID,SUM(LRP.CORPUS)-SUM(IFNULL(LRI.CORPUS,0)) AS QB_LOAN_SURPLUS_MONEY FROM (SELECT CONTRACT_ID,SUM(CORPUS) AS CORPUS FROM LC_RENT_PLAN GROUP BY CONTRACT_ID) LRP LEFT JOIN (SELECT CONTRACT_ID,SUM(CORPUS) AS CORPUS,SUM(IFNULL(PENALTY,0)) AS PENALTY FROM LC_RENT_INCOME GROUP BY CONTRACT_ID)LRI ON LRI.CONTRACT_ID=LRP.CONTRACT_ID GROUP BY LRP.CONTRACT_ID)LRP1 ON LRP1.CONTRACT_ID=LFI.CONTRACT_ID LEFT JOIN (SELECT LRP.CONTRACT_ID,SUM(LRP.CORPUS)-SUM(IFNULL(LRI.CORPUS,0)) AS ZC_LOAN_SURPLUS_MONEY FROM LC_RENT_PLAN LRP LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,SUM(CORPUS) AS CORPUS FROM LC_RENT_INCOME GROUP BY CONTRACT_ID,PLAN_LIST)LRI ON LRI.CONTRACT_ID=LRP.CONTRACT_ID AND LRI.PLAN_LIST=LRP.PLAN_LIST WHERE DATE_FORMAT(LRP.PLAN_DATE,'%Y/%m/%d')>=DATE_FORMAT(NOW(),'%Y/%m/%d') AND LRP.CORPUS-IFNULL(LRI.CORPUS,0)<>0 AND NOT EXISTS(SELECT 1 FROM VI_OVERDUE_CONTRACT VOC WHERE VOC.CONTRACT_ID=LRP.CONTRACT_ID)GROUP BY LRP.CONTRACT_ID)LRP2 ON LRP2.CONTRACT_ID=LFI.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY BETWEEN 1 AND 30 GROUP BY CONTRACT_ID)VOC1 ON VOC1.CONTRACT_ID=LRP1.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY BETWEEN 31 AND 60 GROUP BY CONTRACT_ID)VOC2 ON VOC2.CONTRACT_ID=LRP1.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY BETWEEN 61 AND 90 GROUP BY CONTRACT_ID)VOC3 ON VOC3.CONTRACT_ID=LRP1.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY BETWEEN 91 AND 120 GROUP BY CONTRACT_ID)VOC4 ON VOC4.CONTRACT_ID=LRP1.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY BETWEEN 121 AND 150 GROUP BY CONTRACT_ID)VOC5 ON VOC5.CONTRACT_ID=LRP1.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY BETWEEN 151 AND 180 GROUP BY CONTRACT_ID)VOC6 ON VOC6.CONTRACT_ID=LRP1.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY>180 GROUP BY CONTRACT_ID)VOC7 ON VOC7.CONTRACT_ID=LRP1.CONTRACT_ID ) ";
String insertSql="INSERT INTO LV_DYNAMIC_POOL_TOTAL(SELECT REPLACE(UUID(), '-', '') AS ID,DATE_FORMAT(NOW(),'%Y/%m/%d') AS F1,SUM(IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00)- IFNULL(dc.dcMoney,0.00)) AS F2,SUM(IFNULL(LRP2.ZC_LOAN_SURPLUS_MONEY,0.00)) AS F3,SUM(CASE WHEN VOC1.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F4,SUM(CASE WHEN VOC2.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F5,SUM(CASE WHEN VOC3.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F6,SUM(CASE WHEN VOC4.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F7,SUM(CASE WHEN VOC5.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F8,SUM(CASE WHEN VOC6.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F9,SUM(CASE WHEN VOC7.CONTRACT_ID IS NOT NULL THEN IFNULL(LRP1.QB_LOAN_SURPLUS_MONEY,0.00) ELSE 0 END) AS F10,DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS CREATE_TIME FROM (SELECT CONTRACT_ID,MAX(FACT_DATE) AS FACT_DATE FROM LC_FUND_INCOME WHERE FEE_TYPE = 'feetype10' AND EBANK_STATUS = '05' AND DATE_FORMAT(FACT_DATE,'%Y/%m')<=DATE_FORMAT(NOW(),'%Y/%m') GROUP BY CONTRACT_ID) LFI LEFT JOIN (SELECT LRP.CONTRACT_ID,SUM(LRP.CORPUS)-SUM(IFNULL(LRI.CORPUS,0)) AS QB_LOAN_SURPLUS_MONEY FROM (SELECT CONTRACT_ID,SUM(CORPUS) AS CORPUS FROM LC_RENT_PLAN GROUP BY CONTRACT_ID) LRP LEFT JOIN (SELECT CONTRACT_ID,SUM(CORPUS) AS CORPUS,SUM(IFNULL(PENALTY,0)) AS PENALTY FROM LC_RENT_INCOME GROUP BY CONTRACT_ID)LRI ON LRI.CONTRACT_ID=LRP.CONTRACT_ID GROUP BY LRP.CONTRACT_ID)LRP1 ON LRP1.CONTRACT_ID=LFI.CONTRACT_ID LEFT JOIN (SELECT LRP.CONTRACT_ID,SUM(LRP.CORPUS)-SUM(IFNULL(LRI.CORPUS,0)) AS ZC_LOAN_SURPLUS_MONEY FROM LC_RENT_PLAN LRP LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,SUM(CORPUS) AS CORPUS FROM LC_RENT_INCOME GROUP BY CONTRACT_ID,PLAN_LIST)LRI ON LRI.CONTRACT_ID=LRP.CONTRACT_ID AND LRI.PLAN_LIST=LRP.PLAN_LIST WHERE DATE_FORMAT(LRP.PLAN_DATE,'%Y/%m/%d')>=DATE_FORMAT(NOW(),'%Y/%m/%d') AND LRP.CORPUS-IFNULL(LRI.CORPUS,0)<>0 AND NOT EXISTS(SELECT 1 FROM VI_OVERDUE_CONTRACT VOC WHERE VOC.CONTRACT_ID=LRP.CONTRACT_ID)GROUP BY LRP.CONTRACT_ID)LRP2 ON LRP2.CONTRACT_ID=LFI.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY BETWEEN 1 AND 30 GROUP BY CONTRACT_ID)VOC1 ON VOC1.CONTRACT_ID=LRP1.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY BETWEEN 31 AND 60 GROUP BY CONTRACT_ID)VOC2 ON VOC2.CONTRACT_ID=LRP1.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY BETWEEN 61 AND 90 GROUP BY CONTRACT_ID)VOC3 ON VOC3.CONTRACT_ID=LRP1.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY BETWEEN 91 AND 120 GROUP BY CONTRACT_ID)VOC4 ON VOC4.CONTRACT_ID=LRP1.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY BETWEEN 121 AND 150 GROUP BY CONTRACT_ID)VOC5 ON VOC5.CONTRACT_ID=LRP1.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY BETWEEN 151 AND 180 GROUP BY CONTRACT_ID)VOC6 ON VOC6.CONTRACT_ID=LRP1.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,MAX(OVERDUE_DAY) AS OVERDUE_DAY FROM VI_OVERDUE_CONTRACT WHERE OVERDUE_DAY>180 GROUP BY CONTRACT_ID)VOC7 ON VOC7.CONTRACT_ID=LRP1.CONTRACT_ID left join (SELECT LRP.CONTRACT_ID,SUM(LRP.CORPUS)-SUM(IFNULL(LRI.CORPUS,0)) AS dcMoney FROM (SELECT lp.CONTRACT_ID,SUM(lp.CORPUS) AS CORPUS FROM LC_RENT_PLAN lp where exists(select 1 from D_DEPOSITRETURN_INFO where MONEY_TYPE='bondRepay' and rent_plan_id=lp.id ) GROUP BY CONTRACT_ID) LRP LEFT JOIN (SELECT li.CONTRACT_ID,SUM(li.CORPUS) AS CORPUS FROM LC_RENT_INCOME li where exists(select 1 from D_DEPOSITRETURN_INFO where MONEY_TYPE='bondRepay' and rent_plan_id=li.plan_id ) GROUP BY CONTRACT_ID) LRI ON LRI.CONTRACT_ID=LRP.CONTRACT_ID GROUP BY LRP.CONTRACT_ID ) dc on dc.CONTRACT_ID=LFI.CONTRACT_ID )";
int con = Sqlca.executeSQL(insertSql);
Sqlca.commit();
logger.info("动态池汇总数据跑批成功,《《《条数:"+con+"《《《《时间:"+create_time+"《《《"+insertSql);