Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
finance-api
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
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Data-王博
finance-api
Commits
dd8a6d1e
Commit
dd8a6d1e
authored
Feb 16, 2017
by
Data-王博
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
湖北消金 - 生成回盘文件批名 批次
parent
144875fe
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
52 additions
and
40 deletions
+52
-40
HubeiCFCDataType.java
...va/cn/quantgroup/financial/constant/HubeiCFCDataType.java
+1
-0
HuBeiReturnDiscScheduler.java
...ntgroup/financial/scheduler/HuBeiReturnDiscScheduler.java
+38
-38
IHuBeiService.java
...n/java/cn/quantgroup/financial/service/IHuBeiService.java
+2
-0
HuBeiServiceImpl.java
...n/quantgroup/financial/service/impl/HuBeiServiceImpl.java
+11
-2
No files found.
src/main/java/cn/quantgroup/financial/constant/HubeiCFCDataType.java
View file @
dd8a6d1e
...
@@ -25,4 +25,5 @@ public enum HubeiCFCDataType {
...
@@ -25,4 +25,5 @@ public enum HubeiCFCDataType {
public
String
getFlag
(){
public
String
getFlag
(){
return
flag
;
return
flag
;
}
}
}
}
src/main/java/cn/quantgroup/financial/scheduler/HuBeiReturnDiscScheduler.java
View file @
dd8a6d1e
...
@@ -20,8 +20,7 @@ import org.springframework.context.annotation.Lazy;
...
@@ -20,8 +20,7 @@ import org.springframework.context.annotation.Lazy;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
org.springframework.stereotype.Component
;
import
java.util.Date
;
import
java.util.*
;
import
java.util.List
;
import
java.util.concurrent.TimeUnit
;
import
java.util.concurrent.TimeUnit
;
/**
/**
...
@@ -74,23 +73,17 @@ public class HuBeiReturnDiscScheduler {
...
@@ -74,23 +73,17 @@ public class HuBeiReturnDiscScheduler {
}
}
public
void
saveAndPushReturnDisc
(
List
<
HuBeiHistory
>
huBeiHistoryList
){
public
void
saveAndPushReturnDisc
(
List
<
HuBeiHistory
>
huBeiHistoryList
){
String
docName
=
HubeiCFCUtil
.
getDocName
(
HubeiCFCDataType
.
RETURN_BATCH_DEBIT
);
HuBeiDocName
huBeiDocName
=
new
HuBeiDocName
();
HuBeiDocName
debitDoc
=
iHuBeiService
.
generateHuBeiDoc
(
HubeiCFCDataType
.
RETURN_BATCH_DEBIT
,
new
Integer
(
1
).
byteValue
());
huBeiDocName
.
setDocName
(
docName
);
Long
docDebitId
=
debitDoc
.
getId
();
huBeiDocName
.
setDataType
(
HubeiCFCDataType
.
RETURN_BATCH_DEBIT
.
get
());
HuBeiDocName
compensationDoc
=
iHuBeiService
.
generateHuBeiDoc
(
HubeiCFCDataType
.
RETURN_BATCH_COMPENSATION
,
new
Integer
(
1
).
byteValue
());
Long
docDebitId
=
iHuBeiCFCDao
.
saveDocName
(
huBeiDocName
);
Long
docCompensationId
=
compensationDoc
.
getId
();
HuBeiDocName
advanceDoc
=
iHuBeiService
.
generateHuBeiDoc
(
HubeiCFCDataType
.
RETURN_ADVANCE_REPAYMENT
,
new
Integer
(
1
).
byteValue
());
docName
=
HubeiCFCUtil
.
getDocName
(
HubeiCFCDataType
.
RETURN_ADVANCE_REPAYMENT
);
Long
advanceDocId
=
advanceDoc
.
getId
();
huBeiDocName
=
new
HuBeiDocName
();
Map
<
Byte
,
Long
>
advanceIdMap
=
new
HashMap
<
Byte
,
Long
>();
huBeiDocName
.
setDocName
(
docName
);
Byte
maxReqNo
=
new
Integer
(
1
).
byteValue
();
huBeiDocName
.
setDataType
(
HubeiCFCDataType
.
RETURN_ADVANCE_REPAYMENT
.
get
());
advanceIdMap
.
put
(
maxReqNo
,
advanceDocId
);
Long
docAdvanceRepayId
=
iHuBeiCFCDao
.
saveDocName
(
huBeiDocName
);
docName
=
HubeiCFCUtil
.
getDocName
(
HubeiCFCDataType
.
RETURN_BATCH_COMPENSATION
);
huBeiDocName
=
new
HuBeiDocName
();
huBeiDocName
.
setDocName
(
docName
);
huBeiDocName
.
setDataType
(
HubeiCFCDataType
.
RETURN_BATCH_COMPENSATION
.
get
());
Long
docCompensationId
=
iHuBeiCFCDao
.
saveDocName
(
huBeiDocName
);
for
(
HuBeiHistory
history:
huBeiHistoryList
){
for
(
HuBeiHistory
history:
huBeiHistoryList
){
if
(
HubeiCFCDataType
.
RETURN_BATCH_DEBIT
.
get
().
equals
(
history
.
getDataType
())){
if
(
HubeiCFCDataType
.
RETURN_BATCH_DEBIT
.
get
().
equals
(
history
.
getDataType
())){
...
@@ -98,19 +91,25 @@ public class HuBeiReturnDiscScheduler {
...
@@ -98,19 +91,25 @@ public class HuBeiReturnDiscScheduler {
}
else
if
(
HubeiCFCDataType
.
RETURN_BATCH_COMPENSATION
.
get
().
equals
(
history
.
getDataType
())){
}
else
if
(
HubeiCFCDataType
.
RETURN_BATCH_COMPENSATION
.
get
().
equals
(
history
.
getDataType
())){
history
.
setDocNameId
(
docCompensationId
);
history
.
setDocNameId
(
docCompensationId
);
}
else
if
(
HubeiCFCDataType
.
RETURN_ADVANCE_REPAYMENT
.
get
().
equals
(
history
.
getDataType
())){
}
else
if
(
HubeiCFCDataType
.
RETURN_ADVANCE_REPAYMENT
.
get
().
equals
(
history
.
getDataType
())){
history
.
setDocNameId
(
docAdvanceRepayId
);
if
(
advanceIdMap
.
containsKey
(
history
.
getSeqNo
())){
history
.
setDocNameId
(
advanceIdMap
.
get
(
history
.
getSeqNo
()));
}
else
{
advanceDoc
=
iHuBeiService
.
generateHuBeiDoc
(
HubeiCFCDataType
.
RETURN_ADVANCE_REPAYMENT
,
history
.
getSeqNo
());
advanceIdMap
.
put
(
history
.
getSeqNo
(),
advanceDoc
.
getId
());
history
.
setDocNameId
(
advanceDoc
.
getId
());
}
}
}
iHuBeiCFCDao
.
saveHistory
(
history
);
iHuBeiCFCDao
.
saveHistory
(
history
);
}
}
Integer
currentReqNo
=
new
Integer
(
1
);
Byte
currentReqNo
=
new
Integer
(
1
).
byteValue
(
);
//推送回盘文件
//推送回盘文件
HuBeiCFCResponse
debitResponse
=
iHuBeiService
.
handleDiscData
(
HubeiCFCDataType
.
RETURN_BATCH_DEBIT
,
null
,
docDebitId
,
currentReqNo
.
byteValue
());
HuBeiCFCResponse
debitResponse
=
iHuBeiService
.
handleDiscData
(
HubeiCFCDataType
.
RETURN_BATCH_DEBIT
,
null
,
docDebitId
,
currentReqNo
);
HuBeiCFCResponse
advanceResponse
=
iHuBeiService
.
handleDiscData
(
HubeiCFCDataType
.
RETURN_ADVANCE_REPAYMENT
,
null
,
docAdvanceRepayId
,
currentReqNo
.
byteValue
());
HuBeiCFCResponse
advanceResponse
=
iHuBeiService
.
handleDiscData
(
HubeiCFCDataType
.
RETURN_ADVANCE_REPAYMENT
,
null
,
advanceIdMap
.
get
(
currentReqNo
),
currentReqNo
);
HuBeiCFCResponse
compensationResponse
=
iHuBeiService
.
handleDiscData
(
HubeiCFCDataType
.
RETURN_BATCH_COMPENSATION
,
null
,
docCompensationId
,
currentReqNo
.
byteValue
());
HuBeiCFCResponse
compensationResponse
=
iHuBeiService
.
handleDiscData
(
HubeiCFCDataType
.
RETURN_BATCH_COMPENSATION
,
null
,
docCompensationId
,
currentReqNo
);
Integer
maxReqNo
=
iHuBeiCFCDao
.
getMaxSeqNoByDocId
(
docAdvanceRepayId
);
if
(
maxReqNo
!=
null
&&
maxReqNo
.
compareTo
(
currentReqNo
)>
0
){
if
(
maxReqNo
!=
null
&&
maxReqNo
.
compareTo
(
currentReqNo
)>
0
){
logger
.
info
(
"start scheduleAdvanceRepay currentReqNo={},maxReqNo={},docAdvanceRepayId={}"
,
currentReqNo
,
maxReqNo
,
docAdvanceRepay
Id
);
logger
.
info
(
"start scheduleAdvanceRepay currentReqNo={},maxReqNo={},docAdvanceRepayId={}"
,
currentReqNo
,
maxReqNo
,
advanceDoc
Id
);
ScheduleAdvanceRepay
scheduleAdvanceRepay
=
new
ScheduleAdvanceRepay
(
currentReqNo
,
maxReqNo
,
docAdvanceRepayId
);
ScheduleAdvanceRepay
scheduleAdvanceRepay
=
new
ScheduleAdvanceRepay
(
currentReqNo
,
maxReqNo
,
advanceIdMap
);
scheduleAdvanceRepay
.
registerService
(
scheduledExecutorService
,
iHuBeiService
,
iHuBeiCFCDao
,
huBeiHandlerDispatcher
);
scheduleAdvanceRepay
.
registerService
(
scheduledExecutorService
,
iHuBeiService
,
iHuBeiCFCDao
,
huBeiHandlerDispatcher
);
scheduledExecutorService
.
schedule
(
scheduleAdvanceRepay
,
HubeiCFCField
.
thirtyMintes
,
TimeUnit
.
MINUTES
);
scheduledExecutorService
.
schedule
(
scheduleAdvanceRepay
,
HubeiCFCField
.
thirtyMintes
,
TimeUnit
.
MINUTES
);
}
}
...
@@ -122,9 +121,9 @@ public class HuBeiReturnDiscScheduler {
...
@@ -122,9 +121,9 @@ public class HuBeiReturnDiscScheduler {
class
ScheduleAdvanceRepay
implements
Runnable
{
class
ScheduleAdvanceRepay
implements
Runnable
{
private
Integer
currentReqNo
;
private
Byte
currentReqNo
;
private
Integer
maxReqNo
;
private
Byte
maxReqNo
;
private
Long
docAdvanceRepayId
;
private
Map
<
Byte
,
Long
>
advanceIdMap
;
private
IApiScheduledExecutorService
scheduledExecutorService
;
private
IApiScheduledExecutorService
scheduledExecutorService
;
private
IHuBeiDispatcher
huBeiHandlerDispatcher
;
private
IHuBeiDispatcher
huBeiHandlerDispatcher
;
private
IHuBeiService
iHuBeiService
;
private
IHuBeiService
iHuBeiService
;
...
@@ -132,10 +131,10 @@ class ScheduleAdvanceRepay implements Runnable{
...
@@ -132,10 +131,10 @@ class ScheduleAdvanceRepay implements Runnable{
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ScheduleAdvanceRepay
.
class
);
private
static
final
Logger
logger
=
LoggerFactory
.
getLogger
(
ScheduleAdvanceRepay
.
class
);
public
ScheduleAdvanceRepay
(
Integer
currentReqNo
,
Integer
maxReqNo
,
Long
docId
){
public
ScheduleAdvanceRepay
(
Byte
currentReqNo
,
Byte
maxReqNo
,
Map
<
Byte
,
Long
>
advanceIdMap
){
this
.
currentReqNo
=
currentReqNo
;
this
.
currentReqNo
=
currentReqNo
;
this
.
maxReqNo
=
maxReqNo
;
this
.
maxReqNo
=
maxReqNo
;
this
.
docAdvanceRepayId
=
docId
;
this
.
advanceIdMap
=
advanceIdMap
;
}
}
public
void
registerService
(
IApiScheduledExecutorService
scheduledExecutorService
,
IHuBeiService
iHuBeiService
,
public
void
registerService
(
IApiScheduledExecutorService
scheduledExecutorService
,
IHuBeiService
iHuBeiService
,
IHuBeiCFCDao
iHuBeiCFCDao
,
IHuBeiDispatcher
huBeiHandlerDispatcher
){
IHuBeiCFCDao
iHuBeiCFCDao
,
IHuBeiDispatcher
huBeiHandlerDispatcher
){
...
@@ -150,21 +149,22 @@ class ScheduleAdvanceRepay implements Runnable{
...
@@ -150,21 +149,22 @@ class ScheduleAdvanceRepay implements Runnable{
public
void
run
()
{
public
void
run
()
{
try
{
try
{
logger
.
info
(
"ScheduleAdvanceRepay method start"
);
logger
.
info
(
"ScheduleAdvanceRepay method start"
);
logger
.
info
(
"currentReqNo={},maxReqNo={}
,docAdvanceRepayId={}"
,
currentReqNo
,
maxReqNo
,
docAdvanceRepayId
);
logger
.
info
(
"currentReqNo={},maxReqNo={}
"
,
currentReqNo
,
maxReqNo
);
//先前的reqNo
//先前的reqNo
String
docName
=
HubeiCFCUtil
.
getDocName
(
HubeiCFCDataType
.
RETURN_ADVANCE_REPAYMENT
,
currentReqNo
.
byteValue
()
);
String
docName
=
HubeiCFCUtil
.
getDocName
(
HubeiCFCDataType
.
RETURN_ADVANCE_REPAYMENT
,
currentReqNo
);
HuBeiCFCResponse
response
=
iHuBeiService
.
handleDiscData
(
HubeiCFCDataType
.
SEND_ADVANCE_REPAYMENT_CHECK
,
docName
,
null
,
currentReqNo
.
byteValue
()
);
HuBeiCFCResponse
response
=
iHuBeiService
.
handleDiscData
(
HubeiCFCDataType
.
SEND_ADVANCE_REPAYMENT_CHECK
,
docName
,
null
,
currentReqNo
);
//检查提前还款送盘文件 成功
//检查提前还款送盘文件 成功
if
(
response
!=
null
&&
HubeiCFCField
.
EC_SUCCESS_CODE
.
equals
(
response
.
getEc
())){
if
(
response
!=
null
&&
HubeiCFCField
.
EC_SUCCESS_CODE
.
equals
(
response
.
getEc
())){
checkAdvanceRepayResponse
(
response
.
getFileId
());
checkAdvanceRepayResponse
(
response
.
getFileId
());
if
(
currentReqNo
.
compareTo
(
maxReqNo
)<
0
){
if
(
currentReqNo
.
compareTo
(
maxReqNo
)<
0
){
//下一批次提前还款文件
//下一批次提前还款文件
currentReqNo
++;
currentReqNo
++;
iHuBeiService
.
handleDiscData
(
HubeiCFCDataType
.
RETURN_ADVANCE_REPAYMENT
,
null
,
docAdvanceRepayId
,
currentReqNo
.
byteValue
());
iHuBeiService
.
handleDiscData
(
HubeiCFCDataType
.
RETURN_ADVANCE_REPAYMENT
,
null
,
advanceIdMap
.
get
(
currentReqNo
),
currentReqNo
);
if
(
currentReqNo
.
compareTo
(
maxReqNo
)<=
0
){
if
(
currentReqNo
.
compareTo
(
maxReqNo
)<=
0
){
//30分钟后执行
//30分钟后执行
ScheduleAdvanceRepay
scheduleAdvanceRepay
=
new
ScheduleAdvanceRepay
(
currentReqNo
,
maxReqNo
,
docAdvanceRepayId
);
ScheduleAdvanceRepay
scheduleAdvanceRepay
=
new
ScheduleAdvanceRepay
(
currentReqNo
,
maxReqNo
,
advanceIdMap
);
scheduleAdvanceRepay
.
registerService
(
scheduledExecutorService
,
iHuBeiService
,
iHuBeiCFCDao
,
huBeiHandlerDispatcher
);
scheduleAdvanceRepay
.
registerService
(
scheduledExecutorService
,
iHuBeiService
,
iHuBeiCFCDao
,
huBeiHandlerDispatcher
);
scheduledExecutorService
.
schedule
(
scheduleAdvanceRepay
,
HubeiCFCField
.
thirtyMintes
,
TimeUnit
.
MINUTES
);
scheduledExecutorService
.
schedule
(
scheduleAdvanceRepay
,
HubeiCFCField
.
thirtyMintes
,
TimeUnit
.
MINUTES
);
}
else
{
}
else
{
...
@@ -178,7 +178,7 @@ class ScheduleAdvanceRepay implements Runnable{
...
@@ -178,7 +178,7 @@ class ScheduleAdvanceRepay implements Runnable{
}
}
}
else
if
(
response
!=
null
&&
response
.
getEc
().
equals
(
HubeiCFCField
.
EC_FILENOTEXIST
))
{
}
else
if
(
response
!=
null
&&
response
.
getEc
().
equals
(
HubeiCFCField
.
EC_FILENOTEXIST
))
{
//未获取到提前还款检验文件 后续再轮序 10分钟
//未获取到提前还款检验文件 后续再轮序 10分钟
ScheduleAdvanceRepay
scheduleAdvanceRepay
=
new
ScheduleAdvanceRepay
(
currentReqNo
,
maxReqNo
,
docAdvanceRepayId
);
ScheduleAdvanceRepay
scheduleAdvanceRepay
=
new
ScheduleAdvanceRepay
(
currentReqNo
,
maxReqNo
,
advanceIdMap
);
scheduleAdvanceRepay
.
registerService
(
scheduledExecutorService
,
iHuBeiService
,
iHuBeiCFCDao
,
huBeiHandlerDispatcher
);
scheduleAdvanceRepay
.
registerService
(
scheduledExecutorService
,
iHuBeiService
,
iHuBeiCFCDao
,
huBeiHandlerDispatcher
);
scheduledExecutorService
.
schedule
(
scheduleAdvanceRepay
,
HubeiCFCField
.
tenMinutes
,
TimeUnit
.
MINUTES
);
scheduledExecutorService
.
schedule
(
scheduleAdvanceRepay
,
HubeiCFCField
.
tenMinutes
,
TimeUnit
.
MINUTES
);
}
else
{
}
else
{
...
...
src/main/java/cn/quantgroup/financial/service/IHuBeiService.java
View file @
dd8a6d1e
...
@@ -53,4 +53,6 @@ public interface IHuBeiService {
...
@@ -53,4 +53,6 @@ public interface IHuBeiService {
* @param attachedBytes
* @param attachedBytes
*/
*/
void
sendMailAttachment
(
HubeiCFCDataType
hubeiCFCDataType
,
ArrayList
<
DataSource
>
attachedBytes
);
void
sendMailAttachment
(
HubeiCFCDataType
hubeiCFCDataType
,
ArrayList
<
DataSource
>
attachedBytes
);
HuBeiDocName
generateHuBeiDoc
(
HubeiCFCDataType
hubeiCFCDataType
,
Byte
seqNo
);
}
}
src/main/java/cn/quantgroup/financial/service/impl/HuBeiServiceImpl.java
View file @
dd8a6d1e
...
@@ -258,8 +258,6 @@ public class HuBeiServiceImpl implements IHuBeiService {
...
@@ -258,8 +258,6 @@ public class HuBeiServiceImpl implements IHuBeiService {
logger
.
info
(
"jsonBean is null, history={}"
,
JSON
.
toJSONString
(
history
));
logger
.
info
(
"jsonBean is null, history={}"
,
JSON
.
toJSONString
(
history
));
}
}
}
}
}
}
String
errorMessage
=
errorStringBuilder
.
toString
();
String
errorMessage
=
errorStringBuilder
.
toString
();
if
(!
StringUtils
.
isEmpty
(
errorMessage
)){
if
(!
StringUtils
.
isEmpty
(
errorMessage
)){
...
@@ -697,4 +695,15 @@ public class HuBeiServiceImpl implements IHuBeiService {
...
@@ -697,4 +695,15 @@ public class HuBeiServiceImpl implements IHuBeiService {
}
}
}
}
@Override
public
HuBeiDocName
generateHuBeiDoc
(
HubeiCFCDataType
hubeiCFCDataType
,
Byte
seqNo
){
String
docName
=
HubeiCFCUtil
.
getDocName
(
hubeiCFCDataType
,
seqNo
);
HuBeiDocName
huBeiDocName
=
new
HuBeiDocName
();
huBeiDocName
.
setDocName
(
docName
);
huBeiDocName
.
setDataType
(
hubeiCFCDataType
.
get
());
Long
docId
=
huBeiCFCDao
.
saveDocName
(
huBeiDocName
);
huBeiDocName
.
setId
(
docId
);
return
huBeiDocName
;
}
}
}
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