Commit 0066b435 authored by 郝彦辉's avatar 郝彦辉

p2p存量增加xyqb_i_repayment_plan_p2p_bak临时表

parent efab3c28
...@@ -65,5 +65,9 @@ public class BaiHangHistoryConstant { ...@@ -65,5 +65,9 @@ public class BaiHangHistoryConstant {
" select * from xyqb_i_loan_application_manifest_history b " + " select * from xyqb_i_loan_application_manifest_history b " +
" where b.funding_corp_id in (210,540) " + " where b.funding_corp_id in (210,540) " +
" and b.loan_paid_at >= '##STARTTIME##' and b.loan_paid_at < '##ENDTIME##'; "; " and b.loan_paid_at >= '##STARTTIME##' and b.loan_paid_at < '##ENDTIME##'; ";
public static final String SQL_TEMPLATE_PLAN_P2P = "REPLACE INTO xyqb_i_repayment_plan_p2p_bak " +
" select a.* from xyqb_i_repayment_plan a " +
" join xyqb_i_loan_a_m_history_p2p_bak b on a.loan_application_history_id = b.loan_application_history_id " +
" where b.loan_paid_at >= '##STARTTIME##' and b.loan_paid_at < '##ENDTIME##'; ";
} }
...@@ -69,6 +69,7 @@ public class SynLoanInfoHistoryTask { ...@@ -69,6 +69,7 @@ public class SynLoanInfoHistoryTask {
syn_historyAndplan_by_id(); syn_historyAndplan_by_id();
////syn_history_p2p_bak(); ////syn_history_p2p_bak();
////syn_plan_p2p_bak();
log.info("量化派-同步表xyqb_i_loan_application_manifest_history数据结束, endTime: {}, 耗时: {} ", LocalDateTime.now(), stopwatch.stop().elapsed(TimeUnit.MILLISECONDS)); log.info("量化派-同步表xyqb_i_loan_application_manifest_history数据结束, endTime: {}, 耗时: {} ", LocalDateTime.now(), stopwatch.stop().elapsed(TimeUnit.MILLISECONDS));
} }
...@@ -359,6 +360,40 @@ public class SynLoanInfoHistoryTask { ...@@ -359,6 +360,40 @@ public class SynLoanInfoHistoryTask {
} }
} }
/**
* 描述: 将xyqb_i_repayment_plan表的数据同步到xyqb_i_repayment_plan_p2p_bak表 <br/>
* 参数: [] <br/>
* 返回值: void <br/>
* 创建人: yanhui.Hao <br/>
* 创建时间: 2019.12.17 <br/>
*/
private void syn_plan_p2p_bak(){
LocalDateTime erlyDate = LocalDateTime.parse("2016-11-01T00:00:00");
LocalDateTime endDate = LocalDateTime.parse("2019-10-25T00:00:00");
int counter = 0;
while (true) {
Stopwatch startwatch = Stopwatch.createStarted();
counter++;
if (erlyDate.plusDays(counter).compareTo(endDate) > 0) {
break;
}
String starTime = erlyDate.plusDays(counter - 1).format(DateTimeFormatter.ISO_DATE);
String endTime = erlyDate.plusDays(counter).format(DateTimeFormatter.ISO_DATE);
try {
String tmp_sql = BaiHangHistoryConstant.SQL_TEMPLATE_PLAN_P2P;
tmp_sql = tmp_sql.replace("##STARTTIME##",starTime);
tmp_sql = tmp_sql.replace("##ENDTIME##",endTime);
int upCount = xyqbHistoryJdbcTemplate.update(tmp_sql);
log.info("同步xyqb_i_repayment_plan_p2p_bak数据结束, startTime: {} , 耗时: {} , updateCount: {} ", starTime, startwatch.stop().elapsed(TimeUnit.MILLISECONDS)+".ms", upCount);
}catch (Exception e){
log.error("同步xyqb_i_repayment_plan_p2p_bak数据异常, startTime: {} , endTime: {} , counter: {} ", starTime, endTime,counter, e);
}
}
}
} }
...@@ -533,7 +533,6 @@ ...@@ -533,7 +533,6 @@
if(DATEDIFF(a.next_deadline,a.repaid_at)>1,a.term_no,h.max_term); if(DATEDIFF(a.next_deadline,a.repaid_at)>1,a.term_no,h.max_term);
/*p2p 2019.12.13*/ /*p2p 2019.12.13*/
--> -->
select select
a.id reqID a.id reqID
,'A' opCode ,'A' opCode
...@@ -563,15 +562,15 @@ ...@@ -563,15 +562,15 @@
select a.*,if(c.term_no is null,a.term_no,c.term_no) next_term select a.*,if(c.term_no is null,a.term_no,c.term_no) next_term
,if(c.deadline is null,a.deadline,c.deadline) next_deadline ,if(c.deadline is null,a.deadline,c.deadline) next_deadline
,b.loan_paid_at ,b.loan_paid_at
from xyqb_i_repayment_plan a from xyqb_i_repayment_plan_p2p_bak a
left join xyqb_i_loan_a_m_history_p2p_bak b /**xyqb_i_loan_application_manifest_history b*/ left join xyqb_i_loan_a_m_history_p2p_bak b /**xyqb_i_loan_application_manifest_history b*/
on a.loan_application_history_id=b.loan_application_history_id and b.loan_paid_at &lt; #{endTime,jdbcType=VARCHAR} on a.loan_application_history_id=b.loan_application_history_id and b.loan_paid_at &lt; #{endTime,jdbcType=VARCHAR}
left join xyqb_i_repayment_plan c on a.loan_application_history_id=c.loan_application_history_id left join xyqb_i_repayment_plan_p2p_bak c on a.loan_application_history_id=c.loan_application_history_id
and a.term_no=c.term_no-1 and a.term_no=c.term_no-1
left join xyqb_i_loan_withdraw_record k on a.loan_application_history_id=k.loan_id left join xyqb_i_loan_withdraw_record k on a.loan_application_history_id=k.loan_id
left join xyqb_i_repayment_plan g on b.loan_application_history_id=g.loan_application_history_id left join xyqb_i_repayment_plan_p2p_bak g on b.loan_application_history_id=g.loan_application_history_id
where a.repaid_at>=#{startTime,jdbcType=VARCHAR} and a.repaid_at &lt; #{endTime,jdbcType=VARCHAR} and a.repayment_status=3 where a.repaid_at>=#{startTime,jdbcType=VARCHAR} and a.repaid_at &lt; #{endTime,jdbcType=VARCHAR} and a.repayment_status=3
/*and b.funding_corp_id in (210,540)*/ and b.funding_corp_id in (210,540)
and if(b.loan_paid_at>='2018-01-01',b.contract_term >3,b.contract_term >=3) and if(b.loan_paid_at>='2018-01-01',b.contract_term >3,b.contract_term >=3)
and (k.id is null or k.status=3) and (k.id is null or k.status=3)
and g.repayment_status=3 and g.repaid_at &lt; '2019-10-25' and g.repayment_status=3 and g.repaid_at &lt; '2019-10-25'
...@@ -586,50 +585,50 @@ ...@@ -586,50 +585,50 @@
,sum(if(a.repayment_status !=3 or (a.repayment_status =3 and a.repaid_at>=#{endTime,jdbcType=VARCHAR}),if(b.loan_paid_at>='2018-01-01',g.principal,h.principle),0)) dkye ,sum(if(a.repayment_status !=3 or (a.repayment_status =3 and a.repaid_at>=#{endTime,jdbcType=VARCHAR}),if(b.loan_paid_at>='2018-01-01',g.principal,h.principle),0)) dkye
,min(if((a.repayment_status !=3 or (a.repayment_status =3 and a.repaid_at>=#{endTime,jdbcType=VARCHAR})) and a.deadline &lt;= #{endTime,jdbcType=VARCHAR},a.deadline,null)) min_deadline ,min(if((a.repayment_status !=3 or (a.repayment_status =3 and a.repaid_at>=#{endTime,jdbcType=VARCHAR})) and a.deadline &lt;= #{endTime,jdbcType=VARCHAR},a.deadline,null)) min_deadline
,max(a.term_no) max_term_no ,max(a.term_no) max_term_no
from xyqb_i_repayment_plan a from xyqb_i_repayment_plan_p2p_bak a
left join xyqb_i_loan_a_m_history_p2p_bak b /**xyqb_i_loan_application_manifest_history b*/ left join xyqb_i_loan_a_m_history_p2p_bak b /**xyqb_i_loan_application_manifest_history b*/
on a.loan_application_history_id=b.loan_application_history_id on a.loan_application_history_id=b.loan_application_history_id
left join xyqb_i_repayment_record g on a.id=g.repayment_plan_id left join xyqb_i_repayment_record g on a.id=g.repayment_plan_id
left join xyqb_i_plan_amount_detail h on a.id=h.plan_id left join xyqb_i_plan_amount_detail h on a.id=h.plan_id
where 1=1 /* b.funding_corp_id in (210,540) */ where b.funding_corp_id in (210,540)
group by a.loan_application_history_id) f on a.loan_application_history_id=f.loan_application_history_id group by a.loan_application_history_id) f on a.loan_application_history_id=f.loan_application_history_id
left join xyqb_i_repayment_record g on a.id=g.repayment_plan_id left join xyqb_i_repayment_record g on a.id=g.repayment_plan_id
left join ( left join (
select a.loan_application_history_id,a.repaid_at,a.deadline,a.term_no select a.loan_application_history_id,a.repaid_at,a.deadline,a.term_no
,max(c.term_no) max_term ,max(c.term_no) max_term
,max(c.deadline) max_deadline ,max(c.deadline) max_deadline
from xyqb_i_repayment_plan a from xyqb_i_repayment_plan_p2p_bak a
left join xyqb_i_loan_a_m_history_p2p_bak b /**xyqb_i_loan_application_manifest_history b*/ left join xyqb_i_loan_a_m_history_p2p_bak b /**xyqb_i_loan_application_manifest_history b*/
on a.loan_application_history_id=b.loan_application_history_id and b.loan_paid_at &lt; #{endTime,jdbcType=VARCHAR} on a.loan_application_history_id=b.loan_application_history_id and b.loan_paid_at &lt; #{endTime,jdbcType=VARCHAR}
left join xyqb_i_repayment_plan c on a.loan_application_history_id=c.loan_application_history_id left join xyqb_i_repayment_plan_p2p_bak c on a.loan_application_history_id=c.loan_application_history_id
where DATEDIFF(a.repaid_at,c.deadline)>=-1 where DATEDIFF(a.repaid_at,c.deadline)>=-1
and 1=1 /* b.funding_corp_id in (210,540) */ and b.funding_corp_id in (210,540)
group by a.loan_application_history_id,a.term_no) h group by a.loan_application_history_id,a.term_no) h
on a.loan_application_history_id=h.loan_application_history_id and a.term_no=h.term_no on a.loan_application_history_id=h.loan_application_history_id and a.term_no=h.term_no
left join ( left join (
select a.loan_application_history_id select a.loan_application_history_id
,a.term_no ,a.term_no
,sum(if(d.term_no>a.term_no,d.principal,0)) dkye ,sum(if(d.term_no>a.term_no,d.principal,0)) dkye
from xyqb_i_repayment_plan a from xyqb_i_repayment_plan_p2p_bak a
left join xyqb_i_loan_a_m_history_p2p_bak b /**xyqb_i_loan_application_manifest_history b*/ left join xyqb_i_loan_a_m_history_p2p_bak b /**xyqb_i_loan_application_manifest_history b*/
on a.loan_application_history_id=b.loan_application_history_id and b.loan_paid_at &lt; #{endTime,jdbcType=VARCHAR} on a.loan_application_history_id=b.loan_application_history_id and b.loan_paid_at &lt; #{endTime,jdbcType=VARCHAR}
left join xyqb_i_repayment_record d on a.loan_application_history_id=d.loan_application_history_id left join xyqb_i_repayment_record d on a.loan_application_history_id=d.loan_application_history_id
where 1=1 /* b.funding_corp_id in (210,540) */ where b.funding_corp_id in (210,540)
group by a.loan_application_history_id,a.term_no) i group by a.loan_application_history_id,a.term_no) i
on a.loan_application_history_id=i.loan_application_history_id and a.term_no=i.term_no on a.loan_application_history_id=i.loan_application_history_id and a.term_no=i.term_no
left join ( left join (
select a.loan_application_history_id select a.loan_application_history_id
,a.term_no ,a.term_no
,sum(if(e.term_no>a.term_no,h.principle,0)) dkye ,sum(if(e.term_no>a.term_no,h.principle,0)) dkye
from xyqb_i_repayment_plan a from xyqb_i_repayment_plan_p2p_bak a
left join xyqb_i_loan_a_m_history_p2p_bak b /**xyqb_i_loan_application_manifest_history b*/ left join xyqb_i_loan_a_m_history_p2p_bak b /**xyqb_i_loan_application_manifest_history b*/
on a.loan_application_history_id=b.loan_application_history_id and b.loan_paid_at &lt; #{endTime,jdbcType=VARCHAR} on a.loan_application_history_id=b.loan_application_history_id and b.loan_paid_at &lt; #{endTime,jdbcType=VARCHAR}
left join xyqb_i_repayment_plan e on a.loan_application_history_id=e.loan_application_history_id left join xyqb_i_repayment_plan_p2p_bak e on a.loan_application_history_id=e.loan_application_history_id
left join xyqb_i_plan_amount_detail h on e.id=h.plan_id left join xyqb_i_plan_amount_detail h on e.id=h.plan_id
where 1=1 /* b.funding_corp_id in (210,540) */ where b.funding_corp_id in (210,540)
group by a.loan_application_history_id,a.term_no) i2 group by a.loan_application_history_id,a.term_no) i2
on a.loan_application_history_id=i2.loan_application_history_id and a.term_no=i2.term_no on a.loan_application_history_id=i2.loan_application_history_id and a.term_no=i2.term_no
left join xyqb_i_repayment_plan j on a.loan_application_history_id=j.loan_application_history_id left join xyqb_i_repayment_plan_p2p_bak j on a.loan_application_history_id=j.loan_application_history_id
and if(DATEDIFF(a.next_deadline,a.repaid_at)>1,a.term_no,h.max_term)=j.term_no and if(DATEDIFF(a.next_deadline,a.repaid_at)>1,a.term_no,h.max_term)=j.term_no
group by if(d.order_no is null,a.loan_application_history_id,d.order_no), group by if(d.order_no is null,a.loan_application_history_id,d.order_no),
if(DATEDIFF(a.next_deadline,a.repaid_at)>1,a.term_no,h.max_term); if(DATEDIFF(a.next_deadline,a.repaid_at)>1,a.term_no,h.max_term);
...@@ -862,16 +861,16 @@ ...@@ -862,16 +861,16 @@
end as loanStatus end as loanStatus
,'overdue' termStatus ,'overdue' termStatus
from (select a.* from (select a.*
from xyqb_i_repayment_plan a from xyqb_i_repayment_plan_p2p_bak a
left join xyqb_i_loan_a_m_history_p2p_bak b /**xyqb_i_loan_application_manifest_history b*/ left join xyqb_i_loan_a_m_history_p2p_bak b /**xyqb_i_loan_application_manifest_history b*/
on a.loan_application_history_id=b.loan_application_history_id and b.loan_paid_at &lt; #{endTime,jdbcType=VARCHAR} on a.loan_application_history_id=b.loan_application_history_id and b.loan_paid_at &lt; #{endTime,jdbcType=VARCHAR}
left join xyqb_i_loan_withdraw_record k on a.loan_application_history_id=k.loan_id left join xyqb_i_loan_withdraw_record k on a.loan_application_history_id=k.loan_id
left join xyqb_i_repayment_plan g on b.loan_application_history_id=g.loan_application_history_id left join xyqb_i_repayment_plan_p2p_bak g on b.loan_application_history_id=g.loan_application_history_id
and b.contract_term=g.term_no and b.contract_term=g.term_no
where (a.repayment_status !=3 or (a.repayment_status =3 and a.repaid_at>=#{endTime,jdbcType=VARCHAR})) and where (a.repayment_status !=3 or (a.repayment_status =3 and a.repaid_at>=#{endTime,jdbcType=VARCHAR})) and
if(b.contract_term>a.term_no,DATEDIFF(#{endTime,jdbcType=VARCHAR},a.deadline)=0,DATEDIFF(#{endTime,jdbcType=VARCHAR},a.deadline)>=0) if(b.contract_term>a.term_no,DATEDIFF(#{endTime,jdbcType=VARCHAR},a.deadline)=0,DATEDIFF(#{endTime,jdbcType=VARCHAR},a.deadline)>=0)
and floor(DATEDIFF(#{endTime,jdbcType=VARCHAR},a.deadline)/30)=DATEDIFF(#{endTime,jdbcType=VARCHAR},a.deadline)/30 and floor(DATEDIFF(#{endTime,jdbcType=VARCHAR},a.deadline)/30)=DATEDIFF(#{endTime,jdbcType=VARCHAR},a.deadline)/30
/*and b.funding_corp_id in (210,540)*/ and b.funding_corp_id in (210,540)
and b.transaction_status in (2,5) and b.transaction_status in (2,5)
and if(b.loan_paid_at>='2018-01-01',b.contract_term >3,b.contract_term >=3) and if(b.loan_paid_at>='2018-01-01',b.contract_term >3,b.contract_term >=3)
and (k.id is null or k.status=3) and (k.id is null or k.status=3)
...@@ -885,12 +884,12 @@ ...@@ -885,12 +884,12 @@
,sum(if((a.repayment_status !=3 or (a.repayment_status =3 and a.repaid_at>=#{endTime,jdbcType=VARCHAR})) and a.deadline &lt;= #{endTime,jdbcType=VARCHAR},if(b.loan_paid_at>='2018-01-01',g.principal+g.interest+g.service_fee,h.principle+h.interest+h.service_fee_per_term),0)) yqze ,sum(if((a.repayment_status !=3 or (a.repayment_status =3 and a.repaid_at>=#{endTime,jdbcType=VARCHAR})) and a.deadline &lt;= #{endTime,jdbcType=VARCHAR},if(b.loan_paid_at>='2018-01-01',g.principal+g.interest+g.service_fee,h.principle+h.interest+h.service_fee_per_term),0)) yqze
,sum(if(a.repayment_status !=3 or (a.repayment_status =3 and a.repaid_at>=#{endTime,jdbcType=VARCHAR}),if(b.loan_paid_at>='2018-01-01',g.principal,h.principle),0)) dkye ,sum(if(a.repayment_status !=3 or (a.repayment_status =3 and a.repaid_at>=#{endTime,jdbcType=VARCHAR}),if(b.loan_paid_at>='2018-01-01',g.principal,h.principle),0)) dkye
,min(if((a.repayment_status !=3 or (a.repayment_status =3 and a.repaid_at>=#{endTime,jdbcType=VARCHAR})) and a.deadline &lt;= #{endTime,jdbcType=VARCHAR},a.deadline,null)) min_deadline ,min(if((a.repayment_status !=3 or (a.repayment_status =3 and a.repaid_at>=#{endTime,jdbcType=VARCHAR})) and a.deadline &lt;= #{endTime,jdbcType=VARCHAR},a.deadline,null)) min_deadline
from xyqb_i_repayment_plan a from xyqb_i_repayment_plan_p2p_bak a
left join xyqb_i_loan_a_m_history_p2p_bak b /**xyqb_i_loan_application_manifest_history b*/ left join xyqb_i_loan_a_m_history_p2p_bak b /**xyqb_i_loan_application_manifest_history b*/
on a.loan_application_history_id=b.loan_application_history_id on a.loan_application_history_id=b.loan_application_history_id
left join xyqb_i_repayment_record g on a.id=g.repayment_plan_id left join xyqb_i_repayment_record g on a.id=g.repayment_plan_id
left join xyqb_i_plan_amount_detail h on a.id=h.plan_id left join xyqb_i_plan_amount_detail h on a.id=h.plan_id
where 1=1 /*b.funding_corp_id in (210,540)*/ where b.funding_corp_id in (210,540)
group by a.loan_application_history_id) f on a.loan_application_history_id=f.loan_application_history_id group by a.loan_application_history_id) f on a.loan_application_history_id=f.loan_application_history_id
left join xyqb_i_repayment_record g on a.id=g.repayment_plan_id; left join xyqb_i_repayment_record g on a.id=g.repayment_plan_id;
</select> </select>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment