Commit e6e89966 authored by 陈宏杰's avatar 陈宏杰

汇总加密文件名

parent 0e02eb1a
......@@ -94,6 +94,8 @@ public class BaiHangFileReportService {
if (StringUtils.isAnyBlank(type, start, end, loanStartDateStr, loanEndDateStr)) {
throw new QGException(COMMON_ILLEGAL_PARAM_TOAST,"存在为空参数");
}
String encryptFileName = null;
List<String> encryptFileNameList = new LinkedList();
daySplitCount = Objects.isNull(daySplitCount) ? 10 : daySplitCount;
String dateFormat = "yyyy-MM-dd";
Date stepStartDate = DateUtils.parseDate(dateFormat,start);
......@@ -104,13 +106,19 @@ public class BaiHangFileReportService {
Date loanEndDate = DateUtils.parseDate(dateFormat,loanEndDateStr);
Stopwatch stopwatch = Stopwatch.createStarted();
while (stepEndDate.getTime() <= endDate.getTime()){
createReportFile(type,stepStartDate,stepEndDate,loanStartDate,loanEndDate,prefix);
encryptFileName = createReportFile(type,stepStartDate,stepEndDate,loanStartDate,loanEndDate,prefix);
encryptFileNameList.add(encryptFileName);
stepStartDate = new Date(stepEndDate.getTime());
stepEndDate = org.apache.commons.lang3.time.DateUtils.addDays(stepEndDate,daySplitCount);
}
log.info("当前 {} -- {}--{} 任务执行结束 总耗时 : {}",type,start,end,stopwatch.elapsed(TimeUnit.MILLISECONDS));
if (stepEndDate.getTime() > endDate.getTime()){
createReportFile(type,stepStartDate,endDate,loanStartDate,loanEndDate,prefix);
encryptFileName = createReportFile(type,stepStartDate,endDate,loanStartDate,loanEndDate,prefix);
encryptFileNameList.add(encryptFileName);
}
if (!CollectionUtils.isEmpty(encryptFileNameList)) {
File file = new File(HOST_PATH+"存量报送加密文件名称集合_"+type+"_"+start.replace("-","")+"_"+end.replace("-","")+"_"+DateUtils.formatDate(new Date(),"yyyyMMddHHmm")+".txt");
FileUtils.writeLines(file,encryptFileNameList);
}
} catch (Exception e) {
log.error("创建报送文件异常!",e);
......@@ -119,7 +127,8 @@ public class BaiHangFileReportService {
}
}
private void createReportFile(String type, Date startDate, Date endDate, Date loanStartDate, Date loanEndDate, String prefix) {
private String createReportFile(String type, Date startDate, Date endDate, Date loanStartDate, Date loanEndDate, String prefix) {
String encryptFileName = null;
Stopwatch stopwatch = Stopwatch.createStarted();
String starTime = DateUtils.formatDate(startDate,"yyyy-MM-dd HH:mm:ss");
String endTime = DateUtils.formatDate(endDate,"yyyy-MM-dd HH:mm:ss");
......@@ -128,22 +137,24 @@ public class BaiHangFileReportService {
if (!starTime.equals(endTime)) {
log.info("开始生成报送文件{}----- {} -- {}",type,starTime,endTime);
if ("A1".equalsIgnoreCase(type)) {
reportA1(starTime,endTime);
encryptFileName = reportA1(starTime,endTime);
} else if ("D2".equalsIgnoreCase(type)) {
reportD2(starTime,endTime,prefix);
encryptFileName = reportD2(starTime,endTime,prefix);
} else if ("D3".equalsIgnoreCase(type)) {
reportD3(starTime,endTime,prefix);
// encryptFileName = reportD3(starTime,endTime,prefix);
throw new QGException(COMMON_ILLEGAL_PARAM_TOAST,"暂不支持该类型数据报送");
} else if ("D3O".equalsIgnoreCase(type)) {
reportD3O(starTime,endTime,prefix);
encryptFileName = reportD3O(starTime,endTime,prefix);
} else if ("D3R".equalsIgnoreCase(type)) {
reportD3R(starTime,endTime,loanStartTime,loanEndTime,prefix);
encryptFileName = reportD3R(starTime,endTime,loanStartTime,loanEndTime,prefix);
} else if ("D3O30".equalsIgnoreCase(type)) {
reportD3OFor30Day(starTime,endTime,prefix);
encryptFileName = reportD3OFor30Day(starTime,endTime,prefix);
} else {
throw new QGException(COMMON_ILLEGAL_PARAM_TOAST,"报送类型不正确");
}
log.info("生成报送文件结束{}----- {} -- {},耗时 {}",type,starTime,endTime,stopwatch.elapsed(TimeUnit.MILLISECONDS));
}
return encryptFileName;
}
/**
......@@ -151,7 +162,8 @@ public class BaiHangFileReportService {
* @param starTime 开始时间
* @param endTime 截止时间
*/
private void reportA1(String starTime, String endTime){
private String reportA1(String starTime, String endTime){
String encryptFileName = null;
try {
Stopwatch queryWatch1 = Stopwatch.createStarted();
BaiHangTimeRecord timeRecord = BaiHangTimeRecord.builder().startTime(starTime).endTime(endTime).build();
......@@ -201,12 +213,13 @@ public class BaiHangFileReportService {
if (reportList.size()<=1) {
log.info("量化派助贷TO百行报送(A1)-贷款申请信息为空,加密文件不生成!starTime={},endTime={}",starTime,endTime);
} else {
createFile(file.getAbsolutePath());
encryptFileName = createFile(file.getAbsolutePath());
}
log.info("量化派助贷TO百行报送(A1)-贷款申请信息完成, 实际大小: {} , 报送成功大小: {} , 耗时: {} ", applyLoanInfos.size(), atomicInteger.get(), sendWatch.stop().elapsed(TimeUnit.MILLISECONDS));
} catch (Exception e) {
log.error("量化派助贷TO百行报送(A1)-异常", e);
}
return encryptFileName;
}
/**
......@@ -214,7 +227,8 @@ public class BaiHangFileReportService {
* @param starTime 开始时间
* @param endTime 截至时间
*/
private void reportD2(String starTime, String endTime, String prefix) {
private String reportD2(String starTime, String endTime, String prefix) {
String encryptFileName = null;
List<LoanInfoZhuDai> loanInfozdList = null,recordList = new ArrayList<>(D2_INITIAL_CAPACITY);
Stopwatch stopwatch = Stopwatch.createStarted();
try {
......@@ -284,7 +298,7 @@ public class BaiHangFileReportService {
if (reportList.size()<=1) {
log.info("量化派助贷TO百行报送-放款信息为空,加密文件不生成!starTime={},endTime={}",starTime,endTime);
} else {
createFile(file.getAbsolutePath());
encryptFileName = createFile(file.getAbsolutePath());
}
log.info("量化派助贷TO百行报送-放款申请完成, 实际大小: {} , 报送成功大小: {} , 耗时: {} ", loanInfozdList.size(), atomicInteger.get(), sendWatch.stop().elapsed(TimeUnit.MILLISECONDS));
} catch (Exception e) {
......@@ -292,6 +306,7 @@ public class BaiHangFileReportService {
} finally {
clear(loanInfozdList,recordList);
}
return encryptFileName;
}
/**
......@@ -299,7 +314,8 @@ public class BaiHangFileReportService {
* @param startTime 开始时间
* @param endTime 截止时间
*/
private void reportD3( String startTime, String endTime, String prefix) {
private String reportD3( String startTime, String endTime, String prefix) {
String encryptFileName = null;
for (int j = 0; j < 2; j++) {
List<String> reportList = new ArrayList<>();
reportList.add("#singleLoanRepayInfo");
......@@ -352,19 +368,21 @@ public class BaiHangFileReportService {
}
File file = new File(HOST_PATH+"量子数科科技有限公司_D3_"+endTime.split("T")[0].replaceAll("-","")+"_"+"0003"+".txt");
FileUtils.writeLines(file,reportList);
createFile(file.getName());
encryptFileName = createFile(file.getName());
log.info("量化派助贷TO百行报送-还款申请完成 J: {} , 开始时间: {} , 结束时间: {} , 实际大小: {} , 报送成功大小: {} , 耗时: {} ", j, startTime, endTime, repaymentLoanInfos.size(), atomicInteger.get(), sendWatch.stop().elapsed(TimeUnit.MILLISECONDS));
} catch (Exception e) {
log.error("量化派助贷TO百行报送-异常 J: {} , 开始时间: {} , 结束时间: {} ", j, startTime, endTime, e);
}
}
return encryptFileName;
}
/**
* 根据传入的文件路径将加密后的文件生成到 {@link BaiHangFileReportService#HOST_PATH}中
* @param filePath 需要加密的文件路径
*/
private static void createFile(String filePath){
private static String createFile(String filePath){
String encryptFileName = null;
log.info("创建加密文件,明文文件路径 {}",filePath);
File host = new File(HOST_PATH);
if (!host.exists()){
......@@ -384,10 +402,12 @@ public class BaiHangFileReportService {
FileUploadResponse response = client.execute(req);
log.info("执行压缩加密操作出参{}",JSONObject.toJSONString(response));
if(response.isSuccess){
encryptFileName = response.getEncryptFileName();
System.out.println("zip And encrypt success;fileName = "+response.getEncryptFilePath() + response.getEncryptFileName());
}else{
System.out.println("zip And encrypt fail;errorMessage = "+response.getErrorMessage());
}
return encryptFileName;
}
private String sensitiveFilter(String s){
......@@ -418,7 +438,8 @@ public class BaiHangFileReportService {
* @param startTime 开始时间
* @param endTime 截止时间
*/
private void reportD3O(String startTime, String endTime, String prefix) {
private String reportD3O(String startTime, String endTime, String prefix) {
String encryptFileName = null;
List<RepaymentInfoZhuDai> repaymentLoanInfos = null,recordList = new ArrayList<>(D3_INITIAL_CAPACITY);
List<String> reportList = new ArrayList<>(D3_INITIAL_CAPACITY);
reportList.add("#singleLoanRepayInfo");
......@@ -457,7 +478,7 @@ public class BaiHangFileReportService {
if (reportList.size()<=1) {
log.info("量化派助贷TO百行报送(D3)-逾期记录为空,加密文件不生成!starTime={},endTime={}",startTime,endTime);
} else {
createFile(file.getAbsolutePath());
encryptFileName = createFile(file.getAbsolutePath());
}
log.info("量化派助贷TO百行报送(D3)-逾期记录完成,开始时间: {} , 结束时间: {} , 实际大小: {} , 报送成功大小: {} , 耗时: {} ", startTime, endTime, repaymentLoanInfos.size(), atomicInteger.get(), sendWatch.stop().elapsed(TimeUnit.MILLISECONDS));
} catch (Exception e) {
......@@ -465,12 +486,14 @@ public class BaiHangFileReportService {
} finally {
clear(repaymentLoanInfos,recordList,reportList);
}
return encryptFileName;
}
/**
* 应还款日次日起,每30天的次日报送一次逾期记录,直至结清或转出
*/
private void reportD3OFor30Day(String startTime, String endTime, String prefix) {
private String reportD3OFor30Day(String startTime, String endTime, String prefix) {
String encryptFileName = null;
List<LoanApplicationHistoryIdInfo> idInfos = null;
LoanApplicationHistoryIdInfo idInfo = null;
List<RepaymentInfoZhuDai> repaymentLoanInfos = new ArrayList<>(D3_INITIAL_CAPACITY),tempRepaymentLoanInfos = null,recordList = new ArrayList<>(D3_INITIAL_CAPACITY);
......@@ -529,7 +552,7 @@ public class BaiHangFileReportService {
if (reportList.size()<=1) {
log.info("量化派助贷TO百行报送(D3)-每30天逾期记录为空,加密文件不生成!starTime={},endTime={}",startTime,endTime);
} else {
createFile(file.getAbsolutePath());
encryptFileName = createFile(file.getAbsolutePath());
}
log.info("量化派助贷TO百行报送(D3)-每30天逾期记录完成,开始时间: {} , 结束时间: {} , 实际大小: {} , 报送成功大小: {} , 耗时: {} ", startTime, endTime, repaymentLoanInfos.size(), atomicInteger.get(), sendWatch.stop().elapsed(TimeUnit.MILLISECONDS));
} catch (Exception e) {
......@@ -537,6 +560,7 @@ public class BaiHangFileReportService {
} finally {
clear(idInfos,repaymentLoanInfos,tempRepaymentLoanInfos,recordList,reportList);
}
return encryptFileName;
}
/**
......@@ -544,7 +568,8 @@ public class BaiHangFileReportService {
* @param startTime 开始时间
* @param endTime 截止时间
*/
private void reportD3R(String startTime, String endTime, String loanStartTime, String loanEndTime, String prefix) {
private String reportD3R(String startTime, String endTime, String loanStartTime, String loanEndTime, String prefix) {
String encryptFileName = null;
List<RepaymentInfoZhuDai> repaymentLoanInfos = null,recordList = new ArrayList<>(D3_INITIAL_CAPACITY);
List<String> reportList = new ArrayList<>(D3_INITIAL_CAPACITY);
reportList.add("#singleLoanRepayInfo");
......@@ -583,7 +608,7 @@ public class BaiHangFileReportService {
if (reportList.size()<=1) {
log.info("量化派助贷TO百行报送(D3)-还款记录为空,加密文件不生成!starTime={},endTime={}",startTime,endTime);
} else {
createFile(file.getAbsolutePath());
encryptFileName = createFile(file.getAbsolutePath());
}
log.info("量化派助贷TO百行报送(D3)-还款记录完成,开始时间: {} , 结束时间: {} , 实际大小: {} , 报送成功大小: {} , 耗时: {} ", startTime, endTime, repaymentLoanInfos.size(), atomicInteger.get(), sendWatch.stop().elapsed(TimeUnit.MILLISECONDS));
} catch (Exception e) {
......@@ -591,6 +616,7 @@ public class BaiHangFileReportService {
} finally {
clear(repaymentLoanInfos,recordList,reportList);
}
return encryptFileName;
}
private void clear(Collection ... collections) {
......
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