Commit 9ed8263f authored by 郝彦辉's avatar 郝彦辉

手动报送,自动化工具。

parent efe8a960
...@@ -36,9 +36,9 @@ public class ManualToolController { ...@@ -36,9 +36,9 @@ public class ManualToolController {
@RequestMapping("/send/baihang") @RequestMapping("/send/baihang")
public GlobalResponse sendBaihang(String p1,String p2,String p3,String p4,String p5,String secretKey, String isSend,String errorCode) { public GlobalResponse sendBaihang(String p1,String p2,String p3,String p4,String p5,String secretKey, String isSend,String errorCode, String isProduct, String sendIncludeType) {
try{ try{
return manualToolService.sendBaiHangData(p1,p2,p3,p4,p5,secretKey,isSend,errorCode); return manualToolService.sendBaiHangData(p1,p2,p3,p4,p5,secretKey,isSend,errorCode, isProduct, sendIncludeType);
}catch (Exception e){ }catch (Exception e){
log.error("百行征信手动报送异常, {} , {} ", e.getMessage(), e); log.error("百行征信手动报送异常, {} , {} ", e.getMessage(), e);
return GlobalResponse.generate(e.getMessage()); return GlobalResponse.generate(e.getMessage());
...@@ -64,24 +64,6 @@ public class ManualToolController { ...@@ -64,24 +64,6 @@ public class ManualToolController {
} }
/**
* 描述: 应商务要求测试-品钛高德分 <br/>
* 参数: [jsonFile] <br/>
* 返回值: GlobalResponse <br/>
* 创建人: yanhui.Hao <br/>
* 创建时间: 2019.10.17 <br/>
*/
@RequestMapping("/request/pinTaiCreditScoreV1")
public GlobalResponse pinTaiCreditScoreV1(String filePath,String p3,String secretKey) {
try{
return manualToolService.testPTCreditScoreV1(filePath,p3,secretKey);
}catch (Exception e){
log.error("品钛高德分测试异常, {} , {} ", e.getMessage(), e);
return GlobalResponse.generate(e.getMessage());
}
}
/** /**
* 描述: 手动刷新getUuiidWhiteListByServiceAndMethod <br/> * 描述: 手动刷新getUuiidWhiteListByServiceAndMethod <br/>
* 参数: [p3, secretKey] <br/> * 参数: [p3, secretKey] <br/>
......
...@@ -20,11 +20,15 @@ import java.time.format.DateTimeFormatter; ...@@ -20,11 +20,15 @@ import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
* 百行征信报送出现错误的贷款记录信息重新报送 * -----------------------------------------------------------------------------<br>
* * 描述: 北京众信利民信息技术有限公司 助贷模式To百行征信报送<br>
* @Author fengjunkai * 作者:yanhui.Hao <br>
* @Date 2019-04-15 17:27 * 时间:2019.11.20 <br>
* 授权: (C) Copyright (c) 2017 <br>
* 公司: 北京众信利民信息技术有限公司 <br>
* -----------------------------------------------------------------------------
*/ */
@RestController @RestController
@RequestMapping("/zhudai/re_send") @RequestMapping("/zhudai/re_send")
...@@ -127,7 +131,7 @@ public class ExZhuDaiBaiHangReSendController { ...@@ -127,7 +131,7 @@ public class ExZhuDaiBaiHangReSendController {
//--------------------------------------------------------------------- //---------------------------------------------------------------------
/** /**
* 描述: 手动重新报送部分放款D2逻辑问题数据 <br/> * 描述: 手动重新报送部分申请A1逻辑问题数据 <br/>
* 参数: [] <br/> * 参数: [] <br/>
* 返回值: cn.quantgroup.report.response.GlobalResponse <br/> * 返回值: cn.quantgroup.report.response.GlobalResponse <br/>
* 创建人: yanhui.Hao <br/> * 创建人: yanhui.Hao <br/>
......
package cn.quantgroup.report.domain.baihang;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* -----------------------------------------------------------------------------<br>
* 描述: 放款用户信息,用于手动报送 <br>
* 作者:yanhui.Hao <br>
* 时间:2019.09.25 <br>
* 授权: (C) Copyright (c) 2017 <br>
* 公司: 北京众信利民信息技术有限公司 <br>
* -----------------------------------------------------------------------------
*/
@Data
public class LoanInfoVo implements Serializable {
private static final long serialVersionUID = 7293591774673907983L;
private Integer reqID; //记录唯一ID
//private String recordId;
private String opCode; //操作代码A-增加 M-修改
private String uploadTs; //记录生成时间 ISO 8601格式 LocalDateTime生成
private String name; //姓名
private String pid; //身份证好
private String mobile; //手机号
private String loanId; //贷款编号
private int guaranteeType; //贷款担保类型
private int loanPurpose; //借款用途
private String applyDate;// 贷款申请时间
private String accountOpenDate; //账户开立时间
private String issueDate; //贷款放款时间
private String dueDate; //贷款到期日期 YYYY-MM-DD
private BigDecimal loanAmount; //贷款金额
private int totalTerm; //还款总期数
private String targetRepayDateType; //账单日类型
private String termPeriod;//每期还款周期
private String firstRepaymentDate; //首次应还款日期 YYYY-MM-DD
private String gracePeriod; //宽限日
//private String targetRepayDateList; //账单日列表
}
...@@ -12,12 +12,11 @@ import java.math.BigDecimal; ...@@ -12,12 +12,11 @@ import java.math.BigDecimal;
* @Date 2019-03-26 15:13 * @Date 2019-03-26 15:13
*/ */
@Data @Data
public class RepaymentLoanInfoVo implements Serializable { public class RepaymentLoanInfoLog implements Serializable {
private static final long serialVersionUID = 8722959335665582382L; private static final long serialVersionUID = 8722959335665582382L;
private String reqID; //记录唯一标示 private String reqID; //记录唯一标示
private String recordId;
private String opCode; //操作CODE a-增加 m-修改 private String opCode; //操作CODE a-增加 m-修改
private String uploadTs; //记录生成时间 ISO 8601 private String uploadTs; //记录生成时间 ISO 8601
private String loanId; //贷款ID private String loanId; //贷款ID
...@@ -37,6 +36,8 @@ public class RepaymentLoanInfoVo implements Serializable { ...@@ -37,6 +36,8 @@ public class RepaymentLoanInfoVo implements Serializable {
private BigDecimal remainingAmount; //贷款余额 private BigDecimal remainingAmount; //贷款余额
private int loanStatus; //本笔贷款状态 private int loanStatus; //本笔贷款状态
private String recordId;
private Long id; private Long id;
private Integer enable; private Integer enable;
private String createdAt; private String createdAt;
......
package cn.quantgroup.report.mapper.baihang; package cn.quantgroup.report.mapper.baihang;
import cn.quantgroup.report.domain.baihang.BaiHangTimeRecord; import cn.quantgroup.report.domain.baihang.BaiHangTimeRecord;
import cn.quantgroup.report.domain.baihang.LoanInfoVo;
import cn.quantgroup.report.domain.baihang.LoanInfoZhuDai; import cn.quantgroup.report.domain.baihang.LoanInfoZhuDai;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -44,11 +43,11 @@ public interface LoanInfoMapper { ...@@ -44,11 +43,11 @@ public interface LoanInfoMapper {
/** /**
* 描述: 根据loan_application_history_id查询手动报送的bean <br/> * 描述: 根据loan_application_history_id查询手动报送的bean <br/>
* 参数: loanApplicationHistoryId <br/> * 参数: loanApplicationHistoryId <br/>
* 返回值: LoanInfoVo <br/> * 返回值: LoanInfoZhuDai <br/>
* 创建人: yanhui.Hao <br/> * 创建人: yanhui.Hao <br/>
* 创建时间: 2019.09.25 <br/> * 创建时间: 2019.09.25 <br/>
*/ */
LoanInfoVo findLoanInfoVoByHistoryId(String loanApplicationHistoryId); LoanInfoZhuDai findLoanInfoD2ByHistoryId(String loanApplicationHistoryId);
......
package cn.quantgroup.report.mapper.master; package cn.quantgroup.report.mapper.master;
import cn.quantgroup.report.domain.baihang.ApplyLoanInfo; import cn.quantgroup.report.domain.baihang.ApplyLoanInfo;
import cn.quantgroup.report.domain.baihang.ApplyLoanInfoZhuDai;
import cn.quantgroup.report.domain.baihang.LoanInfoZhuDai;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
...@@ -18,4 +20,14 @@ public interface ApplyLoanInfoDbMapper { ...@@ -18,4 +20,14 @@ public interface ApplyLoanInfoDbMapper {
List<ApplyLoanInfo> findAll(); List<ApplyLoanInfo> findAll();
/**
* 描述: 根据loan_application_history_id查询手动报送的申请bean <br/>
* 参数: loanApplicationHistoryId <br/>
* 返回值: ApplyLoanInfoZhuDai <br/>
* 创建人: yanhui.Hao <br/>
* 创建时间: 2019.09.25 <br/>
*/
ApplyLoanInfoZhuDai findApplyInfoA1ByHistoryId(String loanApplicationHistoryId);
} }
...@@ -3,7 +3,7 @@ package cn.quantgroup.report.mapper.master; ...@@ -3,7 +3,7 @@ package cn.quantgroup.report.mapper.master;
import cn.quantgroup.report.domain.baihang.BaiHangRepayment; import cn.quantgroup.report.domain.baihang.BaiHangRepayment;
import cn.quantgroup.report.domain.baihang.BaiHangUpDateRecord; import cn.quantgroup.report.domain.baihang.BaiHangUpDateRecord;
import cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai; import cn.quantgroup.report.domain.baihang.RepaymentInfoZhuDai;
import cn.quantgroup.report.domain.baihang.RepaymentLoanInfoVo; import cn.quantgroup.report.domain.baihang.RepaymentLoanInfoLog;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List; import java.util.List;
...@@ -35,6 +35,6 @@ public interface RepaymentLoanInfoDbMapper { ...@@ -35,6 +35,6 @@ public interface RepaymentLoanInfoDbMapper {
* 创建人: yanhui.Hao <br/> * 创建人: yanhui.Hao <br/>
* 创建时间: 2019.09.24 <br/> * 创建时间: 2019.09.24 <br/>
*/ */
List<RepaymentLoanInfoVo> findByRecordId(String[] recordIdArray); List<RepaymentLoanInfoLog> findByD3RecordId(String[] recordIdArray);
} }
package cn.quantgroup.report.service.manualTool; package cn.quantgroup.report.service.manualTool;
import cn.quantgroup.report.ApplicationContextHolder;
import cn.quantgroup.report.config.aop.DistributedLock; import cn.quantgroup.report.config.aop.DistributedLock;
import cn.quantgroup.report.config.aop.Monitor; import cn.quantgroup.report.config.aop.Monitor;
import cn.quantgroup.report.config.aop.MonitorType; import cn.quantgroup.report.config.aop.MonitorType;
import cn.quantgroup.report.domain.baihang.*; import cn.quantgroup.report.domain.baihang.*;
import cn.quantgroup.report.mapper.baihang.LoanInfoMapper; import cn.quantgroup.report.mapper.baihang.LoanInfoMapper;
import cn.quantgroup.report.mapper.master.ApplyLoanInfoDbMapper;
import cn.quantgroup.report.mapper.master.RepaymentLoanInfoDbMapper; import cn.quantgroup.report.mapper.master.RepaymentLoanInfoDbMapper;
import cn.quantgroup.report.response.GlobalResponse; import cn.quantgroup.report.response.GlobalResponse;
import cn.quantgroup.report.service.CommonSuperService; import cn.quantgroup.report.service.CommonSuperService;
import cn.quantgroup.report.utils.IdUtils; import cn.quantgroup.report.service.baihang.util.TuoMinUtils;
import cn.quantgroup.report.utils.ReadOrWriteTxt; import cn.quantgroup.report.utils.ReadOrWriteTxt;
import cn.quantgroup.report.utils.commonutil.AesCrypto; import cn.quantgroup.report.utils.commonutil.AesCrypto;
import cn.quantgroup.report.utils.commonutil.Base64; import cn.quantgroup.report.utils.commonutil.Base64;
...@@ -25,6 +25,7 @@ import com.google.gson.reflect.TypeToken; ...@@ -25,6 +25,7 @@ import com.google.gson.reflect.TypeToken;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -54,13 +55,18 @@ public class ManualToolService implements CommonSuperService { ...@@ -54,13 +55,18 @@ public class ManualToolService implements CommonSuperService {
@Autowired @Autowired
private LoanInfoMapper loanInfoMapper; private LoanInfoMapper loanInfoMapper;
@Autowired
private ApplyLoanInfoDbMapper applyLoanInfoDbMapper;
//@Autowired //@Autowired
//private PinTaiCreditScoreService pinTaiCreditScoreService; //private PinTaiCreditScoreService pinTaiCreditScoreService;
private ShellUtils executeCommand = null; private ShellUtils executeCommand = null;
private static final String P1_48MD5_01 = "120a97b4b73c440413933351a2db2512fc7698f157b5c60d"; private static final String P1_48MD5_01 = "92db79819d81523604a8ee5da9142167f38766bb2cd32f0c";//127.
private static final String P1_48MD5_02 = "85b61d877f6ce41c4cc72413f6766ae6876405f06b607b02"; private static final String P1_48MD5_02 = "21696578a624218b5237713fd0a79ab2168a458217801b0b";//172.21.10.8
private static final String P2_48MD5 = "d4893490905d534e6fc1512ba6619d14df8c312362589342"; private static final String P2_48MD5 = "d4893490905d534e6fc1512ba6619d14df8c312362589342";
private static final String P3_48MD5 = "57971a003213360c6fa09f4b257d5eb5441ba97a5450aa63"; private static final String P3_48MD5 = "57971a003213360c6fa09f4b257d5eb5441ba97a5450aa63";
...@@ -71,13 +77,25 @@ public class ManualToolService implements CommonSuperService { ...@@ -71,13 +77,25 @@ public class ManualToolService implements CommonSuperService {
} }
public static void main(String[] args) {
}
@Monitor({MonitorType.EXCEPTION, MonitorType.FEE, MonitorType.HIT, MonitorType.RESULT}) @Monitor({MonitorType.EXCEPTION, MonitorType.FEE, MonitorType.HIT, MonitorType.RESULT})
@DistributedLock @DistributedLock
public GlobalResponse sendBaiHangData(String p1, String p2, String p3, String p4, String p5, String secretKey, String isSend,String errorCode) { public GlobalResponse sendBaiHangData(String p1, String p2, String p3, String p4, String p5, String secretKey, String isSend,String errorCode, String isProduct, String sendIncludeType) {
StringBuffer resultMsg = new StringBuffer(); StringBuffer resultMsg = new StringBuffer();
log.info("ManualToolService.sendBaiHangData Start>>>>>>"); log.info("ManualToolService.sendBaiHangData Start>>>>>>");
String base_path = "/home/quant_group/risk-datasource/data"; String base_path = "/home/quant_group/baihang-report/data";
String base_url = "http://172.20.1.92:9020/ex/re_send"; String base_url = "http://172.21.10.8:9021/zhudai/re_send";
String A1_file ="/baihang/A1/data.txt";
String D2_file ="/baihang/D2/data.txt";
String D3_file ="/baihang/D3/data.txt";
String A1_url = "/manual/buquan/mainApplySend";
String D2_url = "/manual/buquan/mainLoanInfoSend";
String D3_url = "/manual/buquan/mainRepaymentLoanInfo";
if (StringUtils.isBlank(RSA_PRIVATEKEY)) { if (StringUtils.isBlank(RSA_PRIVATEKEY)) {
return new GlobalResponse("1012", "参数错误"); return new GlobalResponse("1012", "参数错误");
...@@ -93,7 +111,7 @@ public class ManualToolService implements CommonSuperService { ...@@ -93,7 +111,7 @@ public class ManualToolService implements CommonSuperService {
String aes_key = RSAEncrypt.decrypt(secretKey, RSA_PRIVATEKEY);//"!QAZ@WSX3edc4rfv" String aes_key = RSAEncrypt.decrypt(secretKey, RSA_PRIVATEKEY);//"!QAZ@WSX3edc4rfv"
//p1:host, p2:name, p3:pass, p4:forword, p5:date, p6:根路径 //p1:host, p2:name, p3:pass, p4:forword, p5:date, p6:根路径
//p1,p2,p3 做AES和base64加密 //p1,p2,p3 做AES和base64加密
//p1为127.0.0.1时p4必须是ip,且和172.20.1.92的MDd一致校验 //p1为127.0.0.1时p4必须是ip,且和172.21.10.8的MDd一致校验
p1 = AesCrypto.decrypt(Base64.decode(p1.trim()), aes_key).trim(); p1 = AesCrypto.decrypt(Base64.decode(p1.trim()), aes_key).trim();
if (!(MD5Util.verify48Md5(p1, P1_48MD5_01) || MD5Util.verify48Md5(p1, P1_48MD5_02))) { if (!(MD5Util.verify48Md5(p1, P1_48MD5_01) || MD5Util.verify48Md5(p1, P1_48MD5_02))) {
return new GlobalResponse("1012", "参数错误"); return new GlobalResponse("1012", "参数错误");
...@@ -127,6 +145,18 @@ public class ManualToolService implements CommonSuperService { ...@@ -127,6 +145,18 @@ public class ManualToolService implements CommonSuperService {
httpSend = true; httpSend = true;
} }
boolean isProduct2 = false;
String char_n = "\n";
if (StringUtils.isNotEmpty(isProduct) && "true".equals(isProduct)) {
isProduct2 = true;
char_n = "\r\n";
}
String sendInclude_type = "A1,D2,D3";
if(StringUtils.isNotBlank(sendIncludeType)){
sendInclude_type = sendIncludeType;
}
if (StringUtils.isEmpty(errorCode)) { if (StringUtils.isEmpty(errorCode)) {
/*"errorCode":"D2_009" /*"errorCode":"D2_009"
"errorCode":"D3_035" "errorCode":"D3_035"
...@@ -137,9 +167,12 @@ public class ManualToolService implements CommonSuperService { ...@@ -137,9 +167,12 @@ public class ManualToolService implements CommonSuperService {
} }
//还款信息D3,opCode:A>>>M,多条信息就回车存多行,中间不用逗号 //还款信息D3,opCode:A>>>M,多条信息就回车存多行,中间不用逗号
String json_hk_D3 = ""; StringBuffer json_hk_D3 = new StringBuffer();
//放款信息D2,多条信息就回车存多行,中间不用逗号 //放款信息D2,多条信息就回车存多行,中间不用逗号
String json_fk_D2 = ""; StringBuffer json_fk_D2 = new StringBuffer();
//A1申请
StringBuffer json_sq_A1 = new StringBuffer();
try { try {
if (initShellConnect(executeCommand, p1, p2, p3)) { if (initShellConnect(executeCommand, p1, p2, p3)) {
...@@ -175,53 +208,152 @@ public class ManualToolService implements CommonSuperService { ...@@ -175,53 +208,152 @@ public class ManualToolService implements CommonSuperService {
} }
resultMsg.append("\n|reqIDList size=" + reqIDList.size() ); resultMsg.append("\n|reqIDList size=" + reqIDList.size() );
if (reqIDList.size() > 0) {//还款 if (reqIDList.size() > 0) {//还款D3
String[] recordIdArray = reqIDList.toArray(new String[reqIDList.size()]); String[] recordIdArray = reqIDList.toArray(new String[reqIDList.size()]);
log.info("RepaymentLoanInfoDbMapper getReqIdByRemoteLog reqID to D3:" + JSON.toJSONString(recordIdArray)); log.info("RepaymentLoanInfoDbMapper getReqIdByRemoteLog reqID to D3:" + JSON.toJSONString(recordIdArray));
List<RepaymentLoanInfoVo> repaymentLoanInfoList = repaymentLoanInfoDbMapper.findByRecordId(recordIdArray); List<RepaymentLoanInfoLog> tmpLogList = repaymentLoanInfoDbMapper.findByD3RecordId(recordIdArray);
for (RepaymentLoanInfoVo bean : repaymentLoanInfoList) { List<RepaymentInfoZhuDai> repaymentLoanInfoList = new ArrayList<>(tmpLogList.size());
bean.setOpCode("M"); for (RepaymentLoanInfoLog logBean : tmpLogList) {
if (bean.getOverdueStatus() == null) { RepaymentInfoZhuDai voBean = new RepaymentInfoZhuDai();
bean.setOverdueStatus("");
//添加了忽略username属性的赋值
//BeanUtils.copyProperties(book,book2,"username");
BeanUtils.copyProperties(logBean, voBean);
voBean.setOpCode("M");
if (voBean.getOverdueStatus() == null) {
voBean.setOverdueStatus("");
} }
loanIdList.add(bean.getLoanId()); voBean.setReqID(logBean.getRecordId());
loanIdList.add(voBean.getLoanId());
repaymentLoanInfoList.add(voBean);
} }
resultMsg.append("|"); resultMsg.append("|");
resultMsg.append("D3 List size=" + repaymentLoanInfoList.size()); resultMsg.append("D3 List size=" + repaymentLoanInfoList.size());
json_hk_D3 = JSONArray.toJSONString(repaymentLoanInfoList);
json_hk_D3 = json_hk_D3.replace("[", ""); boolean lengthIs0 = (json_hk_D3.length()==0);
json_hk_D3 = json_hk_D3.replace("]", ""); for (RepaymentInfoZhuDai vo : repaymentLoanInfoList){
json_hk_D3 = json_hk_D3.replace("},", "}\n"); if(lengthIs0){
lengthIs0 = false;
json_hk_D3.append(JSONObject.toJSONString(vo));
}else{
json_hk_D3.append(char_n);
json_hk_D3.append(JSONObject.toJSONString(vo));
}
}
} }
if (loanIdList.size() > 0) { if (loanIdList.size() > 0) {//放款D2 及 申请A1
List<LoanInfoVo> loanInfoVoList = new ArrayList<LoanInfoVo>(); List<LoanInfoZhuDaiVo> loanInfoVoList = new ArrayList<LoanInfoZhuDaiVo>();
String[] orderNoArray = loanIdList.toArray(new String[loanIdList.size()]); String[] orderNoArray = loanIdList.toArray(new String[loanIdList.size()]);
List<String> loanApplicationHistoryIdList = loanInfoMapper.findHistoryIdByOrderNo(orderNoArray); List<String> loanApplicationHistoryIdList = loanInfoMapper.findHistoryIdByOrderNo(orderNoArray);
//查询D2
for (String historyId : loanApplicationHistoryIdList) { for (String historyId : loanApplicationHistoryIdList) {
LoanInfoVo infoVo = loanInfoMapper.findLoanInfoVoByHistoryId(historyId); LoanInfoZhuDai loanInfozd_tmp = loanInfoMapper.findLoanInfoD2ByHistoryId(historyId);
loanInfoVoList.add(infoVo); String jsonStr = JSONObject.toJSONString(loanInfozd_tmp);
LoanInfoZhuDaiVo loanInfoZhuDaiVo = JSONObject.parseObject(jsonStr, LoanInfoZhuDaiVo.class);
FinTechAgencyBusinessZhuDai finTechAgencyBusiness = JSONObject.parseObject(jsonStr, FinTechAgencyBusinessZhuDai.class);
loanInfoZhuDaiVo.setFinTechAgencyBusiness(finTechAgencyBusiness);
loanInfoVoList.add(loanInfoZhuDaiVo);
} }
resultMsg.append("|"); resultMsg.append("|");
resultMsg.append("D2 List size=" + loanInfoVoList.size()); resultMsg.append("D2 List size=" + loanInfoVoList.size());
if (loanInfoVoList.size() > 0) { if (loanInfoVoList.size() > 0) {
json_fk_D2 = JSONArray.toJSONString(loanInfoVoList); boolean lengthIs0 = (json_fk_D2.length()==0);
json_fk_D2 = json_fk_D2.replace("[", ""); for (LoanInfoZhuDaiVo vo : loanInfoVoList){
json_fk_D2 = json_fk_D2.replace("]", ""); if(lengthIs0){
json_fk_D2 = json_fk_D2.replace("},", "}\n"); lengthIs0 = false;
json_fk_D2.append(JSONObject.toJSONString(vo));
}else{
json_fk_D2.append(char_n);
json_fk_D2.append(JSONObject.toJSONString(vo));
}
}
}
//查询A1
if(sendInclude_type.contentEquals("A1")){
List<ApplyLoanInfoZhuDai> applyInfoList = new ArrayList<>();
for (String historyId : loanApplicationHistoryIdList) {
ApplyLoanInfoZhuDai applyInfo = applyLoanInfoDbMapper.findApplyInfoA1ByHistoryId(historyId);
//邮箱有错误的就不传
if(!TuoMinUtils.checkEmail(applyInfo.getEmailAddress())){
applyInfo.setEmailAddress(null);
}
applyInfoList.add(applyInfo);
}
if(applyInfoList.size()>0){
boolean lengthIs0 = (json_sq_A1.length()==0);
for (ApplyLoanInfoZhuDai vo : applyInfoList){
if(lengthIs0){
lengthIs0 = false;
json_sq_A1.append(JSONObject.toJSONString(vo));
}else{
json_sq_A1.append(char_n);
json_sq_A1.append(JSONObject.toJSONString(vo));
}
}
}
} }
}
//------------处理--------------
if (StringUtils.isNotBlank(json_sq_A1)) {
log.info("json_sq_A1 DATA:" + json_sq_A1.toString());
//A1的data.txt写入
if(isProduct2){
ReadOrWriteTxt.writeTxt(base_path + A1_file, json_sq_A1.toString());
log.info("RepaymentLoanInfoDbMapper.sendBaiHangData writ remote file (product By file)...baihang/A1/data.txt END.");
resultMsg.append("|");
resultMsg.append("write A1 end.(product By file)");
}else{
String cmd_res = writeJsonFileOnRemote(executeCommand, base_path + A1_url, json_sq_A1.toString());
log.info("RepaymentLoanInfoDbMapper.sendBaiHangData writ remote file (local By shell)...baihang/A1/data.txt END,r:" + cmd_res);
resultMsg.append("|");
resultMsg.append("write A1 end.(local By shell)");
}
//掉A1手动报送接口
if (httpSend) {
Map<String, Object> params = new HashMap<String, Object>();
params.put("key", "b5140fb2-2c85-4b5a-abcf-3e97528014db");
String http_res = HttpRequestUtil.mySelfDoGet(base_url + "/mainLoanInfoSend", params);
log.info("RepaymentLoanInfoDbMapper.sendBaiHangData http request A1>>>mainLoanInfoSend END,r:" + http_res);
resultMsg.append("|");
resultMsg.append(http_res);
}
}else{
resultMsg.append("|");
resultMsg.append("申请A1 json_sq_A1 isEmpty.");
} }
if (StringUtils.isNotBlank(json_fk_D2)) { if (StringUtils.isNotBlank(json_fk_D2)) {
//ReadOrWriteTxt.writeTxt(base_path+"/baihang/D2/data.txt",json_fk_D2); log.info("json_fk_D2 DATA:" + json_fk_D2.toString());
String cmd_res = writeJsonFileOnRemote(executeCommand, base_path + "/baihang/D2/data.txt", json_fk_D2); //D2的data.txt写入
log.info("RepaymentLoanInfoDbMapper.sendBaiHangData writ remote file ...baihang/D2/data.txt END,r:" + cmd_res); if(isProduct2){
resultMsg.append("|"); ReadOrWriteTxt.writeTxt(base_path + D2_file,json_fk_D2.toString());
resultMsg.append("write D2 end."); log.info("RepaymentLoanInfoDbMapper.sendBaiHangData writ remote file (product By file)...baihang/D2/data.txt END.");
resultMsg.append("|");
resultMsg.append("write D2 end.(product By file)");
}else{
String cmd_res = writeJsonFileOnRemote(executeCommand, base_path + D2_url, json_fk_D2.toString());
log.info("RepaymentLoanInfoDbMapper.sendBaiHangData writ remote file (local By shell)...baihang/D2/data.txt END,r:" + cmd_res);
resultMsg.append("|");
resultMsg.append("write D2 end.(local By shell)");
}
//掉D2手动报送接口
if (httpSend) { if (httpSend) {
Map<String, Object> params = new HashMap<String, Object>(); Map<String, Object> params = new HashMap<String, Object>();
params.put("key", "b5140fb2-2c85-4b5a-abcf-3e97528014db"); params.put("key", "b5140fb2-2c85-4b5a-abcf-3e97528014db");
...@@ -234,12 +366,23 @@ public class ManualToolService implements CommonSuperService { ...@@ -234,12 +366,23 @@ public class ManualToolService implements CommonSuperService {
resultMsg.append("|"); resultMsg.append("|");
resultMsg.append("放款D2 json_fk_D2 isEmpty."); resultMsg.append("放款D2 json_fk_D2 isEmpty.");
} }
if (StringUtils.isNotBlank(json_hk_D3)) { if (StringUtils.isNotBlank(json_hk_D3)) {
//ReadOrWriteTxt.writeTxt(base_path+"/baihang/D3/data.txt",json_hk_D3); log.info("json_hk_D3 DATA:" + json_hk_D3.toString());
String cmd_res = writeJsonFileOnRemote(executeCommand, base_path + "/baihang/D3/data.txt", json_hk_D3); //D3的data.txt写入
log.info("RepaymentLoanInfoDbMapper.sendBaiHangData writ remote file ...baihang/D3/data.txt END,r:" + cmd_res); if(isProduct2){
resultMsg.append("|"); ReadOrWriteTxt.writeTxt(base_path + D3_file, json_hk_D3.toString());
resultMsg.append("write D3 end."); log.info("RepaymentLoanInfoDbMapper.sendBaiHangData writ remote file (product By file)...baihang/D3/data.txt END.");
resultMsg.append("|");
resultMsg.append("write D3 end.(product By file)");
}else{
String cmd_res = writeJsonFileOnRemote(executeCommand, base_path + D3_url, json_hk_D3.toString());
log.info("RepaymentLoanInfoDbMapper.sendBaiHangData writ remote file (local By shell)...baihang/D3/data.txt END,r:" + cmd_res);
resultMsg.append("|");
resultMsg.append("write D3 end.(local By shell)");
}
//掉D3手动报送接口
if (httpSend) { if (httpSend) {
Map<String, Object> params = new HashMap<String, Object>(); Map<String, Object> params = new HashMap<String, Object>();
params.put("key", "b5140fb2-2c85-4b5a-abcf-3e97528014db"); params.put("key", "b5140fb2-2c85-4b5a-abcf-3e97528014db");
...@@ -248,11 +391,13 @@ public class ManualToolService implements CommonSuperService { ...@@ -248,11 +391,13 @@ public class ManualToolService implements CommonSuperService {
resultMsg.append("|"); resultMsg.append("|");
resultMsg.append(http_res); resultMsg.append(http_res);
} }
}else { }else {
resultMsg.append("|"); resultMsg.append("|");
resultMsg.append("还款D3 json_hk_D3 isEmpty."); resultMsg.append("还款D3 json_hk_D3 isEmpty.");
} }
//退出登录 //退出登录
List<String> cmdList = new ArrayList<String>(); List<String> cmdList = new ArrayList<String>();
cmdList.add("echo '++CMD LAST++' \n\r"); cmdList.add("echo '++CMD LAST++' \n\r");
...@@ -327,9 +472,9 @@ public class ManualToolService implements CommonSuperService { ...@@ -327,9 +472,9 @@ public class ManualToolService implements CommonSuperService {
log.info(".......>>>>start deal with cmd:1 outputStream execute Start......."); log.info(".......>>>>start deal with cmd:1 outputStream execute Start.......");
List<String> cmdList = new ArrayList<>(); List<String> cmdList = new ArrayList<>();
cmdList.add("ssh " + p4 + " \n\r"); cmdList.add("ssh " + p4 + " \n\r");
cmdList.add("/sbin/ifconfig |grep \"inet addr\" \n\r"); cmdList.add("/sbin/ifconfig |grep \"inet\" \n\r");
cmdList.add("cd " + p6 + " \n\r"); cmdList.add("cd " + p6 + " \n\r");
cmdList.add("sh download_baihang_error_log.sh " + Integer.parseInt(p5) + " \n\r"); cmdList.add("sh download_zhudai_baihang_error_log.sh " + Integer.parseInt(p5) + " \n\r");
executeCommand.execute(cmdList, true); executeCommand.execute(cmdList, true);
//打印执行结果 //打印执行结果
executeCommand.outCmdResult(); executeCommand.outCmdResult();
...@@ -476,71 +621,6 @@ public class ManualToolService implements CommonSuperService { ...@@ -476,71 +621,6 @@ public class ManualToolService implements CommonSuperService {
} }
@Monitor({MonitorType.EXCEPTION, MonitorType.FEE, MonitorType.HIT, MonitorType.RESULT})
@DistributedLock
public GlobalResponse testPTCreditScoreV1(String filePath,String p3,String secretKey) {
StringBuffer resultMsg = new StringBuffer();
if (StringUtils.isAnyBlank(RSA_PRIVATEKEY,filePath,p3,secretKey)) {
return new GlobalResponse("1012", "参数错误");
}
try {
String aes_key = RSAEncrypt.decrypt(secretKey, RSA_PRIVATEKEY);//"!QAZ@WSX3edc4rfv"
String tmp = AesCrypto.decrypt(Base64.decode(p3.trim()), aes_key).trim();
if (!MD5Util.verify48Md5(tmp, P3_48MD5)) {
return new GlobalResponse("1012", "参数错误");
}
} catch (Exception e) {
log.error("参数解析错误.");
return new GlobalResponse("1012", "参数错误");
}
long start = System.currentTimeMillis();
List<String> contextList = ReadOrWriteTxt.readTxtList(filePath);
StringBuffer resultBuff = new StringBuffer();
if(contextList!=null && contextList.size()>0){
for(int i =0; i<contextList.size(); i++){
long startUtc = System.currentTimeMillis();
String context = contextList.get(i);
String value = "";
try{
//唯一ID|name|id_no|phone
String[] strArry = context.split("[|]");
String transactionId = IdUtils.getUuid();
CommonSuperService superService = ApplicationContextHolder.getBean("pinTaiCreditScoreService");
Object resultObject = superService.getClass().getMethod("pinTaiCreditScoreV1Query", String.class, String.class, String.class, String.class, String.class, boolean.class)
.invoke(superService, transactionId, strArry[0], strArry[1],strArry[2],strArry[3], false);
GlobalResponse globalResponse = (GlobalResponse) resultObject;
//// GlobalResponse globalResponse = pinTaiCreditScoreService.pinTaiCreditScoreV1Query(transactionId, strArry[0], strArry[1], strArry[2], strArry[3], false);
Object object = globalResponse.getBody();
if(object!=null){
JSONObject jsonObject = ((JSONObject) object).getJSONObject("content");
if(jsonObject!=null && jsonObject.containsKey("S2070101")){
value = jsonObject.getString("S2070101");
}
}
resultBuff.append(context.replace("|","\t"));
resultBuff.append("\t");
resultBuff.append(value);
resultBuff.append("\n");
Thread.sleep(1000);
}catch (Exception e){
log.error("品钛高德分查询异常,context="+context,e);
}
log.info("查询"+i+":value="+value+",cost="+(System.currentTimeMillis()-startUtc));
}
}
String writeName = filePath.substring(0,filePath.lastIndexOf("\\"))+"\\result.txt";
ReadOrWriteTxt.writeTxt(writeName,resultBuff.toString());
log.info("品钛高德分测试数据写入文件OK, total cost="+(System.currentTimeMillis()-start)+", writeName="+writeName);
return GlobalResponse.generate("品钛高德分测试数据写入文件OK, total cost="+(System.currentTimeMillis()-start)+", writeName="+writeName);
}
//@Monitor({MonitorType.EXCEPTION, MonitorType.FEE, MonitorType.HIT, MonitorType.RESULT})
//@DistributedLock
public boolean checkSecretKey(String p3,String secretKey) { public boolean checkSecretKey(String p3,String secretKey) {
StringBuffer resultMsg = new StringBuffer(); StringBuffer resultMsg = new StringBuffer();
if (StringUtils.isAnyBlank(RSA_PRIVATEKEY,p3,secretKey)) { if (StringUtils.isAnyBlank(RSA_PRIVATEKEY,p3,secretKey)) {
...@@ -1144,7 +1224,7 @@ public class ManualToolService implements CommonSuperService { ...@@ -1144,7 +1224,7 @@ public class ManualToolService implements CommonSuperService {
public static void main(String[] args) { public static void main33(String[] args) {
// List<String> lineList = ReadOrWriteTxt.readTxtList("D:\\用户目录\\Downloads\\D2_M_01.txt"); // List<String> lineList = ReadOrWriteTxt.readTxtList("D:\\用户目录\\Downloads\\D2_M_01.txt");
// System.out.println("lineList:"+lineList.size()); // System.out.println("lineList:"+lineList.size());
// StringBuffer buff = new StringBuffer(); // StringBuffer buff = new StringBuffer();
...@@ -1170,13 +1250,6 @@ public class ManualToolService implements CommonSuperService { ...@@ -1170,13 +1250,6 @@ public class ManualToolService implements CommonSuperService {
// private static final String P1_48MD5_01 = "92db79819d81523604a8ee5da9142167f38766bb2cd32f0c";//127.
// private static final String P1_48MD5_02 = "56e766114e1f81171319ee8998101c34518c06ae60a4981f";//172.
// private static final String P2_48MD5 = "d4893490905d534e6fc1512ba6619d14df8c312362589342";
// private static final String P3_48MD5 = "57971a003213360c6fa09f4b257d5eb5441ba97a5450aa63";
// System.out.println(MD5Util.get48Md5("172.20.1.92"));
// System.out.println(MD5Util.verify48Md5("root2","d4893490905d534e6fc1512ba6619d14df8c312362589342"));
//buildA1_uploadTs(null,null); //buildA1_uploadTs(null,null);
......
...@@ -177,7 +177,7 @@ public class ShellUtils { ...@@ -177,7 +177,7 @@ public class ShellUtils {
} }
this.outputStream.flush(); this.outputStream.flush();
Thread.sleep(3000); Thread.sleep(4000);
} catch (IOException e) { } catch (IOException e) {
log.error("shellUtils execute error,", e.getMessage()); log.error("shellUtils execute error,", e.getMessage());
e.printStackTrace(); e.printStackTrace();
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<mapper namespace="cn.quantgroup.report.mapper.baihang.LoanInfoMapper"> <mapper namespace="cn.quantgroup.report.mapper.baihang.LoanInfoMapper">
<resultMap id="LoanInfoResultMap" type="cn.quantgroup.report.domain.baihang.LoanInfoVo"> <!--<resultMap id="LoanInfoResultMap" type="cn.quantgroup.report.domain.baihang.LoanInfoVo">
<result column="reqID" jdbcType="VARCHAR" property="reqID"/> <result column="reqID" jdbcType="VARCHAR" property="reqID"/>
<result column="opCode" jdbcType="VARCHAR" property="opCode"/> <result column="opCode" jdbcType="VARCHAR" property="opCode"/>
<result column="uploadTs" jdbcType="VARCHAR" property="uploadTs"/> <result column="uploadTs" jdbcType="VARCHAR" property="uploadTs"/>
...@@ -23,10 +23,11 @@ ...@@ -23,10 +23,11 @@
<result column="termPeriod" jdbcType="VARCHAR" property="termPeriod"/> <result column="termPeriod" jdbcType="VARCHAR" property="termPeriod"/>
<result column="firstRepaymentDate" jdbcType="VARCHAR" property="firstRepaymentDate"/> <result column="firstRepaymentDate" jdbcType="VARCHAR" property="firstRepaymentDate"/>
<result column="gracePeriod" jdbcType="VARCHAR" property="gracePeriod"/> <result column="gracePeriod" jdbcType="VARCHAR" property="gracePeriod"/>
</resultMap> </resultMap>-->
<resultMap id="LoanInfoVoResultMapByBS" type="cn.quantgroup.report.domain.baihang.LoanInfoZhuDai"><!-- LoanInfoVo-->
<resultMap id="LoanInfoVoResultMapByBS" type="cn.quantgroup.report.domain.baihang.LoanInfoVo">
<result column="reqID" jdbcType="INTEGER" property="reqID"/> <result column="reqID" jdbcType="INTEGER" property="reqID"/>
<result column="opCode" jdbcType="VARCHAR" property="opCode"/> <result column="opCode" jdbcType="VARCHAR" property="opCode"/>
<result column="uploadTs" jdbcType="VARCHAR" property="uploadTs"/> <result column="uploadTs" jdbcType="VARCHAR" property="uploadTs"/>
...@@ -190,42 +191,52 @@ ...@@ -190,42 +191,52 @@
<!--2.根据loan_application_history_id查询工具报送的bean 放款 2019.09.25--> <!--2.根据loan_application_history_id查询工具报送的bean 放款 2019.09.25-->
<select id="findLoanInfoVoByHistoryId" resultMap="LoanInfoVoResultMapByBS"> <select id="findLoanInfoD2ByHistoryId" resultType="cn.quantgroup.report.domain.baihang.LoanInfoZhuDai"> <!--resultMap="LoanInfoVoResultMapByBS"-->
SELECT a.loan_application_history_id reqID,'A' opCode,DATE_FORMAT(now(), '%Y-%m-%dT%H:%i:%S') uploadTs, select a.loan_application_history_id reqID
b.name name, b.id_no pid,b.phone_no mobile, ,'A' opCode
IF (d.order_no IS NULL,a.loan_application_history_id,d.order_no) loanId, ,DATE_FORMAT(now(),'%Y-%m-%dT%H:%i:%S') uploadTs
'1' guaranteeType,'1' loanPurpose, ,if(a.funding_corp_id in (240,640,700),'深圳市小赢科技有限责任公司','广州惠金小额贷款有限公司') institutionalFundingPartner
DATE_FORMAT( ,if(a.funding_corp_id in (240,640,700),'91440300MA5DMXHN4R','91440101MA59G7X78Y') institutionalFundingPartnerID
CASE ,j.corp_loan_id relationID
WHEN i.created_at IS NULL AND h.created_at &lt;= f.created_at THEN h.created_at ,'' institutionalFundingPartnerLoanID
WHEN i.created_at IS NULL AND h.created_at &gt; f.created_at THEN f.created_at ,if(d.order_no is null,a.loan_application_history_id,d.order_no) orderID
ELSE i.created_at ,'' preCreditLimit
END, '%Y-%m-%dT%H:%i:%S' ,b.name name
) AS applyDate, ,b.id_no pid
DATE_FORMAT( ,b.phone_no mobile
CASE ,if(d.order_no is null,a.loan_application_history_id,d.order_no) loanId
WHEN d.created_at IS NULL AND f.created_at &gt;= h.created_at THEN f.created_at ,'1' guaranteeType
WHEN d.created_at IS NULL AND f.created_at &lt; h.created_at THEN h.created_at ,'1' loanPurpose
ELSE d.created_at ,DATE_FORMAT(case when i.created_at is null and h.created_at &lt;=f.created_at then h.created_at
END, '%Y-%m-%dT%H:%i:%S' when i.created_at is null and h.created_at>f.created_at then f.created_at
) AS accountOpenDate, else i.created_at end,'%Y-%m-%dT%H:%i:%S') as applyDate
DATE_FORMAT(a.loan_paid_at,'%Y-%m-%dT%H:%i:%S') issueDate, ,DATE_FORMAT(case when d.created_at is null and f.created_at>=h.created_at then f.created_at
date(date_sub(e.deadline, INTERVAL 1 SECOND)) dueDate,a.contract_loan_amount loanAmount,a.contract_term totalTerm, when d.created_at is null and f.created_at &lt; h.created_at then h.created_at
IF (a.contract_term = 1, '1', '2') targetRepayDateType, else d.created_at end,'%Y-%m-%dT%H:%i:%S') as accountOpenDate
IF (a.contract_term = 1,'30','-1') termPeriod, ,DATE_FORMAT(a.loan_paid_at,'%Y-%m-%dT%H:%i:%S') issueDate
date(date_sub(g.deadline, INTERVAL 1 SECOND)) firstRepaymentDate,'0' gracePeriod ,date(date_sub(e.deadline,INTERVAL 1 second)) dueDate
FROM xyqb_i_loan_application_manifest_history a ,a.contract_loan_amount loanAmount
LEFT JOIN xyqb_user_i_user_detail b ON a.user_id = b.user_id ,a.contract_term totalTerm
LEFT JOIN xyqb_i_loan_account_ext c ON a.loan_application_history_id = c.loan_id ,'2' targetRepayDateType
LEFT JOIN xyqb_i_apply_quota_record d ON c.order_no = d.order_no ,'-1' termPeriod
LEFT JOIN xyqb_i_repayment_plan e ON a.loan_application_history_id = e.loan_application_history_id ,date(date_sub(g.deadline,INTERVAL 1 second)) firstRepaymentDate
LEFT JOIN xyqb_i_loan_submit_info f ON a.loan_application_history_id = f.loan_id -- ,'0' gracePeriod
LEFT JOIN xyqb_i_repayment_plan g ON a.loan_application_history_id = g.loan_application_history_id -- ,'30' gracePeriod
LEFT JOIN xyqb_i_loan_application_history h ON a.loan_application_history_id = h.id ,if(a.funding_corp_id in (880,890),'30','0') gracePeriod
LEFT JOIN xyqb_i_quota_credit i ON d.order_no = i.order_no from xyqb_i_loan_application_manifest_history a
/*WHERE a.funding_corp_id IN (480,710)*/ left join xyqb_user_i_user_detail b on a.user_id=b.user_id
WHERE a.funding_corp_id IN (480,710,630,790,820) left join xyqb_i_loan_account_ext c on a.loan_application_history_id=c.loan_id
AND e.term_no = a.contract_term AND g.term_no = 1 AND a.transaction_status IN (2, 5) 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
left join xyqb_i_waiting_funding_corp_operate_people j on a.loan_application_history_id=j.loan_application_history_id
where a.funding_corp_id in (420,520,580,650,670,810,240,640,700, 880,890) and
e.term_no=a.contract_term and g.term_no=1
and a.contract_term not in (2,3)
and a.transaction_status in (2,5)
AND a.loan_application_history_id=#{loanApplicationHistoryId} AND a.loan_application_history_id=#{loanApplicationHistoryId}
</select> </select>
......
...@@ -22,5 +22,54 @@ ...@@ -22,5 +22,54 @@
</select> </select>
<!--1.根据loan_application_history_id查询工具报送的bean 申请A1 2019.10.20-->
<select id="findApplyInfoA1ByHistoryId" resultType="cn.quantgroup.report.domain.baihang.ApplyLoanInfoZhuDai">
select
a.id reqID
,'A' opCode
,DATE_FORMAT(now(),'%Y-%m-%dT%H:%i:%S') uploadTs
,'1' isFinTechAgencyBusiness
,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
,if(d.order_no is null,a.loan_application_history_id,d.order_no) applyId
,'1' applyType
,b.name name
,'1' idType
,b.id_no pid
,b.phone_no mobile
,b.email emailAddress
,case when j.education=1 then '10'
when j.education=2 then '20'
when j.education=3 then '30'
when j.education in (4,6) then '40'
when j.education=5 then '50'
when j.education in (7,8) then '60'
else '70' end eduBackground
,'500' degree
,'1' guaranteeType
,'1' loanPurpose
,'99' customType
,'-1' applyAmount
,'8' livingCondition
,case when j.marry_status=1 then '10'
when j.marry_status=2 then '20'
when j.marry_status=4 then '30'
when j.marry_status=3 then '40'
else '90' end marriageStatus
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_loan_submit_info f on a.loan_application_history_id=f.loan_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_loan_base_info j on a.loan_application_history_id=j.loan_id
where a.funding_corp_id in (420,520,580,650,670,810,240,640,700, 880,890)
and a.contract_term not in (2,3)
and a.transaction_status in (2,5)
AND a.loan_application_history_id=#{loanApplicationHistoryId}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -26,10 +26,9 @@ ...@@ -26,10 +26,9 @@
<result column="loanStatus" jdbcType="INTEGER" property="loan_status"/> <result column="loanStatus" jdbcType="INTEGER" property="loan_status"/>
</resultMap> </resultMap>
<resultMap id="RepaymentLoanInfoVoResultMapByBS" type="cn.quantgroup.report.domain.baihang.RepaymentLoanInfoVo"> <resultMap id="RepaymentLoanInfoVoResultMapByBS" type="cn.quantgroup.report.domain.baihang.RepaymentLoanInfoLog">
<result column="id" jdbcType="DECIMAL" property="id"/>
<result column="reqID" jdbcType="VARCHAR" property="req_id"/> <result column="reqID" jdbcType="VARCHAR" property="req_id"/>
<result column="recordId" jdbcType="VARCHAR" property="record_id"/>
<result column="opCode" jdbcType="VARCHAR" property="op_code"/> <result column="opCode" jdbcType="VARCHAR" property="op_code"/>
<result column="uploadTs" jdbcType="VARCHAR" property="upload_ts"/> <result column="uploadTs" jdbcType="VARCHAR" property="upload_ts"/>
<result column="loanId" jdbcType="VARCHAR" property="loan_id"/> <result column="loanId" jdbcType="VARCHAR" property="loan_id"/>
...@@ -48,6 +47,9 @@ ...@@ -48,6 +47,9 @@
<result column="overdueAmount" jdbcType="DECIMAL" property="overdue_amount"/> <result column="overdueAmount" jdbcType="DECIMAL" property="overdue_amount"/>
<result column="remainingAmount" jdbcType="DECIMAL" property="remaining_amount"/> <result column="remainingAmount" jdbcType="DECIMAL" property="remaining_amount"/>
<result column="loanStatus" jdbcType="INTEGER" property="loan_status"/> <result column="loanStatus" jdbcType="INTEGER" property="loan_status"/>
<result column="recordId" jdbcType="VARCHAR" property="record_id"/>
<result column="id" jdbcType="DECIMAL" property="id"/>
<result column="enable" jdbcType="INTEGER" property="enable"/> <result column="enable" jdbcType="INTEGER" property="enable"/>
<result column="createdAt" jdbcType="VARCHAR" property="created_at"/> <result column="createdAt" jdbcType="VARCHAR" property="created_at"/>
<result column="updatedAt" jdbcType="VARCHAR" property="updated_at"/> <result column="updatedAt" jdbcType="VARCHAR" property="updated_at"/>
...@@ -78,7 +80,7 @@ ...@@ -78,7 +80,7 @@
<!--根据日志中的reqID查询loan_id及还款信息 2019.09.25--> <!--根据日志中的reqID查询loan_id及还款信息 2019.09.25-->
<select id="findByRecordId" resultMap="RepaymentLoanInfoVoResultMapByBS"> <select id="findByD3RecordId" resultMap="RepaymentLoanInfoVoResultMapByBS">
SELECT * from repayment_loan_info_zhudai SELECT * from repayment_loan_info_zhudai
WHERE op_code='A' and record_id IN WHERE op_code='A' and record_id IN
<foreach collection="array" item="recordId" index="index" open="(" close=")" separator=","> <foreach collection="array" item="recordId" index="index" open="(" close=")" separator=",">
......
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