Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
B
baihang-report
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
data-spider
baihang-report
Commits
e6e89966
Commit
e6e89966
authored
Aug 13, 2021
by
陈宏杰
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
汇总加密文件名
parent
0e02eb1a
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
48 additions
and
22 deletions
+48
-22
BaiHangFileReportService.java
...roup/report/service/baihang/BaiHangFileReportService.java
+48
-22
No files found.
src/main/java/cn/quantgroup/report/service/baihang/BaiHangFileReportService.java
View file @
e6e89966
...
...
@@ -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
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment