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
db93dad1
Commit
db93dad1
authored
Nov 18, 2019
by
郝彦辉
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改优化
parent
44bdcc8e
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
84 additions
and
26 deletions
+84
-26
QuantGroupZhuDaiReportToBaiHang.java
...uantgroup/report/job/QuantGroupZhuDaiReportToBaiHang.java
+29
-9
SynLoanInfoHistoryTask.java
...java/cn/quantgroup/report/job/SynLoanInfoHistoryTask.java
+7
-6
BaiHangZhuDaiService.java
...antgroup/report/service/baihang/BaiHangZhuDaiService.java
+25
-4
ManualToolService.java
...antgroup/report/service/manualTool/ManualToolService.java
+23
-7
No files found.
src/main/java/cn/quantgroup/report/job/QuantGroupZhuDaiReportToBaiHang.java
View file @
db93dad1
...
...
@@ -2,6 +2,7 @@ package cn.quantgroup.report.job;
import
cn.quantgroup.report.service.baihang.BaiHangZhuDaiService
;
import
cn.quantgroup.report.service.baihang.constant.Constant
;
import
cn.quantgroup.report.utils.dingtalk.DingTalk
;
import
com.google.common.base.Stopwatch
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
...
...
@@ -38,26 +39,45 @@ public class QuantGroupZhuDaiReportToBaiHang {
@Autowired
private
BaiHangZhuDaiService
baiHangZhuDaiService
;
@Autowired
private
SynLoanInfoHistoryTask
synLoanInfoHistoryTask
;
@Autowired
private
DingTalk
dingTalk
;
@Async
/* @Scheduled(cron = "0 0 5 * * ?")*/
//@Scheduled(cron = "0 0 5 * * ?")
public
void
startZhuDaiReport
(){
if
(
increment
()){
redisTemplate
.
expire
(
Constant
.
QG_ZHU_DAI_REPORT_LOCK_KEY
,
10
,
TimeUnit
.
SECONDS
);
Stopwatch
stopwatch
=
Stopwatch
.
createStarted
();
boolean
tableIsSyn
=
synLoanInfoHistoryTask
.
syn_historyAndplan_by_id
();
if
(
tableIsSyn
){
try
{
//yyyy-MM-dd
String
startnyr
=
LocalDateTime
.
now
().
plusDays
(-
1
).
format
(
DateTimeFormatter
.
ISO_DATE
);
String
endnyr
=
LocalDateTime
.
now
().
format
(
DateTimeFormatter
.
ISO_DATE
);
log
.
info
(
"量化派-助贷模式报送贷款信息开始, newTime: {} , startnyr: {} , endnyr: {} "
,
LocalDateTime
.
now
(),
startnyr
,
endnyr
);
baiHangZhuDaiService
.
sendZhuDaiApplyToBaiHang
(
startnyr
,
endnyr
);
//生产 助贷-贷款申请 报送T+1 暂时先不报送C1 因为百行还没有开放查询接口
String
msg_A1
=
baiHangZhuDaiService
.
sendZhuDaiApplyToBaiHang
(
startnyr
,
endnyr
);
//生产 助贷-贷款申请 报送T+1 暂时先不报送C1 因为百行还没有开放查询接口
String
msg_D2
=
baiHangZhuDaiService
.
sendZhuDaiLoanToBaiHang
(
startnyr
,
endnyr
);
//生产 助贷-放款信息 报送T+1
String
msg_D3
=
baiHangZhuDaiService
.
sendZhuDaiRepaymentToBaiHang
(
startnyr
,
endnyr
);
//生产 助贷-还款&逾期信息 报送T+1
baiHangZhuDaiService
.
sendZhuDaiLoanToBaiHang
(
startnyr
,
endnyr
);
//生产 助贷-放款信息 报送T+1
log
.
info
(
"量化派-助贷模式报送贷款信息结束, newTime: {}, 耗时: {} , msg: {} "
,
LocalDateTime
.
now
(),
stopwatch
.
stop
().
elapsed
(
TimeUnit
.
MILLISECONDS
),
(
msg_A1
+
msg_D2
+
msg_D3
));
dingTalk
.
talk
(
"Info"
,
"报送贷款信息结束"
,
msg_A1
+
msg_D2
+
msg_D3
);
baiHangZhuDaiService
.
sendZhuDaiRepaymentToBaiHang
(
startnyr
,
endnyr
);
//生产 助贷-还款&逾期信息 报送T+1
}
catch
(
Exception
e
){
log
.
error
(
"量化派-助贷模式报送贷款信息异常, newTime: {}, 耗时: {} "
,
LocalDateTime
.
now
(),
stopwatch
.
stop
().
elapsed
(
TimeUnit
.
MILLISECONDS
),
e
);
dingTalk
.
talk
(
"Error"
,
"报送服务内部异常"
,
e
);
dingTalk
.
talk_ToUser
(
"报送服务内部异常,请尽快手动处理!"
);
}
log
.
info
(
"量化派-助贷模式报送贷款信息息结束, endTime: {}, 耗时: {} "
,
LocalDateTime
.
now
(),
stopwatch
.
stop
().
elapsed
(
TimeUnit
.
MILLISECONDS
));
}
else
{
log
.
error
(
"量化派-助贷模式报送贷款信息失败, 原因是同步历史表数据返回false, 请尽快人工处理, newTime: {} "
,
LocalDateTime
.
now
());
}
}
}
...
...
src/main/java/cn/quantgroup/report/job/
LoanApplicationManifest
HistoryTask.java
→
src/main/java/cn/quantgroup/report/job/
SynLoanInfo
HistoryTask.java
View file @
db93dad1
...
...
@@ -31,9 +31,9 @@ import java.util.concurrent.atomic.AtomicBoolean;
* -----------------------------------------------------------------------------
*/
@Component
public
class
LoanApplicationManifest
HistoryTask
{
public
class
SynLoanInfo
HistoryTask
{
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
LoanApplicationManifest
HistoryTask
.
class
);
private
static
final
Logger
log
=
LoggerFactory
.
getLogger
(
SynLoanInfo
HistoryTask
.
class
);
@Autowired
private
RedisTemplate
<
String
,
String
>
redisTemplate
;
...
...
@@ -73,13 +73,13 @@ public class LoanApplicationManifestHistoryTask {
}
p
ublic
Boolean
increment
(){
p
rivate
Boolean
increment
(){
Long
increment
=
redisTemplate
.
opsForValue
().
increment
(
Constant
.
XYQB_HISTORY_DAI_REPORT_LOCK_KEY
,
1
);
return
increment
<=
1
;
}
p
ublic
void
syn_history_by_CreatedAt
(){
@Deprecated
p
rivate
void
syn_history_by_CreatedAt
(){
LocalDateTime
erlyDate
=
LocalDateTime
.
parse
(
"2016-08-23T00:00:00"
);
//2016-08-23T16:29:10
LocalDateTime
endDate
=
LocalDateTime
.
parse
(
"2019-11-01T00:00:00"
);
//2019-11-11 12:32:08
int
counter
=
0
;
...
...
@@ -111,7 +111,8 @@ public class LoanApplicationManifestHistoryTask {
}
}
public
void
syn_plan_by_CreatedAt
(){
@Deprecated
private
void
syn_plan_by_CreatedAt
(){
LocalDateTime
erlyDate
=
LocalDateTime
.
parse
(
"2016-08-23T00:00:00"
);
//2016-08-23T16:29:10
LocalDateTime
endDate
=
LocalDateTime
.
parse
(
"2019-11-01T00:00:00"
);
//2019-11-11 12:32:08
int
counter
=
0
;
...
...
src/main/java/cn/quantgroup/report/service/baihang/BaiHangZhuDaiService.java
View file @
db93dad1
...
...
@@ -167,7 +167,7 @@ public class BaiHangZhuDaiService {
* 助贷模式-实时批量报送用户贷款申请A1数据
* Scheduled 贷款申请(百行征信报送)
*/
public
void
sendZhuDaiApplyToBaiHang
(
String
startnyr
,
String
endnyr
)
{
public
String
sendZhuDaiApplyToBaiHang
(
String
startnyr
,
String
endnyr
)
{
//yyyy-MM-dd
Stopwatch
queryWatch1
=
Stopwatch
.
createStarted
();
BaiHangTimeRecord
timeRecord
=
BaiHangTimeRecord
.
builder
().
startTime
(
startnyr
).
endTime
(
endnyr
).
build
();
...
...
@@ -213,6 +213,9 @@ public class BaiHangZhuDaiService {
}
}
log
.
info
(
"量化派助贷TO百行报送-贷款申请报送完成, 实际大小: {} , 报送成功大小: {} , 耗时: {} "
,
applyLoanInfos
.
size
(),
atomicInteger
.
get
(),
(
sendWatch
.
stop
().
elapsed
(
TimeUnit
.
MILLISECONDS
)/
1000
)+
".s"
);
String
resMsgTemp
=
"申请A1报送: 查询 %d条(联合贷%d条), 报送成功 %d条; "
;
return
String
.
format
(
resMsgTemp
,
applyLoanInfos
.
size
(),
(
applyLoanInfosLh
!=
null
?
applyLoanInfosLh
.
size
():
0
),
atomicInteger
.
get
());
}
...
...
@@ -220,13 +223,14 @@ public class BaiHangZhuDaiService {
* 助贷模式-实时批量报送放款D2数据
* Scheduled 实时放款数据(百行征信报送)
*/
public
void
sendZhuDaiLoanToBaiHang
(
String
startnyr
,
String
endnyr
)
{
public
String
sendZhuDaiLoanToBaiHang
(
String
startnyr
,
String
endnyr
)
{
//yyyy-MM-dd
BaiHangTimeRecord
timeRecord
=
BaiHangTimeRecord
.
builder
().
startTime
(
startnyr
).
endTime
(
endnyr
).
build
();
AtomicInteger
atomicInteger
=
new
AtomicInteger
();
List
<
LoanInfoZhuDai
>
loanInfos
=
new
ArrayList
<>();
Stopwatch
sendWatch
=
Stopwatch
.
createStarted
();
int
loanInfosLhSize
=
0
;
try
{
Stopwatch
queryWatch1
=
Stopwatch
.
createStarted
();
loanInfos
=
loanInfoMapper
.
findRealTimeLoanInfoZhuDai
(
timeRecord
);
...
...
@@ -234,7 +238,9 @@ public class BaiHangZhuDaiService {
Stopwatch
queryWatch2
=
Stopwatch
.
createStarted
();
List
<
LoanInfoZhuDai
>
loanInfosLh
=
loanInfoMapper
.
findRealTimeLoanInfoZhuDaiLh
(
timeRecord
);
log
.
info
(
"量化派助贷TO百行报送-联合贷放款申请报送开始, 大小: {} , 耗时: {} "
,
loanInfosLh
.
size
(),
(
queryWatch2
.
stop
().
elapsed
(
TimeUnit
.
MILLISECONDS
)/
1000
)+
".s"
);
loanInfosLhSize
=
loanInfosLh
!=
null
?
loanInfosLh
.
size
()
:
0
;
log
.
info
(
"量化派助贷TO百行报送-联合贷放款申请报送开始, 大小: {} , 耗时: {} "
,
loanInfosLhSize
,
(
queryWatch2
.
stop
().
elapsed
(
TimeUnit
.
MILLISECONDS
)/
1000
)+
".s"
);
if
(
loanInfos
==
null
){
loanInfos
=
new
ArrayList
<
LoanInfoZhuDai
>();
...
...
@@ -316,6 +322,9 @@ public class BaiHangZhuDaiService {
log
.
error
(
"量化派助贷TO百行报送-异常"
,
e
);
}
log
.
info
(
"量化派助贷TO百行报送-放款申请完成, 实际大小: {} , 报送成功大小: {} , 耗时: {} "
,
loanInfos
.
size
(),
atomicInteger
.
get
(),
(
sendWatch
.
stop
().
elapsed
(
TimeUnit
.
MILLISECONDS
)/
1000
)+
".s"
);
String
resMsgTemp
=
"放款D2报送: 查询 %d条(联合贷%d条), 报送成功 %d条; "
;
return
String
.
format
(
resMsgTemp
,
loanInfos
.
size
(),
loanInfosLhSize
,
atomicInteger
.
get
());
}
...
...
@@ -323,9 +332,12 @@ public class BaiHangZhuDaiService {
* 助贷模式-实时还款&实时逾期还款D3数据报送
* Scheduled 还款&逾期(百行征信报送)
*/
public
void
sendZhuDaiRepaymentToBaiHang
(
String
startnyr
,
String
endnyr
)
{
public
String
sendZhuDaiRepaymentToBaiHang
(
String
startnyr
,
String
endnyr
)
{
//yyyy-MM-dd
BaiHangTimeRecord
timeRecord
=
BaiHangTimeRecord
.
builder
().
startTime
(
startnyr
).
endTime
(
endnyr
).
build
();
String
resMsg
=
""
;
String
temp_huanKuan
=
"还款D3报送: 查询 %d条(联合贷%d条), 报送成功 %d条; "
;
String
temp_yuQi
=
"逾期D3报送: 查询 %d条(联合贷%d条), 报送成功 %d条; "
;
for
(
int
j
=
0
;
j
<
2
;
j
++)
{
Stopwatch
sendWatch
=
Stopwatch
.
createStarted
();
...
...
@@ -397,11 +409,20 @@ public class BaiHangZhuDaiService {
log
.
error
(
"量化派助贷TO百行报送-还款信息异常, reqId_log: {} , recordId: {} , loanId: {} "
,
reqId_log
,
id
,
repaymentLoanInfo
.
getLoanId
(),
e
);
}
}
if
(
j
==
0
)
{
resMsg
+=
String
.
format
(
temp_huanKuan
,
repaymentLoanInfos
.
size
(),
(
repaymentLoanInfosLh
!=
null
?
repaymentLoanInfosLh
.
size
()
:
0
),
atomicInteger
.
get
());
}
else
{
resMsg
+=
String
.
format
(
temp_yuQi
,
repaymentLoanInfos
.
size
(),
(
repaymentLoanInfosLh
!=
null
?
repaymentLoanInfosLh
.
size
()
:
0
),
atomicInteger
.
get
());
}
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
);
}
}
return
resMsg
;
}
...
...
src/main/java/cn/quantgroup/report/service/manualTool/ManualToolService.java
View file @
db93dad1
...
...
@@ -10,7 +10,6 @@ import cn.quantgroup.report.mapper.baihang.LoanInfoMapper;
import
cn.quantgroup.report.mapper.master.RepaymentLoanInfoDbMapper
;
import
cn.quantgroup.report.response.GlobalResponse
;
import
cn.quantgroup.report.service.CommonSuperService
;
import
cn.quantgroup.report.service.baihang.util.TuoMinUtils
;
import
cn.quantgroup.report.utils.IdUtils
;
import
cn.quantgroup.report.utils.ReadOrWriteTxt
;
import
cn.quantgroup.report.utils.commonutil.AesCrypto
;
...
...
@@ -937,16 +936,17 @@ public class ManualToolService implements CommonSuperService {
public
static
void
buildD3_logicerror
()
{
//"D3_041", 贷款账户编号loanId+还款期数termNo+还款状态确认时间statusConfirmAt+业务发生机构代码在还款记录中唯一。
List
<
String
>
logicerrorList
=
ReadOrWriteTxt
.
readTxtList
(
"D:\\JavaTeam\\D3_build\\d3_041_errData.txt"
);
Map
<
String
,
String
>
err_log_loanIdMap
=
new
HashMap
<>(
logicerrorList
.
size
());
for
(
String
strs
:
logicerrorList
){
String
[]
tmpArr
=
strs
.
split
(
"[|]"
);
err_log_loanIdMap
.
put
(
tmpArr
[
1
],
strs
);
//err_log_loanIdMap.put(tmpArr[1], strs);
err_log_loanIdMap
.
put
(
tmpArr
[
1
]+
","
+
tmpArr
[
2
]+
","
+
tmpArr
[
3
],
strs
);
}
System
.
out
.
println
(
"err_log_loanIdMap 大小:"
+
err_log_loanIdMap
.
size
());
List
<
String
>
lineList
=
ReadOrWriteTxt
.
readTxtList
(
"D:\\JavaTeam\\D3_build\\D3_04.txt"
);
System
.
out
.
println
(
"lineList:"
+
lineList
.
size
());
String
fileName
=
"D:\\JavaTeam\\D3_build\\new_D3_04.txt"
;
...
...
@@ -963,9 +963,7 @@ public class ManualToolService implements CommonSuperService {
RepaymentInfoZhuDai
repaymentLoanInfo
=
new
Gson
().
fromJson
(
str
,
new
TypeToken
<
RepaymentInfoZhuDai
>(){}.
getType
());
String
loanId
=
repaymentLoanInfo
.
getLoanId
();
if
(
err_log_loanIdMap
.
containsKey
(
loanId
)){
/*if(err_log_loanIdMap.containsKey(loanId)){
//2|100011189|9|2019-02-22T00:00:00|
String[] errMsgArr = err_log_loanIdMap.get(loanId).split("[|]");
if(repaymentLoanInfo.getTermNo()==Integer.parseInt(errMsgArr[2]) && repaymentLoanInfo.getStatusConfirmAt().equals(errMsgArr[3])){
...
...
@@ -977,9 +975,21 @@ public class ManualToolService implements CommonSuperService {
}
}
}
}*/
String
key
=
loanId
+
","
+
repaymentLoanInfo
.
getTermNo
()+
","
+
repaymentLoanInfo
.
getStatusConfirmAt
();
if
(
err_log_loanIdMap
.
containsKey
(
key
))
{
//100011189,9,2019-02-22T00:00:00
if
(
repaymentLoanInfo
.
getRealRepayment
()
==
null
||
repaymentLoanInfo
.
getRealRepayment
().
intValue
()
==
0
)
{
if
(
repaymentLoanInfo
.
getRealRepaymentDate
()
==
null
||
repaymentLoanInfo
.
getRealRepaymentDate
().
equals
(
""
))
{
writeLog
(
JSON
.
toJSONString
(
repaymentLoanInfo
));
removeCount
++;
continue
;
}
}
}
try
{
FileUtils
.
write
(
new
File
(
fileName
),
JSON
.
toJSONString
(
repaymentLoanInfo
)+
"\r\n"
,
"UTF-8"
,
true
);
}
catch
(
IOException
e
)
{
...
...
@@ -1007,6 +1017,9 @@ public class ManualToolService implements CommonSuperService {
// }
// System.out.println(buff.toString());
/*String resMsgTemp = "申请A1报送: 查询 %d条(联合贷%d条), 报送成功 %d条; ";
System.out.println(String.format(resMsgTemp, 10, 2, 10));*/
//buildD2_inputerror();
...
...
@@ -1014,5 +1027,8 @@ public class ManualToolService implements CommonSuperService {
buildD3_logicerror
();
}
}
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