Commit f41204fd authored by 郝彦辉's avatar 郝彦辉

百行助贷-非联合贷实时,还款、逾期查询原始表,不查询bak临时表

parent 7dcb7b7d
...@@ -4,9 +4,6 @@ package cn.quantgroup.report.config.datasource.history; ...@@ -4,9 +4,6 @@ package cn.quantgroup.report.config.datasource.history;
import com.zaxxer.hikari.HikariConfig; import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource; import com.zaxxer.hikari.HikariDataSource;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan; import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
...@@ -14,8 +11,6 @@ import org.springframework.beans.factory.annotation.Value; ...@@ -14,8 +11,6 @@ import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import; import org.springframework.context.annotation.Import;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.jdbc.datasource.DataSourceTransactionManager;
...@@ -30,11 +25,13 @@ public class XyqbHistoryDataSourceConfig { ...@@ -30,11 +25,13 @@ public class XyqbHistoryDataSourceConfig {
static final String PACKAGE = "cn.quantgroup.report.mapper.history"; static final String PACKAGE = "cn.quantgroup.report.mapper.history";
//@Value("${baihang.mapper-locations}") @Value("${baihang.mapper-locations2}")
private String mapperLocations = "classpath:cn/quantgroup/report/mapper/history/*.xml"; private String mapperLocations;
//private String mapperLocations = "classpath:cn/quantgroup/report/mapper/history/*.xml";
//@Value("${baihang.type-aliases-package}") @Value("${baihang.type-aliases-package2}")
private String typeAliasesPackage = "cn.quantgroup.report.mapper.history"; private String typeAliasesPackage;
//private String typeAliasesPackage = "cn.quantgroup.report.mapper.history";
@Value("${config-location}") @Value("${config-location}")
private String configLocation; private String configLocation;
......
...@@ -12,19 +12,21 @@ public class XyqbHistoryDataSourcePreperties { ...@@ -12,19 +12,21 @@ public class XyqbHistoryDataSourcePreperties {
@Value("${db.driver}") @Value("${db.driver}")
private String driverClass; private String driverClass;
@Value("${baihang.db.minPoolSize}") @Value("${baihang.db.minPoolSize2}")
private int minPoolSize; private int minPoolSize;
@Value("${baihang.db.maxPoolSize}") @Value("${baihang.db.maxPoolSize2}")
private int maxPoolSize; private int maxPoolSize;
//@Value("${data.source.baihang.jdbcUrl}") @Value("${data.source.baihang.jdbcUrl2}")
//private String jdbcUrl="jdbc:mysql://172.20.6.29:4010/rc_real_time_data_pool?useUnicode=true&characterEncoding=UTF8&useSSL=false"; private String jdbcUrl;
private String jdbcUrl = "jdbc:mysql://172.20.6.21:4010/rc_real_time_data_pool?useUnicode=true&characterEncoding=UTF8&useSSL=false"; //private String jdbcUrl = "jdbc:mysql://172.20.6.21:4010/rc_real_time_data_pool?useUnicode=true&characterEncoding=UTF8&useSSL=false";
//@Value("${data.source.baihang.username}") @Value("${data.source.baihang.username2}")
private String username="xyqb_history_w"; private String username;
//private String username="xyqb_history_w";
//@Value("${data.source.baihang.password}") @Value("${data.source.baihang.password2}")
private String password="KDb18asPu6iEz5lg"; private String password;
//private String password="KDb18asPu6iEz5lg";
} }
...@@ -46,14 +46,15 @@ public class QuantGroupZhuDaiReportToBaiHang { ...@@ -46,14 +46,15 @@ public class QuantGroupZhuDaiReportToBaiHang {
private DingTalk dingTalk; private DingTalk dingTalk;
@Async @Async
//@Scheduled(cron = "0 0 05 * * ?") @Scheduled(cron = "0 0 05 * * ?")
public void startZhuDaiReport(){ public void startZhuDaiReport(){
if(increment()){ if(increment()){
redisTemplate.expire(Constant.QG_ZHU_DAI_REPORT_LOCK_KEY, 10, TimeUnit.SECONDS); redisTemplate.expire(Constant.QG_ZHU_DAI_REPORT_LOCK_KEY, 10, TimeUnit.SECONDS);
Stopwatch stopwatch = Stopwatch.createStarted(); Stopwatch stopwatch = Stopwatch.createStarted();
boolean tableIsSyn = synLoanInfoHistoryTask.syn_historyAndplan_by_id(); //boolean tableIsSyn = synLoanInfoHistoryTask.syn_historyAndplan_by_id();
boolean tableIsSyn = true;
if(tableIsSyn){ if(tableIsSyn){
try{ try{
......
...@@ -335,6 +335,7 @@ ...@@ -335,6 +335,7 @@
<select id="findRealTimeRepayMentInfo" parameterType="cn.quantgroup.report.domain.baihang.BaiHangTimeRecord" <select id="findRealTimeRepayMentInfo" parameterType="cn.quantgroup.report.domain.baihang.BaiHangTimeRecord"
resultType="cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai"> resultType="cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai">
<!-- 助贷 --> <!-- 助贷 -->
<!--
select select
a.id reqID a.id reqID
,'A' opCode ,'A' opCode
...@@ -434,6 +435,144 @@ ...@@ -434,6 +435,144 @@
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);
-->
<!-- 2020.06.02 百行助贷-非联合贷-实时还款,查询原始表,不用bak临时表 -->
select
a.id reqID
,'A' opCode
,DATE_FORMAT(now(),'%Y-%m-%dT%H:%i:%S') uploadTs
,if(d.order_no is null,a.loan_application_history_id,d.order_no) loanId
,b.name name
,b.id_no pid
,b.phone_no mobile
,if(DATEDIFF(a.next_deadline,a.repaid_at)>1,a.term_no,h.max_term) termNo
,date(DATE_sub(if(DATEDIFF(a.next_deadline,a.repaid_at)>1,a.deadline,h.max_deadline),INTERVAL 1 second)) targetRepaymentDate
,DATE_FORMAT(a.repaid_at,'%Y-%m-%dT%H:%i:%S') realRepaymentDate
,j.required_repayment plannedPayment
,f.yqze+sum(a.required_repayment) targetRepayment
,sum(a.required_repayment) realRepayment
,case when f.yqze=0 then ''
else concat('D',DATEDIFF( #{endTime,jdbcType=VARCHAR},f.min_deadline)+1) end overdueStatus
,DATE_FORMAT( #{endTime,jdbcType=VARCHAR},'%Y-%m-%dT%H:%i:%S') statusConfirmAt
,f.yqze overdueAmount
,min(if(a.loan_paid_at>='2018-01-01',i.dkye,i2.dkye)) remainingAmount
,case when f.yqze>0 then '2'
when min(if(a.loan_paid_at>='2018-01-01',i.dkye,i2.dkye))=0 and if(DATEDIFF(a.next_deadline,a.repaid_at)>1,a.term_no,h.max_term) < f.max_term_no then '2'
when min(if(a.loan_paid_at>='2018-01-01',i.dkye,i2.dkye))=0 and if(DATEDIFF(a.next_deadline,a.repaid_at)>1,a.term_no,h.max_term)= f.max_term_no then '3'
when f.yqze=0 and min(if(a.loan_paid_at>='2018-01-01',i.dkye,i2.dkye))>0 then '1'
end as loanStatus
,if(f.yqze>0,'overdue','normal') termStatus
from (
select
a.id,a.user_id,a.loan_application_history_id,a.term_no,a.deadline,a.required_repayment,a.repayment_status,a.repaid_at,a.created_at,
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
,b.loan_paid_at
-- from xyqb_i_repayment_plan_bak a
-- left join xyqb_i_loan_a_m_history_bak b
from xyqb_i_repayment_plan a
left join xyqb_i_loan_application_manifest_history b
on a.loan_application_history_id=b.loan_application_history_id and b.loan_paid_at < #{endTime,jdbcType=VARCHAR}
-- left join xyqb_i_repayment_plan_bak c on a.loan_application_history_id=c.loan_application_history_id
left join xyqb_i_repayment_plan c on a.loan_application_history_id=c.loan_application_history_id
and a.term_no=c.term_no-1
where a.repaid_at>= #{startTime,jdbcType=VARCHAR} and a.repaid_at < #{endTime,jdbcType=VARCHAR} and a.repayment_status=3
-- funding_corp_id 放开
and b.funding_corp_id in (420,520,580,650,670,810,240,640,700)
and b.contract_term not in (2,3)
) a
left join xyqb_user_i_user_detail b on a.user_id=b.user_id
left join xyqb_i_loan_account_ext c on a.loan_application_history_id=c.loan_id
left join xyqb_i_apply_quota_record d on c.order_no=d.order_no
left join (
select a.loan_application_history_id
,sum(if((a.repayment_status !=3 or (a.repayment_status =3 and a.repaid_at>= #{endTime,jdbcType=VARCHAR})) and a.deadline <= #{endTime,jdbcType=VARCHAR},a.required_repayment,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
,min(if((a.repayment_status !=3 or (a.repayment_status =3 and a.repaid_at>= #{endTime,jdbcType=VARCHAR})) and a.deadline <= #{endTime,jdbcType=VARCHAR},a.deadline,null)) min_deadline
,max(a.term_no) max_term_no
-- from xyqb_i_repayment_plan_bak a
-- left join xyqb_i_loan_a_m_history_bak b on a.loan_application_history_id=b.loan_application_history_id
from xyqb_i_repayment_plan a
left join xyqb_i_loan_application_manifest_history b 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_plan_amount_detail h on a.id=h.plan_id
-- funding_corp_id 放开
where b.funding_corp_id in (420,520,580,650,670,810,240,640,700)
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 (
select a.loan_application_history_id,a.repaid_at,a.deadline,a.term_no
,max(c.term_no) max_term
,max(c.deadline) max_deadline
-- from xyqb_i_repayment_plan_bak a
-- left join xyqb_i_loan_a_m_history_bak b
from xyqb_i_repayment_plan a
left join xyqb_i_loan_application_manifest_history b
on a.loan_application_history_id=b.loan_application_history_id and b.loan_paid_at < #{endTime,jdbcType=VARCHAR}
-- left join xyqb_i_repayment_plan_bak c on a.loan_application_history_id=c.loan_application_history_id
left join xyqb_i_repayment_plan c on a.loan_application_history_id=c.loan_application_history_id
where DATEDIFF(a.repaid_at,c.deadline)>=-1
-- funding_corp_id 放开
and b.funding_corp_id in (420,520,580,650,670,810,240,640,700)
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
left join (
select a.loan_application_history_id
,a.term_no
,sum(if(d.term_no>a.term_no,d.principal,0)) dkye
-- from xyqb_i_repayment_plan_bak a
-- left join xyqb_i_loan_a_m_history_bak b
from xyqb_i_repayment_plan a
left join xyqb_i_loan_application_manifest_history b
on a.loan_application_history_id=b.loan_application_history_id and b.loan_paid_at < #{endTime,jdbcType=VARCHAR}
left join xyqb_i_repayment_record d on a.loan_application_history_id=d.loan_application_history_id
-- funding_corp_id 放开
where b.funding_corp_id in (420,520,580,650,670,810,240,640,700)
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
left join (
select a.loan_application_history_id
,a.term_no
,sum(if(e.term_no>a.term_no,h.principle,0)) dkye
-- from xyqb_i_repayment_plan_bak a
-- left join xyqb_i_loan_a_m_history_bak b
from xyqb_i_repayment_plan a
left join xyqb_i_loan_application_manifest_history b
on a.loan_application_history_id=b.loan_application_history_id and b.loan_paid_at < #{endTime,jdbcType=VARCHAR}
-- left join xyqb_i_repayment_plan_bak e on a.loan_application_history_id=e.loan_application_history_id
left join xyqb_i_repayment_plan 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
-- funding_corp_id 放开
where b.funding_corp_id in (420,520,580,650,670,810,240,640,700)
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
-- left join xyqb_i_repayment_plan_bak j on a.loan_application_history_id=j.loan_application_history_id
left join xyqb_i_repayment_plan 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
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);
<!--p2p 2019.12.13--> <!--p2p 2019.12.13-->
<!-- <!--
select select
...@@ -636,6 +775,7 @@ ...@@ -636,6 +775,7 @@
<select id="findRealTimeRepayMentOverdue" parameterType="cn.quantgroup.report.domain.baihang.BaiHangTimeRecord" <select id="findRealTimeRepayMentOverdue" parameterType="cn.quantgroup.report.domain.baihang.BaiHangTimeRecord"
resultType="cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai"> resultType="cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai">
<!-- 助贷 --> <!-- 助贷 -->
<!--
select select
a.id reqID a.id reqID
,'A' opCode ,'A' opCode
...@@ -686,6 +826,72 @@ ...@@ -686,6 +826,72 @@
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 b.funding_corp_id in (420,520,580,650,670,810,240,640,700)*/ /** where b.funding_corp_id in (420,520,580,650,670,810,240,640,700)*/
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;
-->
<!-- 2020.06.02 助贷-非联合贷实时逾期,查询原始表,不用bak临时表 -->
select
a.id reqID
,'A' opCode
,DATE_FORMAT(now(),'%Y-%m-%dT%H:%i:%S') uploadTs
,if(d.order_no is null,a.loan_application_history_id,d.order_no) loanId
,b.name name
,b.id_no pid
,b.phone_no mobile
,a.term_no termNo
,date(DATE_sub(a.deadline,INTERVAL 1 second)) targetRepaymentDate
,'' realRepaymentDate
,a.required_repayment plannedPayment
,f.yqze targetRepayment
,0 realRepayment
,case when f.yqze=0 then ''
else concat('D',DATEDIFF( #{endTime,jdbcType=VARCHAR},f.min_deadline)+1) end overdueStatus
,DATE_FORMAT( #{endTime,jdbcType=VARCHAR},'%Y-%m-%dT%H:%i:%S') statusConfirmAt
,f.yqze overdueAmount
,f.dkye remainingAmount
,case when f.yqze>0 then '2'
when f.dkye=0 then '3'
when f.yqze=0 and f.dkye>0 then '1'
end as loanStatus
,'overdue' termStatus
from (
select
a.id,a.user_id,a.loan_application_history_id,a.term_no,a.deadline,a.required_repayment,a.repayment_status,a.repaid_at,a.repayment_received_at
-- from xyqb_i_repayment_plan_bak a
-- left join xyqb_i_loan_a_m_history_bak b /**xyqb_i_loan_application_manifest_history*/
from xyqb_i_repayment_plan a
left join xyqb_i_loan_application_manifest_history b
on a.loan_application_history_id=b.loan_application_history_id and b.loan_paid_at < #{endTime,jdbcType=VARCHAR}
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)
and floor(DATEDIFF( #{endTime,jdbcType=VARCHAR},a.deadline)/30)=DATEDIFF( #{endTime,jdbcType=VARCHAR},a.deadline)/30
-- funding_corp_id 放开
and b.funding_corp_id in (420,520,580,650,670,810,240,640,700)
and b.transaction_status in (2,5)
and b.contract_term not in (2,3)
) a
left join xyqb_user_i_user_detail b on a.user_id=b.user_id
left join xyqb_i_loan_account_ext c on a.loan_application_history_id=c.loan_id
left join xyqb_i_apply_quota_record d on c.order_no=d.order_no
left join (
select a.loan_application_history_id
,sum(if((a.repayment_status !=3 or (a.repayment_status =3 and a.repaid_at>= #{endTime,jdbcType=VARCHAR})) and a.deadline <= #{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
,min(if((a.repayment_status !=3 or (a.repayment_status =3 and a.repaid_at>= #{endTime,jdbcType=VARCHAR})) and a.deadline <= #{endTime,jdbcType=VARCHAR},a.deadline,null)) min_deadline
-- from xyqb_i_repayment_plan_bak a
-- left join xyqb_i_loan_a_m_history_bak b on a.loan_application_history_id=b.loan_application_history_id
from xyqb_i_repayment_plan a
left join xyqb_i_loan_application_manifest_history b 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_plan_amount_detail h on a.id=h.plan_id
-- funding_corp_id 放开
where b.funding_corp_id in (420,520,580,650,670,810,240,640,700)
group by a.loan_application_history_id group by a.loan_application_history_id
) f on a.loan_application_history_id=f.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;
......
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