Commit ad865145 authored by 郝彦辉's avatar 郝彦辉

助贷模式,增加数据同步工具

parent 376beae5
package cn.quantgroup.report.controller.external;
import cn.quantgroup.report.job.SynLoanInfoHistoryTask;
import cn.quantgroup.report.response.GlobalResponse;
import cn.quantgroup.report.service.baihang.BaiHangZhuDaiService;
import cn.quantgroup.report.service.manualTool.ManualToolService;
import cn.quantgroup.report.utils.ReadOrWriteTxt;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
......@@ -39,45 +41,23 @@ public class ExZhuDaiBaiHangReSendController {
@Autowired
BaiHangZhuDaiService baiHangZhuDaiService;
@Autowired
private SynLoanInfoHistoryTask synLoanInfoHistoryTask;
/**
* 描述: 百行-助贷放款存量数据 整理 <br/>
* 参数: [startDate, noEndDate] 格式"2019-05-07T00:00:00" startDate是包括, noEndDate是不包括的 <br/>
* 返回值: cn.quantgroup.risk.datasource.response.GlobalResponse <br/>
* 创建人: yanhui.Hao <br/>
* 创建时间: 2019.10.23 <br/>
*/
/* @RequestMapping("/manual/build/zhudai/stockLoanInfo")
public GlobalResponse stockLoanInfoZhuDai(String startDate, String noEndDate){
String msg = baiHangZhuDaiService.stockLoanInfoZhuDai(startDate,noEndDate);
return GlobalResponse.generate(msg);
}*/
/**
* 描述: 百行-助贷还款&逾期存量数据 整理 <br/>
* 参数: [startDate, noEndDate] 格式"2019-05-07T00:00:00" startDate是包括, noEndDate是不包括的 <br/>
* 返回值: cn.quantgroup.risk.datasource.response.GlobalResponse <br/>
* 创建人: yanhui.Hao <br/>
* 创建时间: 2019.10.23 <br/>
*/
/*@RequestMapping("/manual/build/zhudai/stockRepayMentInfo")
public GlobalResponse stockRepayMentInfoZhuDai(String startDate, String noEndDate){
String msg = baiHangZhuDaiService.stockRepayMentInfoZhuDai(startDate,noEndDate);
return GlobalResponse.generate(msg);
}*/
@Autowired
private ManualToolService manualToolService;
@RequestMapping("/manual/synTable/historyAndplan")
public String historyAndplan(String p3,String secretKey){
if(manualToolService.checkSecretKey(p3,secretKey)){
//增量同步history和plan表数据
synLoanInfoHistoryTask.syn_historyAndplan_by_id();
return "historyAndplan任务调度完成";
}else{
return "historyAndplan任务调度失败,参数错误";
}
}
/**
* 描述: 百行-助贷申请存量数据 整理 <br/>
* 参数: [startDate, noEndDate] 格式"2019-05-07T00:00:00" startDate是包括, noEndDate是不包括的 <br/>
* 返回值: cn.quantgroup.risk.datasource.response.GlobalResponse <br/>
* 创建人: yanhui.Hao <br/>
* 创建时间: 2019.10.28 <br/>
*/
/*@RequestMapping("/manual/build/zhudai/stockApplyInfo")
public GlobalResponse stockApplyInfoZhuDai(String startDate, String noEndDate){
String msg = baiHangZhuDaiService.stockApplyLoanInfoZhuDai(startDate,noEndDate);
return GlobalResponse.generate(msg);
}*/
//存量整理公共方法
@RequestMapping("/manual/build/zhuDaiStockSyn")
......
......@@ -66,19 +66,19 @@ public class QuantGroupZhuDaiReportToBaiHang {
String msg_A1 = baiHangZhuDaiService.sendZhuDaiApplyToBaiHang(startnyr,endnyr); //生产 助贷-贷款申请 报送T+1 暂时先不报送C1 因为百行还没有开放查询接口
dingTalk.talk("Info","报送"+startnyr+"申请A1结束",msg_A1);
if(msg_A1.indexOf("[false]")!=-1){
dingTalk.talk_ToUser("报送"+startnyr+"申请A1有部分失败,请尽快手动处理!");
dingTalk.talk_ToUser("申请A1报送失败", "报送"+startnyr+"申请A1有部分失败,请尽快手动处理!");
}
String msg_D2 = baiHangZhuDaiService.sendZhuDaiLoanToBaiHang(startnyr,endnyr); //生产 助贷-放款信息 报送T+1
dingTalk.talk("Info","报送"+startnyr+"放款D2结束",msg_D2);
if(msg_D2.indexOf("[false]")!=-1){
dingTalk.talk_ToUser("报送"+startnyr+"放款D2有部分失败,请尽快手动处理!");
dingTalk.talk_ToUser("放款D2报送失败", "报送"+startnyr+"放款D2有部分失败,请尽快手动处理!");
}
String msg_D3 =baiHangZhuDaiService.sendZhuDaiRepaymentToBaiHang(startnyr,endnyr); //生产 助贷-还款&逾期信息 报送T+1
dingTalk.talk("Info","报送"+startnyr+"还款D3结束",msg_D3);
if(msg_D3.indexOf("[false]")!=-1){
dingTalk.talk_ToUser("报送"+startnyr+"还款D3有部分失败,请尽快手动处理!");
dingTalk.talk_ToUser("还款D3报送失败", "报送"+startnyr+"还款D3有部分失败,请尽快手动处理!");
}
log.info("量化派-助贷模式报送贷款信息结束, newTime: {}, 耗时: {} , msg: {} ", LocalDateTime.now(), stopwatch.stop().elapsed(TimeUnit.MILLISECONDS), (msg_A1 + msg_D2 + msg_D3));
......@@ -86,7 +86,7 @@ public class QuantGroupZhuDaiReportToBaiHang {
}catch (Exception e){
log.error("量化派-助贷模式报送贷款信息异常, newTime: {}, 耗时: {} ", LocalDateTime.now(), stopwatch.stop().elapsed(TimeUnit.MILLISECONDS), e);
dingTalk.talk("Error","报送服务内部异常", e);
dingTalk.talk_ToUser("报送服务内部异常,请尽快手动处理!");
dingTalk.talk_ToUser("数据报送异常", "报送服务内部异常,请尽快手动处理!");
}
}else{
......
......@@ -156,7 +156,7 @@ public class SynLoanInfoHistoryTask {
if(count==null){
log.error("表xyqb_i_loan_application_manifest_history查询增量count为Null.");
dingTalk.talk("Warn","同步[借款清单]数据失败","查询增量count为Null,请尽快处理!"+" bakMaxId: "+bakMaxId+", newMaxId: "+newMaxId);
dingTalk.talk_ToUser("同步[借款清单]表查询增量count为Null,停止T+1报送!发现问题,请及时处理!");
dingTalk.talk_ToUser("借款清单同步失败", "同步[借款清单]表查询增量count为Null,停止T+1报送!发现问题,请及时处理!");
return false;
}
......@@ -203,7 +203,7 @@ public class SynLoanInfoHistoryTask {
return true;
}else{
dingTalk.talk("Warn","同步[借款清单]数据失败","查询条数: "+count+",实际条数="+totalUpdate+", bakMaxId: "+bakMaxId+", newMaxId: "+newMaxId);
dingTalk.talk_ToUser("同步[借款清单]数据失败,停止T+1报送!发现问题,请及时处理!");
dingTalk.talk_ToUser("借款清单同步异常", "同步[借款清单]数据失败,停止T+1报送!发现问题,请及时处理!");
return false;
}
}
......@@ -218,7 +218,7 @@ public class SynLoanInfoHistoryTask {
if(count==null){
log.error("表xyqb_i_repayment_plan查询增量count为Null.");
dingTalk.talk("Warn","同步[还款计划]数据失败","查询增量count为Null,请尽快处理!" + ", bakMaxId: "+bakMaxId+", newMaxId: "+newMaxId);
dingTalk.talk_ToUser("同步[还款计划]表查询增量count为Null,停止T+1报送!发现问题,请及时处理!");
dingTalk.talk_ToUser("还款计划同步失败", "同步[还款计划]表查询增量count为Null,停止T+1报送!发现问题,请及时处理!");
return false;
}
......@@ -268,7 +268,7 @@ public class SynLoanInfoHistoryTask {
return true;
}else{
dingTalk.talk("Warn","同步[还款计划]数据失败","查询条数: "+count+",实际条数="+totalUpdate + ", bakMaxId: "+bakMaxId+", newMaxId: "+newMaxId);
dingTalk.talk_ToUser("同步[还款计划]数据失败,停止T+1报送!发现问题,请及时处理!");
dingTalk.talk_ToUser("还款计划同步异常", "同步[还款计划]数据失败,停止T+1报送!发现问题,请及时处理!");
return false;
}
......@@ -313,12 +313,12 @@ public class SynLoanInfoHistoryTask {
}else {
log.error("增量同步xyqb_i_repayment_plan数据-历史id为空,停止同步! nowTime: {} , bakMaxId: {} , newMaxId: {} ",LocalDateTime.now(), bakMaxId, newMaxId);
dingTalk.talk("Warn","同步临时表数据失败","查询数据历史bakMaxId或newMaxId为空.");
dingTalk.talk_ToUser("查询数据历史bakMaxId或newMaxId为空,停止T+1报送!发现问题,请及时处理!");
dingTalk.talk_ToUser("数据同步异常2", "查询数据历史bakMaxId或newMaxId为空,停止T+1报送!发现问题,请及时处理!");
}
}catch (Exception e){
log.error("增量同步history和plan表数据异常, nowTime: {} ", LocalDateTime.now(), e);
dingTalk.talk("Error","同步history和plan表数据异常",e);
dingTalk.talk_ToUser("同步history和plan表数据异常,停止T+1报送!发现问题,请及时处理!");
dingTalk.talk_ToUser("数据同步异常1", "同步history和plan表数据异常,停止T+1报送!发现问题,请及时处理!");
}
return false;
......
......@@ -437,6 +437,7 @@ public class BaiHangZhuDaiService {
log.error("量化派助贷TO百行报送-还款信息异常, reqId_log: {} , recordId: {} , loanId: {} ", reqId_log, id, repaymentLoanInfo.getLoanId(), e);
}
}
log.info("量化派助贷TO百行报送-还款申请完成 J: {} , 开始时间: {} , 结束时间: {} , list大小: {} , 实际大小: {} , 跳过: {} , 报送成功大小: {} , 保存日志: {} , 耗时: {} ", j, startnyr, endnyr, repaymentLoanInfos.size(), totail_atomicInt.get(), tg_atomicInt.get(), succ_atomicInt.get(), saveLog_atomicInt.get(), (sendWatch.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
if (j == 0) {
resMsg+=String.format(temp_huanKuan, repaymentLoanInfos.size(), (repaymentLoanInfosLh!=null ? repaymentLoanInfosLh.size() : 0), totail_atomicInt.get(), tg_atomicInt.get(), succ_atomicInt.get(), saveLog_atomicInt.get());
......@@ -446,7 +447,6 @@ public class BaiHangZhuDaiService {
}
resMsg+="["+ (totail_atomicInt.get()==succ_atomicInt.get())+"]";
log.info("量化派助贷TO百行报送-还款申请完成 J: {} , 开始时间: {} , 结束时间: {} , list大小: {} , 实际大小: {} , 跳过: {} , 报送成功大小: {} , 保存日志: {} , 耗时: {} ", j, startnyr, endnyr, repaymentLoanInfos.size(), totail_atomicInt.get(), tg_atomicInt.get(), succ_atomicInt.get(), saveLog_atomicInt.get(), (sendWatch.stop().elapsed(TimeUnit.MILLISECONDS)/1000)+".s");
} catch (Exception e) {
log.error("量化派助贷TO百行报送-异常 J: {} , 开始时间: {} , 结束时间: {} ", j, startnyr, endnyr, e);
}
......
......@@ -13,11 +13,13 @@ import java.util.HashMap;
import java.util.Map;
/**
* @author :dongjianhua
* @date :Created in 2019/11/1 10:34
* @description:钉钉提醒
* @modified By:
* @version: 1.0
* -----------------------------------------------------------------------------<br>
* 描述: 量化派2百行钉钉提醒 <br>
* 作者:yanhui.Hao <br>
* 时间:2020.01.06 <br>
* 授权: (C) Copyright (c) 2017 <br>
* 公司: 北京众信利民信息技术有限公司 <br>
* -----------------------------------------------------------------------------
*/
@Component
@Slf4j
......@@ -25,6 +27,7 @@ public class DingTalk {
@Autowired
private IHttpService iHttpService;
public static final String talkUri = "https://alertserv-dataservice.quantgroup.cn/common/alert/dingtalk";
//量化派2百行
public static final String webHook = "https://oapi.dingtalk.com/robot/send?access_token=ef3cafb299ec6cb7442b2795d4d0c48e940756f7f267cfa895dbb419adb00128";
......@@ -67,12 +70,12 @@ public class DingTalk {
}
@Async
public void talk_ToUser(String msgContent) {
public void talk_ToUser(String msgTitle, String msgContent) {
try{
Map<String, String> param = new HashMap<>();
param.put("webhook", webHook);
param.put("alarmLevel", "ERROE");//
param.put("msgTitle", "量化派2百行:数据同步失败");
param.put("msgTitle", "量化派2百行:"+msgTitle);
param.put("msgContent", msgContent);
param.put("toUsers", "18010105506");
String resp = iHttpService.post(talkUri, param);
......
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