Commit 5633a3b2 authored by Data-王博's avatar Data-王博

湖北消金 - 提前还款检查送盘文件 检查。

parent 1d9fc716
...@@ -3,6 +3,7 @@ package cn.quantgroup.financial.scheduler; ...@@ -3,6 +3,7 @@ package cn.quantgroup.financial.scheduler;
import cn.quantgroup.financial.constant.HubeiCFCDataType; import cn.quantgroup.financial.constant.HubeiCFCDataType;
import cn.quantgroup.financial.constant.HubeiCFCField; import cn.quantgroup.financial.constant.HubeiCFCField;
import cn.quantgroup.financial.dao.IHuBeiCFCDao; import cn.quantgroup.financial.dao.IHuBeiCFCDao;
import cn.quantgroup.financial.handler.IHuBeiDispatcher;
import cn.quantgroup.financial.model.huibeicfc.HuBeiCFCResponse; import cn.quantgroup.financial.model.huibeicfc.HuBeiCFCResponse;
import cn.quantgroup.financial.model.huibeicfc.HuBeiDocName; import cn.quantgroup.financial.model.huibeicfc.HuBeiDocName;
import cn.quantgroup.financial.model.huibeicfc.HuBeiHistory; import cn.quantgroup.financial.model.huibeicfc.HuBeiHistory;
...@@ -45,6 +46,9 @@ public class HuBeiReturnDiscScheduler { ...@@ -45,6 +46,9 @@ public class HuBeiReturnDiscScheduler {
@Autowired @Autowired
private IScheduledJudgeService scheduledJudgeService; private IScheduledJudgeService scheduledJudgeService;
@Autowired
private IHuBeiDispatcher huBeiHandlerDispatcher;
/** /**
* Seconds Minutes Hours DayofMonth Month DayofWeek * Seconds Minutes Hours DayofMonth Month DayofWeek
...@@ -105,10 +109,9 @@ public class HuBeiReturnDiscScheduler { ...@@ -105,10 +109,9 @@ public class HuBeiReturnDiscScheduler {
HuBeiCFCResponse compensationResponse = iHuBeiService.handleDiscData(HubeiCFCDataType.RETURN_BATCH_COMPENSATION,null,docCompensationId,currentReqNo.byteValue()); HuBeiCFCResponse compensationResponse = iHuBeiService.handleDiscData(HubeiCFCDataType.RETURN_BATCH_COMPENSATION,null,docCompensationId,currentReqNo.byteValue());
Integer maxReqNo = iHuBeiCFCDao.getMaxSeqNoByDocId(docAdvanceRepayId); Integer maxReqNo = iHuBeiCFCDao.getMaxSeqNoByDocId(docAdvanceRepayId);
if(maxReqNo!=null&&maxReqNo.compareTo(currentReqNo)>0){ if(maxReqNo!=null&&maxReqNo.compareTo(currentReqNo)>0){
currentReqNo ++;
logger.info("start scheduleAdvanceRepay currentReqNo={},maxReqNo={},docAdvanceRepayId={}",currentReqNo,maxReqNo,docAdvanceRepayId); logger.info("start scheduleAdvanceRepay currentReqNo={},maxReqNo={},docAdvanceRepayId={}",currentReqNo,maxReqNo,docAdvanceRepayId);
ScheduleAdvanceRepay scheduleAdvanceRepay = new ScheduleAdvanceRepay(currentReqNo,maxReqNo,docAdvanceRepayId); ScheduleAdvanceRepay scheduleAdvanceRepay = new ScheduleAdvanceRepay(currentReqNo,maxReqNo,docAdvanceRepayId);
scheduleAdvanceRepay.registerService(scheduledExecutorService,iHuBeiService,iHuBeiCFCDao); scheduleAdvanceRepay.registerService(scheduledExecutorService,iHuBeiService,iHuBeiCFCDao,huBeiHandlerDispatcher);
scheduledExecutorService.schedule(scheduleAdvanceRepay, HubeiCFCField.thirtyMintes, TimeUnit.MINUTES); scheduledExecutorService.schedule(scheduleAdvanceRepay, HubeiCFCField.thirtyMintes, TimeUnit.MINUTES);
} }
if(debitResponse==null||advanceResponse==null||compensationResponse==null){ if(debitResponse==null||advanceResponse==null||compensationResponse==null){
...@@ -123,6 +126,7 @@ class ScheduleAdvanceRepay implements Runnable{ ...@@ -123,6 +126,7 @@ class ScheduleAdvanceRepay implements Runnable{
private Integer maxReqNo; private Integer maxReqNo;
private Long docAdvanceRepayId; private Long docAdvanceRepayId;
private IApiScheduledExecutorService scheduledExecutorService; private IApiScheduledExecutorService scheduledExecutorService;
private IHuBeiDispatcher huBeiHandlerDispatcher;
private IHuBeiService iHuBeiService; private IHuBeiService iHuBeiService;
private IHuBeiCFCDao iHuBeiCFCDao; private IHuBeiCFCDao iHuBeiCFCDao;
...@@ -133,10 +137,12 @@ class ScheduleAdvanceRepay implements Runnable{ ...@@ -133,10 +137,12 @@ class ScheduleAdvanceRepay implements Runnable{
this.maxReqNo = maxReqNo; this.maxReqNo = maxReqNo;
this.docAdvanceRepayId = docId; this.docAdvanceRepayId = docId;
} }
public void registerService(IApiScheduledExecutorService scheduledExecutorService,IHuBeiService iHuBeiService,IHuBeiCFCDao iHuBeiCFCDao){ public void registerService(IApiScheduledExecutorService scheduledExecutorService,IHuBeiService iHuBeiService,
IHuBeiCFCDao iHuBeiCFCDao,IHuBeiDispatcher huBeiHandlerDispatcher){
this.scheduledExecutorService = scheduledExecutorService; this.scheduledExecutorService = scheduledExecutorService;
this.iHuBeiService = iHuBeiService; this.iHuBeiService = iHuBeiService;
this.iHuBeiCFCDao = iHuBeiCFCDao; this.iHuBeiCFCDao = iHuBeiCFCDao;
this.huBeiHandlerDispatcher = huBeiHandlerDispatcher;
} }
...@@ -146,19 +152,20 @@ class ScheduleAdvanceRepay implements Runnable{ ...@@ -146,19 +152,20 @@ class ScheduleAdvanceRepay implements Runnable{
logger.info("ScheduleAdvanceRepay method start"); logger.info("ScheduleAdvanceRepay method start");
logger.info("currentReqNo={},maxReqNo={},docAdvanceRepayId={}",currentReqNo,maxReqNo,docAdvanceRepayId); logger.info("currentReqNo={},maxReqNo={},docAdvanceRepayId={}",currentReqNo,maxReqNo,docAdvanceRepayId);
//先前的reqNo //先前的reqNo
Integer preReqNo = currentReqNo -1; String docName = HubeiCFCUtil.getDocName(HubeiCFCDataType.RETURN_ADVANCE_REPAYMENT,currentReqNo.byteValue());
String docName = HubeiCFCUtil.getDocName(HubeiCFCDataType.RETURN_ADVANCE_REPAYMENT,preReqNo.byteValue()); HuBeiCFCResponse response = iHuBeiService.handleDiscData(HubeiCFCDataType.SEND_ADVANCE_REPAYMENT_CHECK,docName,null,currentReqNo.byteValue());
HuBeiCFCResponse response = iHuBeiService.handleDiscData(HubeiCFCDataType.SEND_ADVANCE_REPAYMENT_CHECK,docName,null,preReqNo.byteValue());
//检查提前还款送盘文件 成功 //检查提前还款送盘文件 成功
if(response!=null&&HubeiCFCField.EC_SUCCESS_CODE.equals(response.getEc())){ if(response!=null&&HubeiCFCField.EC_SUCCESS_CODE.equals(response.getEc())){
if(currentReqNo.compareTo(maxReqNo)>=0){ checkAdvanceRepayResponse(response.getFileId());
if(currentReqNo.compareTo(maxReqNo)<0){
//下一批次提前还款文件 //下一批次提前还款文件
iHuBeiService.handleDiscData(HubeiCFCDataType.RETURN_ADVANCE_REPAYMENT,null,docAdvanceRepayId,currentReqNo.byteValue());
currentReqNo++; currentReqNo++;
iHuBeiService.handleDiscData(HubeiCFCDataType.RETURN_ADVANCE_REPAYMENT,null,docAdvanceRepayId,currentReqNo.byteValue());
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,docAdvanceRepayId);
scheduleAdvanceRepay.registerService(scheduledExecutorService,iHuBeiService,iHuBeiCFCDao); scheduleAdvanceRepay.registerService(scheduledExecutorService,iHuBeiService,iHuBeiCFCDao,huBeiHandlerDispatcher);
scheduledExecutorService.schedule(scheduleAdvanceRepay, HubeiCFCField.thirtyMintes, TimeUnit.MINUTES); scheduledExecutorService.schedule(scheduleAdvanceRepay, HubeiCFCField.thirtyMintes, TimeUnit.MINUTES);
}else { }else {
//都推送了 只要检查最后一批检验文件 //都推送了 只要检查最后一批检验文件
...@@ -172,7 +179,7 @@ class ScheduleAdvanceRepay implements Runnable{ ...@@ -172,7 +179,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,docAdvanceRepayId);
scheduleAdvanceRepay.registerService(scheduledExecutorService,iHuBeiService,iHuBeiCFCDao); scheduleAdvanceRepay.registerService(scheduledExecutorService,iHuBeiService,iHuBeiCFCDao,huBeiHandlerDispatcher);
scheduledExecutorService.schedule(scheduleAdvanceRepay, HubeiCFCField.tenMinutes, TimeUnit.MINUTES); scheduledExecutorService.schedule(scheduleAdvanceRepay, HubeiCFCField.tenMinutes, TimeUnit.MINUTES);
}else { }else {
iHuBeiService.sendMailNotice("回盘提前还款文件失败,请悉知 联系相关人员"); iHuBeiService.sendMailNotice("回盘提前还款文件失败,请悉知 联系相关人员");
...@@ -184,15 +191,22 @@ class ScheduleAdvanceRepay implements Runnable{ ...@@ -184,15 +191,22 @@ class ScheduleAdvanceRepay implements Runnable{
} }
public void checkResponse(Long docId){ public void checkAdvanceRepayResponse(Long docId){
List<HuBeiHistory> checkHuBeiHistoryList = iHuBeiCFCDao.getListByDocNameId(docId); try {
if(!CollectionUtils.isEmpty(checkHuBeiHistoryList)){ List<HuBeiHistory> checkHuBeiHistoryList = iHuBeiCFCDao.getListByDocNameId(docId);
for(HuBeiHistory history: checkHuBeiHistoryList){ StringBuilder errorStringBuilder = new StringBuilder();
HuBeiJsonBean jsonBean = history.getData(); if(!CollectionUtils.isEmpty(checkHuBeiHistoryList)){
if(!HubeiCFCField.EC_SUCCESS_CODE.equals(jsonBean.getTradeCode())){ for(HuBeiHistory history: checkHuBeiHistoryList){
HuBeiJsonBean jsonBean = history.getData();
if(!HubeiCFCField.EC_SUCCESS_CODE.equals(jsonBean.getTradeCode())){
errorStringBuilder.append(huBeiHandlerDispatcher.builder(HubeiCFCDataType.RETURN_ADVANCE_REPAYMENT,history)).append("\r\n");
}
} }
} }
String errorString = errorStringBuilder.toString();
iHuBeiService.sendMailNotice(errorString);
} catch (Exception e) {
logger.error(e.getMessage(),e);
} }
} }
} }
...@@ -650,7 +650,6 @@ public class HuBeiServiceImpl implements IHuBeiService { ...@@ -650,7 +650,6 @@ public class HuBeiServiceImpl implements IHuBeiService {
if(toUserArray==null||toUserArray.length==0){ if(toUserArray==null||toUserArray.length==0){
return; return;
} }
// String[] toUserArray = toNoticeUsers.split(SysConstant.verticalRegx);
SimpleMailMessage message = new SimpleMailMessage(); SimpleMailMessage message = new SimpleMailMessage();
message.setSentDate(new Date()); message.setSentDate(new Date());
message.setTo(toUserArray); message.setTo(toUserArray);
......
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