Commit 211523af authored by 郝彦辉's avatar 郝彦辉

非联合贷-实时数据报送sql修改

parent 0c0213f7
...@@ -33,89 +33,9 @@ public class ExZhuDaiBaiHangReSendController { ...@@ -33,89 +33,9 @@ public class ExZhuDaiBaiHangReSendController {
private static final Logger log = LoggerFactory.getLogger(ExZhuDaiBaiHangReSendController.class); private static final Logger log = LoggerFactory.getLogger(ExZhuDaiBaiHangReSendController.class);
//@Autowired
//private BaiHangService baiHangService;
//@Autowired
//private ReSendBaiHangService reSendBaiHangService;
@Autowired @Autowired
BaiHangZhuDaiService baiHangZhuDaiService; BaiHangZhuDaiService baiHangZhuDaiService;
/**
* 根据时间短重新报送实时放款数据
* @param startTime
* @param endTime
* @return
*/
/*@RequestMapping("/reSendLoanInfoByTime")
public GlobalResponse reSendLoanInfoByTime(String startTime, String endTime){
try{
reSendBaiHangService.sendLoaInfoReportToBaiHang(startTime, endTime);
return GlobalResponse.generate("重新报送实时放款数据成功");
}catch(Exception e){
log.error("重新报送实时放款数据异常", e);
return GlobalResponse.generate("重新报送实时放款数据成功");
}
}*/
/**
* 根据时间段重新报送实时还款数据
* @param startTime
* @param endTime
* @return
*/
/* @RequestMapping("/reSendRepaymentInfoByTime")
public GlobalResponse reSendRepaymentInfoByTime(String startTime, String endTime){
try{
reSendBaiHangService.sendRepaymentReportToBaiHang(startTime, endTime);
return GlobalResponse.generate("重新报送实时还款数据成功");
}catch(Exception e){
log.error("重新报送实时还款数据异常", e);
return GlobalResponse.generate("重新报送实时还款数据异常");
}
}*/
/**
* 存量申请用户数据清洗
* @return
*/
/*@RequestMapping("/stockApplyInfo")
public GlobalResponse stockApplyInfo(){
baiHangService.stockApplyLoanInfo();
return GlobalResponse.generate("存量申请数据整理完毕");
}*/
/**
* 存量还款数据清洗
* @return
*/
/* @RequestMapping("/stockRepaymentLoanInfo")
public GlobalResponse stockRepaymentLooanInfo(){
baiHangService.stockRepaymentLoanInfo();
return GlobalResponse.generate("存量还款数据整理完毕");
}*/
/**
* 存量放款数据报送
* @return
*/
/*@RequestMapping("/stockLoanInfo")
public GlobalResponse stockLooanInfo(){
baiHangService.stockLoanInfo();
return GlobalResponse.generate("存量放款数据整理完毕");
}*/
/* @RequestMapping("/baihang_data")
public GlobalResponse baihangData(String readName, String writeName){
baiHangService.baihangData(readName, writeName);
return GlobalResponse.generate("成功");
}*/
/** /**
* 描述: 百行-助贷放款存量数据 整理 <br/> * 描述: 百行-助贷放款存量数据 整理 <br/>
...@@ -237,8 +157,8 @@ public class ExZhuDaiBaiHangReSendController { ...@@ -237,8 +157,8 @@ public class ExZhuDaiBaiHangReSendController {
} }
//test3.接口测试 手动调用 //test3.接口测试 手动调用
@RequestMapping("/test/apiSend2") @RequestMapping("/test/scheduled")
public String apiSend2(String type, String startDate, String endDate) { public String scheduledSend(String type, String startDate, String endDate) {
try { try {
//"2019-05-07T00:00:00" //"2019-05-07T00:00:00"
if (StringUtils.isAnyBlank(type, startDate, endDate)) { if (StringUtils.isAnyBlank(type, startDate, endDate)) {
...@@ -297,4 +217,18 @@ public class ExZhuDaiBaiHangReSendController { ...@@ -297,4 +217,18 @@ public class ExZhuDaiBaiHangReSendController {
return e.getMessage(); return e.getMessage();
} }
} }
@RequestMapping("/manual/build/zhuDaiStockSyn")
public String zhuDaiStockSyn(String type, String startDate, String noEndDate) {
if (StringUtils.isAnyBlank(type, startDate, noEndDate)) {
return "参数为空";
}
startDate=startDate+"T00:00:00";
noEndDate = noEndDate+"T00:00:00";
baiHangZhuDaiService.zhuDaiStockSyn(type, startDate, noEndDate);
return "请求type=" + type + ",startDate=" + startDate + ",noEndDate=" + noEndDate + ",调度结束";
}
} }
package cn.quantgroup.report.job;
import cn.quantgroup.report.service.baihang.BaiHangService;
import cn.quantgroup.report.service.baihang.constant.Constant;
import com.google.common.base.Stopwatch;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.time.LocalDateTime;
import java.util.concurrent.TimeUnit;
/**
* 广达小贷定时批量报送非循环贷(贷款申请信息/放款信息/还款信息三类数据)
* 每日凌晨2点报送
*
* @Author fengjunkai
* @Date 2019-03-26 14:24
*/
@Deprecated //2019.10.29
@Component
public class QuantGroupLoanInfoReportToBaiHang {
private static final Logger log = LoggerFactory.getLogger(QuantGroupLoanInfoReportToBaiHang.class);
@Autowired
private BaiHangService baiHangService;
@Autowired
private RedisTemplate<String,String> redisTemplate;
@Async
// @Scheduled(cron = "0 0 0 */1 * ?")
/*@Scheduled(cron = "0 0 6 * * ?")*/
// @Scheduled(cron = "*/2 * * * * ?")
public void startReport(){
if(increment()){
redisTemplate.expire(Constant.QG_LOAN_INFO_REPORT_LOCK_KEY, 10, TimeUnit.SECONDS);
Stopwatch stopwatch = Stopwatch.createStarted();
log.info("量化派报送广大小贷贷款信息开始, startTime: {} ", LocalDateTime.now());
// baiHangService.sendApplyLoanInfoReportToBaiHang(); //生产广达小贷非循环贷贷款申请报送T+1 暂时先不报送C1 因为百行还没有开放查询接口
baiHangService.sendLoaInfoReportToBaiHang(); //生产广达小贷非循环贷放款信息报送T+1
baiHangService.sendRepaymentReportToBaiHang(); //生产广达小贷非循环贷还款信息报送T+1
log.info("量化派报送广大小贷贷款信息结束, endTime: {}, 耗时: {} ", LocalDateTime.now(), stopwatch.stop().elapsed(TimeUnit.MILLISECONDS));
}
}
public Boolean increment(){
Long increment = redisTemplate.opsForValue().increment(Constant.QG_LOAN_INFO_REPORT_LOCK_KEY, 1);
return increment <= 1;
}
}
package cn.quantgroup.report.mapper.baihang; package cn.quantgroup.report.mapper.baihang;
import cn.quantgroup.report.domain.baihang.ApplyLoanInfo;
import cn.quantgroup.report.domain.baihang.ApplyLoanInfoZhuDai; import cn.quantgroup.report.domain.baihang.ApplyLoanInfoZhuDai;
import cn.quantgroup.report.domain.baihang.BaiHangThreeElements;
import cn.quantgroup.report.domain.baihang.BaiHangTimeRecord; import cn.quantgroup.report.domain.baihang.BaiHangTimeRecord;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
/** /**
* 贷款申请信息查询mapper * -----------------------------------------------------------------------------<br>
* * 描述: 贷款申请信息查询mapper <br>
* @Author fengjunkai * 作者:yanhui.Hao <br>
* @Date 2019-03-26 15:25 * 时间:2019.11.06 <br>
* 授权: (C) Copyright (c) 2017 <br>
* 公司: 北京众信利民信息技术有限公司 <br>
* -----------------------------------------------------------------------------
*/ */
@Repository @Repository
public interface ApplyLoanInfoMapper { public interface ApplyLoanInfoMapper {
//广达小贷-申请实时 //广达小贷-申请实时
List<ApplyLoanInfo> findApplyLoanInfo(); //List<ApplyLoanInfo> findApplyLoanInfo();
ApplyLoanInfo findApplyLoanInfoByThreeElements(BaiHangThreeElements baiHangThreeElements);
//广达小贷-申请存量 //广达小贷-申请存量
List<ApplyLoanInfo> findStockApplyLoanInfo(); //List<ApplyLoanInfo> findStockApplyLoanInfo();
......
...@@ -16,15 +16,20 @@ import java.util.List; ...@@ -16,15 +16,20 @@ import java.util.List;
@Repository @Repository
public interface LoanInfoMapper { public interface LoanInfoMapper {
//报送实时放款数据(百行征信报送) //报送实时放款数据(广达百行征信报送)
List<LoanInfoZhuDai> findLoanInfo(); //List<LoanInfoZhuDai> findLoanInfo();
List<LoanInfoZhuDai> findLoanInfoByTime(BaiHangTimeRecord baiHangTimeRecord); //List<LoanInfoZhuDai> findLoanInfoByTime(BaiHangTimeRecord baiHangTimeRecord);
//List<LoanInfoZhuDai> stockLoanInfo();
//根据loan_application_history_id查询最晚还款日 /**
* 描述: 根据loan_application_history_id查询xyqb_i_repayment_plan表最晚还款日 <br/>
* 参数: loan_application_history_id <br/>
* 返回值: <br/>
* 创建人: yanhui.Hao <br/>
* 创建时间: 2019.11.06 <br/>
*/
List<String> findTargetRepaymentDayList(String reqId); List<String> findTargetRepaymentDayList(String reqId);
List<LoanInfoZhuDai> stockLoanInfo();
/** /**
* 描述: 根据order_no查询 loan_application_history_id <br/> * 描述: 根据order_no查询 loan_application_history_id <br/>
......
package cn.quantgroup.report.mapper.baihang; package cn.quantgroup.report.mapper.baihang;
import cn.quantgroup.report.domain.baihang.BaiHangName;
import cn.quantgroup.report.domain.baihang.BaiHangNameResult;
import cn.quantgroup.report.domain.baihang.BaiHangTimeRecord; import cn.quantgroup.report.domain.baihang.BaiHangTimeRecord;
import cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai; import cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -17,16 +15,13 @@ import java.util.List; ...@@ -17,16 +15,13 @@ import java.util.List;
@Repository @Repository
public interface RepaymentLoanInfoMapper { public interface RepaymentLoanInfoMapper {
//实时还款(百行征信报送) //实时还款(广达百行征信报送)
List<RepaymentInfoZhuDai> findRepayMentLoanInfo(BaiHangTimeRecord baiHangTimeRecord); //List<RepaymentInfoZhuDai> findRepayMentLoanInfo(BaiHangTimeRecord baiHangTimeRecord);
//实时逾期还款(广达百行征信报送)
//实时逾期还款(百行征信报送) //List<RepaymentInfoZhuDai> findRepayMentLoanInfoOverdue(BaiHangTimeRecord baiHangTimeRecord);
List<RepaymentInfoZhuDai> findRepayMentLoanInfoOverdue(BaiHangTimeRecord baiHangTimeRecord); ///List<RepaymentInfoZhuDai> findStockRepayMentLoanInfo(BaiHangTimeRecord baiHangTimeRecord);
//List<RepaymentInfoZhuDai> findStockRepayMentLoanInfoOverdue(BaiHangTimeRecord baiHangTimeRecord);
List<RepaymentInfoZhuDai> findStockRepayMentLoanInfo(BaiHangTimeRecord baiHangTimeRecord); //BaiHangNameResult findName(BaiHangName baiHangName);
List<RepaymentInfoZhuDai> findStockRepayMentLoanInfoOverdue(BaiHangTimeRecord baiHangTimeRecord);
BaiHangNameResult findName(BaiHangName baiHangName);
/** /**
......
...@@ -4,19 +4,20 @@ import cn.quantgroup.report.domain.baihang.BaiHangUpDateRecord; ...@@ -4,19 +4,20 @@ import cn.quantgroup.report.domain.baihang.BaiHangUpDateRecord;
import cn.quantgroup.report.domain.baihang.LoanInfoZhuDai; import cn.quantgroup.report.domain.baihang.LoanInfoZhuDai;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
/** /**
* 放款信息查询 * -----------------------------------------------------------------------------<br>
* * 描述: 放款信息查询 <br>
* @Author fengjunkai * 作者:yanhui.Hao <br>
* @Date 2019-03-26 15:26 * 时间:2019.11.06 <br>
* 授权: (C) Copyright (c) 2017 <br>
* 公司: 北京众信利民信息技术有限公司 <br>
* -----------------------------------------------------------------------------
*/ */
@Repository @Repository
public interface LoanInfoDbMapper { public interface LoanInfoDbMapper {
void saveLoanInfoRecordLog(LoanInfoZhuDai loanInfo); void saveLoanInfoRecordLog(LoanInfoZhuDai loanInfo);
List<LoanInfoZhuDai> findAll();
void updateCurrentRecordEnableFalce(BaiHangUpDateRecord baiHangUpDateRecord); void updateCurrentRecordEnableFalce(BaiHangUpDateRecord baiHangUpDateRecord);
} }
...@@ -9,17 +9,19 @@ import org.springframework.stereotype.Repository; ...@@ -9,17 +9,19 @@ import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
/** /**
* 还款信息查询 * -----------------------------------------------------------------------------<br>
* * 描述: 还款信息查询 <br>
* @Author fengjunkai * 作者:yanhui.Hao <br>
* @Date 2019-03-26 15:27 * 时间:2019.11.06 <br>
* 授权: (C) Copyright (c) 2017 <br>
* 公司: 北京众信利民信息技术有限公司 <br>
* -----------------------------------------------------------------------------
*/ */
@Repository @Repository
public interface RepaymentLoanInfoDbMapper { public interface RepaymentLoanInfoDbMapper {
void saveRepaymentLoanInfoLog(RepaymentInfoZhuDai repaymentLoanInfo); void saveRepaymentLoanInfoLog(RepaymentInfoZhuDai repaymentLoanInfo);
List<RepaymentInfoZhuDai> findAll();
void updateCurrentRecordEnableFalse(BaiHangUpDateRecord baiHangUpDateRecord); void updateCurrentRecordEnableFalse(BaiHangUpDateRecord baiHangUpDateRecord);
......
package cn.quantgroup.report.service.baihang;
import cn.quantgroup.report.service.CommonSuperService;
import cn.quantgroup.report.config.aop.DistributedLock;
import cn.quantgroup.report.config.aop.Monitor;
import cn.quantgroup.report.config.aop.MonitorType;
import cn.quantgroup.report.constant.TransactionCodeEnum;
import cn.quantgroup.report.enums.RequestUrlType;
import cn.quantgroup.report.response.GlobalResponse;
import cn.quantgroup.report.service.AbstractBaseService;
import cn.quantgroup.report.service.baihang.client.BhInterfaceCreditApiClient;
import cn.quantgroup.report.service.baihang.request.InterfaceUploadRequest;
import cn.quantgroup.report.service.baihang.response.InterfaceUploadResponse;
import cn.quantgroup.report.service.baihang.util.BHRSAUtils;
import cn.quantgroup.report.service.baihang.util.Base64;
import cn.quantgroup.report.service.http.IHttpService;
import cn.quantgroup.report.service.thirdpartymonitor.ThirdpartyApiMonitorService;
import com.alibaba.fastjson.JSON;
import com.google.common.base.Stopwatch;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
/**
* 百行征信查询用户征信报告
*
* @Author fengjunkai
* @Date 2019-03-29 11:26
*/
@Deprecated
@Slf4j
@Service
public class BaiHangZhengXinService extends AbstractBaseService implements CommonSuperService {
@Autowired
private ThirdpartyApiMonitorService thirdpartyApiMonitorService;
@Autowired
private IHttpService iHttpService;
@Value("${baihang.zhudai.applyloan.url}")
private String baiHangApplyLoanInfoUrl;
@Value("${baihang.zhudai.loaninfo.url}")
private String baiHangLoanInfoUrl;
@Value("${baihang.zhudai.repaymentloaninfo.url}")
private String baiHangRepayMentLoanInfoUrl;
@Value("${baihang.zhudai.account.name}")
private String account;
@Value("${baihang.zhudai.password}")
private String password;
@Monitor({MonitorType.EXCEPTION, MonitorType.FEE, MonitorType.HIT, MonitorType.RESULT})
@DistributedLock
public GlobalResponse baiHangZxQuery(String transactionId, String uuid, String name, String idCard, String mobile, String orderNo, boolean isReadCache){
log.info("开始查询百行征信报告, transactionId: {} , uuid: {} , name: {} , idCard: {} , mobile: {} , orderNo: {} ",
transactionId, uuid, name, idCard, mobile, orderNo);
RequestUrlType requestUrlType = RequestUrlType.BaiHangCreditReport;
Integer cacheTime = isReadCache? cacheConfigService.getTestCacheTime(requestUrlType.name()):cacheConfigService.getCacheTime(requestUrlType.name());
if(isReadCache){
String responseInHBase = thirdpartyApiMonitorService.loadInHBaseAndCheckTimeOut(requestUrlType, uuid, cacheTime);
if(StringUtils.isNotBlank(responseInHBase)){
log.info("百行征信hbase查询到结果, transactionId: {} , urlType : {}, uuid: {} , name: {} , idNo: {} , phoneNo: {} , isReadCache: {} , cacheTime: {} ",
transactionId, requestUrlType, uuid, name, idCard, mobile, isReadCache, cacheTime);
return GlobalResponse.builder(transactionId, JSON.parseObject(responseInHBase)).addUuid(uuid).addTransactionResult(requestUrlType, TransactionCodeEnum.HitInHbase);
}else{
log.info("百行征信hbase未查询到结果, transactionId: {} , urlType : {}, uuid: {} , name: {} , idNo: {} , phoneNo: {} , isReadCache: {} , cacheTime: {} ",
transactionId, requestUrlType, uuid, name, idCard, mobile, isReadCache, cacheTime);
return GlobalResponse.builder(transactionId, null).addUuid(uuid).addTransactionResult(requestUrlType, TransactionCodeEnum.Fail);
}
}else{
if(cacheTime>0){
String responseInHBase = thirdpartyApiMonitorService.loadInHBaseAndCheckTimeOut(requestUrlType, uuid, cacheTime);
if (responseInHBase != null) {
log.info("百行征信从hbase拿到数据, transactionId : {} urlType : {} , uuid: {}", transactionId, requestUrlType, uuid);
if(StringUtils.isBlank(responseInHBase)) {
return GlobalResponse.builder(transactionId, null).addUuid(uuid).addTransactionResult(requestUrlType, TransactionCodeEnum.HitInHbase);
} else {
return GlobalResponse.builder(transactionId, JSON.parseObject(responseInHBase)).addUuid(uuid).addTransactionResult(requestUrlType, TransactionCodeEnum.HitInHbase);
}
}
}
}
String isbilling = "1";
TransactionCodeEnum transCode = null;
Stopwatch stopwatch = Stopwatch.createStarted();
String code = null;
String msg = null;
long elapsed = 0;
boolean charge = false;
try{
Map<String,String> applyLoanInfoReqMap = new HashMap<>();
applyLoanInfoReqMap.put("name", interfaceUploadClient(name));
applyLoanInfoReqMap.put("pid", interfaceUploadClient(idCard));
applyLoanInfoReqMap.put("mobile", interfaceUploadClient(mobile));
applyLoanInfoReqMap.put("queryReason", "1");
applyLoanInfoReqMap.put("guaranteeType", "1");
applyLoanInfoReqMap.put("loanPurpose", "1");
applyLoanInfoReqMap.put("customType", "99");
applyLoanInfoReqMap.put("applyAmount", "-1");
applyLoanInfoReqMap.put("loanId", orderNo);
String resultStr = iHttpService.post(baiHangApplyLoanInfoUrl, getHeader(), applyLoanInfoReqMap);
System.out.println(resultStr);
}catch(Exception e){
log.error("百行征信查询征信报告异常, transactionid: {} , uuid: {} , name: {} , idCard: {} , mobile: {} , orderNo: {} ",
transactionId, uuid, name, idCard, mobile, orderNo, e);
}finally {
thirdpartyApiMonitorService.create(uuid, requestUrlType, isbilling, msg, (int)elapsed, code);
}
log.info("查询百行征信报告结束, transactionId: {} , uuid: {} , name: {} , idCard: {} , mobile: {} , orderNo: {} ,result: {} ,耗时: {} ",
transactionId, uuid, name, idCard, mobile, orderNo, "", stopwatch.stop().elapsed(TimeUnit.MILLISECONDS));
return null;
}
public static String interfaceUploadClient(String param) throws Exception{
InterfaceUploadRequest req = new InterfaceUploadRequest();
List<String> datas = new ArrayList<String>();
datas.add(param);
//设置待加密的原始数据集合
req.setData(datas);
BhInterfaceCreditApiClient client = new BhInterfaceCreditApiClient();
//初始化设置RSA公钥
client.init(BHRSAUtils.readRSAPublicKey("/baihang/rsa_public_key.pem"));
//执行加密操作
InterfaceUploadResponse response = client.execute(req);
if(response.isSuccess){
List<String> data = response.getEncryptData();
return data.get(0);
}
throw new Exception();
}
public Map<String,String> getHeader(){
Map<String,String> headerMap = new HashMap<>();
headerMap.put("Authorization", "Basic "+ Base64.byteArrayToBase64((account+":"+password).getBytes()));
return headerMap;
}
}
package cn.quantgroup.report.service.baihang;
import cn.quantgroup.report.domain.baihang.*;
import com.alibaba.fastjson.JSON;
import com.google.common.base.Stopwatch;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
/**
* @Author fengjunkai
* @Date 2019-07-10 16:14
*/
@Slf4j
@Service
public class ReSendBaiHangService extends BaiHangService {
/**
* 重新报送实时放款数据
*/
public void sendLoaInfoReportToBaiHang(String startTime, String endTime) {
AtomicInteger atomicInteger = new AtomicInteger();
List<LoanInfoZhuDai> loanInfos = new ArrayList<>();
Stopwatch sendWatch = Stopwatch.createStarted();
try{
Stopwatch queryWatch = Stopwatch.createStarted();
loanInfos = loanInfoMapper.findLoanInfoByTime(BaiHangTimeRecord.builder().startTime(startTime).endTime(endTime).build());
log.info("广达小贷TO百行放款申请报送开始, 大小: {} , 耗时: {} ", loanInfos.size(), queryWatch.stop().elapsed(TimeUnit.MILLISECONDS));
for (int i = 0; i < loanInfos.size(); i++) {
LoanInfoZhuDai loanInfo = loanInfos.get(i);
String id = "";
try {
String loanInfoReqId = loanInfo.getReqID();
if (loanInfo.getTotalTerm() > 1) {
List<String> targetRepaymentDayList = loanInfoMapper.findTargetRepaymentDayList(loanInfoReqId);
loanInfo.setTargetRepayDateList(String.join(",", targetRepaymentDayList));
}
UUID loanInfoId = UUID.randomUUID();
id = loanInfoId.toString().replaceAll("-", "");
loanInfo.setRecordId(id);
loanInfoDbMapper.saveLoanInfoRecordLog(loanInfo);
loanInfo.setRecordId(null);
loanInfo.setReqID(id);
loanInfo.setName(interfaceUploadClient(loanInfo.getName()));
loanInfo.setPid(interfaceUploadClient(loanInfo.getPid()));
loanInfo.setMobile(interfaceUploadClient(loanInfo.getMobile()));
String resultStr = iHttpService.postBaiHang(baiHangLoanInfoUrl, getHeader(), JSON.toJSONString(loanInfo));
if (Objects.isNull(resultStr) || !"success".equalsIgnoreCase(JSON.parseObject(resultStr).getString("status"))) {
log.warn("(重发)广达小贷TO百行征信报送放款返回结果不正确, recordId: {} , loanId: {} , bean: {} ", id, loanInfo.getLoanId(), JSON.toJSONString(loanInfo));
loanInfoDbMapper.updateCurrentRecordEnableFalce(BaiHangUpDateRecord.builder().enable("0").recordId(id).build());
} else {
atomicInteger.getAndIncrement();
}
} catch (Exception e) {
log.error("广达小贷TO百行征信报送放款信息异常, recordId: {} , loanId: {} ", id, loanInfo.getLoanId(), e);
}
}
}catch(Exception e){
log.error("广达小贷放款报送异常", e);
}
log.info("广达小贷TO百行征信报送放款申请完成, 实际大小: {} , 报送成功大小: {} , 耗时: {} ", loanInfos.size(), atomicInteger.get(), sendWatch.stop().elapsed(TimeUnit.MILLISECONDS));
}
/**
* 手动报送实时还款数据
*/
public void sendRepaymentReportToBaiHang(String startTime, String endTime) {
for (int j = 0; j < 2; j++) {
Stopwatch sendWatch = Stopwatch.createStarted();
try {
List<RepaymentInfoZhuDai> repaymentLoanInfos = null;
if (j == 0) {
Stopwatch realTimeStopWatch = Stopwatch.createStarted();
repaymentLoanInfos = repaymentLoanInfoMapper.findRepayMentLoanInfo(BaiHangTimeRecord.builder().startTime(startTime).endTime(endTime).build());
log.info("广达小贷TO百行征信报送实时还款, startTime: {} , endTime: {} , 大小: {} , 耗时: {} ", startTime, endTime, repaymentLoanInfos.size(), realTimeStopWatch.stop().elapsed(TimeUnit.MILLISECONDS));
} else {
Stopwatch realTimeOverdueStopWatch = Stopwatch.createStarted();
repaymentLoanInfos = repaymentLoanInfoMapper.findRepayMentLoanInfoOverdue(BaiHangTimeRecord.builder().startTime(startTime).endTime(endTime).build());
log.info("广达小贷TO百行征信报送实时还款逾期, startTime: {} , endTime: {} , 大小: {} , 耗时: {} ", startTime, endTime, repaymentLoanInfos.size(), realTimeOverdueStopWatch.stop().elapsed(TimeUnit.MILLISECONDS));
}
AtomicInteger atomicInteger = new AtomicInteger();
for (int i = 0; i < repaymentLoanInfos.size(); i++) {
RepaymentInfoZhuDai repaymentLoanInfo = repaymentLoanInfos.get(i);
String id = "";
try {
RepaymentInfoZhuDai repaymentLoanInfo1 = repaymentLoanInfoDbMapper.findLastOne(BaiHangRepayment.builder().loanId(repaymentLoanInfo.getLoanId()).termNo(repaymentLoanInfo.getTermNo()).build());
if (j > 0 && Objects.nonNull(repaymentLoanInfo1)) {
log.info("广达小贷TO百行征信报送实时还款逾期跳过报送, startTime: {} , endTime: {} , bean: {} ", startTime, endTime, JSON.toJSONString(repaymentLoanInfo1));
continue;
}
id = UUID.randomUUID().toString().replaceAll("-", "");
repaymentLoanInfo.setRecordId(id);
try {
repaymentLoanInfoDbMapper.saveRepaymentLoanInfoLog(repaymentLoanInfo);
} catch (Exception e) {
}
repaymentLoanInfo.setPid(interfaceUploadClient(repaymentLoanInfo.getPid()));
repaymentLoanInfo.setName(interfaceUploadClient(repaymentLoanInfo.getName()));
repaymentLoanInfo.setMobile(interfaceUploadClient(repaymentLoanInfo.getMobile()));
repaymentLoanInfo.setReqID(id);
repaymentLoanInfo.setRecordId(null);
String resultStr = iHttpService.postBaiHang(baiHangRepayMentLoanInfoUrl, getHeader(), JSON.toJSONString(repaymentLoanInfo));
if (Objects.isNull(resultStr) || !"success".equalsIgnoreCase(JSON.parseObject(resultStr).getString("status"))) {
log.warn("广达小贷TO百行征信报送还款返回结果不正确, 开始时间: {} , 结束时间: {} , recordId: {} , loanId: {} , bean: {} ", startTime, endTime, id, repaymentLoanInfo.getLoanId(), JSON.toJSONString(repaymentLoanInfo));
repaymentLoanInfoDbMapper.updateCurrentRecordEnableFalse(BaiHangUpDateRecord.builder().enable("0").recordId(id).build());
} else {
atomicInteger.getAndIncrement();
}
} catch (Exception e) {
log.error("广达小贷TO百行征信报送还款信息异常, recordId: {} , loanId: {} ", id, repaymentLoanInfo.getLoanId(), e);
}
}
log.info("广达小贷TO百行征信报送还款申请完成 J: {} , 开始时间: {} , 结束时间: {} , 实际大小: {} , 报送成功大小: {} , 耗时: {} ", j, startTime, endTime, repaymentLoanInfos.size(), atomicInteger.get(), sendWatch.stop().elapsed(TimeUnit.MILLISECONDS));
} catch (Exception e) {
log.error("广达小贷TO百行征信还款报送异常 J: {} , 开始时间: {} , 结束时间: {} ", j, startTime, endTime, e);
}
}
}
}
package cn.quantgroup.report.service.baihang.util; package cn.quantgroup.report.service.baihang.util;
import cn.quantgroup.report.service.baihang.response.FileUploadResponse; import cn.quantgroup.report.service.baihang.response.FileUploadResponse;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.io.FileUtils;
import org.apache.tools.ant.Project; import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.Expand; import org.apache.tools.ant.taskdefs.Expand;
import org.apache.tools.ant.taskdefs.Zip; import org.apache.tools.ant.taskdefs.Zip;
import org.apache.tools.ant.types.FileSet; import org.apache.tools.ant.types.FileSet;
import java.io.File; import java.io.File;
import java.io.IOException;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.util.Random; import java.util.Random;
...@@ -73,7 +78,44 @@ public class TuoMinUtils { ...@@ -73,7 +78,44 @@ public class TuoMinUtils {
// System.out.println(random_idcard("622726198911100236")); // System.out.println(random_idcard("622726198911100236"));
System.out.println(random_mobile("18010105506")); // System.out.println(random_mobile("18010105506"));
String readAddr = "E:\\桌面_工作\\数据备份\\201911061315贷款申请关联用户.json";
String writeAddr = "E:\\桌面_工作\\数据备份\\201911061315用户脱敏.txt";
try {
long log_stUtc = System.currentTimeMillis();
String sourceStr = FileUtils.readFileToString(new File(readAddr), "utf-8");
JSONObject sourceJson = JSON.parseObject(sourceStr);
JSONArray recordsJsonArr = sourceJson.getJSONArray("RECORDS");
System.out.println("总条数:"+recordsJsonArr.size());
for (int i = 0; i < recordsJsonArr.size(); i++) {
System.out.println("第:"+i);
JSONObject jsonObj = recordsJsonArr.getJSONObject(i);
try {
String name = jsonObj.getString("name");
String pid = jsonObj.getString("pid");
String mobile = jsonObj.getString("mobile");
StringBuffer out = new StringBuffer();
out.append(pid);
out.append("=");
out.append(random_idcard(pid));
out.append(",");
out.append(random_mobile(mobile));
out.append(",");
out.append(random_name(name));
out.append("\n");
FileUtils.write(new File(writeAddr), out , "utf-8", true);
}catch (Exception e){
System.err.println("Error 第:"+i+",pid="+jsonObj.getString("pid"));
}
}
System.out.println("脱敏结束, 耗时: "+((System.currentTimeMillis()-log_stUtc)/1000)+".s");
} catch (IOException e) {
e.printStackTrace();
}
} }
} }
...@@ -14,54 +14,20 @@ ...@@ -14,54 +14,20 @@
<result column="loanId" jdbcType="VARCHAR" property="loanId"/> <result column="loanId" jdbcType="VARCHAR" property="loanId"/>
</resultMap> </resultMap>
<select id="findApplyLoanInfo" resultMap="ApplyLoanInfoBaseResultMap"> <!--<select id="findApplyLoanInfo" resultMap="ApplyLoanInfoBaseResultMap">
select b.name as name, b.id_no as pid, b.phone_no as mobile, '1' as queryReason, '1' as guaranteeType, '1' as loanPurpose, '99' as customType, '-1' as applyAmount, a.order_no as loanId select b.name as name, b.id_no as pid, b.phone_no as mobile, '1' as queryReason, '1' as guaranteeType, '1' as loanPurpose, '99' as customType, '-1' as applyAmount, a.order_no as loanId
from xyqb_i_apply_quota_record a left join xyqb_user_i_user_detail b on a.user_id=b.user_id from xyqb_i_apply_quota_record a left join xyqb_user_i_user_detail b on a.user_id=b.user_id
where a.created_at>=DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 DAY), '%Y-%m-%d'); where a.created_at>=DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 DAY), '%Y-%m-%d');
</select> </select>-->
<select id="findApplyLoanInfoByThreeElements" parameterType="cn.quantgroup.report.domain.baihang.BaiHangThreeElements" resultMap="ApplyLoanInfoBaseResultMap"> <!--<select id="findApplyLoanInfoByThreeElements" parameterType="cn.quantgroup.report.domain.baihang.BaiHangThreeElements" resultMap="ApplyLoanInfoBaseResultMap">
select b.name as name, b.id_no as pid, b.phone_no as mobile, '1' as queryReason, '1' as guaranteeType, '1' as loanPurpose, '99' as customType, '-1' as applyAmount, a.order_no as loanId select b.name as name, b.id_no as pid, b.phone_no as mobile, '1' as queryReason, '1' as guaranteeType, '1' as loanPurpose, '99' as customType, '-1' as applyAmount, a.order_no as loanId
from xyqb_i_apply_quota_record a left join xyqb_user_i_user_detail b on a.user_id=b.user_id from xyqb_i_apply_quota_record a left join xyqb_user_i_user_detail b on a.user_id=b.user_id
where b.name=#{name} and b.id_no=#{idCard} and b.phone_no=#{phone} limit 1; where b.name=#{name} and b.id_no=#{idCard} and b.phone_no=#{phone} limit 1;
</select> </select>-->
<!--申请--> <!--申请-->
<select id="findStockApplyLoanInfo" resultMap="ApplyLoanInfoBaseResultMap"> <!--<select id="findStockApplyLoanInfo" resultMap="ApplyLoanInfoBaseResultMap">
-- select * from
-- (select
-- b.name name
-- ,b.id_no pid
-- ,b.phone_no mobile
-- ,'1' queryReason
-- ,'1' guaranteeType
-- ,'1' loanPurpose
-- ,'99' customType
-- ,'-1' applyAmount
-- ,if(d.order_no is null,a.loan_application_history_id,d.order_no) loanId
-- from xyqb_i_loan_application_manifest_history a
-- left join xyqb_user_i_user_detail b on a.user_id=b.user_id
-- left join xyqb_i_loan_account_ext c on a.loan_application_history_id=c.loan_id
-- left join xyqb_i_apply_quota_record d on c.order_no=d.order_no
-- where a.funding_corp_id=480 and a.transaction_status in (2,5)) a
-- union all
-- select * from
-- (select
-- b.name name
-- ,b.id_no pid
-- ,b.phone_no mobile
-- ,'1' queryReason
-- ,'1' guaranteeType
-- ,'1' loanPurpose
-- ,'99' customType
-- ,'-1' applyAmount
-- ,if(d.order_no is null,a.loan_application_history_id,d.order_no) loanId
-- from xyqb_i_loan_application_manifest_history a
-- left join xyqb_user_i_user_detail b on a.user_id=b.user_id
-- left join xyqb_i_loan_account_ext c on a.loan_application_history_id=c.loan_id
-- left join xyqb_i_apply_quota_record d on c.order_no=d.order_no
-- where a.transaction_status in (2,5) and a.loan_paid_at>='2018-01-01 00:00:00'
-- and a.funding_corp_id!=480 order by rand() limit 212342) b;
select * from select * from
(select (select
b.name name b.name name
...@@ -78,7 +44,7 @@ ...@@ -78,7 +44,7 @@
left join xyqb_i_loan_account_ext c on a.loan_application_history_id=c.loan_id left join xyqb_i_loan_account_ext c on a.loan_application_history_id=c.loan_id
left join xyqb_i_apply_quota_record d on c.order_no=d.order_no left join xyqb_i_apply_quota_record d on c.order_no=d.order_no
where a.funding_corp_id=480 and a.transaction_status in (2,5) and a.loan_paid_at > '2019-05-09 19:07:00' and a.loan_paid_at &lt; '2019-05-29') a where a.funding_corp_id=480 and a.transaction_status in (2,5) and a.loan_paid_at > '2019-05-09 19:07:00' and a.loan_paid_at &lt; '2019-05-29') a
</select> </select>-->
<!--百行-助贷申请存量数据 整理 2019.10.23--> <!--百行-助贷申请存量数据 整理 2019.10.23-->
......
...@@ -49,8 +49,8 @@ ...@@ -49,8 +49,8 @@
</resultMap> </resultMap>
<!--报送实时放款数据(百行征信报送)--> <!--报送实时放款数据(广达百行征信报送)-->
<select id="findLoanInfo" resultMap="LoanInfoResultMap" > <!-- <select id="findLoanInfo" resultMap="LoanInfoResultMap" >
select a.loan_application_history_id reqID select a.loan_application_history_id reqID
,'A' opCode ,'A' opCode
,DATE_FORMAT(now(),'%Y-%m-%dT%H:%i:%S') uploadTs ,DATE_FORMAT(now(),'%Y-%m-%dT%H:%i:%S') uploadTs
...@@ -83,15 +83,15 @@ ...@@ -83,15 +83,15 @@
left join xyqb_i_repayment_plan g on a.loan_application_history_id=g.loan_application_history_id left join xyqb_i_repayment_plan g on a.loan_application_history_id=g.loan_application_history_id
left join xyqb_i_loan_application_history h on a.loan_application_history_id=h.id left join xyqb_i_loan_application_history h on a.loan_application_history_id=h.id
left join xyqb_i_quota_credit i on d.order_no=i.order_no left join xyqb_i_quota_credit i on d.order_no=i.order_no
-- where a.funding_corp_id in (480,710) and e.term_no=a.contract_term and g.term_no=1 /*where a.funding_corp_id in (480,710) and e.term_no=a.contract_term and g.term_no=1*/
where a.funding_corp_id in (480,710,630,790,820) and e.term_no=a.contract_term and g.term_no=1 where a.funding_corp_id in (480,710,630,790,820) and e.term_no=a.contract_term and g.term_no=1
and a.transaction_status in (2,5) and a.transaction_status in (2,5)
and a.created_at>=DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 DAY), '%Y-%m-%d') and a.created_at>=DATE_FORMAT(DATE_ADD(NOW(), INTERVAL -1 DAY), '%Y-%m-%d')
and a.created_at&lt;DATE_FORMAT(NOW(), '%Y-%m-%d'); and a.created_at&lt;DATE_FORMAT(NOW(), '%Y-%m-%d');
</select> </select>-->
<!--重新报送实时放款数据--> <!--广达重新报送实时放款数据-->
<select id="findLoanInfoByTime" resultMap="LoanInfoResultMap" parameterType="cn.quantgroup.report.domain.baihang.BaiHangTimeRecord"> <!--<select id="findLoanInfoByTime" resultMap="LoanInfoResultMap" parameterType="cn.quantgroup.report.domain.baihang.BaiHangTimeRecord">
select a.loan_application_history_id reqID select a.loan_application_history_id reqID
,'A' opCode ,'A' opCode
,DATE_FORMAT(now(),'%Y-%m-%dT%H:%i:%S') uploadTs ,DATE_FORMAT(now(),'%Y-%m-%dT%H:%i:%S') uploadTs
...@@ -128,51 +128,11 @@ ...@@ -128,51 +128,11 @@
and a.transaction_status in (2,5) and a.transaction_status in (2,5)
and a.created_at>=#{startTime} and a.created_at>=#{startTime}
and a.created_at&lt;#{endTime}; and a.created_at&lt;#{endTime};
</select>-->
</select> <!--广达存量放款数据报送-->
<!-- <select id="stockLoanInfo" resultMap="LoanInfoResultMap" >
<!--根据loan_application_history_id查询最晚还款日--> select a.loan_application_history_id reqID
<select id="findTargetRepaymentDayList" parameterType="java.lang.String" resultType="java.lang.String">
select date(DATE_SUB(deadline,INTERVAL 1 second)) from xyqb_i_repayment_plan where loan_application_history_id=#{reqID}
</select>
<!--存量放款数据报送-->
<select id="stockLoanInfo" resultMap="LoanInfoResultMap" >
-- select a.loan_application_history_id reqID
-- ,'A' opCode
-- ,DATE_FORMAT(now(),'%Y-%m-%dT%H:%i:%S') uploadTs
-- ,b.name name
-- ,b.id_no pid
-- ,b.phone_no mobile
-- ,if(d.order_no is null,a.loan_application_history_id,d.order_no) loanId
-- ,'1' guaranteeType
-- ,'1' loanPurpose
-- ,DATE_FORMAT(case when i.created_at is null and h.created_at&lt;=f.created_at then h.created_at
-- when i.created_at is null and h.created_at>f.created_at then f.created_at
-- else i.created_at end,'%Y-%m-%dT%H:%i:%S') as applyDate
-- ,DATE_FORMAT(case when d.created_at is null and f.created_at>=h.created_at then f.created_at
-- when d.created_at is null and f.created_at&lt;h.created_at then h.created_at
-- else d.created_at end,'%Y-%m-%dT%H:%i:%S') as accountOpenDate
-- ,DATE_FORMAT(a.loan_paid_at,'%Y-%m-%dT%H:%i:%S') issueDate
-- ,date(date_sub(e.deadline,INTERVAL 1 second)) dueDate
-- ,a.contract_loan_amount loanAmount
-- ,a.contract_term totalTerm
-- ,if(a.contract_term=1,'1','2') targetRepayDateType
-- ,if(a.contract_term=1,'30','-1') termPeriod
-- ,date(date_sub(g.deadline,INTERVAL 1 second)) firstRepaymentDate
-- ,'0' gracePeriod
-- from xyqb_i_loan_application_manifest_history a
-- left join xyqb_user_i_user_detail b on a.user_id=b.user_id
-- left join xyqb_i_loan_account_ext c on a.loan_application_history_id=c.loan_id
-- left join xyqb_i_apply_quota_record d on c.order_no=d.order_no
-- left join xyqb_i_repayment_plan e on a.loan_application_history_id=e.loan_application_history_id
-- left join xyqb_i_loan_submit_info f on a.loan_application_history_id=f.loan_id
-- left join xyqb_i_repayment_plan g on a.loan_application_history_id=g.loan_application_history_id
-- left join xyqb_i_loan_application_history h on a.loan_application_history_id=h.id
-- left join xyqb_i_quota_credit i on d.order_no=i.order_no
-- where a.funding_corp_id=480 and e.term_no=a.contract_term and g.term_no=1
-- and a.transaction_status in (2,5) order by a.loan_paid_at;
select a.loan_application_history_id reqID
,'A' opCode ,'A' opCode
,DATE_FORMAT(now(),'%Y-%m-%dT%H:%i:%S') uploadTs ,DATE_FORMAT(now(),'%Y-%m-%dT%H:%i:%S') uploadTs
,b.name name ,b.name name
...@@ -205,9 +165,14 @@ ...@@ -205,9 +165,14 @@
left join xyqb_i_loan_application_history h on a.loan_application_history_id=h.id left join xyqb_i_loan_application_history h on a.loan_application_history_id=h.id
left join xyqb_i_quota_credit i on d.order_no=i.order_no left join xyqb_i_quota_credit i on d.order_no=i.order_no
where a.funding_corp_id in (480,710) and e.term_no=a.contract_term and g.term_no=1 where a.funding_corp_id in (480,710) and e.term_no=a.contract_term and g.term_no=1
and a.transaction_status in (2,5) and a.transaction_status in (2,5);
/* and a.loan_paid_at > '2019-05-09 10:30:07' and a.loan_paid_at &lt; '2019-05-29' order by a.loan_paid_at;*/
</select>-->
-- and a.loan_paid_at > '2019-05-09 10:30:07' and a.loan_paid_at &lt; '2019-05-29' order by a.loan_paid_at; <!--根据loan_application_history_id查询最晚还款日-->
<select id="findTargetRepaymentDayList" parameterType="java.lang.String" resultType="java.lang.String">
select date(DATE_SUB(deadline,INTERVAL 1 second)) from xyqb_i_repayment_plan where loan_application_history_id=#{reqID}
</select> </select>
......
...@@ -25,8 +25,8 @@ ...@@ -25,8 +25,8 @@
<!--<result column="loanStatus" jdbcType="VARCHAR" property="loanStatus"/>--> <!--<result column="loanStatus" jdbcType="VARCHAR" property="loanStatus"/>-->
<!--</resultMap>--> <!--</resultMap>-->
<!--实时逾期还款(百行征信报送)--> <!--实时逾期还款(广达百行征信报送)-->
<select id="findRepayMentLoanInfoOverdue" <!--<select id="findRepayMentLoanInfoOverdue"
parameterType="cn.quantgroup.report.domain.baihang.BaiHangTimeRecord" parameterType="cn.quantgroup.report.domain.baihang.BaiHangTimeRecord"
resultType="cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai"> resultType="cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai">
select select
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
where a.repayment_status not in (3,4) and where a.repayment_status not in (3,4) and
if(b.contract_term>a.term_no,DATEDIFF(#{endTime,jdbcType=VARCHAR},a.deadline)=0,DATEDIFF(#{endTime,jdbcType=VARCHAR},a.deadline)>=0) if(b.contract_term>a.term_no,DATEDIFF(#{endTime,jdbcType=VARCHAR},a.deadline)=0,DATEDIFF(#{endTime,jdbcType=VARCHAR},a.deadline)>=0)
and floor(DATEDIFF(#{endTime,jdbcType=VARCHAR},a.deadline)/30)=DATEDIFF(#{endTime,jdbcType=VARCHAR,jdbcType=VARCHAR},a.deadline)/30 and floor(DATEDIFF(#{endTime,jdbcType=VARCHAR},a.deadline)/30)=DATEDIFF(#{endTime,jdbcType=VARCHAR,jdbcType=VARCHAR},a.deadline)/30
-- and (b.funding_corp_id=480 or (b.funding_corp_id=710 and b.loan_paid_at>='2019-05-29')) and b.transaction_status in (2,5) ) a &#45;&#45; and (b.funding_corp_id=480 or (b.funding_corp_id=710 and b.loan_paid_at>='2019-05-29')) and b.transaction_status in (2,5) ) a
and (b.funding_corp_id=480 or (b.funding_corp_id=710 and b.loan_paid_at>='2019-05-29') or and (b.funding_corp_id=480 or (b.funding_corp_id=710 and b.loan_paid_at>='2019-05-29') or
(b.funding_corp_id in (630,790,820) and b.loan_paid_at>='2019-10-16') (b.funding_corp_id in (630,790,820) and b.loan_paid_at>='2019-10-16')
) and b.transaction_status in (2,5) ) a ) and b.transaction_status in (2,5) ) a
...@@ -75,15 +75,15 @@ ...@@ -75,15 +75,15 @@
left join xyqb_i_loan_application_manifest_history b left join xyqb_i_loan_application_manifest_history b
on a.loan_application_history_id=b.loan_application_history_id on a.loan_application_history_id=b.loan_application_history_id
left join xyqb_i_repayment_record g on a.id=g.repayment_plan_id left join xyqb_i_repayment_record g on a.id=g.repayment_plan_id
-- where b.funding_corp_id in (480,710) &#45;&#45; where b.funding_corp_id in (480,710)
where b.funding_corp_id in (480,710,630,790,820) where b.funding_corp_id in (480,710,630,790,820)
group by a.loan_application_history_id) f on a.loan_application_history_id=f.loan_application_history_id group by a.loan_application_history_id) f on a.loan_application_history_id=f.loan_application_history_id
left join xyqb_i_repayment_record g on a.id=g.repayment_plan_id; left join xyqb_i_repayment_record g on a.id=g.repayment_plan_id;
</select> </select>
-->
<!--实时还款(广达百行征信报送)-->
<!--实时还款(百行征信报送)--> <!--<select id="findRepayMentLoanInfo" parameterType="cn.quantgroup.report.domain.baihang.BaiHangTimeRecord"
<select id="findRepayMentLoanInfo" parameterType="cn.quantgroup.report.domain.baihang.BaiHangTimeRecord"
resultType="cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai"> resultType="cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai">
select select
a.id reqID a.id reqID
...@@ -119,7 +119,6 @@ ...@@ -119,7 +119,6 @@
left join xyqb_i_repayment_plan c on a.loan_application_history_id=c.loan_application_history_id left join xyqb_i_repayment_plan c on a.loan_application_history_id=c.loan_application_history_id
and a.term_no=c.term_no-1 and a.term_no=c.term_no-1
where a.repaid_at>=#{startTime,jdbcType=VARCHAR} and a.repaid_at &lt; #{endTime,jdbcType=VARCHAR} and a.repayment_status=3 where a.repaid_at>=#{startTime,jdbcType=VARCHAR} and a.repaid_at &lt; #{endTime,jdbcType=VARCHAR} and a.repayment_status=3
-- and (b.funding_corp_id=480 or (b.funding_corp_id=710 and b.loan_paid_at>='2019-05-29'))) a
and (b.funding_corp_id=480 or (b.funding_corp_id=710 and b.loan_paid_at>='2019-05-29') or and (b.funding_corp_id=480 or (b.funding_corp_id=710 and b.loan_paid_at>='2019-05-29') or
(b.funding_corp_id in (630,790,820) and b.loan_paid_at>='2019-10-16') )) a (b.funding_corp_id in (630,790,820) and b.loan_paid_at>='2019-10-16') )) a
left join xyqb_user_i_user_detail b on a.user_id=b.user_id left join xyqb_user_i_user_detail b on a.user_id=b.user_id
...@@ -135,7 +134,6 @@ ...@@ -135,7 +134,6 @@
left join xyqb_i_loan_application_manifest_history b left join xyqb_i_loan_application_manifest_history b
on a.loan_application_history_id=b.loan_application_history_id on a.loan_application_history_id=b.loan_application_history_id
left join xyqb_i_repayment_record g on a.id=g.repayment_plan_id left join xyqb_i_repayment_record g on a.id=g.repayment_plan_id
-- where b.funding_corp_id in (480,710)
where b.funding_corp_id in (480,710,630,790,820) where b.funding_corp_id in (480,710,630,790,820)
group by a.loan_application_history_id) f on a.loan_application_history_id=f.loan_application_history_id group by a.loan_application_history_id) f on a.loan_application_history_id=f.loan_application_history_id
left join xyqb_i_repayment_record g on a.id=g.repayment_plan_id left join xyqb_i_repayment_record g on a.id=g.repayment_plan_id
...@@ -148,7 +146,6 @@ ...@@ -148,7 +146,6 @@
on a.loan_application_history_id=b.loan_application_history_id on a.loan_application_history_id=b.loan_application_history_id
left join xyqb_i_repayment_plan c on a.loan_application_history_id=c.loan_application_history_id left join xyqb_i_repayment_plan c on a.loan_application_history_id=c.loan_application_history_id
where DATEDIFF(a.repaid_at,c.deadline)>=-1 where DATEDIFF(a.repaid_at,c.deadline)>=-1
-- and b.funding_corp_id in (480,710)
and b.funding_corp_id in (480,710,630,790,820) and b.funding_corp_id in (480,710,630,790,820)
group by a.loan_application_history_id,a.term_no) h group by a.loan_application_history_id,a.term_no) h
on a.loan_application_history_id=h.loan_application_history_id and a.term_no=h.term_no on a.loan_application_history_id=h.loan_application_history_id and a.term_no=h.term_no
...@@ -160,7 +157,6 @@ ...@@ -160,7 +157,6 @@
left join xyqb_i_loan_application_manifest_history b left join xyqb_i_loan_application_manifest_history b
on a.loan_application_history_id=b.loan_application_history_id on a.loan_application_history_id=b.loan_application_history_id
left join xyqb_i_repayment_record d on a.loan_application_history_id=d.loan_application_history_id left join xyqb_i_repayment_record d on a.loan_application_history_id=d.loan_application_history_id
-- where b.funding_corp_id in (480,710)
where b.funding_corp_id in (480,710,630,790,820) where b.funding_corp_id in (480,710,630,790,820)
group by a.loan_application_history_id,a.term_no) i group by a.loan_application_history_id,a.term_no) i
on a.loan_application_history_id=i.loan_application_history_id and a.term_no=i.term_no on a.loan_application_history_id=i.loan_application_history_id and a.term_no=i.term_no
...@@ -169,9 +165,9 @@ ...@@ -169,9 +165,9 @@
group by if(d.order_no is null,a.loan_application_history_id,d.order_no), group by if(d.order_no is null,a.loan_application_history_id,d.order_no),
if(DATEDIFF(a.next_deadline,a.repaid_at)>1,a.term_no,h.max_term) if(DATEDIFF(a.next_deadline,a.repaid_at)>1,a.term_no,h.max_term)
</select> </select>
-->
<!-- <select id="findName" parameterType="cn.quantgroup.report.domain.baihang.BaiHangName"
<select id="findName" parameterType="cn.quantgroup.report.domain.baihang.BaiHangName"
resultType="cn.quantgroup.report.domain.baihang.BaiHangNameResult"> resultType="cn.quantgroup.report.domain.baihang.BaiHangNameResult">
select d.NAME name select d.NAME name
,d.id_no pid ,d.id_no pid
...@@ -190,7 +186,7 @@ ...@@ -190,7 +186,7 @@
left join xyqb_i_apply_quota_record c on b.order_no=c.order_no left join xyqb_i_apply_quota_record c on b.order_no=c.order_no
left join xyqb_user_i_user_detail d on a.user_id=d.user_id left join xyqb_user_i_user_detail d on a.user_id=d.user_id
where a.id=#{loanId}; where a.id=#{loanId};
</select> </select>-->
<!--百行-助贷“逾期还款”存量数据 整理 2019.10.23--> <!--百行-助贷“逾期还款”存量数据 整理 2019.10.23-->
......
...@@ -27,12 +27,10 @@ ...@@ -27,12 +27,10 @@
</resultMap> </resultMap>
<select id="saveLoanInfoRecordLog" parameterType="cn.quantgroup.report.domain.baihang.LoanInfoZhuDai"> <select id="saveLoanInfoRecordLog" parameterType="cn.quantgroup.report.domain.baihang.LoanInfoZhuDai">
<!-- <!--insert into loan_info_zhudai (record_id, req_id, name, pid,mobile,op_Code,upload_ts,loan_id,guarantee_type,loan_purpose,apply_date,account_open_date,
insert into loan_info_zhudai (record_id, req_id, name, pid,mobile,op_Code,upload_ts,loan_id,guarantee_type,loan_purpose,apply_date,account_open_date,
issue_date,due_date,loan_amount,total_term,target_repay_date_type,term_period,first_repayment_date,grace_period) issue_date,due_date,loan_amount,total_term,target_repay_date_type,term_period,first_repayment_date,grace_period)
VALUES (#{recordId},#{reqID},#{name},#{pid},#{mobile},#{opCode},#{uploadTs},#{loanId},#{guaranteeType},#{loanPurpose},#{applyDate} VALUES (#{recordId},#{reqID},#{name},#{pid},#{mobile},#{opCode},#{uploadTs},#{loanId},#{guaranteeType},#{loanPurpose},#{applyDate}
,#{accountOpenDate},#{issueDate},#{dueDate},#{loanAmount},#{totalTerm},#{targetRepayDateType},#{termPeriod},#{firstRepaymentDate},#{gracePeriod})*/ ,#{accountOpenDate},#{issueDate},#{dueDate},#{loanAmount},#{totalTerm},#{targetRepayDateType},#{termPeriod},#{firstRepaymentDate},#{gracePeriod})*/-->
-->
insert into loan_info_zhudai (record_id, req_id, name, pid,mobile,op_Code,upload_ts,loan_id,guarantee_type,loan_purpose,apply_date,account_open_date, insert into loan_info_zhudai (record_id, req_id, name, pid,mobile,op_Code,upload_ts,loan_id,guarantee_type,loan_purpose,apply_date,account_open_date,
issue_date,due_date,loan_amount,total_term,target_repay_date_type,term_period,first_repayment_date,grace_period, issue_date,due_date,loan_amount,total_term,target_repay_date_type,term_period,first_repayment_date,grace_period,
institutional_funding_partner,institutional_funding_partner_id,institutional_funding_partner_loan_id,relation_id,order_id,pre_credit_limit) institutional_funding_partner,institutional_funding_partner_id,institutional_funding_partner_loan_id,relation_id,order_id,pre_credit_limit)
...@@ -45,8 +43,8 @@ ...@@ -45,8 +43,8 @@
update loan_info_zhudai set enable = #{enable, jdbcType=VARCHAR} where record_id = #{recordId, jdbcType=VARCHAR}; update loan_info_zhudai set enable = #{enable, jdbcType=VARCHAR} where record_id = #{recordId, jdbcType=VARCHAR};
</update> </update>
<select id="findAll" resultMap="LoanInfoResultMap"> <!--<select id="findAll" resultMap="LoanInfoResultMap">
select * from loan_info_zhudai where enable = false; select * from loan_info_zhudai where enable = false;
</select> </select>-->
</mapper> </mapper>
\ No newline at end of file
...@@ -68,9 +68,9 @@ ...@@ -68,9 +68,9 @@
update repayment_loan_info_zhudai set enable = #{enable, jdbcType=VARCHAR}, updated_at = CURRENT_TIMESTAMP() where record_id = #{recordId, jdbcType=VARCHAR}; update repayment_loan_info_zhudai set enable = #{enable, jdbcType=VARCHAR}, updated_at = CURRENT_TIMESTAMP() where record_id = #{recordId, jdbcType=VARCHAR};
</update> </update>
<select id="findAll" resultMap="RepaymetnLoanInfoResultMap"> <!-- <select id="findAll" resultMap="RepaymetnLoanInfoResultMap">
select * from repayment_loan_info_zhudai where enable = false; select * from repayment_loan_info_zhudai where enable = false;
</select> </select>-->
<select id="findLastOne" parameterType="cn.quantgroup.report.domain.baihang.BaiHangRepayment" resultType="cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai"> <select id="findLastOne" parameterType="cn.quantgroup.report.domain.baihang.BaiHangRepayment" resultType="cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai">
select * from repayment_loan_info_zhudai where loan_id = #{loanId} and term_no = #{termNo} limit 1; select * from repayment_loan_info_zhudai where loan_id = #{loanId} and term_no = #{termNo} limit 1;
......
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