57 lines
7.6 KiB
Java
57 lines
7.6 KiB
Java
package com.tenwa.lease.app.quartzmession;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.Date;
|
|
import org.apache.log4j.LogManager;
|
|
import org.apache.log4j.Logger;
|
|
import org.quartz.Job;
|
|
import org.quartz.JobExecutionContext;
|
|
import org.quartz.JobExecutionException;
|
|
import com.amarsoft.are.jbo.JBOException;
|
|
import com.amarsoft.awe.util.Transaction;
|
|
|
|
/**
|
|
* 1:动态池数明细表跑批
|
|
* @author xiezhiwen
|
|
*/
|
|
public class DynamicPoolDetailRunBatch implements Job{
|
|
private static final Logger logger = LogManager.getLogger(DynamicPoolDetailRunBatch.class);// 引入logger日志
|
|
|
|
public void execute(JobExecutionContext arg0) throws JobExecutionException {
|
|
Transaction Sqlca=null;
|
|
try{
|
|
Sqlca = Transaction.createTransaction("als");
|
|
String create_time = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss").format(new Date());
|
|
// 删除当月跑批记录
|
|
String deleteSql="DELETE FROM LV_DYNAMIC_POOL_DETAIL WHERE DATE_FORMAT(CREATE_TIME,'%Y/%m')=DATE_FORMAT(NOW(),'%Y/%m')";
|
|
Sqlca.executeSQL(deleteSql);
|
|
// 将当月跑批数据插入静态池表
|
|
String insertSql="INSERT INTO LV_DYNAMIC_POOL_DETAIL(SELECT REPLACE(UUID(), '-', '') AS ID,DATE_FORMAT(NOW(),'%Y/%m/%d') AS F1,SUM(IFNULL(LRP1.F2,0)) AS F2,SUM(IFNULL(LRP2.F3,0)) AS F3,SUM(IFNULL(LRP1.F4,0)) AS F4,SUM(IFNULL(LRP2.F5,0)) AS F5,SUM(IFNULL(LRP3.F6,0)) AS F6,'0.00' AS F7,SUM(IFNULL(LFRA.F8,0)) AS F8,SUM(IFNULL(VOC1.F9,0)) AS F9,SUM(IFNULL(VOC2.F10,0)) AS F10,SUM(IFNULL(VOC3.F11,0)) AS F11,SUM(IFNULL(VOC4.F12,0)) AS F12,SUM(IFNULL(VOC5.F13,0)) AS F13,SUM(IFNULL(VOC6.F14,0)) AS F14,SUM(IFNULL(LRP3.F15,0)) AS F15,SUM(IFNULL(VOC6.F16,0)) AS F16,SUM(IFNULL(LFRA.F17,0)) AS F17,'0.00' AS F18,'0.00' AS F19,'0.00' AS F20,'0.00' AS F21, '0.00' AS F22,SUM(IFNULL(LRP4.F23,0.00)) AS F23,DATE_FORMAT(NOW(),'%Y/%m/%d %H:%i:%s') AS CREATE_TIME FROM (SELECT CONTRACT_ID FROM LC_FUND_INCOME WHERE FEE_TYPE = 'feetype10' AND EBANK_STATUS = '05' GROUP BY CONTRACT_ID)LFI LEFT JOIN (SELECT LFI.CONTRACT_ID,LRP.F2,COUNT(LRP.CONTRACT_ID) AS F4 FROM (SELECT CONTRACT_ID 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 F2 FROM LC_RENT_PLAN LRP LEFT JOIN (SELECT CONTRACT_ID,PLAN_LIST,SUM(CORPUS) AS CORPUS FROM LC_RENT_INCOME WHERE DATE_FORMAT(HIRE_DATE,'%Y/%m')<DATE_FORMAT(NOW(),'%Y/%m') GROUP BY CONTRACT_ID,PLAN_LIST)LRI ON LRI.CONTRACT_ID=LRP.CONTRACT_ID AND LRI.PLAN_LIST=LRP.PLAN_LIST GROUP BY LRP.CONTRACT_ID)LRP ON LRP.CONTRACT_ID=LFI.CONTRACT_ID LEFT JOIN LB_CONTRACT_INFO LCI ON LCI.ID=LRP.CONTRACT_ID WHERE (LCI.CONTRACT_STATUS = '31' OR (LCI.CONTRACT_STATUS = '100' AND EXISTS(SELECT 1 FROM LC_FUND_RENT_ADJUST WHERE CONTRACT_ID=LCI.ID AND DATE_FORMAT(PAYDAY_ADJUST,'%Y/%m')>DATE_FORMAT(NOW(),'%Y/%m')))) GROUP BY LFI.CONTRACT_ID)LRP1 ON LRP1.CONTRACT_ID=LFI.CONTRACT_ID LEFT JOIN (SELECT LFI.CONTRACT_ID,IFNULL(LRP.CORPUS,0) AS F3,COUNT(LFI.CONTRACT_ID) AS F5 FROM (SELECT CONTRACT_ID 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 CONTRACT_ID,SUM(CORPUS) AS CORPUS FROM LC_RENT_PLAN GROUP BY CONTRACT_ID)LRP ON LRP.CONTRACT_ID=LFI.CONTRACT_ID GROUP BY LFI.CONTRACT_ID)LRP2 ON LRP2.CONTRACT_ID=LFI.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,SUM(CORPUS) AS F6,SUM(INTEREST) AS F15 FROM LC_RENT_PLAN WHERE DATE_FORMAT(PLAN_DATE,'%Y/%m')=DATE_FORMAT(NOW(),'%Y/%m') GROUP BY CONTRACT_ID)LRP3 ON LRP3.CONTRACT_ID=LFI.CONTRACT_ID LEFT JOIN (SELECT CONTRACT_ID,SUM(CORPUS_OVERAGE) AS F8,SUM(IFNULL(HANDLING_CHARGE,0)) AS F17 FROM LC_FUND_RENT_ADJUST WHERE DATE_FORMAT(PAYDAY_ADJUST,'%Y/%m')=DATE_FORMAT(NOW(),'%Y/%m') GROUP BY CONTRACT_ID)LFRA ON LFRA.CONTRACT_ID=LFI.CONTRACT_ID LEFT JOIN (SELECT LRI.CONTRACT_ID,SUM(LRI.CORPUS) AS F9 FROM (SELECT CONTRACT_ID,PLAN_LIST,SUM(CORPUS) AS CORPUS FROM LC_RENT_INCOME WHERE DATE_FORMAT(HIRE_DATE,'%Y/%m')=DATE_FORMAT(NOW(),'%Y/%m') GROUP BY CONTRACT_ID,PLAN_LIST)LRI LEFT JOIN VI_OVERDUE_CONTRACT VOC ON VOC.CONTRACT_ID=LRI.CONTRACT_ID WHERE VOC.OVERDUE_DAY BETWEEN 1 AND 30 GROUP BY LRI.CONTRACT_ID)VOC1 ON VOC1.CONTRACT_ID=LFI.CONTRACT_ID LEFT JOIN (SELECT LRI.CONTRACT_ID,SUM(LRI.CORPUS) AS F10 FROM (SELECT CONTRACT_ID,PLAN_LIST,SUM(CORPUS) AS CORPUS FROM LC_RENT_INCOME WHERE DATE_FORMAT(HIRE_DATE,'%Y/%m')=DATE_FORMAT(NOW(),'%Y/%m') GROUP BY CONTRACT_ID,PLAN_LIST)LRI LEFT JOIN VI_OVERDUE_CONTRACT VOC ON VOC.CONTRACT_ID=LRI.CONTRACT_ID WHERE VOC.OVERDUE_DAY BETWEEN 31 AND 60 GROUP BY LRI.CONTRACT_ID)VOC2 ON VOC2.CONTRACT_ID=LFI.CONTRACT_ID LEFT JOIN (SELECT LRI.CONTRACT_ID,SUM(LRI.CORPUS) AS F11 FROM (SELECT CONTRACT_ID,PLAN_LIST,SUM(CORPUS) AS CORPUS FROM LC_RENT_INCOME WHERE DATE_FORMAT(HIRE_DATE,'%Y/%m')=DATE_FORMAT(NOW(),'%Y/%m') GROUP BY CONTRACT_ID,PLAN_LIST)LRI LEFT JOIN VI_OVERDUE_CONTRACT VOC ON VOC.CONTRACT_ID=LRI.CONTRACT_ID WHERE VOC.OVERDUE_DAY BETWEEN 61 AND 90 GROUP BY LRI.CONTRACT_ID)VOC3 ON VOC3.CONTRACT_ID=LFI.CONTRACT_ID LEFT JOIN (SELECT LRI.CONTRACT_ID,SUM(LRI.CORPUS) AS F12 FROM (SELECT CONTRACT_ID,PLAN_LIST,SUM(CORPUS) AS CORPUS FROM LC_RENT_INCOME WHERE DATE_FORMAT(HIRE_DATE,'%Y/%m')=DATE_FORMAT(NOW(),'%Y/%m') GROUP BY CONTRACT_ID,PLAN_LIST)LRI LEFT JOIN VI_OVERDUE_CONTRACT VOC ON VOC.CONTRACT_ID=LRI.CONTRACT_ID WHERE VOC.OVERDUE_DAY BETWEEN 91 AND 120 GROUP BY LRI.CONTRACT_ID)VOC4 ON VOC4.CONTRACT_ID=LFI.CONTRACT_ID LEFT JOIN (SELECT LRI.CONTRACT_ID,SUM(LRI.CORPUS) AS F13 FROM (SELECT CONTRACT_ID,PLAN_LIST,SUM(CORPUS) AS CORPUS FROM LC_RENT_INCOME WHERE DATE_FORMAT(HIRE_DATE,'%Y/%m')=DATE_FORMAT(NOW(),'%Y/%m') GROUP BY CONTRACT_ID,PLAN_LIST)LRI LEFT JOIN VI_OVERDUE_CONTRACT VOC ON VOC.CONTRACT_ID=LRI.CONTRACT_ID WHERE VOC.OVERDUE_DAY >120 GROUP BY LRI.CONTRACT_ID)VOC5 ON VOC5.CONTRACT_ID=LFI.CONTRACT_ID LEFT JOIN (SELECT LRI.CONTRACT_ID,SUM(LRI.CORPUS) AS F14,SUM(LRI.INTEREST) AS F16 FROM (SELECT CONTRACT_ID,PLAN_LIST,SUM(CORPUS) AS CORPUS,SUM(INTEREST) AS INTEREST FROM LC_RENT_INCOME WHERE DATE_FORMAT(HIRE_DATE,'%Y/%m')=DATE_FORMAT(NOW(),'%Y/%m') GROUP BY CONTRACT_ID,PLAN_LIST)LRI LEFT JOIN VI_OVERDUE_CONTRACT VOC ON VOC.CONTRACT_ID=LRI.CONTRACT_ID WHERE VOC.CONTRACT_ID IS NOT NULL GROUP BY LRI.CONTRACT_ID)VOC6 ON VOC6.CONTRACT_ID=LFI.CONTRACT_ID LEFT JOIN (SELECT LRP.CONTRACT_ID,SUM(LRP.CORPUS)-SUM(IFNULL(LRI.CORPUS,0)) AS F23 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)LRP4 ON LRP4.CONTRACT_ID=LFI.CONTRACT_ID) ";
|
|
int con = Sqlca.executeSQL(insertSql);
|
|
Sqlca.commit();
|
|
logger.info("动态池明细数据跑批成功,《《《条数:"+con+"《《《《时间:"+create_time+"《《《"+insertSql);
|
|
logger.info("动态池明细数据跑批成功,《《《条数:"+con+"《《《《时间:"+create_time+"《《《"+insertSql);
|
|
logger.info("动态池明细数据跑批成功,《《《条数:"+con+"《《《《时间:"+create_time+"《《《"+insertSql);
|
|
}catch(Exception e){
|
|
logger.info("<<<<<<<<<<<<<<<<<<<<<<动态池明细数据跑批定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>");
|
|
logger.info("<<<<<<<<<<<<<<<<<<<<<<动态池明细数据跑批定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>");
|
|
logger.info("<<<<<<<<<<<<<<<<<<<<<<动态池明细数据跑批定时任务执行异常>>>>>>>>>>>>>>>>>>>>>>");
|
|
try {
|
|
Sqlca.rollback();
|
|
} catch (JBOException e1) {
|
|
e1.printStackTrace();
|
|
}
|
|
e.printStackTrace();
|
|
}finally {
|
|
if(Sqlca!=null) {
|
|
try {
|
|
Sqlca.commit();
|
|
Sqlca.disConnect();
|
|
} catch (JBOException e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|