Commit 0c7340ab authored by 郝彦辉's avatar 郝彦辉

非联合贷-实时数据报送sql修改

parent c78fdc51
package cn.quantgroup.report.domain.baihang;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 放款用户信息
*
* @Author fengjunkai
* @Date 2019-03-26 14:49
*/
@Data
public class LoanInfo implements Serializable {
private static final long serialVersionUID = 7293591774673907983L;
private String reqID; //记录唯一ID
private String recordId;
private String opCode; //操作代码A-增加 M-修改
private String uploadTs; //记录生成时间 ISO 8601格式 LocalDateTime生成
private String name; //姓名
private String pid; //身份证好
private String mobile; //手机号
private String loanId; //贷款编号
private int guaranteeType; //贷款担保类型
private int loanPurpose; //借款用途
private String applyDate;// 贷款申请时间
private String accountOpenDate; //账户开立时间
private String issueDate; //贷款放款时间
private String dueDate; //贷款到期日期 YYYY-MM-DD
private BigDecimal loanAmount; //贷款金额
private int totalTerm; //还款总期数
private int targetRepayDateType; //账单日类型
private int termPeriod;//每期还款周期
private String firstRepaymentDate; //首次应还款日期 YYYY-MM-DD
private int gracePeriod; //宽限日
private String targetRepayDateList; //账单日列表
}
......@@ -44,4 +44,6 @@ public class LoanInfoZhuDai extends FinTechAgencyBusinessZhuDai implements Seria
private String targetRepayDateList; //账单日列表
private String recordId;
}
......@@ -38,5 +38,7 @@ public class RepaymentInfoZhuDai implements Serializable {
//businessOrgCreditCode 业务发生机构代码string Y/N
private String recordId;
}
package cn.quantgroup.report.domain.baihang;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* 还款用户信息
*
* @Author fengjunkai
* @Date 2019-03-26 15:13
*/
@Data
public class RepaymentLoanInfo implements Serializable {
private static final long serialVersionUID = 8722959335665582382L;
private String reqID; //记录唯一标示
private String recordId;
private String opCode; //操作CODE a-增加 m-修改
private String uploadTs; //记录生成时间 ISO 8601
private String loanId; //贷款ID
private String name;
private String pid;
private String mobile;
private int termNo; //当前还款期数
private String termStatus; //本期还款状态
private String targetRepaymentDate; //本期应还款日 YYYY-MM-DD
private String realRepaymentDate; //实际还款日期ISO 8601
private BigDecimal plannedPayment; //本期计划应还款金额
private BigDecimal targetRepayment; //本期剩余应还款金额
private BigDecimal realRepayment; // 本次还款金额
private String overdueStatus; //当前逾期天数
private String statusConfirmAt;//本期还款状态确认时间
private BigDecimal overdueAmount; //当前逾期总金额
private BigDecimal remainingAmount; //贷款余额
private int loanStatus; //本笔贷款状态
}
......@@ -2,7 +2,6 @@ package cn.quantgroup.report.mapper.baihang;
import cn.quantgroup.report.domain.baihang.BaiHangTimeRecord;
import cn.quantgroup.report.domain.baihang.LoanInfoVo;
import cn.quantgroup.report.domain.baihang.LoanInfo;
import cn.quantgroup.report.domain.baihang.LoanInfoZhuDai;
import org.springframework.stereotype.Repository;
......@@ -18,13 +17,13 @@ import java.util.List;
public interface LoanInfoMapper {
//报送实时放款数据(百行征信报送)
List<LoanInfo> findLoanInfo();
List<LoanInfo> findLoanInfoByTime(BaiHangTimeRecord baiHangTimeRecord);
List<LoanInfoZhuDai> findLoanInfo();
List<LoanInfoZhuDai> findLoanInfoByTime(BaiHangTimeRecord baiHangTimeRecord);
//根据loan_application_history_id查询最晚还款日
List<String> findTargetRepaymentDayList(String reqId);
List<LoanInfo> stockLoanInfo();
List<LoanInfoZhuDai> stockLoanInfo();
/**
......
package cn.quantgroup.report.mapper.baihang;
import cn.quantgroup.report.domain.baihang.*;
import cn.quantgroup.report.domain.baihang.BaiHangName;
import cn.quantgroup.report.domain.baihang.BaiHangNameResult;
import cn.quantgroup.report.domain.baihang.BaiHangTimeRecord;
import cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai;
import org.springframework.stereotype.Repository;
import java.util.List;
......@@ -15,13 +18,13 @@ import java.util.List;
public interface RepaymentLoanInfoMapper {
//实时还款(百行征信报送)
List<RepaymentLoanInfo> findRepayMentLoanInfo(BaiHangTimeRecord baiHangTimeRecord);
List<RepaymentInfoZhuDai> findRepayMentLoanInfo(BaiHangTimeRecord baiHangTimeRecord);
//实时逾期还款(百行征信报送)
List<RepaymentLoanInfo> findRepayMentLoanInfoOverdue(BaiHangTimeRecord baiHangTimeRecord);
List<RepaymentInfoZhuDai> findRepayMentLoanInfoOverdue(BaiHangTimeRecord baiHangTimeRecord);
List<RepaymentLoanInfo> findStockRepayMentLoanInfo(BaiHangTimeRecord baiHangTimeRecord);
List<RepaymentLoanInfo> findStockRepayMentLoanInfoOverdue(BaiHangTimeRecord baiHangTimeRecord);
List<RepaymentInfoZhuDai> findStockRepayMentLoanInfo(BaiHangTimeRecord baiHangTimeRecord);
List<RepaymentInfoZhuDai> findStockRepayMentLoanInfoOverdue(BaiHangTimeRecord baiHangTimeRecord);
BaiHangNameResult findName(BaiHangName baiHangName);
......
package cn.quantgroup.report.mapper.master;
import cn.quantgroup.report.domain.baihang.BaiHangUpDateRecord;
import cn.quantgroup.report.domain.baihang.LoanInfo;
import cn.quantgroup.report.domain.baihang.LoanInfoZhuDai;
import org.springframework.stereotype.Repository;
import java.util.List;
......@@ -15,8 +15,8 @@ import java.util.List;
@Repository
public interface LoanInfoDbMapper {
void saveLoanInfoRecordLog(LoanInfo loanInfo);
List<LoanInfo> findAll();
void saveLoanInfoRecordLog(LoanInfoZhuDai loanInfo);
List<LoanInfoZhuDai> findAll();
void updateCurrentRecordEnableFalce(BaiHangUpDateRecord baiHangUpDateRecord);
}
......@@ -2,7 +2,7 @@ package cn.quantgroup.report.mapper.master;
import cn.quantgroup.report.domain.baihang.BaiHangRepayment;
import cn.quantgroup.report.domain.baihang.BaiHangUpDateRecord;
import cn.quantgroup.report.domain.baihang.RepaymentLoanInfo;
import cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai;
import cn.quantgroup.report.domain.baihang.RepaymentLoanInfoVo;
import org.springframework.stereotype.Repository;
......@@ -17,13 +17,13 @@ import java.util.List;
@Repository
public interface RepaymentLoanInfoDbMapper {
void saveRepaymentLoanInfoLog(RepaymentLoanInfo repaymentLoanInfo);
void saveRepaymentLoanInfoLog(RepaymentInfoZhuDai repaymentLoanInfo);
List<RepaymentLoanInfo> findAll();
List<RepaymentInfoZhuDai> findAll();
void updateCurrentRecordEnableFalse(BaiHangUpDateRecord baiHangUpDateRecord);
RepaymentLoanInfo findLastOne(BaiHangRepayment baiHangRepayment);
RepaymentInfoZhuDai findLastOne(BaiHangRepayment baiHangRepayment);
/**
......
......@@ -130,7 +130,7 @@ public class BaiHangService {
*/
public void sendLoaInfoReportToBaiHang() {
AtomicInteger atomicInteger = new AtomicInteger();
List<LoanInfo> loanInfos = new ArrayList<>();
List<LoanInfoZhuDai> loanInfos = new ArrayList<>();
Stopwatch sendWatch = Stopwatch.createStarted();
try{
Stopwatch queryWatch = Stopwatch.createStarted();
......@@ -138,7 +138,7 @@ public class BaiHangService {
log.info("广达小贷TO百行放款申请报送开始, 大小: {} , 耗时: {} ", loanInfos.size(), queryWatch.stop().elapsed(TimeUnit.MILLISECONDS));
for (int i = 0; i < loanInfos.size(); i++) {
LoanInfo loanInfo = loanInfos.get(i);
LoanInfoZhuDai loanInfo = loanInfos.get(i);
String id = "";
try {
String loanInfoReqId = loanInfo.getReqID();
......@@ -188,7 +188,7 @@ public class BaiHangService {
Stopwatch sendWatch = Stopwatch.createStarted();
try {
List<RepaymentLoanInfo> repaymentLoanInfos = null;
List<RepaymentInfoZhuDai> repaymentLoanInfos = null;
if (j == 0) {
Stopwatch realTimeStopWatch = Stopwatch.createStarted();
repaymentLoanInfos = repaymentLoanInfoMapper.findRepayMentLoanInfo(BaiHangTimeRecord.builder().startTime(startTime).endTime(endTime).build());
......@@ -202,10 +202,10 @@ public class BaiHangService {
AtomicInteger atomicInteger = new AtomicInteger();
for (int i = 0; i < repaymentLoanInfos.size(); i++) {
RepaymentLoanInfo repaymentLoanInfo = repaymentLoanInfos.get(i);
RepaymentInfoZhuDai repaymentLoanInfo = repaymentLoanInfos.get(i);
String id = "";
try {
RepaymentLoanInfo repaymentLoanInfo1 = repaymentLoanInfoDbMapper.findLastOne(BaiHangRepayment.builder().loanId(repaymentLoanInfo.getLoanId()).termNo(repaymentLoanInfo.getTermNo()).build());
RepaymentInfoZhuDai repaymentLoanInfo1 = repaymentLoanInfoDbMapper.findLastOne(BaiHangRepayment.builder().loanId(repaymentLoanInfo.getLoanId()).termNo(repaymentLoanInfo.getTermNo()).build());
if (j > 0 && Objects.nonNull(repaymentLoanInfo1)) {
log.info("广达小贷TO百行征信报送实时还款逾期跳过报送, startTime: {} , endTime: {} , bean: {} ", startTime, endTime, JSON.toJSONString(repaymentLoanInfo1));
continue;
......@@ -252,7 +252,7 @@ public class BaiHangService {
log.info("百行征信报送放款数据, {}", JSON.toJSONString(handLoanInfos));
for(int i=0;i<handLoanInfos.size();i++){
LoanInfo loanInfo = new Gson().fromJson(handLoanInfos.get(i), new TypeToken<LoanInfo>(){}.getType());
LoanInfoZhuDai loanInfo = new Gson().fromJson(handLoanInfos.get(i), new TypeToken<LoanInfoZhuDai>(){}.getType());
log.info("百行征信报送放款数据单个数据, {}", JSON.toJSONString(loanInfo));
String loanInfoReqId = loanInfo.getReqID();
......@@ -282,7 +282,7 @@ public class BaiHangService {
List<String> repaymentLoanInfos = FileUtils.readLines(new File(baihangHandD3DataUrl), "utf-8");
log.info("百行征信报送还款数据, {}", JSON.toJSONString(repaymentLoanInfos));
for(int i=0;i<repaymentLoanInfos.size();i++){
RepaymentLoanInfo repaymentLoanInfo = new Gson().fromJson(repaymentLoanInfos.get(i), new TypeToken<RepaymentLoanInfo>(){}.getType());
RepaymentInfoZhuDai repaymentLoanInfo = new Gson().fromJson(repaymentLoanInfos.get(i), new TypeToken<RepaymentInfoZhuDai>(){}.getType());
log.info("百行征信报送还款数据单个数据, {}", JSON.toJSONString(repaymentLoanInfo));
try {
repaymentLoanInfoDbMapper.saveRepaymentLoanInfoLog(repaymentLoanInfo);
......@@ -328,9 +328,9 @@ public class BaiHangService {
//http 存量放款数据报送
public void stockLoanInfo() {
List<LoanInfo> loanInfos = loanInfoMapper.stockLoanInfo();
List<LoanInfoZhuDai> loanInfos = loanInfoMapper.stockLoanInfo();
for (int i = 0; i < loanInfos.size(); i++) {
LoanInfo loanInfo = loanInfos.get(i);
LoanInfoZhuDai loanInfo = loanInfos.get(i);
String id = "";
try {
String loanInfoReqId = loanInfo.getReqID();
......@@ -360,7 +360,7 @@ public class BaiHangService {
if (erlyDate.plusDays(counter + 1).compareTo(endDate) >= 0) {
break;
}
List<RepaymentLoanInfo> repaymentLoanInfos = new ArrayList<>();
List<RepaymentInfoZhuDai> repaymentLoanInfos = new ArrayList<>();
String starTime = erlyDate.plusDays(counter).format(DateTimeFormatter.ISO_DATE);
String endTime = erlyDate.plusDays(counter + 1).format(DateTimeFormatter.ISO_DATE);
log.info("整理startTime: {} , endTime: {} ", starTime, endTime);
......@@ -377,7 +377,7 @@ public class BaiHangService {
log.info("查询逾期还款 startTime: {} , endTime: {} , 大小: {} , 耗时: {} ", starTime, endTime, repaymentLoanInfos.size(), stopwatch.stop().elapsed(TimeUnit.MILLISECONDS));
}
for (int j = 0; j < repaymentLoanInfos.size(); j++) {
RepaymentLoanInfo repaymentLoanInfo = repaymentLoanInfos.get(j);
RepaymentInfoZhuDai repaymentLoanInfo = repaymentLoanInfos.get(j);
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/20190508/baihang_source_d3.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
// FileUtils.write(new File("/vpants/shaun/risk-datasource/鹰潭市信江广达小额贷款股份有限公司_D3_2019050805310101_0001.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
FileUtils.write(new File("/Users/fengjunkai/Desktop/new/20190529/xinjiangguangda_D3_2019052910580303_0001.txt"), JSON.toJSONString(repaymentLoanInfo) + "\r\n", true);
......
......@@ -18,9 +18,7 @@ import cn.quantgroup.report.service.baihang.response.InterfaceUploadResponse;
import cn.quantgroup.report.service.baihang.response.InterfaceUploadValidationResponse;
import cn.quantgroup.report.service.baihang.util.BHRSAUtils;
import cn.quantgroup.report.service.baihang.util.Base64;
import cn.quantgroup.report.service.baihang.util.TuoMinUtils;
import cn.quantgroup.report.service.http.IHttpService;
import cn.quantgroup.report.utils.ReadOrWriteTxt;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
......@@ -40,8 +38,6 @@ import javax.annotation.PostConstruct;
import java.io.File;
import java.io.IOException;
import java.security.PublicKey;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
......@@ -102,9 +98,10 @@ public class BaiHangZhuDaiService {
@Value("${baihang.zhudai.password}")
public String password;
private DateFormat df_uploadTs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//private DateFormat df_uploadTs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
private final String zl_file_path_name = "D:/BaiHangZhuDai/data/D3/";
@Value("${baihang.zhudai.cunliang.data.url}")
public String zl_file_path_name; // = "D:\\JavaTeam\\baihang\\cunLiang\\";存量数据整理目录
private static PublicKey baihang_zhudai_publickey = null;
......@@ -142,11 +139,11 @@ public class BaiHangZhuDaiService {
Stopwatch queryWatch1 = Stopwatch.createStarted();
BaiHangTimeRecord timeRecord = BaiHangTimeRecord.builder().startTime(startnyr).endTime(endnyr).build();
List<ApplyLoanInfoZhuDai> applyLoanInfos = applyLoanInfoMapper.findRealTimeApplyLoanZhuDai(timeRecord);
log.info("量化派助贷TO百行报送-非联合贷申请查询完成, 大小: {} , 耗时: {} ", (applyLoanInfos!=null?applyLoanInfos.size() : 0), queryWatch1.stop().elapsed(TimeUnit.MILLISECONDS));
log.info("量化派助贷TO百行报送-非联合贷申请查询完成, 大小: {} , 耗时: {} ", (applyLoanInfos!=null?applyLoanInfos.size() : 0), (queryWatch1.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
Stopwatch queryWatch2 = Stopwatch.createStarted();
List<ApplyLoanInfoZhuDai> applyLoanInfosLh = applyLoanInfoMapper.findRealTimeApplyLoanZhuDaiLh();
log.info("量化派助贷TO百行报送-联合贷申请查询完成, 大小: {} , 耗时: {} ", (applyLoanInfosLh!=null?applyLoanInfosLh.size() : 0), queryWatch2.stop().elapsed(TimeUnit.MILLISECONDS));
log.info("量化派助贷TO百行报送-联合贷申请查询完成, 大小: {} , 耗时: {} ", (applyLoanInfosLh!=null?applyLoanInfosLh.size() : 0), (queryWatch2.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
if(applyLoanInfos==null){
applyLoanInfos = new ArrayList<ApplyLoanInfoZhuDai>();
......@@ -175,7 +172,7 @@ public class BaiHangZhuDaiService {
log.error("量化派助贷TO百行报送-贷款申请信息异常", e);
}
}
log.info("量化派助贷TO百行报送-贷款申请报送完成, 实际大小: {} , 报送成功大小: {} , 耗时: {} ", applyLoanInfos.size(), atomicInteger.get(), sendWatch.stop().elapsed(TimeUnit.MILLISECONDS));
log.info("量化派助贷TO百行报送-贷款申请报送完成, 实际大小: {} , 报送成功大小: {} , 耗时: {} ", applyLoanInfos.size(), atomicInteger.get(), (sendWatch.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
}
......@@ -193,11 +190,11 @@ public class BaiHangZhuDaiService {
try{
Stopwatch queryWatch1 = Stopwatch.createStarted();
loanInfos = loanInfoMapper.findRealTimeLoanInfoZhuDai(timeRecord);
log.info("量化派助贷TO百行报送-非联合贷放款申请报送开始, 大小: {} , 耗时: {} ", loanInfos.size(), queryWatch1.stop().elapsed(TimeUnit.MILLISECONDS));
log.info("量化派助贷TO百行报送-非联合贷放款申请报送开始, 大小: {} , 耗时: {} ", loanInfos.size(), (queryWatch1.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
Stopwatch queryWatch2 = Stopwatch.createStarted();
List<LoanInfoZhuDai> loanInfosLh = loanInfoMapper.findRealTimeLoanInfoZhuDaiLh();
log.info("量化派助贷TO百行报送-联合贷放款申请报送开始, 大小: {} , 耗时: {} ", loanInfosLh.size(), queryWatch2.stop().elapsed(TimeUnit.MILLISECONDS));
log.info("量化派助贷TO百行报送-联合贷放款申请报送开始, 大小: {} , 耗时: {} ", loanInfosLh.size(), (queryWatch2.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
if(loanInfos==null){
loanInfos = new ArrayList<LoanInfoZhuDai>();
......@@ -216,27 +213,6 @@ public class BaiHangZhuDaiService {
loanInfozd_tmp.setTargetRepayDateList(String.join(",", targetRepaymentDayList));
}
/*UUID loanInfoId = UUID.randomUUID();
id = loanInfoId.toString().replaceAll("-", "");
loanInfo.setRecordId(id);
try{
loanInfoDbMapper.saveLoanInfoRecordLog(loanInfo);
}catch(Exception e){}
loanInfo.setRecordId(null);
loanInfo.setReqID(id);*/
UUID loanInfoId = UUID.randomUUID();
id = loanInfoId.toString().replaceAll("-", "");
try{
LoanInfo record = new LoanInfo();
BeanUtils.copyProperties(loanInfozd_tmp, record);
record.setRecordId(id);
loanInfoDbMapper.saveLoanInfoRecordLog(record);
}catch(Exception e){
log.error("量化派助贷TO百行报送-放款申请保存记录失败" , e);
}
loanInfozd_tmp.setReqID(id);
String relationID = loanInfozd_tmp.getRelationID();
if(relationID!=null){
if(relationID.length()>36){ //长度[1,26]
......@@ -250,6 +226,16 @@ public class BaiHangZhuDaiService {
}
}
UUID loanInfoId = UUID.randomUUID();
id = loanInfoId.toString().replaceAll("-", "");
try{
loanInfozd_tmp.setRecordId(id);
loanInfoDbMapper.saveLoanInfoRecordLog(loanInfozd_tmp);
}catch(Exception e){
log.error("量化派助贷TO百行报送-放款申请保存记录失败" , e);
}
loanInfozd_tmp.setRecordId(null);
loanInfozd_tmp.setReqID(id);
String jsonStr = JSONObject.toJSONString(loanInfozd_tmp);
LoanInfoZhuDaiVo loanInfo = JSONObject.parseObject(jsonStr, LoanInfoZhuDaiVo.class);
......@@ -275,7 +261,7 @@ public class BaiHangZhuDaiService {
}catch(Exception e){
log.error("量化派助贷TO百行报送-异常", e);
}
log.info("量化派助贷TO百行报送-放款申请完成, 实际大小: {} , 报送成功大小: {} , 耗时: {} ", loanInfos.size(), atomicInteger.get(), sendWatch.stop().elapsed(TimeUnit.MILLISECONDS));
log.info("量化派助贷TO百行报送-放款申请完成, 实际大小: {} , 报送成功大小: {} , 耗时: {} ", loanInfos.size(), atomicInteger.get(), (sendWatch.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
}
......@@ -295,20 +281,20 @@ public class BaiHangZhuDaiService {
if (j == 0) {
Stopwatch realTimeStopWatch1 = Stopwatch.createStarted();
repaymentLoanInfos = repaymentLoanInfoMapper.findRealTimeRepayMentInfo(timeRecord);
log.info("量化派助贷TO百行报送-非联合贷实时还款, startnyr: {} , endnyr: {} , 大小: {} , 耗时: {} ", startnyr, endnyr, repaymentLoanInfos.size(), realTimeStopWatch1.stop().elapsed(TimeUnit.MILLISECONDS));
log.info("量化派助贷TO百行报送-非联合贷实时还款, startnyr: {} , endnyr: {} , 大小: {} , 耗时: {} ", startnyr, endnyr, repaymentLoanInfos.size(), (realTimeStopWatch1.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
Stopwatch realTimeStopWatch2 = Stopwatch.createStarted();
repaymentLoanInfosLh = repaymentLoanInfoMapper.findRealTimeRepayMentInfoLh(timeRecord);
log.info("量化派助贷TO百行报送-联合贷实时还款, startnyr: {} , endnyr: {} , 大小: {} , 耗时: {} ", startnyr, endnyr, repaymentLoanInfosLh.size(), realTimeStopWatch2.stop().elapsed(TimeUnit.MILLISECONDS));
log.info("量化派助贷TO百行报送-联合贷实时还款, startnyr: {} , endnyr: {} , 大小: {} , 耗时: {} ", startnyr, endnyr, repaymentLoanInfosLh.size(), (realTimeStopWatch2.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
} else {
Stopwatch realTimeOverdueStopWatch3 = Stopwatch.createStarted();
repaymentLoanInfos = repaymentLoanInfoMapper.findRealTimeRepayMentOverdue(timeRecord);
log.info("量化派助贷TO百行报送-非联合贷实时还款逾期, startnyr: {} , endnyr: {} , 大小: {} , 耗时: {} ", startnyr, endnyr, repaymentLoanInfos.size(), realTimeOverdueStopWatch3.stop().elapsed(TimeUnit.MILLISECONDS));
log.info("量化派助贷TO百行报送-非联合贷实时还款逾期, startnyr: {} , endnyr: {} , 大小: {} , 耗时: {} ", startnyr, endnyr, repaymentLoanInfos.size(), (realTimeOverdueStopWatch3.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
Stopwatch realTimeOverdueStopWatch4 = Stopwatch.createStarted();
repaymentLoanInfosLh = repaymentLoanInfoMapper.findRealTimeRepayMentOverdueLh(timeRecord);
log.info("量化派助贷TO百行报送-联合贷实时还款逾期, startnyr: {} , endnyr: {} , 大小: {} , 耗时: {} ", startnyr, endnyr, repaymentLoanInfos.size(), realTimeOverdueStopWatch4.stop().elapsed(TimeUnit.MILLISECONDS));
log.info("量化派助贷TO百行报送-联合贷实时还款逾期, startnyr: {} , endnyr: {} , 大小: {} , 耗时: {} ", startnyr, endnyr, repaymentLoanInfos.size(), (realTimeOverdueStopWatch4.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
}
......@@ -324,30 +310,20 @@ public class BaiHangZhuDaiService {
RepaymentInfoZhuDai repaymentLoanInfo = repaymentLoanInfos.get(i);
String id = "";
try {
RepaymentLoanInfo repaymentLoanInfo1 = repaymentLoanInfoDbMapper.findLastOne(BaiHangRepayment.builder().loanId(repaymentLoanInfo.getLoanId()).termNo(repaymentLoanInfo.getTermNo()).build());
RepaymentInfoZhuDai repaymentLoanInfo1 = repaymentLoanInfoDbMapper.findLastOne(BaiHangRepayment.builder().loanId(repaymentLoanInfo.getLoanId()).termNo(repaymentLoanInfo.getTermNo()).build());
if (j > 0 && Objects.nonNull(repaymentLoanInfo1)) {
log.info("量化派助贷TO百行报送-实时还款逾期跳过报送, startnyr: {} , endnyr: {} , bean: {} ", startnyr, endnyr, JSON.toJSONString(repaymentLoanInfo1));
continue;
}
/*id = UUID.randomUUID().toString().replaceAll("-", "");
repaymentLoanInfo.setRecordId(id);
try {
repaymentLoanInfoDbMapper.saveRepaymentLoanInfoLog(repaymentLoanInfo);
} catch (Exception e) {
}
repaymentLoanInfo.setReqID(id);
repaymentLoanInfo.setRecordId(null);*/
id = UUID.randomUUID().toString().replaceAll("-", "");
try {
RepaymentLoanInfo record = new RepaymentLoanInfo();
BeanUtils.copyProperties(repaymentLoanInfo, record);
record.setRecordId(id);
repaymentLoanInfoDbMapper.saveRepaymentLoanInfoLog(record);
repaymentLoanInfo.setRecordId(id);
repaymentLoanInfoDbMapper.saveRepaymentLoanInfoLog(repaymentLoanInfo);
} catch (Exception e) {
log.error("量化派助贷TO百行报送-实时还款保存记录异常",e);
}
repaymentLoanInfo.setRecordId(null);
repaymentLoanInfo.setReqID(id);
repaymentLoanInfo.setPid(interfaceUploadClient(repaymentLoanInfo.getPid()));
......@@ -366,7 +342,7 @@ public class BaiHangZhuDaiService {
log.error("量化派助贷TO百行报送-还款信息异常, recordId: {} , loanId: {} ", id, repaymentLoanInfo.getLoanId(), e);
}
}
log.info("量化派助贷TO百行报送-还款申请完成 J: {} , 开始时间: {} , 结束时间: {} , 实际大小: {} , 报送成功大小: {} , 耗时: {} ", j, startnyr, endnyr, repaymentLoanInfos.size(), atomicInteger.get(), sendWatch.stop().elapsed(TimeUnit.MILLISECONDS));
log.info("量化派助贷TO百行报送-还款申请完成 J: {} , 开始时间: {} , 结束时间: {} , 实际大小: {} , 报送成功大小: {} , 耗时: {} ", j, startnyr, endnyr, repaymentLoanInfos.size(), atomicInteger.get(), (sendWatch.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
} catch (Exception e) {
log.error("量化派助贷TO百行报送-异常 J: {} , 开始时间: {} , 结束时间: {} ", j, startnyr, endnyr, e);
}
......@@ -383,10 +359,11 @@ public class BaiHangZhuDaiService {
* 创建时间: 2019.10.29 <br/>
*/
public void sendHandApplyToBaiHang() throws Exception {
Stopwatch sendWatch = Stopwatch.createStarted();
List<String> handApplys = FileUtils.readLines(new File(baihangHandA1DataUrl), "utf-8");
log.info("百行征信助贷模式报送贷款申请数据, {}", JSON.toJSONString(handApplys));
for(int i=0;i<handApplys.size();i++){
try {
//try {
ApplyLoanInfoZhuDai applyInfo = new Gson().fromJson(handApplys.get(i), new TypeToken<ApplyLoanInfoZhuDai>(){}.getType());
log.info("百行征信助贷模式报送贷款申请数据单个数据, {}", JSON.toJSONString(applyInfo));
......@@ -398,10 +375,11 @@ public class BaiHangZhuDaiService {
log.info("量化派助贷TO百行报送-贷款申请返回结果不正确, loanId: {} ", applyInfo.getLoanId());
}*/
log.info("百行征信助贷模式手动报送贷款申请记录 json: {} , result: {} ", JSON.toJSONString(applyInfo), resultStr);
} catch (Exception e) {
/*} catch (Exception e) {
log.error("百行征信助贷模式手动报送贷款申请记录异常", e);
}*/
}
}
log.info("百行征信助贷模式手动报送贷款申请结束, 大小: {} , 耗时: {} ", handApplys.size(), ((sendWatch.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s"));
}
/**
......@@ -412,6 +390,7 @@ public class BaiHangZhuDaiService {
* 创建时间: 2019.10.29 <br/>
*/
public void sendHandLoaInfoReportToBaiHang() throws Exception {
Stopwatch sendWatch = Stopwatch.createStarted();
List<String> handLoanInfos = FileUtils.readLines(new File(baihangHandD2DataUrl), "utf-8");
log.info("百行征信助贷模式报送放款数据, {}", JSON.toJSONString(handLoanInfos));
for(int i=0;i<handLoanInfos.size();i++){
......@@ -425,18 +404,6 @@ public class BaiHangZhuDaiService {
loanInfozd_tmp.setTargetRepayDateList(String.join(",", targetRepaymentDayList));
}
/*try{
loanInfoDbMapper.saveLoanInfoRecordLog(loanInfo);
}catch(Exception e){}*/
try{
LoanInfo record = new LoanInfo();
BeanUtils.copyProperties(loanInfozd_tmp, record);
record.setRecordId(loanInfozd_tmp.getReqID());
loanInfoDbMapper.saveLoanInfoRecordLog(record);
}catch(Exception e){
log.error("量化派助贷TO百行报送-放款申请保存记录失败" , e);
}
String relationID = loanInfozd_tmp.getRelationID();
if(relationID!=null){
if(relationID.length()>36){ //长度[1,26]
......@@ -450,6 +417,14 @@ public class BaiHangZhuDaiService {
}
}
try{
loanInfozd_tmp.setRecordId(loanInfozd_tmp.getReqID());
loanInfoDbMapper.saveLoanInfoRecordLog(loanInfozd_tmp);
}catch(Exception e){
log.error("量化派助贷TO百行报送-放款申请保存记录失败" , e);
}
loanInfozd_tmp.setRecordId(null);
String jsonStr = JSONObject.toJSONString(loanInfozd_tmp);
LoanInfoZhuDaiVo loanInfo = JSONObject.parseObject(jsonStr, LoanInfoZhuDaiVo.class);
FinTechAgencyBusinessZhuDai finTechAgencyBusiness = JSONObject.parseObject(jsonStr, FinTechAgencyBusinessZhuDai.class);
......@@ -462,6 +437,7 @@ public class BaiHangZhuDaiService {
String resultStr = iHttpService.postBaiHang(baiHangLoanInfoUrl, getHeader(), JSON.toJSONString(loanInfo));
log.info("北京众信利民助贷模式TO百行征信报送放款记录(手动) loanId: {} , bean: {} , result: {} ", loanInfo.getLoanId(), JSON.toJSONString(loanInfo), resultStr);
}
log.info("北京众信利民助贷模式TO百行征信报送放款记录(手动)结束, 大小: {} , 耗时: {} ", handLoanInfos.size(), ((sendWatch.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s"));
}
......@@ -472,28 +448,23 @@ public class BaiHangZhuDaiService {
* 创建人: yanhui.Hao <br/>
* 创建时间: 2019.10.29 <br/>
*/
public void sendHandRepaymentReportToBaiHang1() {
try {
public void sendHandRepaymentReportToBaiHang1() throws Exception{
Stopwatch sendWatch = Stopwatch.createStarted();
List<String> repaymentLoanInfos = FileUtils.readLines(new File(baihangHandD3DataUrl), "utf-8");
//try {
log.info("百行征信助贷模式报送还款数据, {}", JSON.toJSONString(repaymentLoanInfos));
for(int i=0;i<repaymentLoanInfos.size();i++){
RepaymentInfoZhuDai repaymentLoanInfo = new Gson().fromJson(repaymentLoanInfos.get(i), new TypeToken<RepaymentInfoZhuDai>(){}.getType());
log.info("百行征信助贷模式报送还款数据单个数据, {}", JSON.toJSONString(repaymentLoanInfo));
/*try {
repaymentLoanInfoDbMapper.saveRepaymentLoanInfoLog(repaymentLoanInfo);
} catch (Exception e) {
}
repaymentLoanInfo.setReqID(repaymentLoanInfo.getRecordId());
repaymentLoanInfo.setRecordId(null);*/
try {
RepaymentLoanInfo record = new RepaymentLoanInfo();
BeanUtils.copyProperties(repaymentLoanInfo, record);
record.setRecordId(repaymentLoanInfo.getReqID());
repaymentLoanInfoDbMapper.saveRepaymentLoanInfoLog(record);
repaymentLoanInfo.setRecordId(repaymentLoanInfo.getReqID());
repaymentLoanInfoDbMapper.saveRepaymentLoanInfoLog(repaymentLoanInfo);
} catch (Exception e) {
log.error("量化派助贷TO百行报送-实时还款保存记录异常",e);
}
repaymentLoanInfo.setRecordId(null);
repaymentLoanInfo.setPid(interfaceUploadClient(repaymentLoanInfo.getPid()));
repaymentLoanInfo.setName(interfaceUploadClient(repaymentLoanInfo.getName()));
......@@ -502,10 +473,10 @@ public class BaiHangZhuDaiService {
String resultStr = iHttpService.postBaiHang(baiHangRepayMentLoanInfoUrl, getHeader(), JSON.toJSONString(repaymentLoanInfo));
log.info("百行征信助贷模式手动报送还款记录 json: {} , result: {} ", JSON.toJSONString(repaymentLoanInfo), resultStr);
}
} catch (Exception e) {
/*} catch (Exception e) {
log.error("百行征信助贷模式手动报送还款异常", e);
}
}*/
log.info("百行征信助贷模式手动报送还款记录结束, 大小: {} , 耗时: {} ", repaymentLoanInfos.size(), ((sendWatch.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s"));
}
//-----------------------------------------------存量整理---------------------------------------------------------------------
......@@ -527,7 +498,7 @@ public class BaiHangZhuDaiService {
return "日期格式有误";
}
final String fileName = zl_file_path_name + "zhudai_" + startDate.substring(0, startDate.indexOf("T")).replace("-", "") + "_" + noEndDate.substring(0, noEndDate.indexOf("T")).replace("-", "") + "_0001.txt";
final String fileName = zl_file_path_name + "zhudai_A1_" + startDate.substring(0, startDate.indexOf("T")).replace("-", "") + "_" + noEndDate.substring(0, noEndDate.indexOf("T")).replace("-", "") + "_0001.txt";
LocalDateTime erlyDate = LocalDateTime.parse(startDate);
LocalDateTime endDate = LocalDateTime.parse(noEndDate);
......@@ -550,11 +521,11 @@ public class BaiHangZhuDaiService {
Stopwatch queryWatch1 = Stopwatch.createStarted();
List<ApplyLoanInfoZhuDai> applyLoanInfoList = applyLoanInfoMapper.findRealTimeApplyLoanZhuDai(timeRecord);
log.info("百行助贷申请存量-非联合贷查询结束, 大小: {} , starTime: {} , 耗时: {} ", applyLoanInfoList.size(), starTime, queryWatch1.stop().elapsed(TimeUnit.MILLISECONDS));
log.info("百行助贷申请存量-非联合贷查询结束, 大小: {} , starTime: {} , 耗时: {} ", applyLoanInfoList.size(), starTime, (queryWatch1.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
Stopwatch queryWatch2 = Stopwatch.createStarted();
List<ApplyLoanInfoZhuDai> applyLoanInfosLh = applyLoanInfoMapper.findRealTimeApplyLoanZhuDaiLh();
log.info("百行助贷申请存量-联合贷查询结束, 大小: {} , starTime: {} , 耗时: {} ", applyLoanInfosLh.size(), starTime, queryWatch2.stop().elapsed(TimeUnit.MILLISECONDS));
log.info("百行助贷申请存量-联合贷查询结束, 大小: {} , starTime: {} , 耗时: {} ", applyLoanInfosLh.size(), starTime, (queryWatch2.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
if(applyLoanInfoList==null){
applyLoanInfoList = new ArrayList<ApplyLoanInfoZhuDai>();
......@@ -605,7 +576,7 @@ public class BaiHangZhuDaiService {
log.warn("stockLoanInfoZhuDai日期格式有误, startDate : {} , noEndDate : {} ",startDate,noEndDate);
return "日期格式有误";
}
final String fileName = zl_file_path_name+"zhudai_" + startDate.substring(0,startDate.indexOf("T")).replace("-","") + "_" + noEndDate.substring(0,noEndDate.indexOf("T")).replace("-","")+ "_0001.txt";
final String fileName = zl_file_path_name+"zhudai_D2_" + startDate.substring(0,startDate.indexOf("T")).replace("-","") + "_" + noEndDate.substring(0,noEndDate.indexOf("T")).replace("-","")+ "_0001.txt";
LocalDateTime erlyDate = LocalDateTime.parse(startDate);
LocalDateTime endDate = LocalDateTime.parse(noEndDate);
......@@ -626,10 +597,10 @@ public class BaiHangZhuDaiService {
Stopwatch queryWatch1 = Stopwatch.createStarted();
List<LoanInfoZhuDai> loanInfozdList = loanInfoMapper.findRealTimeLoanInfoZhuDai(timeRecord);
log.info("百行助贷放款存量-非联合贷查询结束, 大小: {} , starTime: {} , 耗时: {} ", loanInfozdList.size(), starTime, queryWatch1.stop().elapsed(TimeUnit.MILLISECONDS));
log.info("百行助贷放款存量-非联合贷查询结束, 大小: {} , starTime: {} , 耗时: {} ", loanInfozdList.size(), starTime, (queryWatch1.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
Stopwatch queryWatch2 = Stopwatch.createStarted();
List<LoanInfoZhuDai> loanInfozdListLh = loanInfoMapper.findRealTimeLoanInfoZhuDaiLh();
log.info("百行助贷放款存量-联合贷查询结束, 大小: {} , starTime: {} , 耗时: {} ", loanInfozdListLh.size(), starTime, queryWatch2.stop().elapsed(TimeUnit.MILLISECONDS));
log.info("百行助贷放款存量-联合贷查询结束, 大小: {} , starTime: {} , 耗时: {} ", loanInfozdListLh.size(), starTime, (queryWatch2.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
if(loanInfozdList==null){
loanInfozdList = new ArrayList<LoanInfoZhuDai>();
}
......@@ -670,7 +641,7 @@ public class BaiHangZhuDaiService {
List<String> targetRepaymentDayList = loanInfoMapper.findTargetRepaymentDayList(loanInfoReqId);
loanInfoZhuDaiVo.setTargetRepayDateList(String.join(",", targetRepaymentDayList));
}
loanInfoZhuDaiVo.setReqID(id);//???
loanInfoZhuDaiVo.setReqID(id);
FileUtils.write(new File(fileName), JSON.toJSONString(loanInfoZhuDaiVo) + "\r\n", true);
} catch (Exception e) {
......@@ -702,13 +673,11 @@ public class BaiHangZhuDaiService {
log.warn("stockRepayMentInfoZhuDai日期格式有误, startDate : {} , noEndDate : {} ",startDate,noEndDate);
return "日期格式有误";
}
final String fileName = zl_file_path_name+"zhudai_" + startDate.substring(0,startDate.indexOf("T")).replace("-","") + "_" + noEndDate.substring(0,noEndDate.indexOf("T")).replace("-","")+ "_0001.txt";
final String fileName = zl_file_path_name+"zhudai_D3_" + startDate.substring(0,startDate.indexOf("T")).replace("-","") + "_" + noEndDate.substring(0,noEndDate.indexOf("T")).replace("-","")+ "_0001.txt";
LocalDateTime erlyDate = LocalDateTime.parse(startDate);
LocalDateTime endDate = LocalDateTime.parse(noEndDate);
LocalDateTime yq_start = LocalDateTime.parse("2017-03-09T00:00:00");
int counter = 0;
log.info("开始>>整理百行-助贷还款&逾期存量数据 startDate : {} , noEndDate : {} ......",startDate,noEndDate);
while (true) {
......@@ -728,16 +697,16 @@ public class BaiHangZhuDaiService {
long log_stUtc = System.currentTimeMillis();
try {
if (type == 0) {
Stopwatch stopwatch = Stopwatch.createStarted();
//Stopwatch stopwatch = Stopwatch.createStarted();
/* repaymentInfoList = repaymentLoanInfoMapper.queryStockRepayMentInfoZhuDai(timeRecord);*/
Stopwatch realTimeStopWatch1 = Stopwatch.createStarted();
repaymentInfoList = repaymentLoanInfoMapper.findRealTimeRepayMentInfo(timeRecord);
log.info("百行助贷还款存量-非联合贷查询结束, 大小: {} , starTime: {} , 耗时: {} ", repaymentInfoList.size(), starTime, realTimeStopWatch1.stop().elapsed(TimeUnit.MILLISECONDS));
log.info("百行助贷还款存量-非联合贷查询结束, 大小: {} , starTime: {} , 耗时: {} ", repaymentInfoList.size(), starTime, (realTimeStopWatch1.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
Stopwatch realTimeStopWatch2 = Stopwatch.createStarted();
repaymentLoanInfosLh = repaymentLoanInfoMapper.findRealTimeRepayMentInfoLh(timeRecord);
log.info("百行助贷还款存量-联合贷查询结束, 大小: {} , starTime: {} , 耗时: {} ", repaymentLoanInfosLh.size(), starTime, realTimeStopWatch2.stop().elapsed(TimeUnit.MILLISECONDS));
log.info("百行助贷还款存量-联合贷查询结束, 大小: {} , starTime: {} , 耗时: {} ", repaymentLoanInfosLh.size(), starTime, (realTimeStopWatch2.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
} else {
/*if(erlyDate.plusDays(counter-1).compareTo(yq_start) >= 0){
Stopwatch stopwatch = Stopwatch.createStarted();
......@@ -747,11 +716,11 @@ public class BaiHangZhuDaiService {
Stopwatch realTimeOverdueStopWatch3 = Stopwatch.createStarted();
repaymentInfoList = repaymentLoanInfoMapper.findRealTimeRepayMentOverdue(timeRecord);
log.info("百行助贷逾期存量-非联合贷查询结束, 大小: {} , starTime: {} , 耗时: {} ", repaymentInfoList.size(), starTime, realTimeOverdueStopWatch3.stop().elapsed(TimeUnit.MILLISECONDS));
log.info("百行助贷逾期存量-非联合贷查询结束, 大小: {} , starTime: {} , 耗时: {} ", repaymentInfoList.size(), starTime, (realTimeOverdueStopWatch3.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
Stopwatch realTimeOverdueStopWatch4 = Stopwatch.createStarted();
repaymentLoanInfosLh = repaymentLoanInfoMapper.findRealTimeRepayMentOverdueLh(timeRecord);
log.info("百行助贷逾期存量-联合贷查询结束, 大小: {} , starTime: {} , 耗时: {} ", repaymentInfoList.size(), starTime, realTimeOverdueStopWatch4.stop().elapsed(TimeUnit.MILLISECONDS));
log.info("百行助贷逾期存量-联合贷查询结束, 大小: {} , starTime: {} , 耗时: {} ", repaymentInfoList.size(), starTime, (realTimeOverdueStopWatch4.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
}
if(repaymentInfoList==null){
......@@ -764,6 +733,8 @@ public class BaiHangZhuDaiService {
for (int j = 0; j < repaymentInfoList.size(); j++) {
RepaymentInfoZhuDai repaymentInfo = repaymentInfoList.get(j);
String id = UUID.randomUUID().toString().replaceAll("-", "");
repaymentInfo.setReqID(id);
FileUtils.write(new File(fileName), JSON.toJSONString(repaymentInfo) + "\r\n", true);
}
......@@ -817,7 +788,7 @@ public class BaiHangZhuDaiService {
* @throws Exception
*/
//public static void interfaceUploadValidationClient() throws Exception {
public static void interfaceUploadValidationClient(String miwen) throws Exception {
private static void interfaceUploadValidationClient(String miwen) throws Exception {
//RSA私钥文件路径(百行提供测试环境私钥文件)
// String RSA_PRIVATE_KEY = "d:\\rsa_private_key.pem";
......@@ -1075,7 +1046,7 @@ public class BaiHangZhuDaiService {
UUID loanInfoId = UUID.randomUUID();
id = loanInfoId.toString().replaceAll("-", "");
try{
LoanInfo record = new LoanInfo();
LoanInfoZhuDai record = new LoanInfoZhuDai();
BeanUtils.copyProperties(loanInfo, record);
record.setRecordId(id);
loanInfoDbMapper.saveLoanInfoRecordLog(record);
......@@ -1127,7 +1098,7 @@ public class BaiHangZhuDaiService {
RepaymentInfoZhuDai repaymentLoanInfo = repaymentLoanInfos.get(i);
String id = "";
try {
RepaymentLoanInfo repaymentLoanInfo1 = repaymentLoanInfoDbMapper.findLastOne(BaiHangRepayment.builder().loanId(repaymentLoanInfo.getLoanId()).termNo(repaymentLoanInfo.getTermNo()).build());
RepaymentInfoZhuDai repaymentLoanInfo1 = repaymentLoanInfoDbMapper.findLastOne(BaiHangRepayment.builder().loanId(repaymentLoanInfo.getLoanId()).termNo(repaymentLoanInfo.getTermNo()).build());
if (j > 0 && Objects.nonNull(repaymentLoanInfo1)) {
log.info("量化派助贷TO百行报送-实时还款逾期跳过报送, startTime: {} , endTime: {} , bean: {} ", starTime, endTime, JSON.toJSONString(repaymentLoanInfo1));
continue;
......@@ -1144,7 +1115,7 @@ public class BaiHangZhuDaiService {
id = UUID.randomUUID().toString().replaceAll("-", "");
try {
RepaymentLoanInfo record = new RepaymentLoanInfo();
RepaymentInfoZhuDai record = new RepaymentInfoZhuDai();
BeanUtils.copyProperties(repaymentLoanInfo, record);
record.setRecordId(id);
repaymentLoanInfoDbMapper.saveRepaymentLoanInfoLog(record);
......@@ -1183,430 +1154,4 @@ public class BaiHangZhuDaiService {
//=========================================================================
public static void main22(String[] args) {
/* String startTime = DateUtils.getYesterdayDateStr();
System.out.println(startTime);*/
try {
/* //公钥加密
String miwen = interfaceUploadClient("'440582199309280675");
System.out.println(miwen);
//私钥解密
interfaceUploadValidationClient(miwen);*/
/* convertApplyLoanInfo();
convertLoanInfo();
convertRepaymentLoanInfo();*/
//txt2cry
//fileUploadClient();
//cry2txt
//fileUploadValidationClient();
/*List<String> list = FileUtils.readLines(new File("/Users/fengjunkai/Documents/repaymentLoanInfo11.json"), "utf-8");
for(int i=0;i<list.size();i++){
try{
RepaymentLoanInfo repaymentLoanInfo = new Gson().fromJson(list.get(i), new TypeToken<RepaymentLoanInfo>(){}.getType());
// repaymentLoanInfo.setPid(interfaceUploadClient(repaymentLoanInfo.getPid()));
// repaymentLoanInfo.setName(interfaceUploadClient(repaymentLoanInfo.getName()));
// repaymentLoanInfo.setMobile(interfaceUploadClient(repaymentLoanInfo.getMobile()));
Map<String,Object> repaymentLoanInfoMap = new HashMap<>();
repaymentLoanInfoMap.put("reqID", repaymentLoanInfo.getReqID());
repaymentLoanInfoMap.put("uploadTs", repaymentLoanInfo.getUploadTs());
repaymentLoanInfoMap.put("opCode", repaymentLoanInfo.getOpCode());
repaymentLoanInfoMap.put("loanId", repaymentLoanInfo.getLoanId());
repaymentLoanInfoMap.put("name", interfaceUploadClient(repaymentLoanInfo.getName()));
repaymentLoanInfoMap.put("mobile", interfaceUploadClient(repaymentLoanInfo.getMobile()));
repaymentLoanInfoMap.put("pid", interfaceUploadClient(repaymentLoanInfo.getPid()));
repaymentLoanInfoMap.put("termNo", repaymentLoanInfo.getTermNo());
repaymentLoanInfoMap.put("termStatus", repaymentLoanInfo.getTermStatus());
repaymentLoanInfoMap.put("targetRepaymentDate", repaymentLoanInfo.getTargetRepaymentDate());
// if(!"overdue".equals(repaymentLoanInfo.getTermStatus())){
repaymentLoanInfoMap.put("realRepaymentDate", repaymentLoanInfo.getRealRepaymentDate());
// }
repaymentLoanInfoMap.put("plannedPayment", repaymentLoanInfo.getPlannedPayment());
repaymentLoanInfoMap.put("targetRepayment", repaymentLoanInfo.getTargetRepayment());
repaymentLoanInfoMap.put("realRepayment", repaymentLoanInfo.getRealRepayment());
repaymentLoanInfoMap.put("overdueStatus", repaymentLoanInfo.getOverdueStatus());
repaymentLoanInfoMap.put("statusConfirmAt", repaymentLoanInfo.getStatusConfirmAt());
repaymentLoanInfoMap.put("overdueAmount", repaymentLoanInfo.getOverdueAmount());
repaymentLoanInfoMap.put("remainingAmount", repaymentLoanInfo.getRemainingAmount());
repaymentLoanInfoMap.put("loanStatus", repaymentLoanInfo.getLoanStatus());
// String resultStr = iHttpService.postBaiHang(baiHangRepayMentLoanInfoUrl, getHeader(), JSON.toJSONString(repaymentLoanInfoMap));
System.out.println(JSON.toJSONString(repaymentLoanInfoMap));
}catch(Exception e){
log.error("广达小贷TO百行征信报送非循环贷还款信息异常", e);
}
}*/
/*UUID uuid = UUID.randomUUID();
System.out.println(uuid.toString().replaceAll("-",""));
System.out.println(LocalDateTime.now().format(DateTimeFormatter.ISO_DATE));
System.out.println(LocalDateTime.now().plusDays(-1).format(DateTimeFormatter.ISO_DATE));
String str = FileUtils.readFileToString(new File("/Users/fengjunkai/Downloads/111.txt"), "utf-8");
//String str = FileUtils.readFileToString(new File("/Users/fengjunkai/Desktop/20190421/loanInfo_0421"), "utf-8");
//String str = FileUtils.readFileToString(new File("/Users/fengjunkai/Desktop/20190421/repaymentInfo_0421"), "utf-8");
JSONArray jsonArray = JSON.parseArray(str);
for(int i=0;i<jsonArray.size();i++){
JSONObject jsonObject = jsonArray.getJSONObject(i);
FileUtils.write(new File("/Users/fengjunkai/Desktop/20190421/鹰潭市信江广达小额贷款股份有限公司_D2_20190421141422_0002.txt"), JSON.toJSONString(jsonObject)+"\r\n", true);
FileUtils.write(new File("/Users/fengjunkai/Desktop/20190421/鹰潭市信江广达小额贷款股份有限公司_D3_20190421141422_0003.txt"), JSON.toJSONString(jsonObject)+"\r\n", true);
}*/
/*String startTime = LocalDateTime.now().plusDays(-1).format(DateTimeFormatter.ISO_DATE);
String endTime = LocalDateTime.now().format(DateTimeFormatter.ISO_DATE);
for(int i=0;i<100;i++){
System.out.println("startTime : "+LocalDateTime.now().plusDays(-(i+1)).format(DateTimeFormatter.ISO_DATE)+", "+"endTime : "+LocalDateTime.now().plusDays(-i).format(DateTimeFormatter.ISO_DATE));
}*/
/* int counter = 0;
LocalDateTime erlyDate = LocalDateTime.parse(ERLY_DATE);
LocalDateTime endDate = LocalDateTime.parse(END_DATE);
while (true){
counter++;
if(endDate.compareTo(erlyDate.plusDays(counter))>0){
break;
}
System.out.println("startTime : "+erlyDate.plusDays(counter).format(DateTimeFormatter.ISO_DATE)+", "+"endTime : "+erlyDate.plusDays(counter+1).format(DateTimeFormatter.ISO_DATE));
}
System.out.println(LocalDateTime.now().plusDays(-1).compareTo(LocalDateTime.now())>=0);
System.out.println(LocalDateTime.now().compareTo(LocalDateTime.now()));
System.out.println(0>0);
System.out.println(LocalDateTime.parse("2017-09-31").format(DateTimeFormatter.ISO_DATE));;
String s = LocalDateTime.parse("2017-09-31").format(DateTimeFormatter.ISO_DATE);
System.out.println(LocalDateTime.parse("2017-09-29T00:00:00").format(DateTimeFormatter.ISO_DATE));
List<String> list = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/鹰潭市信江广达小额贷款股份有限公司_D3_20190422110303_0003_new2.txt"), "utf-8");
List<RepaymentLoanInfo> repaymentLoanInfos = new Gson().fromJson(JSON.toJSONString(list), new TypeToken<ArrayList<RepaymentLoanInfo>>(){}.getType());
Map<String, RepaymentLoanInfo> speedMap = new HashMap<>();
for(int i=0;i<list.size();i++){
RepaymentLoanInfo repaymentLoanInfo = new Gson().fromJson(list.get(i), new TypeToken<RepaymentLoanInfo>(){}.getType());
// UUID uuid = UUID.randomUUID();
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/reqIdMappingToUuid.txt"), repaymentLoanInfo.getReqID()+":"+uuid.toString().replaceAll("-", "")+"\r\n", true);
// repaymentLoanInfo.setReqID(uuid.toString().replaceAll("-",""));
// if(repaymentLoanInfo.getLoanStatus()==3 && "overdue".equalsIgnoreCase(repaymentLoanInfo.getTermStatus())){
// System.out.println("跳过第"+i+"个"+" "+JSON.toJSONString(repaymentLoanInfo));
// continue;
// }
// loanId+termNo+状态确认时间一样的 把没有实际还款时间的删掉
RepaymentLoanInfo repaymentLoanInfoCache = speedMap.get(repaymentLoanInfo.getLoanId()+repaymentLoanInfo.getTermNo()+repaymentLoanInfo.getStatusConfirmAt());
if(repaymentLoanInfoCache!=null){ //说明里面包含了同样的记录
String realRepaymentDate = repaymentLoanInfoCache.getRealRepaymentDate();
if(StringUtils.isBlank(realRepaymentDate)){
continue;
}else{
speedMap.put(repaymentLoanInfo.getLoanId()+repaymentLoanInfo.getTermNo()+repaymentLoanInfo.getStatusConfirmAt(), repaymentLoanInfo);
}
}else{
speedMap.put(repaymentLoanInfo.getLoanId()+repaymentLoanInfo.getTermNo()+repaymentLoanInfo.getStatusConfirmAt(), repaymentLoanInfo);
}
}
speedMap.forEach((k, v)->{
RepaymentLoanInfo repaymentLoanInfo = speedMap.get(k);
try {
FileUtils.write(new File("/Users/fengjunkai/Desktop/new/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
} catch (IOException e) {
e.printStackTrace();
}
});
System.out.println("完事");*/
// LocalDateTime localDateTime = LocalDateTime.now();
// System.out.println(localDateTime);
// System.out.println(localDateTime.toString().substring(0,19));
// System.out.println(localDateTime.format(DateTimeFormatter.ISO_LOCAL_DATE));
// List<String> list = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004.txt"), "utf-8");
// Map<String,RepaymentLoanInfo> repaymentLoanInfoMap = new HashMap<>();
// for(int i=1;i<list.size();i++){
// RepaymentLoanInfo repaymentLoanInfo = new Gson().fromJson(list.get(i), new TypeToken<RepaymentLoanInfo>(){}.getType());
// repaymentLoanInfoMap.put(repaymentLoanInfo.getLoanId()+repaymentLoanInfo.getTermNo()+repaymentLoanInfo.getLoanStatus(), repaymentLoanInfo);
// }
// List<String> list1 = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/CRY/11111111"), "utf-8");
// for(int i=0;i<list1.size();i++){
// RepaymentLoanInfo repaymentLoanInfo = repaymentLoanInfoMap.get(list1.get(i));
// System.out.println(JSON.toJSONString(repaymentLoanInfo));
//
// repaymentLoanInfo.setLoanStatus(2);
// repaymentLoanInfo.setOpCode("M");
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/CRY/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004_tmp1.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
// }
// for(int i=1;i<list.size();i++){
// RepaymentLoanInfo repaymentLoanInfo = new Gson().fromJson(list.get(i), new TypeToken<RepaymentLoanInfo>(){}.getType());
// repaymentLoanInfo.setOpCode("M");
// if("967167083".equals(repaymentLoanInfo.getLoanId()+repaymentLoanInfo.getLoanStatus())){
// repaymentLoanInfo.setRealRepayment(repaymentLoanInfo.getPlannedPayment());
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/CRY/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004_tmp.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
// }else if("967175963".equals(repaymentLoanInfo.getLoanId()+repaymentLoanInfo.getLoanStatus())){
// repaymentLoanInfo.setRealRepayment(repaymentLoanInfo.getPlannedPayment());
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/CRY/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004_tmp.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
// }else if("967162983".equals(repaymentLoanInfo.getLoanId()+repaymentLoanInfo.getLoanStatus())){
// repaymentLoanInfo.setRealRepayment(repaymentLoanInfo.getPlannedPayment());
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/CRY/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004_tmp.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
// }else if("967167603".equals(repaymentLoanInfo.getLoanId()+repaymentLoanInfo.getLoanStatus())){
// repaymentLoanInfo.setRealRepayment(repaymentLoanInfo.getPlannedPayment());
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/CRY/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004_tmp.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
// }else if("967141803".equals(repaymentLoanInfo.getLoanId()+repaymentLoanInfo.getLoanStatus())){
// repaymentLoanInfo.setRealRepayment(repaymentLoanInfo.getPlannedPayment());
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/CRY/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004_tmp.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
// }
// }
// List<String> list = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/CRY/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004_M_logicerror.log"), "utf-8");
// List<String> list1 = new ArrayList<>();
// for(int i=1;i<list.size();i++){
// JSONObject jsonObject = JSON.parseObject(list.get(i));
// String reqId = jsonObject.getString("reqID");
// list1.add(reqId);
// }
//
// List<String> list2 = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/CRY/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004_tmp1.txt"), "utf-8");
// Map<String,RepaymentLoanInfo> repaymentLoanInfoMap = new HashMap<>();
// for(int i=0;i<list2.size();i++){
// RepaymentLoanInfo repaymentLoanInfo = new Gson().fromJson(list2.get(i), new TypeToken<RepaymentLoanInfo>(){}.getType());
// repaymentLoanInfoMap.put(repaymentLoanInfo.getReqID(), repaymentLoanInfo);
// }
//
//// repaymentLoanInfoMap.forEach((k,v)->{
//// try {
//// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/CRY/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004_MM.txt"), JSON.toJSONString(v)+"\r\n", true);
//// } catch (IOException e) {
//// e.printStackTrace();
//// }
//// });
// for(int i=0;i<list1.size();i++){
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/CRY/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004_MM.txt"), JSON.toJSONString(repaymentLoanInfoMap.get(list1.get(i)))+"\r\n", true);
// }
// List<String> list3 = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/CRY/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004_MM.txt"), "utf-8");
// for(int i=0;i<list3.size();i++){
// RepaymentLoanInfo repaymentLoanInfo = new Gson().fromJson(list3.get(i), new TypeToken<RepaymentLoanInfo>(){}.getType());
// repaymentLoanInfo.setLoanStatus(1);
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/CRY/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004_M1.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
// }
// List<String> list = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004.txt"), "utf-8");
// for(int i=0;i<list.size();i++){
//
// }
// List<String> list1 = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/22222"), "utf-8");
// Map<String,String> map = new HashMap<>();
// for(int i=0;i<list1.size();i++){
// String str[] = list1.get(i).split(":");
// map.put(str[0]+str[1]+str[2], str[3]);
// }
//
// List<String> list = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004.txt"), "utf-8");
// Map<String,RepaymentLoanInfo> repaymentLoanInfoMap = new HashMap<>();
// for(int i=1;i<list.size();i++){
// RepaymentLoanInfo repaymentLoanInfo = new Gson().fromJson(list.get(i), new TypeToken<RepaymentLoanInfo>(){}.getType());
// repaymentLoanInfoMap.put(repaymentLoanInfo.getLoanId()+repaymentLoanInfo.getLoanStatus()+repaymentLoanInfo.getTermNo()+repaymentLoanInfo.getOverdueStatus(), repaymentLoanInfo);
// }
// for(int i=0;i<list.size();i++){
// if(list.get(i).contains("90987526")){
// System.out.println(list.get(i));
// }
// }
//
// map.forEach((k,v)->{
// RepaymentLoanInfo repaymentLoanInfo = repaymentLoanInfoMap.get(k);
// repaymentLoanInfo.setRemainingAmount(new BigDecimal(v).setScale(2, BigDecimal.ROUND_HALF_UP));
// repaymentLoanInfo.setOpCode("M");
// try {
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/CRY/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004_M2.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
// } catch (IOException e) {
// e.printStackTrace();
// }
// });
// List<String> list = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004.txt"), "utf-8");
// Map<String,RepaymentLoanInfo> map = new HashMap<>();
// for(int i=1;i<list.size();i++){
// RepaymentLoanInfo repaymentLoanInfo = new Gson().fromJson(list.get(i), new TypeToken<RepaymentLoanInfo>(){}.getType());
// map.put(repaymentLoanInfo.getLoanId()+repaymentLoanInfo.getLoanStatus()+repaymentLoanInfo.getTermNo()+repaymentLoanInfo.getOverdueStatus(), repaymentLoanInfo);
// map.put(repaymentLoanInfo.getLoanId()+repaymentLoanInfo.getLoanStatus()+repaymentLoanInfo.getTermNo(), repaymentLoanInfo);
// map.put(repaymentLoanInfo.getLoanId()+repaymentLoanInfo.getLoanStatus()+repaymentLoanInfo.getTermNo(), repaymentLoanInfo);
// }
// System.out.println(map.size());
//
// List<String> list1 = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/CRY/20190428/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004_20190428"), "utf-8");
// for(int i=0;i<list1.size();i++){
// String tmp[] = list1.get(i).split("#");
//// RepaymentLoanInfo repaymentLoanInfo = map.get(tmp[0]+tmp[1]+tmp[2]+tmp[3]);
//// repaymentLoanInfo.setRealRepaymentDate(tmp[4]);
//// repaymentLoanInfo.setTargetRepayment(new BigDecimal(tmp[5]).setScale(2, BigDecimal.ROUND_HALF_UP));
//// repaymentLoanInfo.setRealRepayment(new BigDecimal(6).setScale(2, BigDecimal.ROUND_HALF_UP));
//// repaymentLoanInfo.setOpCode("M");
//// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/CRY/20190428/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004_M3.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
//
//// RepaymentLoanInfo repaymentLoanInfo = map.get(tmp[0]+tmp[1]+tmp[2]);
//// repaymentLoanInfo.setOpCode("M");
//// repaymentLoanInfo.setLoanStatus(1);
//// repaymentLoanInfo.setRemainingAmount(new BigDecimal(tmp[3]).setScale(2, BigDecimal.ROUND_HALF_UP));
//// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/CRY/20190428/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004_1.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
//
// RepaymentLoanInfo repaymentLoanInfo = map.get(tmp[0]+tmp[1]+tmp[2]);
// repaymentLoanInfo.setOpCode("M");
// repaymentLoanInfo.setLoanStatus(1);
//
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/CRY/20190428/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004_2.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
// }
// String key = "9168549029D1";
// RepaymentLoanInfo repaymentLoanInfo = map.get(key);
// repaymentLoanInfo.setRealRepayment(new BigDecimal("2392.39").setScale(2, BigDecimal.ROUND_HALF_UP));
// repaymentLoanInfo.setOpCode("M");
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/CRY/20190430/鹰潭市信江广达小额贷款股份有限公司_D3_201904241037_0004_M4.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
// List<String> list1 = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/20190509/tmp"), "utf-8");
// Map<String,String> map = new HashMap<>();
// for(int i=0;i<list1.size();i++){
// String tmp = list1.get(i);
// map.put(tmp, "1");
// }
//
// List<String> list = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/20190509/鹰潭市信江广达小额贷款股份有限公司_D3_2019050805310101_0008.txt"), "utf-8");
//// for(int i=0;i<list.size();i++){
//// RepaymentLoanInfo repaymentLoanInfo = new Gson().fromJson(list.get(i), new TypeToken<RepaymentLoanInfo>(){}.getType());
//// repaymentLoanInfo.setReqID(UUID.randomUUID().toString().replaceAll("-", ""));
//// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/20190509/鹰潭市信江广达小额贷款股份有限公司_D3_2019050805310101_0004.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
//// }
// for(int i=0;i<list.size();i++){
// RepaymentLoanInfo repaymentLoanInfo = new Gson().fromJson(list.get(i), new TypeToken<RepaymentLoanInfo>(){}.getType());
//// String key = repaymentLoanInfo.getLoanId()+repaymentLoanInfo.getLoanStatus()+repaymentLoanInfo.getOverdueStatus()+repaymentLoanInfo.getTermNo()+"0"+repaymentLoanInfo.getStatusConfirmAt();
//// if(map.containsKey(key) && StringUtils.isBlank(repaymentLoanInfo.getRealRepaymentDate())){
//// System.out.println("包含key=="+key);
//// continue;
//// }
//
// if(repaymentLoanInfo.getLoanStatus()==3 && "overdue".equalsIgnoreCase(repaymentLoanInfo.getTermStatus())){
// System.out.println("shanchu"+repaymentLoanInfo.getLoanStatus()+"###"+repaymentLoanInfo.getTermStatus());
// continue;
// }
//
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/20190509/鹰潭市信江广达小额贷款股份有限公司_D3_2019050805310101_0009.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
// }
// System.out.println("完事");
// List<String> list = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/20190509/鹰潭市信江广达小额贷款股份有限公司_D3_2019050805310101_0009.txt"), "utf-8");
// List<String> tmp = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/20190509/tmp.txt"), "utf-8");
//// Map<String,RepaymentLoanInfo> repaymentLoanInfoMap = new HashMap<>();
//
//
// Map<String,String> map = new HashMap<>();
// for(int i=0;i<tmp.size();i++){
// String tmpargs[] = tmp.get(i).split("###");
// map.put(tmpargs[0]+tmpargs[1]+tmpargs[2], tmpargs[3]);
// }
//
// for(int i=1;i<list.size();i++){
// RepaymentLoanInfo repaymentLoanInfo = new Gson().fromJson(list.get(i), new TypeToken<RepaymentLoanInfo>(){}.getType());
// String key = repaymentLoanInfo.getLoanId()+repaymentLoanInfo.getPlannedPayment()+repaymentLoanInfo.getTermNo();
// if(map.containsKey(key)){
// repaymentLoanInfo.setPlannedPayment(new BigDecimal(map.get(key)).setScale(2, BigDecimal.ROUND_HALF_UP));
// repaymentLoanInfo.setOpCode("M");
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/20190509/鹰潭市信江广达小额贷款股份有限公司_D3_2019050805310101_0009_M.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
// }
// }
// List<String> list = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/20190509/鹰潭市信江广达小额贷款股份有限公司_D3_2019050805310101_0009.txt"), "utf-8");
// List<String> tmp = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/20190509/tmp.txt"), "utf-8");
//// Map<String,RepaymentLoanInfo> repaymentLoanInfoMap = new HashMap<>();
//
//
// Map<String,String> map = new HashMap<>();
// for(int i=0;i<tmp.size();i++){
// String tmpargs[] = tmp.get(i).split("###");
// map.put(tmpargs[0]+tmpargs[1]+tmpargs[2], tmpargs[3]);
// }
//
// for(int i=1;i<list.size();i++){
// RepaymentLoanInfo repaymentLoanInfo = new Gson().fromJson(list.get(i), new TypeToken<RepaymentLoanInfo>(){}.getType());
// String key = repaymentLoanInfo.getLoanId()+repaymentLoanInfo.getPlannedPayment()+repaymentLoanInfo.getTermNo();
// if(map.containsKey(key)){
// repaymentLoanInfo.setPlannedPayment(new BigDecimal(map.get(key)).setScale(2, BigDecimal.ROUND_HALF_UP));
//// repaymentLoanInfo.setOpCode("M");
// System.out.println(JSON.toJSONString(repaymentLoanInfo));
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/20190509/鹰潭市信江广达小额贷款股份有限公司_D3_2019052418260303_0001.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
// }else{
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/20190509/鹰潭市信江广达小额贷款股份有限公司_D3_2019052418260303_0001.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
// }
// }
// System.out.println("wanshi");
// List<String> list = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/20190509/鹰潭市信江广达小额贷款股份有限公司_D3_2019052418260303_0001.txt"), "utf-8");
// for(int i=0;i<list.size();i++){
// RepaymentLoanInfo repaymentLoanInfo = new Gson().fromJson(list.get(i), new TypeToken<RepaymentLoanInfo>(){}.getType());
//// repaymentLoanInfo.setName(interfaceUploadClient(repaymentLoanInfo.getName()));
//// repaymentLoanInfo.setMobile(interfaceUploadClient(repaymentLoanInfo.getMobile()));
//// repaymentLoanInfo.setPid(interfaceUploadClient(repaymentLoanInfo.getPid()));
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/20190509/鹰潭市信江广达小额贷款股份有限公司_D3_2019052418260303_0003_M.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
// }
// System.out.println("wanshi");
//
// List<String> list = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/20190509/鹰潭市信江广达小额贷款股份有限公司_C1_2019050805310101_0001.txt"), "utf-8");
// for(int i=1;i<list.size();i++){
// ApplyLoanInfo applyLoanInfo = new Gson().fromJson(list.get(i), new TypeToken<ApplyLoanInfo>(){}.getType());
//// applyLoanInfo.setName(interfaceUploadClient(applyLoanInfo.getName()));
//// applyLoanInfo.setMobile(interfaceUploadClient(applyLoanInfo.getMobile()));
//// applyLoanInfo.setPid(interfaceUploadClient(applyLoanInfo.getPid()));
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/20190509/鹰潭市信江广达小额贷款股份有限公司_C1_2019052418260303_0001_M.txt"), JSON.toJSONString(applyLoanInfo)+"\r\n", true);
// }
// System.out.println("wanshi");
// List<String> list = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/20190509/鹰潭市信江广达小额贷款股份有限公司_D2_2019050805310101_0001.txt"), "utf-8");
// for(int i=1;i<list.size();i++){
// LoanInfo loanInfo = new Gson().fromJson(list.get(i), new TypeToken<LoanInfo>(){}.getType());
//// loanInfo.setName(interfaceUploadClient(loanInfo.getName()));
//// loanInfo.setMobile(interfaceUploadClient(loanInfo.getMobile()));
//// loanInfo.setPid(interfaceUploadClient(loanInfo.getPid()));
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/20190509/鹰潭市信江广达小额贷款股份有限公司_D2_2019052418260303_0001_M.txt"), JSON.toJSONString(loanInfo)+"\r\n", true);
// }
// System.out.println("wanshi");
// List<String> list = FileUtils.readLines(new File("/Users/fengjunkai/Desktop/new/20190529/xinjiangguangda_D3_2019052910580303_0001.txt"), "utf-8");
// for(int i=0;i<list.size();i++){
// RepaymentLoanInfo repaymentLoanInfo = new Gson().fromJson(list.get(i), new TypeToken<RepaymentLoanInfo>(){}.getType());
// repaymentLoanInfo.setReqID(UUID.randomUUID().toString().replaceAll("-", ""));
// FileUtils.write(new File("/Users/fengjunkai/Desktop/new/20190529/xinjiangguangda_D3_2019052910580303_0002.txt"), JSON.toJSONString(repaymentLoanInfo)+"\r\n", true);
// }
// System.out.println(LocalDateTime.now().plusDays(-1).format(DateTimeFormatter.ISO_DATE));
// System.out.println(LocalDateTime.now().format(DateTimeFormatter.ISO_DATE));
// System.out.println(LocalDateTime.now().plusDays(-1).format(DateTimeFormatter.ISO_DATE));
// List<String> list = FileUtils.readLines(new File("/Users/fengjunkai/Downloads/baihang/百行2019-08-09至2019-08-10调用命中数据.txt"), "utf-8");
// for(int i=0;i<list.size();i++){
// String uuid = list.get(i);
// FileUtils.write(new File("/Users/fengjunkai/Downloads/baihang/data.txt"), uuid+"\t"+uuid+"\r\n", "utf-8", true);
// }
} catch (Exception e) {
e.printStackTrace();
}
}
}
......@@ -26,7 +26,7 @@ public class ReSendBaiHangService extends BaiHangService {
*/
public void sendLoaInfoReportToBaiHang(String startTime, String endTime) {
AtomicInteger atomicInteger = new AtomicInteger();
List<LoanInfo> loanInfos = new ArrayList<>();
List<LoanInfoZhuDai> loanInfos = new ArrayList<>();
Stopwatch sendWatch = Stopwatch.createStarted();
try{
Stopwatch queryWatch = Stopwatch.createStarted();
......@@ -34,7 +34,7 @@ public class ReSendBaiHangService extends BaiHangService {
log.info("广达小贷TO百行放款申请报送开始, 大小: {} , 耗时: {} ", loanInfos.size(), queryWatch.stop().elapsed(TimeUnit.MILLISECONDS));
for (int i = 0; i < loanInfos.size(); i++) {
LoanInfo loanInfo = loanInfos.get(i);
LoanInfoZhuDai loanInfo = loanInfos.get(i);
String id = "";
try {
String loanInfoReqId = loanInfo.getReqID();
......@@ -78,7 +78,7 @@ public class ReSendBaiHangService extends BaiHangService {
Stopwatch sendWatch = Stopwatch.createStarted();
try {
List<RepaymentLoanInfo> repaymentLoanInfos = null;
List<RepaymentInfoZhuDai> repaymentLoanInfos = null;
if (j == 0) {
Stopwatch realTimeStopWatch = Stopwatch.createStarted();
repaymentLoanInfos = repaymentLoanInfoMapper.findRepayMentLoanInfo(BaiHangTimeRecord.builder().startTime(startTime).endTime(endTime).build());
......@@ -92,10 +92,10 @@ public class ReSendBaiHangService extends BaiHangService {
AtomicInteger atomicInteger = new AtomicInteger();
for (int i = 0; i < repaymentLoanInfos.size(); i++) {
RepaymentLoanInfo repaymentLoanInfo = repaymentLoanInfos.get(i);
RepaymentInfoZhuDai repaymentLoanInfo = repaymentLoanInfos.get(i);
String id = "";
try {
RepaymentLoanInfo repaymentLoanInfo1 = repaymentLoanInfoDbMapper.findLastOne(BaiHangRepayment.builder().loanId(repaymentLoanInfo.getLoanId()).termNo(repaymentLoanInfo.getTermNo()).build());
RepaymentInfoZhuDai repaymentLoanInfo1 = repaymentLoanInfoDbMapper.findLastOne(BaiHangRepayment.builder().loanId(repaymentLoanInfo.getLoanId()).termNo(repaymentLoanInfo.getTermNo()).build());
if (j > 0 && Objects.nonNull(repaymentLoanInfo1)) {
log.info("广达小贷TO百行征信报送实时还款逾期跳过报送, startTime: {} , endTime: {} , bean: {} ", startTime, endTime, JSON.toJSONString(repaymentLoanInfo1));
continue;
......
......@@ -648,8 +648,8 @@ public class ManualToolService implements CommonSuperService {
//修改D3中的reqID
/* DateFormat df_uploadTs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
int rr = 1009822900;
DateFormat df_uploadTs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
int rr = 1009823900;
List<String> lineList = ReadOrWriteTxt.readTxtList("C:\\Users\\Administrator\\Desktop\\测试\\文件测试\\build\\tmp3.txt");
for(int i=0;i<lineList.size();i++){
RepaymentInfoZhuDai repaymentLoanInfo = new Gson().fromJson(lineList.get(i), new TypeToken<RepaymentInfoZhuDai>(){}.getType());
......@@ -657,21 +657,21 @@ public class ManualToolService implements CommonSuperService {
rr++;
String uploadTs = df_uploadTs.format(new Date());
repaymentLoanInfo.setReqID(rr+"");
repaymentLoanInfo.setUploadTs(uploadTs.replace(" ","T"));
//repaymentLoanInfo.setUploadTs(uploadTs.replace(" ","T"));
System.out.println(JSON.toJSONString(repaymentLoanInfo));
}
System.err.println(rr);*/
System.err.println(rr);
//将D2中FinTechAgencyBusinessZhuDai变成树形结构
List<String> lineD2List = ReadOrWriteTxt.readTxtList("C:\\Users\\Administrator\\Desktop\\测试\\文件测试\\build\\tmp2.txt");
/* List<String> lineD2List = ReadOrWriteTxt.readTxtList("C:\\Users\\Administrator\\Desktop\\测试\\文件测试\\build\\tmp2.txt");
for(int i=0;i<lineD2List.size();i++){
LoanInfoZhuDaiVo loanInfo = JSONObject.parseObject(lineD2List.get(i), LoanInfoZhuDaiVo.class);
FinTechAgencyBusinessZhuDai finTechAgencyBusiness = JSONObject.parseObject(lineD2List.get(i), FinTechAgencyBusinessZhuDai.class);
loanInfo.setFinTechAgencyBusiness(finTechAgencyBusiness);
System.out.println(JSON.toJSONString(loanInfo));
}
System.err.println("build D2 finTechAgencyBusiness end.");
System.err.println("build D2 finTechAgencyBusiness end.");*/
......
......@@ -3,7 +3,7 @@
<mapper namespace="cn.quantgroup.report.mapper.baihang.LoanInfoMapper">
<resultMap id="LoanInfoResultMap" type="cn.quantgroup.report.domain.baihang.LoanInfo">
<resultMap id="LoanInfoResultMap" type="cn.quantgroup.report.domain.baihang.LoanInfoVo">
<result column="reqID" jdbcType="VARCHAR" property="reqID"/>
<result column="opCode" jdbcType="VARCHAR" property="opCode"/>
<result column="uploadTs" jdbcType="VARCHAR" property="uploadTs"/>
......
......@@ -28,7 +28,7 @@
<!--实时逾期还款(百行征信报送)-->
<select id="findRepayMentLoanInfoOverdue"
parameterType="cn.quantgroup.report.domain.baihang.BaiHangTimeRecord"
resultType="cn.quantgroup.report.domain.baihang.RepaymentLoanInfo">
resultType="cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai">
select
a.id reqID
,'A' opCode
......@@ -84,7 +84,7 @@
<!--实时还款(百行征信报送)-->
<select id="findRepayMentLoanInfo" parameterType="cn.quantgroup.report.domain.baihang.BaiHangTimeRecord"
resultType="cn.quantgroup.report.domain.baihang.RepaymentLoanInfo">
resultType="cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai">
select
a.id reqID
,'A' opCode
......
......@@ -3,7 +3,7 @@
<mapper namespace="cn.quantgroup.report.mapper.master.LoanInfoDbMapper">
<resultMap id="LoanInfoResultMap" type="cn.quantgroup.report.domain.baihang.LoanInfo">
<resultMap id="LoanInfoResultMap" type="cn.quantgroup.report.domain.baihang.LoanInfoZhuDai">
<result column="recordId" jdbcType="VARCHAR" property="record_id"/>
<result column="reqID" jdbcType="VARCHAR" property="req_id"/>
<result column="opCode" jdbcType="VARCHAR" property="op_Code"/>
......@@ -26,19 +26,27 @@
<result column="gracePeriod" jdbcType="INTEGER" property="grace_period"/>
</resultMap>
<select id="saveLoanInfoRecordLog" parameterType="cn.quantgroup.report.domain.baihang.LoanInfo">
insert into loan_info (record_id, req_id, name, pid,mobile,op_Code,upload_ts,loan_id,guarantee_type,loan_purpose,apply_date,account_open_date,
<select id="saveLoanInfoRecordLog" parameterType="cn.quantgroup.report.domain.baihang.LoanInfoZhuDai">
<!--
insert into loan_info_zhudai (record_id, req_id, name, pid,mobile,op_Code,upload_ts,loan_id,guarantee_type,loan_purpose,apply_date,account_open_date,
issue_date,due_date,loan_amount,total_term,target_repay_date_type,term_period,first_repayment_date,grace_period)
VALUES (#{recordId},#{reqID},#{name},#{pid},#{mobile},#{opCode},#{uploadTs},#{loanId},#{guaranteeType},#{loanPurpose},#{applyDate}
,#{accountOpenDate},#{issueDate},#{dueDate},#{loanAmount},#{totalTerm},#{targetRepayDateType},#{termPeriod},#{firstRepaymentDate},#{gracePeriod})
,#{accountOpenDate},#{issueDate},#{dueDate},#{loanAmount},#{totalTerm},#{targetRepayDateType},#{termPeriod},#{firstRepaymentDate},#{gracePeriod})*/
-->
insert into loan_info_zhudai (record_id, req_id, name, pid,mobile,op_Code,upload_ts,loan_id,guarantee_type,loan_purpose,apply_date,account_open_date,
issue_date,due_date,loan_amount,total_term,target_repay_date_type,term_period,first_repayment_date,grace_period,
institutional_funding_partner,institutional_funding_partner_id,institutional_funding_partner_loan_id,relation_id,order_id,pre_credit_limit)
VALUES (#{recordId},#{reqID},#{name},#{pid},#{mobile},#{opCode},#{uploadTs},#{loanId},#{guaranteeType},#{loanPurpose},#{applyDate},
#{accountOpenDate},#{issueDate},#{dueDate},#{loanAmount},#{totalTerm},#{targetRepayDateType},#{termPeriod},#{firstRepaymentDate},#{gracePeriod},
#{institutionalFundingPartner},#{institutionalFundingPartnerID},#{institutionalFundingPartnerLoanID},#{relationID},#{orderID},#{preCreditLimit})
</select>
<update id="updateCurrentRecordEnableFalce" parameterType="cn.quantgroup.report.domain.baihang.BaiHangUpDateRecord">
update loan_info set enable = #{enable, jdbcType=VARCHAR} where record_id = #{recordId, jdbcType=VARCHAR};
update loan_info_zhudai set enable = #{enable, jdbcType=VARCHAR} where record_id = #{recordId, jdbcType=VARCHAR};
</update>
<select id="findAll" resultMap="LoanInfoResultMap">
select * from loan_info where enable = false;
select * from loan_info_zhudai where enable = false;
</select>
</mapper>
\ No newline at end of file
......@@ -3,7 +3,7 @@
<mapper namespace="cn.quantgroup.report.mapper.master.RepaymentLoanInfoDbMapper">
<resultMap id="RepaymetnLoanInfoResultMap" type="cn.quantgroup.report.domain.baihang.RepaymentLoanInfo">
<resultMap id="RepaymetnLoanInfoResultMap" type="cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai">
<result column="reqID" jdbcType="VARCHAR" property="req_id"/>
<result column="recordId" jdbcType="VARCHAR" property="record_id"/>
<result column="opCode" jdbcType="VARCHAR" property="op_code"/>
......@@ -54,9 +54,9 @@
</resultMap>
<select id="saveRepaymentLoanInfoLog" parameterType="cn.quantgroup.report.domain.baihang.RepaymentLoanInfo" resultType="cn.quantgroup.report.domain.baihang.RepaymentLoanInfo">
<select id="saveRepaymentLoanInfoLog" parameterType="cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai" resultType="cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai">
insert into
repayment_loan_info
repayment_loan_info_zhudai
(record_id,req_id ,name,pid ,mobile ,op_code ,upload_ts ,loan_id ,term_no ,term_status ,target_repayment_date ,real_repayment_date,planned_payment ,target_repayment,real_repayment ,overdue_amount,remaining_amount,overdue_status,loan_status,status_confirm_at)
values (#{recordId, jdbcType=VARCHAR},#{reqID, jdbcType=VARCHAR},#{name, jdbcType=VARCHAR},#{pid, jdbcType=VARCHAR},#{mobile, jdbcType=VARCHAR},#{opCode, jdbcType=VARCHAR},
#{uploadTs, jdbcType=VARCHAR},#{loanId, jdbcType=VARCHAR},#{termNo, jdbcType=INTEGER},#{termStatus, jdbcType=INTEGER},#{targetRepaymentDate, jdbcType=VARCHAR},#{realRepaymentDate, jdbcType=VARCHAR},
......@@ -65,21 +65,21 @@
</select>
<update id="updateCurrentRecordEnableFalse" parameterType="cn.quantgroup.report.domain.baihang.BaiHangUpDateRecord">
update repayment_loan_info set enable = #{enable, jdbcType=VARCHAR}, updated_at = CURRENT_TIMESTAMP() where record_id = #{recordId, jdbcType=VARCHAR};
update repayment_loan_info_zhudai set enable = #{enable, jdbcType=VARCHAR}, updated_at = CURRENT_TIMESTAMP() where record_id = #{recordId, jdbcType=VARCHAR};
</update>
<select id="findAll" resultMap="RepaymetnLoanInfoResultMap">
select * from repayment_loan_info where enable = false;
select * from repayment_loan_info_zhudai where enable = false;
</select>
<select id="findLastOne" parameterType="cn.quantgroup.report.domain.baihang.BaiHangRepayment" resultType="cn.quantgroup.report.domain.baihang.RepaymentLoanInfo">
select * from repayment_loan_info where loan_id = #{loanId} and term_no = #{termNo} limit 1;
<select id="findLastOne" parameterType="cn.quantgroup.report.domain.baihang.BaiHangRepayment" resultType="cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai">
select * from repayment_loan_info_zhudai where loan_id = #{loanId} and term_no = #{termNo} limit 1;
</select>
<!--根据日志中的reqID查询loan_id及还款信息 2019.09.25-->
<select id="findByRecordId" resultMap="RepaymentLoanInfoVoResultMapByBS">
SELECT * from repayment_loan_info
SELECT * from repayment_loan_info_zhudai
WHERE op_code='A' and record_id IN
<foreach collection="array" item="recordId" index="index" open="(" close=")" separator=",">
#{recordId}
......
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