Commit f38bed36 authored by Data-王博's avatar Data-王博

湖北消金 - 回盘文件加了开关,可以设置是否开启回盘推送

parent f16c56cd
...@@ -113,7 +113,9 @@ public class HuBeiReturnDiscScheduler { ...@@ -113,7 +113,9 @@ public class HuBeiReturnDiscScheduler {
Byte currentReqNo = new Integer(1).byteValue(); Byte currentReqNo = new Integer(1).byteValue();
//推送回盘文件 //推送回盘文件
HuBeiCFCResponse debitResponse = iHuBeiService.handleDiscData(HubeiCFCDataType.RETURN_BATCH_DEBIT,null,docDebitId,currentReqNo); HuBeiCFCResponse debitResponse = iHuBeiService.handleDiscData(HubeiCFCDataType.RETURN_BATCH_DEBIT,null,docDebitId,currentReqNo);
// HuBeiCFCResponse advanceResponse = iHuBeiService.handleDiscData(HubeiCFCDataType.RETURN_ADVANCE_REPAYMENT,null,advanceIdMap.get(currentReqNo),currentReqNo); for(;currentReqNo<=maxReqNo;currentReqNo++){
HuBeiCFCResponse advanceResponse = iHuBeiService.handleDiscData(HubeiCFCDataType.RETURN_ADVANCE_REPAYMENT,null,advanceIdMap.get(currentReqNo),currentReqNo);
}
HuBeiCFCResponse compensationResponse = iHuBeiService.handleDiscData(HubeiCFCDataType.RETURN_BATCH_COMPENSATION,null,docCompensationId,currentReqNo); HuBeiCFCResponse compensationResponse = iHuBeiService.handleDiscData(HubeiCFCDataType.RETURN_BATCH_COMPENSATION,null,docCompensationId,currentReqNo);
// if(maxReqNo!=null&&maxReqNo.compareTo(currentReqNo)>0){ // if(maxReqNo!=null&&maxReqNo.compareTo(currentReqNo)>0){
// logger.info("start scheduleAdvanceRepay currentReqNo={},maxReqNo={},docAdvanceRepayId={}",currentReqNo,maxReqNo,advanceDocId); // logger.info("start scheduleAdvanceRepay currentReqNo={},maxReqNo={},docAdvanceRepayId={}",currentReqNo,maxReqNo,advanceDocId);
......
...@@ -13,6 +13,7 @@ import cn.quantgroup.financial.service.IHuBeiService; ...@@ -13,6 +13,7 @@ import cn.quantgroup.financial.service.IHuBeiService;
import cn.quantgroup.financial.service.sys.ICompensationDayService; import cn.quantgroup.financial.service.sys.ICompensationDayService;
import cn.quantgroup.financial.service.sys.IMailSendCallback; import cn.quantgroup.financial.service.sys.IMailSendCallback;
import cn.quantgroup.financial.service.sys.IMailService; import cn.quantgroup.financial.service.sys.IMailService;
import cn.quantgroup.financial.service.sys.IScheduledJudgeService;
import cn.quantgroup.financial.util.DateUtil; import cn.quantgroup.financial.util.DateUtil;
import cn.quantgroup.financial.util.HubeiCFCUtil; import cn.quantgroup.financial.util.HubeiCFCUtil;
import cn.quantgroup.financial.util.NetUtil; import cn.quantgroup.financial.util.NetUtil;
...@@ -42,6 +43,10 @@ import java.nio.file.Paths; ...@@ -42,6 +43,10 @@ import java.nio.file.Paths;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static cn.quantgroup.financial.constant.HubeiCFCDataType.RETURN_ADVANCE_REPAYMENT;
import static cn.quantgroup.financial.constant.HubeiCFCDataType.RETURN_BATCH_COMPENSATION;
import static cn.quantgroup.financial.constant.HubeiCFCDataType.RETURN_BATCH_DEBIT;
/** /**
* Created by WuKong on 2017/1/19. * Created by WuKong on 2017/1/19.
*/ */
...@@ -58,6 +63,7 @@ public class HuBeiServiceImpl implements IHuBeiService { ...@@ -58,6 +63,7 @@ public class HuBeiServiceImpl implements IHuBeiService {
private String hubeiHistoryFilePath; private String hubeiHistoryFilePath;
@Autowired @Autowired
private IHuBeiDispatcher huBeiHandlerDispatcher; private IHuBeiDispatcher huBeiHandlerDispatcher;
...@@ -79,6 +85,9 @@ public class HuBeiServiceImpl implements IHuBeiService { ...@@ -79,6 +85,9 @@ public class HuBeiServiceImpl implements IHuBeiService {
@Autowired @Autowired
private IMailService iMailService; private IMailService iMailService;
@Autowired
private IScheduledJudgeService scheduledJudgeService;
private static final Logger logger = LoggerFactory.getLogger(HuBeiServiceImpl.class); private static final Logger logger = LoggerFactory.getLogger(HuBeiServiceImpl.class);
...@@ -120,6 +129,28 @@ public class HuBeiServiceImpl implements IHuBeiService { ...@@ -120,6 +129,28 @@ public class HuBeiServiceImpl implements IHuBeiService {
return response; return response;
} }
/**
* 回盘文件先发邮件。
* @param huBeiCFCRequest
*/
public void returnMailDisc(HuBeiCFCRequest huBeiCFCRequest){
try {
HubeiCFCDataType dataType = huBeiCFCRequest.getHubeiCFCDataType();
DataSource dataSource = null;
switch (dataType){
case RETURN_ADVANCE_REPAYMENT:
case RETURN_BATCH_DEBIT:
case RETURN_BATCH_COMPENSATION:
//发送回盘 邮件
dataSource = iMailService.getDataSource(new String(Base64.decodeBase64(huBeiCFCRequest.getFileConent())),huBeiCFCRequest.getFileName());
sendMailAttachment(dataType,new ArrayList<DataSource>(Arrays.asList(dataSource)));
break;
default:
}
} catch (Exception e) {
logger.error(e.getMessage(),e);
}
}
/** /**
* 构建请求数据 * 构建请求数据
* @param huBeiCFCRequest * @param huBeiCFCRequest
...@@ -132,7 +163,22 @@ public class HuBeiServiceImpl implements IHuBeiService { ...@@ -132,7 +163,22 @@ public class HuBeiServiceImpl implements IHuBeiService {
* @throws ServerErrorException * @throws ServerErrorException
*/ */
private HuBeiCFCResponse requestDiscData(HuBeiCFCRequest huBeiCFCRequest) throws IOException, TransformerException, ParserConfigurationException, DocumentException, SAXException, ServerErrorException { private HuBeiCFCResponse requestDiscData(HuBeiCFCRequest huBeiCFCRequest) throws IOException, TransformerException, ParserConfigurationException, DocumentException, SAXException, ServerErrorException {
HubeiCFCDataType dataType = huBeiCFCRequest.getHubeiCFCDataType(); HubeiCFCDataType dataType = huBeiCFCRequest.getHubeiCFCDataType();
if(HubeiCFCDataType.RETURN_ADVANCE_REPAYMENT.equals(dataType)
||HubeiCFCDataType.RETURN_BATCH_COMPENSATION.equals(dataType)
||HubeiCFCDataType.RETURN_BATCH_DEBIT.equals(dataType)){
returnMailDisc(huBeiCFCRequest);
//回盘文件需要检测是否开启了请求开关
if(!scheduledJudgeService.isOpenHuBeiRequest()){
logger.info("did not push hubei return disc");
HuBeiCFCResponse response = new HuBeiCFCResponse();
response.setEc(HubeiCFCField.EC_SUCCESS_CODE);
return response;
}
}
String docName = huBeiCFCRequest.getFileName(); String docName = huBeiCFCRequest.getFileName();
String fileContent = huBeiCFCRequest.getFileConent(); String fileContent = huBeiCFCRequest.getFileConent();
String dateFormat = huBeiCFCRequest.getApplyDt(); String dateFormat = huBeiCFCRequest.getApplyDt();
...@@ -193,19 +239,14 @@ public class HuBeiServiceImpl implements IHuBeiService { ...@@ -193,19 +239,14 @@ public class HuBeiServiceImpl implements IHuBeiService {
response.setFileConent(null); response.setFileConent(null);
} }
break; break;
case RETURN_ADVANCE_REPAYMENT:
case RETURN_BATCH_DEBIT:
case RETURN_BATCH_COMPENSATION:
//发送回盘 邮件
dataSource = iMailService.getDataSource(new String(Base64.decodeBase64(huBeiCFCRequest.getFileConent())),huBeiCFCRequest.getFileName());
sendMailAttachment(dataType,new ArrayList<DataSource>(Arrays.asList(dataSource)));
break;
default: default:
} }
return response; return response;
}else { }else {
logger.info("response is not success"); logger.info("response is not success");
} }
logger.info("requestDiscData method end"); logger.info("requestDiscData method end");
return null; return null;
} }
...@@ -294,7 +335,7 @@ public class HuBeiServiceImpl implements IHuBeiService { ...@@ -294,7 +335,7 @@ public class HuBeiServiceImpl implements IHuBeiService {
HuBeiJsonBean jsonBean = history.getData(); HuBeiJsonBean jsonBean = history.getData();
//应扣不等于实扣 需要发送异常邮件 //应扣不等于实扣 需要发送异常邮件
//提前还款没有实扣 //提前还款没有实扣
if(hubeiCFCDataType.get().compareTo(HubeiCFCDataType.RETURN_ADVANCE_REPAYMENT.get())!=0){ if(hubeiCFCDataType.get().compareTo(RETURN_ADVANCE_REPAYMENT.get())!=0){
if(jsonBean!=null&&jsonBean.getRepayAmount()!=null&&jsonBean.getReallyRepayAmount()!=null){ if(jsonBean!=null&&jsonBean.getRepayAmount()!=null&&jsonBean.getReallyRepayAmount()!=null){
if(jsonBean.getReallyRepayAmount().compareTo(BigDecimal.ZERO)!=0&&jsonBean.getRepayAmount().compareTo(jsonBean.getReallyRepayAmount())!=0){ if(jsonBean.getReallyRepayAmount().compareTo(BigDecimal.ZERO)!=0&&jsonBean.getRepayAmount().compareTo(jsonBean.getReallyRepayAmount())!=0){
errorHuBeiHistoryList.add(history); errorHuBeiHistoryList.add(history);
...@@ -550,7 +591,7 @@ public class HuBeiServiceImpl implements IHuBeiService { ...@@ -550,7 +591,7 @@ public class HuBeiServiceImpl implements IHuBeiService {
*/ */
private HuBeiHistory compensationHuiBeiHistory(HuBeiHistory history,Date happenTime,BigDecimal reallyRepayAmount){ private HuBeiHistory compensationHuiBeiHistory(HuBeiHistory history,Date happenTime,BigDecimal reallyRepayAmount){
HuBeiHistory compensationHuiBeiHistory = HubeiCFCUtil.replicateBase(history); HuBeiHistory compensationHuiBeiHistory = HubeiCFCUtil.replicateBase(history);
compensationHuiBeiHistory.setDataType(HubeiCFCDataType.RETURN_BATCH_COMPENSATION.get()); compensationHuiBeiHistory.setDataType(RETURN_BATCH_COMPENSATION.get());
HuBeiJsonBean huBeiJsonBean = new HuBeiJsonBean(); HuBeiJsonBean huBeiJsonBean = new HuBeiJsonBean();
HubeiCFCUtil.copy(compensationHuiBeiHistory,huBeiJsonBean); HubeiCFCUtil.copy(compensationHuiBeiHistory,huBeiJsonBean);
//应扣金额 //应扣金额
...@@ -608,7 +649,7 @@ public class HuBeiServiceImpl implements IHuBeiService { ...@@ -608,7 +649,7 @@ public class HuBeiServiceImpl implements IHuBeiService {
advanceHuiBeiHistory.setHappenTime(new Date()); advanceHuiBeiHistory.setHappenTime(new Date());
//批次问题 //批次问题
advanceHuiBeiHistory.setSeqNo(seqNo.byteValue()); advanceHuiBeiHistory.setSeqNo(seqNo.byteValue());
advanceHuiBeiHistory.setDataType(HubeiCFCDataType.RETURN_ADVANCE_REPAYMENT.get()); advanceHuiBeiHistory.setDataType(RETURN_ADVANCE_REPAYMENT.get());
HuBeiJsonBean huBeiJsonBean = new HuBeiJsonBean(); HuBeiJsonBean huBeiJsonBean = new HuBeiJsonBean();
HubeiCFCUtil.copy(advanceHuiBeiHistory,huBeiJsonBean); HubeiCFCUtil.copy(advanceHuiBeiHistory,huBeiJsonBean);
huBeiJsonBean.setRepayType(HubeiCFCField.repayType); huBeiJsonBean.setRepayType(HubeiCFCField.repayType);
...@@ -650,7 +691,7 @@ public class HuBeiServiceImpl implements IHuBeiService { ...@@ -650,7 +691,7 @@ public class HuBeiServiceImpl implements IHuBeiService {
*/ */
private HuBeiHistory deitHuiBeiHistory(HuBeiHistory history,Date happenTime,BigDecimal reallyRepayAmount){ private HuBeiHistory deitHuiBeiHistory(HuBeiHistory history,Date happenTime,BigDecimal reallyRepayAmount){
HuBeiHistory deitHuiBeiHistory = HubeiCFCUtil.replicateBase(history); HuBeiHistory deitHuiBeiHistory = HubeiCFCUtil.replicateBase(history);
deitHuiBeiHistory.setDataType(HubeiCFCDataType.RETURN_BATCH_DEBIT.get()); deitHuiBeiHistory.setDataType(RETURN_BATCH_DEBIT.get());
HuBeiJsonBean huBeiJsonBean = new HuBeiJsonBean(); HuBeiJsonBean huBeiJsonBean = new HuBeiJsonBean();
HubeiCFCUtil.copy(history,huBeiJsonBean); HubeiCFCUtil.copy(history,huBeiJsonBean);
//应扣金额 //应扣金额
...@@ -748,7 +789,7 @@ public class HuBeiServiceImpl implements IHuBeiService { ...@@ -748,7 +789,7 @@ public class HuBeiServiceImpl implements IHuBeiService {
} }
StringBuilder errorStringBuilder = new StringBuilder(noticeMessage+"\r"); StringBuilder errorStringBuilder = new StringBuilder(noticeMessage+"\r");
for(HuBeiHistory huBeiHistory:huBeiHistoryList){ for(HuBeiHistory huBeiHistory:huBeiHistoryList){
if(HubeiCFCDataType.RETURN_ADVANCE_REPAYMENT.get().equals(huBeiHistory.getDataType())){ if(RETURN_ADVANCE_REPAYMENT.get().equals(huBeiHistory.getDataType())){
errorStringBuilder.append(huBeiHistory.getFlowNo()).append(SysConstant.vertical).append(huBeiHandlerDispatcher.builder(HubeiCFCField.HubeiTypeMap.get(huBeiHistory.getDataType()),huBeiHistory)).append("\r"); errorStringBuilder.append(huBeiHistory.getFlowNo()).append(SysConstant.vertical).append(huBeiHandlerDispatcher.builder(HubeiCFCField.HubeiTypeMap.get(huBeiHistory.getDataType()),huBeiHistory)).append("\r");
}else { }else {
errorStringBuilder.append(huBeiHandlerDispatcher.builder(HubeiCFCField.HubeiTypeMap.get(huBeiHistory.getDataType()),huBeiHistory)).append("\r"); errorStringBuilder.append(huBeiHandlerDispatcher.builder(HubeiCFCField.HubeiTypeMap.get(huBeiHistory.getDataType()),huBeiHistory)).append("\r");
...@@ -888,4 +929,5 @@ public class HuBeiServiceImpl implements IHuBeiService { ...@@ -888,4 +929,5 @@ public class HuBeiServiceImpl implements IHuBeiService {
} }
} }
...@@ -9,4 +9,10 @@ public interface IScheduledJudgeService { ...@@ -9,4 +9,10 @@ public interface IScheduledJudgeService {
* @return * @return
*/ */
Boolean isOpenScheduled(); Boolean isOpenScheduled();
/**
* 判断是否开启湖北请求
* @return
*/
Boolean isOpenHuBeiRequest();
} }
...@@ -13,9 +13,13 @@ import org.springframework.stereotype.Service; ...@@ -13,9 +13,13 @@ import org.springframework.stereotype.Service;
*/ */
@Service @Service
public class ScheduledJudgeServiceImpl implements IScheduledJudgeService { public class ScheduledJudgeServiceImpl implements IScheduledJudgeService {
@Value("scheduled_trigger") @Value("${scheduled_trigger}")
private String scheduled_trigger_name; private String scheduled_trigger_name;
//湖北请求开关变量名
@Value("${hubei.request.triggername}")
private String hubeiRequestTriggerName;
private static Logger logger = LoggerFactory.getLogger(ScheduledJudgeServiceImpl.class); private static Logger logger = LoggerFactory.getLogger(ScheduledJudgeServiceImpl.class);
...@@ -39,4 +43,21 @@ public class ScheduledJudgeServiceImpl implements IScheduledJudgeService { ...@@ -39,4 +43,21 @@ public class ScheduledJudgeServiceImpl implements IScheduledJudgeService {
} }
return true; return true;
} }
@Override
public Boolean isOpenHuBeiRequest(){
try {
String trigger = System.getenv(hubeiRequestTriggerName);
if(StringUtils.isEmpty(trigger)){
trigger = System.getProperty(hubeiRequestTriggerName);
}
logger.info("trigger name={}, value={}",hubeiRequestTriggerName,trigger);
if(!StringUtils.isEmpty(trigger)&&"2".equals(trigger)){
return false;
}
} catch (Exception e) {
logger.error(e.getMessage());
}
return true;
}
} }
...@@ -3,4 +3,6 @@ hubei.mail.touser=bo.wang@quantgroup.cn ...@@ -3,4 +3,6 @@ hubei.mail.touser=bo.wang@quantgroup.cn
hubei.history.filepath=E:/hubeitest/ hubei.history.filepath=E:/hubeitest/
log_dir=quant_group log_dir=quant_group
#定时任务环境变量的名 系统变量为2表示关闭定时任务 其他为开启 #定时任务环境变量的名 系统变量为2表示关闭定时任务 其他为开启
scheduled_trigger=scheduled_trigger scheduled_trigger=scheduled_trigger
\ No newline at end of file #湖北请求开关 系统变量为2表示关闭请求 其他为开启
hubei.request.triggername=hb_request_trigger
\ No newline at end of file
...@@ -3,4 +3,6 @@ hubei.mail.touser=bo.wang@quantgroup.cn ...@@ -3,4 +3,6 @@ hubei.mail.touser=bo.wang@quantgroup.cn
hubei.history.filepath=/vpants/hubeifiles/ hubei.history.filepath=/vpants/hubeifiles/
log_dir=quant_group log_dir=quant_group
#定时任务环境变量的名 系统变量为2表示关闭定时任务 其他为开启 #定时任务环境变量的名 系统变量为2表示关闭定时任务 其他为开启
scheduled_trigger=scheduled_trigger scheduled_trigger=scheduled_trigger
\ No newline at end of file #湖北请求开关 系统变量为2表示关闭请求 其他为开启
hubei.request.triggername=hb_request_trigger
\ No newline at end of file
...@@ -3,4 +3,6 @@ hubei.mail.touser=bo.wang@quantgroup.cn ...@@ -3,4 +3,6 @@ hubei.mail.touser=bo.wang@quantgroup.cn
hubei.history.filepath=/home/results/ hubei.history.filepath=/home/results/
log_dir=quant_group log_dir=quant_group
#定时任务环境变量的名 系统变量为2表示关闭定时任务 其他为开启 #定时任务环境变量的名 系统变量为2表示关闭定时任务 其他为开启
scheduled_trigger=scheduled_trigger scheduled_trigger=scheduled_trigger
\ No newline at end of file #湖北请求开关 系统变量为2表示关闭请求 其他为开启
hubei.request.triggername=hb_request_trigger
\ No newline at end of file
...@@ -68,7 +68,14 @@ public class HuBeiServiceTest { ...@@ -68,7 +68,14 @@ public class HuBeiServiceTest {
*/ */
@Test @Test
public void testReturnAdvanceRepayDisc(){ public void testReturnAdvanceRepayDisc(){
huBeiService.handleDiscData(HubeiCFCDataType.RETURN_ADVANCE_REPAYMENT,"20170221_9009_T01.txt",10L,new Integer(1).byteValue()); huBeiService.handleDiscData(HubeiCFCDataType.RETURN_ADVANCE_REPAYMENT,"20170228_9009_T03.txt",108L,new Integer(3).byteValue());
synchronized (lock) {
try {
lock.wait();
} catch (InterruptedException e) {
logger.error(e.getMessage(), e);
}
}
} }
/** /**
......
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