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

联合贷报送sql

parent 049870b0
...@@ -54,7 +54,7 @@ public interface ApplyLoanInfoMapper { ...@@ -54,7 +54,7 @@ public interface ApplyLoanInfoMapper {
* 创建人: yanhui.Hao <br/> * 创建人: yanhui.Hao <br/>
* 创建时间: 2019.10.28 <br/> * 创建时间: 2019.10.28 <br/>
*/ */
List<ApplyLoanInfoZhuDai> findRealTimeApplyLoanZhuDaiLh(); List<ApplyLoanInfoZhuDai> findRealTimeApplyLoanZhuDaiLh(BaiHangTimeRecord timeRecord);
} }
...@@ -81,7 +81,7 @@ public interface LoanInfoMapper { ...@@ -81,7 +81,7 @@ public interface LoanInfoMapper {
* 创建人: yanhui.Hao <br/> * 创建人: yanhui.Hao <br/>
* 创建时间: 2019.10.28 <br/> * 创建时间: 2019.10.28 <br/>
*/ */
List<LoanInfoZhuDai> findRealTimeLoanInfoZhuDaiLh(); List<LoanInfoZhuDai> findRealTimeLoanInfoZhuDaiLh(BaiHangTimeRecord timeRecord);
} }
...@@ -175,7 +175,7 @@ public class BaiHangZhuDaiService { ...@@ -175,7 +175,7 @@ public class BaiHangZhuDaiService {
log.info("量化派助贷TO百行报送-非联合贷申请查询完成, 大小: {} , 耗时: {} ", (applyLoanInfos!=null?applyLoanInfos.size() : 0), (queryWatch1.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s"); log.info("量化派助贷TO百行报送-非联合贷申请查询完成, 大小: {} , 耗时: {} ", (applyLoanInfos!=null?applyLoanInfos.size() : 0), (queryWatch1.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
Stopwatch queryWatch2 = Stopwatch.createStarted(); Stopwatch queryWatch2 = Stopwatch.createStarted();
List<ApplyLoanInfoZhuDai> applyLoanInfosLh = applyLoanInfoMapper.findRealTimeApplyLoanZhuDaiLh(); List<ApplyLoanInfoZhuDai> applyLoanInfosLh = applyLoanInfoMapper.findRealTimeApplyLoanZhuDaiLh(timeRecord);
log.info("量化派助贷TO百行报送-联合贷申请查询完成, 大小: {} , 耗时: {} ", (applyLoanInfosLh!=null?applyLoanInfosLh.size() : 0), (queryWatch2.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s"); log.info("量化派助贷TO百行报送-联合贷申请查询完成, 大小: {} , 耗时: {} ", (applyLoanInfosLh!=null?applyLoanInfosLh.size() : 0), (queryWatch2.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
if(applyLoanInfos==null){ if(applyLoanInfos==null){
...@@ -231,7 +231,7 @@ public class BaiHangZhuDaiService { ...@@ -231,7 +231,7 @@ public class BaiHangZhuDaiService {
log.info("量化派助贷TO百行报送-非联合贷放款申请报送开始, 大小: {} , 耗时: {} ", loanInfos.size(), (queryWatch1.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s"); log.info("量化派助贷TO百行报送-非联合贷放款申请报送开始, 大小: {} , 耗时: {} ", loanInfos.size(), (queryWatch1.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
Stopwatch queryWatch2 = Stopwatch.createStarted(); Stopwatch queryWatch2 = Stopwatch.createStarted();
List<LoanInfoZhuDai> loanInfosLh = loanInfoMapper.findRealTimeLoanInfoZhuDaiLh(); List<LoanInfoZhuDai> loanInfosLh = loanInfoMapper.findRealTimeLoanInfoZhuDaiLh(timeRecord);
log.info("量化派助贷TO百行报送-联合贷放款申请报送开始, 大小: {} , 耗时: {} ", loanInfosLh.size(), (queryWatch2.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s"); log.info("量化派助贷TO百行报送-联合贷放款申请报送开始, 大小: {} , 耗时: {} ", loanInfosLh.size(), (queryWatch2.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
if(loanInfos==null){ if(loanInfos==null){
...@@ -253,7 +253,7 @@ public class BaiHangZhuDaiService { ...@@ -253,7 +253,7 @@ public class BaiHangZhuDaiService {
List<String> targetRepaymentDayList = loanInfoMapper.findTargetRepaymentDayList(loanInfoReqId); List<String> targetRepaymentDayList = loanInfoMapper.findTargetRepaymentDayList(loanInfoReqId);
if(targetRepaymentDayList!=null && targetRepaymentDayList.size()>0){ if(targetRepaymentDayList!=null && targetRepaymentDayList.size()>0){
loanInfozd_tmp.setTargetRepayDateList(String.join(",", targetRepaymentDayList)); loanInfozd_tmp.setTargetRepayDateList(String.join(",", targetRepaymentDayList));
log.info("比较还款总期数&账单日列表totalTerm="+loanInfozd_tmp.getTotalTerm()+",targetRepaymentDayList size="+targetRepaymentDayList.size()); //log.info("比较还款总期数&账单日列表totalTerm="+loanInfozd_tmp.getTotalTerm()+",targetRepaymentDayList size="+targetRepaymentDayList.size());
}else{ }else{
log.warn("比较还款总期数&账单日列表totalTerm="+loanInfozd_tmp.getTotalTerm()+",targetRepaymentDayList is null."); log.warn("比较还款总期数&账单日列表totalTerm="+loanInfozd_tmp.getTotalTerm()+",targetRepaymentDayList is null.");
} }
...@@ -487,7 +487,7 @@ public class BaiHangZhuDaiService { ...@@ -487,7 +487,7 @@ public class BaiHangZhuDaiService {
List<String> targetRepaymentDayList = loanInfoMapper.findTargetRepaymentDayList(loanInfoReqId); List<String> targetRepaymentDayList = loanInfoMapper.findTargetRepaymentDayList(loanInfoReqId);
if(targetRepaymentDayList!=null && targetRepaymentDayList.size()>0){ if(targetRepaymentDayList!=null && targetRepaymentDayList.size()>0){
loanInfozd_tmp.setTargetRepayDateList(String.join(",", targetRepaymentDayList)); loanInfozd_tmp.setTargetRepayDateList(String.join(",", targetRepaymentDayList));
log.info("比较还款总期数&账单日列表totalTerm="+loanInfozd_tmp.getTotalTerm()+",targetRepaymentDayList size="+targetRepaymentDayList.size()); //log.info("比较还款总期数&账单日列表totalTerm="+loanInfozd_tmp.getTotalTerm()+",targetRepaymentDayList size="+targetRepaymentDayList.size());
}else{ }else{
log.warn("比较还款总期数&账单日列表totalTerm="+loanInfozd_tmp.getTotalTerm()+",targetRepaymentDayList is null."); log.warn("比较还款总期数&账单日列表totalTerm="+loanInfozd_tmp.getTotalTerm()+",targetRepaymentDayList is null.");
} }
...@@ -654,7 +654,7 @@ public class BaiHangZhuDaiService { ...@@ -654,7 +654,7 @@ public class BaiHangZhuDaiService {
//联合贷产品上线时间,上线后才有数据 //联合贷产品上线时间,上线后才有数据
if(erlyDate.plusDays(counter-1).compareTo(liang_he_dai_start) >= 0){ if(erlyDate.plusDays(counter-1).compareTo(liang_he_dai_start) >= 0){
Stopwatch queryWatch2 = Stopwatch.createStarted(); Stopwatch queryWatch2 = Stopwatch.createStarted();
applyLoanInfosLh = applyLoanInfoMapper.findRealTimeApplyLoanZhuDaiLh(); applyLoanInfosLh = applyLoanInfoMapper.findRealTimeApplyLoanZhuDaiLh(timeRecord);
log.info("申请存量-联合贷查询结束, 大小: {} , starTime: {} , 耗时: {} ", applyLoanInfosLh.size(), starTime, (queryWatch2.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s"); log.info("申请存量-联合贷查询结束, 大小: {} , starTime: {} , 耗时: {} ", applyLoanInfosLh.size(), starTime, (queryWatch2.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
} }
...@@ -747,7 +747,7 @@ public class BaiHangZhuDaiService { ...@@ -747,7 +747,7 @@ public class BaiHangZhuDaiService {
//联合贷产品上线时间,上线后才有数据 //联合贷产品上线时间,上线后才有数据
if(erlyDate.plusDays(counter-1).compareTo(liang_he_dai_start) >= 0){ if(erlyDate.plusDays(counter-1).compareTo(liang_he_dai_start) >= 0){
Stopwatch queryWatch2 = Stopwatch.createStarted(); Stopwatch queryWatch2 = Stopwatch.createStarted();
loanInfozdListLh = loanInfoMapper.findRealTimeLoanInfoZhuDaiLh(); loanInfozdListLh = loanInfoMapper.findRealTimeLoanInfoZhuDaiLh(timeRecord);
log.info("放款存量-联合贷查询结束, 大小: {} , starTime: {} , 耗时: {} ", loanInfozdListLh.size(), starTime, (queryWatch2.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s"); log.info("放款存量-联合贷查询结束, 大小: {} , starTime: {} , 耗时: {} ", loanInfozdListLh.size(), starTime, (queryWatch2.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
} }
...@@ -802,7 +802,7 @@ public class BaiHangZhuDaiService { ...@@ -802,7 +802,7 @@ public class BaiHangZhuDaiService {
List<String> targetRepaymentDayList = loanInfoMapper.findTargetRepaymentDayList(loanInfoReqId); List<String> targetRepaymentDayList = loanInfoMapper.findTargetRepaymentDayList(loanInfoReqId);
if(targetRepaymentDayList!=null && targetRepaymentDayList.size()>0){ if(targetRepaymentDayList!=null && targetRepaymentDayList.size()>0){
loanInfoZhuDaiVo.setTargetRepayDateList(String.join(",", targetRepaymentDayList)); loanInfoZhuDaiVo.setTargetRepayDateList(String.join(",", targetRepaymentDayList));
log.info("比较还款总期数&账单日列表totalTerm="+loanInfoZhuDaiVo.getTotalTerm()+",targetRepaymentDayList size="+targetRepaymentDayList.size()); //log.info("比较还款总期数&账单日列表totalTerm="+loanInfoZhuDaiVo.getTotalTerm()+",targetRepaymentDayList size="+targetRepaymentDayList.size());
}else{ }else{
log.warn("比较还款总期数&账单日列表totalTerm="+loanInfoZhuDaiVo.getTotalTerm()+",targetRepaymentDayList is null."); log.warn("比较还款总期数&账单日列表totalTerm="+loanInfoZhuDaiVo.getTotalTerm()+",targetRepaymentDayList is null.");
} }
......
...@@ -841,7 +841,7 @@ public class ManualToolService implements CommonSuperService { ...@@ -841,7 +841,7 @@ public class ManualToolService implements CommonSuperService {
System.err.println("build data finTechAgencyBusiness end."); System.err.println("build data finTechAgencyBusiness end.");
} }
public static void buildD2() { public static void buildD2_inputerror() {
List<String> ok_data_json = ReadOrWriteTxt.readTxtList("D:\\用户目录\\Downloads\\A1D2_M\\build_D2_01_M.txt"); List<String> ok_data_json = ReadOrWriteTxt.readTxtList("D:\\用户目录\\Downloads\\A1D2_M\\build_D2_01_M.txt");
Map<String,String> ok_data_Map = new HashMap<>(ok_data_json.size()); Map<String,String> ok_data_Map = new HashMap<>(ok_data_json.size());
for(int i=0; i<ok_data_json.size(); i++){ for(int i=0; i<ok_data_json.size(); i++){
...@@ -900,6 +900,39 @@ public class ManualToolService implements CommonSuperService { ...@@ -900,6 +900,39 @@ public class ManualToolService implements CommonSuperService {
} }
public static void buildD2_logicerror() {
//D2
String[] err_log_reqIDs = {"57844b269b6649fe9a5e158cd5c97c10","40d9f1a6f26743cda30c2c87ce355481","43c54d432e744619bc96ec590686109d","3515fdadf6ff4d6b807e37d662fe3c87","56985b6b687749b3ba10285d432212a7","ab79eff039974529b2ceb13f2987866b","8aa294edf7cd478591f4b18e6ba8efec","4fb182a5b6e649daa7641b2b233ae5f3","60f333676c4e447996967cc2b1e3a616","f1c1b185a8a0411aa037392aeba6d923","eafc3e242ee340ce824c1fc545241a9b","2398fe0bee7a41d1b10d9fd785321ff6","3a02163e803943309fd96bddc8731563","b3ea444f9c544259b6d90da0ac267986","2786e5abf6574aa48ce0224a3f7bb824","79e28b553abf46f6bf775de17010ef75","f0ef0862f741420fa6b5c8d89742279a","94e8d2a385ef43f38873c0a1e48cb214","7b1e9cd00ec14d588bbb31b181f14ab2","c0e5447f89ed4c1e926e6e4fae14951a","f5ab717d367049ac84e45446d1014f45","4d29bc60a9184d0f8712d0916ce748f9","743e704157b94deca6be0e015917a3a8","36d405b5be7c45329d6f59480de6ec4e","3c74bef561d34d4ca5927fefa165780d","e6ea83a66b7146dda9d24ef081c85a96","abd01441db1c4ffbae8ee9707b387f91","1393c0bbfb2b4a26ac04ccdf55cefc22","ca3817b2c9e645bea7d37834fc2aafed","414c0289bb2e41e0970b734f941640b4","cc4834ccd5e746008610f4468c0ffd08","857e13f3ecdb47ca8b913f550c7a2321","9058bc0fb8994e5bbdb5f927babfcf12","bbb27fe1440046179e77823791947eae","fc99cb58b0dc4d4d815b6e13e312412e","5b4e52f6686049f7b90d9074a9fd405c","8466d6558cbf4c3d8d62f0cc4de708f1","a4da148e6cb24ba28728c8fb0d0d0189","7c1d74da6b9e4d0d859d988683b455b0","2ac66e9f833a488b99203d988047c166","5785e78a79b143ee9d3c84e6f3f974a6","9b895385499747d0aa5302afdd04668d","04352b76815748febd5c1a2828f70ad6","2052f2ff465646d2bc84c91eaf104163","e769c9ecd53840aeab6b1c443ffc4375","61e5de3ba4b4449d98f717bc986e6058","9332995c4dfe4c62bb9dc4a8fe8c3cba","aee37ffa58a4460ca9262e7806c27cd0","0d12336183214614b912458a6d682a57","fe228f2899684da1a5b6c5ac3e3b4833","31f40f0f16ac4739baab13435c4991fc","4c0563a7d515485aa8ab8f0109c54384","d39f976494d744cd8450632972670507","3dbdd147e36140a6856c663c1a46f2dd","5ee5d7b3fb244b8bb3a1c16974673915","aef36f5964cf413595e53e2474301b6f","98bd1e20ec904460810a4cf62cea7c48","2b7514f450bc48f39969d0940b1cde4a","99c77303a2894f0b94710e72b12c568e","44d4d70cb3134b1e96df96dd5f64816f","96e3dff5ab764291988f962ca29b5deb","16693f15ca6b401dbc2607837ff9dd20","6b026e988b704e89a9d2144a7f43bd34","167fe6b806dd438389e4142f83bf4df7","7d0528a3b3b14a98b300b94bff121248","c49fd988b60b4548b1b2cf65c912eeb2","80bdbdc03cb14aecbe3f26a02ee479ce","c9a7d146fc0444299ff617b97fc32b93","2ee035da88904a7caf5e5236ac741add","348390596c2c415b91766bcaa98266d3","ae963fbad8e54bf0b20e59be24e91665","492ccc1de1114529bf67c63dd766ed3c"};
Map<String,String> err_log_reqIDMap = new HashMap<>(err_log_reqIDs.length);
for (String tmp1 : err_log_reqIDs){
err_log_reqIDMap.put(tmp1,"err_log_reqIDs");
}
System.out.println("err_log_reqIDMap大小:"+err_log_reqIDMap.size());
List<String> lineList = ReadOrWriteTxt.readTxtList("D:\\用户目录\\Downloads\\lhp_D2_20170209_20191025_TEST_01.txt");
System.out.println("lineList:"+lineList.size());
String fileName = "D:\\用户目录\\Downloads\\D2_TEST_logicerror_data.txt";
for(int i=0;i<lineList.size();i++){
String str = lineList.get(i);
if(str.length() < 30 ){//#applyInfo #singleLoanAccountInfo
continue;
}
JSONObject jsonObj= JSONObject.parseObject(str);
String reqId = jsonObj.getString("reqID");
if(err_log_reqIDMap.containsKey(reqId)){
try {
FileUtils.write(new File(fileName), jsonObj.toJSONString()+"\r\n", "UTF-8", true);
} catch (IOException e) {
System.err.println("build data,"+e);
}
}
}
System.err.println("build data finTechAgencyBusiness end.");
}
public static void main(String[] args) { public static void main(String[] args) {
// List<String> lineList = ReadOrWriteTxt.readTxtList("D:\\用户目录\\Downloads\\D2_M_01.txt"); // List<String> lineList = ReadOrWriteTxt.readTxtList("D:\\用户目录\\Downloads\\D2_M_01.txt");
// System.out.println("lineList:"+lineList.size()); // System.out.println("lineList:"+lineList.size());
...@@ -915,7 +948,9 @@ public class ManualToolService implements CommonSuperService { ...@@ -915,7 +948,9 @@ public class ManualToolService implements CommonSuperService {
// System.out.println(buff.toString()); // System.out.println(buff.toString());
buildD2(); //buildD2_inputerror();
buildD2_logicerror();
} }
} }
...@@ -111,11 +111,57 @@ ...@@ -111,11 +111,57 @@
</select> </select>
<!--1.2百行助贷-联合贷 申请实时 2019.10.28--> <!--1.2百行助贷-联合贷 申请实时 2019.10.28-->
<select id="findRealTimeApplyLoanZhuDaiLh" resultType="cn.quantgroup.report.domain.baihang.ApplyLoanInfoZhuDai"> <select id="findRealTimeApplyLoanZhuDaiLh" parameterType="cn.quantgroup.report.domain.baihang.BaiHangTimeRecord" resultType="cn.quantgroup.report.domain.baihang.ApplyLoanInfoZhuDai">
select b.name as name, b.id_no as pid, b.phone_no as mobile, '1' as queryReason, '1' as guaranteeType, '1' as loanPurpose, '99' as customType, '-1' as applyAmount, a.order_no as loanId select
from xyqb_i_apply_quota_record a left join xyqb_user_i_user_detail b on a.user_id=b.user_id a.id reqID
where a.created_at>=DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 DAY), '%Y-%m-%d') ,'A' opCode
and 1>2; ,DATE_FORMAT(now(),'%Y-%m-%dT%H:%i:%S') uploadTs
,'1' isFinTechAgencyBusiness
,DATE_FORMAT(case when i.created_at is null and h.created_at &lt;=f.created_at then h.created_at
when i.created_at is null and h.created_at>f.created_at then f.created_at
else i.created_at end,'%Y-%m-%dT%H:%i:%S') as applyDate
,if(d.order_no is null,a.loan_application_history_id,d.order_no) applyId
,'1' applyType
,b.name name
,'1' idType
,b.id_no pid
,b.phone_no mobile
,b.email emailAddress
,case when j.education=1 then '10'
when j.education=2 then '20'
when j.education=3 then '30'
when j.education in (4,6) then '40'
when j.education=5 then '50'
when j.education in (7,8) then '60'
else '70' end eduBackground
,'500' degree
,'1' guaranteeType
,'1' loanPurpose
,'99' customType
,'-1' applyAmount
,'8' livingCondition
,case when j.marry_status=1 then '10'
when j.marry_status=2 then '20'
when j.marry_status=4 then '30'
when j.marry_status=3 then '40'
else '90' end marriageStatus
from xyqb_i_loan_application_manifest_history 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 xyqb_i_loan_submit_info f on a.loan_application_history_id=f.loan_id
left join xyqb_i_loan_application_history h on a.loan_application_history_id=h.id
left join xyqb_i_quota_credit i on d.order_no=i.order_no
left join xyqb_i_loan_base_info j on a.loan_application_history_id=j.loan_id
where a.funding_corp_id in (880,890)
and a.contract_term not in (2,3)
and a.transaction_status in (2,5)
and case when i.created_at is null and h.created_at &lt;=f.created_at then h.created_at
when i.created_at is null and h.created_at>f.created_at then f.created_at
else i.created_at end >= #{startTime,jdbcType=VARCHAR}
and case when i.created_at is null and h.created_at &lt;=f.created_at then h.created_at
when i.created_at is null and h.created_at>f.created_at then f.created_at
else i.created_at end &lt; #{endTime,jdbcType=VARCHAR};
</select> </select>
</mapper> </mapper>
\ No newline at end of file
...@@ -333,8 +333,50 @@ ...@@ -333,8 +333,50 @@
<!--2.2百行助贷-联合贷 放款实时 2019.10.28--> <!--2.2百行助贷-联合贷 放款实时 2019.10.28-->
<select id="findRealTimeLoanInfoZhuDaiLh" parameterType="cn.quantgroup.report.domain.baihang.BaiHangTimeRecord" resultType="cn.quantgroup.report.domain.baihang.LoanInfoZhuDai"> <select id="findRealTimeLoanInfoZhuDaiLh" parameterType="cn.quantgroup.report.domain.baihang.BaiHangTimeRecord" resultType="cn.quantgroup.report.domain.baihang.LoanInfoZhuDai">
select a.loan_application_history_id reqID select a.loan_application_history_id reqID
,'A' opCode
,DATE_FORMAT(now(),'%Y-%m-%dT%H:%i:%S') uploadTs
,'广州惠金小额贷款有限公司' institutionalFundingPartner
,'91440101MA59G7X78Y' institutionalFundingPartnerID
,j.corp_loan_id relationID
,'' institutionalFundingPartnerLoanID
,if(d.order_no is null,a.loan_application_history_id,d.order_no) orderID
,'' preCreditLimit
,b.name name
,b.id_no pid
,b.phone_no mobile
,if(d.order_no is null,a.loan_application_history_id,d.order_no) loanId
,'1' guaranteeType
,'1' loanPurpose
,DATE_FORMAT(case when i.created_at is null and h.created_at &lt;=f.created_at then h.created_at
when i.created_at is null and h.created_at>f.created_at then f.created_at
else i.created_at end,'%Y-%m-%dT%H:%i:%S') as applyDate
,DATE_FORMAT(case when d.created_at is null and f.created_at>=h.created_at then f.created_at
when d.created_at is null and f.created_at &lt;h.created_at then h.created_at
else d.created_at end,'%Y-%m-%dT%H:%i:%S') as accountOpenDate
,DATE_FORMAT(a.loan_paid_at,'%Y-%m-%dT%H:%i:%S') issueDate
,date(date_sub(e.deadline,INTERVAL 1 second)) dueDate
,a.contract_loan_amount loanAmount
,a.contract_term totalTerm
,'2' targetRepayDateType
,'-1' termPeriod
,date(date_sub(g.deadline,INTERVAL 1 second)) firstRepaymentDate
,'30' gracePeriod
from xyqb_i_loan_application_manifest_history a from xyqb_i_loan_application_manifest_history a
where 1>2; 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 xyqb_i_repayment_plan e on a.loan_application_history_id=e.loan_application_history_id
left join xyqb_i_loan_submit_info f on a.loan_application_history_id=f.loan_id
left join xyqb_i_repayment_plan g on a.loan_application_history_id=g.loan_application_history_id
left join xyqb_i_loan_application_history h on a.loan_application_history_id=h.id
left join xyqb_i_quota_credit i on d.order_no=i.order_no
left join xyqb_i_waiting_funding_corp_operate_people j on a.loan_application_history_id=j.loan_application_history_id
where a.funding_corp_id in (880,890) and
e.term_no=a.contract_term and g.term_no=1
and a.contract_term not in (2,3)
and a.transaction_status in (2,5)
and a.loan_paid_at>= #{startTime,jdbcType=VARCHAR}
and a.loan_paid_at &lt; #{endTime,jdbcType=VARCHAR};
</select> </select>
......
...@@ -537,9 +537,88 @@ ...@@ -537,9 +537,88 @@
<!--3.2百行助贷-联合贷 实时还款 2019.10.28--> <!--3.2百行助贷-联合贷 实时还款 2019.10.28-->
<select id="findRealTimeRepayMentInfoLh" parameterType="cn.quantgroup.report.domain.baihang.BaiHangTimeRecord" <select id="findRealTimeRepayMentInfoLh" parameterType="cn.quantgroup.report.domain.baihang.BaiHangTimeRecord"
resultType="cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai"> resultType="cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai">
select a.id reqID 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(i.dkye) remainingAmount
,case when f.yqze>0 then '2'
when min(i.dkye)=0 and if(DATEDIFF(a.next_deadline,a.repaid_at)>1,a.term_no,h.max_term) &lt; f.max_term_no then '2'
when min(i.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(i.dkye)>0 then '1'
end as loanStatus
,if(f.yqze>0,'overdue','normal') termStatus
from (
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
,b.loan_paid_at
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 &lt; #{endTime,jdbcType=VARCHAR}
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 &lt; #{endTime,jdbcType=VARCHAR} and a.repayment_status=3
and b.funding_corp_id in (880,890)
and b.contract_term not in (2,3)
and b.loan_paid_at>='2019-10-25'
) 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 and DATEDIFF( #{endTime,jdbcType=VARCHAR},a.deadline)>=30) or (a.repayment_status =3 and a.repaid_at>= #{endTime,jdbcType=VARCHAR} and DATEDIFF(a.repaid_at,a.deadline)>=30)) and a.deadline &lt;= #{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}),g.principal,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
,max(a.term_no) max_term_no
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
where b.funding_corp_id in (880,890)
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 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 &lt; #{endTime,jdbcType=VARCHAR}
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
and b.funding_corp_id in (880,890)
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 a from xyqb_i_repayment_plan a
where 1>2; 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 &lt; #{endTime,jdbcType=VARCHAR}
left join xyqb_i_repayment_record d on a.loan_application_history_id=d.loan_application_history_id
where b.funding_corp_id in (880,890)
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 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);
</select> </select>
...@@ -660,9 +739,57 @@ ...@@ -660,9 +739,57 @@
<!--4.2百行助贷-联合贷 实时逾期还款 2019.10.28--> <!--4.2百行助贷-联合贷 实时逾期还款 2019.10.28-->
<select id="findRealTimeRepayMentOverdueLh" parameterType="cn.quantgroup.report.domain.baihang.BaiHangTimeRecord" <select id="findRealTimeRepayMentOverdueLh" parameterType="cn.quantgroup.report.domain.baihang.BaiHangTimeRecord"
resultType="cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai"> resultType="cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai">
select a.id reqID 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.*
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 &lt; #{endTime,jdbcType=VARCHAR}
where ((a.repayment_status !=3 and DATEDIFF( #{endTime,jdbcType=VARCHAR},a.deadline)>=30) or (a.repayment_status =3 and a.repaid_at>= #{endTime,jdbcType=VARCHAR} and DATEDIFF(a.repaid_at,a.deadline)>=30)) and
if(b.contract_term>a.term_no,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 (880,890)
and b.transaction_status in (2,5)
and b.contract_term not in (2,3)
and b.loan_paid_at>='2019-10-25'
) 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 and DATEDIFF( #{endTime,jdbcType=VARCHAR},a.deadline)>=30) or (a.repayment_status =3 and a.repaid_at>= #{endTime,jdbcType=VARCHAR} and DATEDIFF(a.repaid_at,a.deadline)>=30)) and a.deadline &lt;= #{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 &lt;= #{endTime,jdbcType=VARCHAR},a.deadline,null)) min_deadline
from xyqb_i_repayment_plan a from xyqb_i_repayment_plan a
where 1>2; 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
where b.funding_corp_id in (880,890)
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;
</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