diff --git a/WebContent/WEB-INF/etc/jbo/jbo_oti.xml b/WebContent/WEB-INF/etc/jbo/jbo_oti.xml
index c74333f8c..9a2da79cf 100644
--- a/WebContent/WEB-INF/etc/jbo/jbo_oti.xml
+++ b/WebContent/WEB-INF/etc/jbo/jbo_oti.xml
@@ -763,12 +763,6 @@
-
-
-
-
-
-
@@ -794,6 +788,11 @@
+
+
+
+
+
@@ -809,10 +808,9 @@
-
-
-
-
+
+
+
@@ -821,5 +819,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/com/ample/esb/server/ScoreResultServlet.java b/src/com/ample/esb/server/ScoreResultServlet.java
index 7d3c4cd64..7aada5d53 100644
--- a/src/com/ample/esb/server/ScoreResultServlet.java
+++ b/src/com/ample/esb/server/ScoreResultServlet.java
@@ -1,11 +1,20 @@
package com.ample.esb.server;
import com.alibaba.fastjson.JSONObject;
import com.amarsoft.are.ARE;
+import com.amarsoft.are.jbo.*;
+import com.ample.sms.WriteRptThread;
+import com.tenwa.httpclient.pboc.PbocXmlUtils;
+import com.tenwa.reckon.util.UUIDUtil;
+import jbo.oti.RC_CALLBACK_LOG;
+import jbo.oti.RC_SCORE_RESULT_LOG;
+
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.*;
+import java.text.SimpleDateFormat;
+import java.util.Date;
/**
* 评分结果推送接收接口
@@ -16,29 +25,81 @@ public class ScoreResultServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
+ // TODO: 2023-8-25 确实判断ip白名单
response.setContentType("application/xml;charset:utf-8");
response.setHeader("Cache-Control", "no-store");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0L);
response.setCharacterEncoding("utf-8");
- BufferedReader in = new BufferedReader(new InputStreamReader(request.getInputStream()));
- StringBuilder stb = new StringBuilder();
- String xmlHead = "";
- String xmlContent = "";
- String line = null;
- while ((line = in.readLine()) != null) {
- stb.append(line);
- }
- ARE.getLog().info("接收到Rpt记录:" + stb.toString());
- String userid = request.getParameter("userid");
JSONObject resultJson = new JSONObject();
+ String userid = request.getParameter("userid");
resultJson.put("cmd","RPT_RESP");
PrintWriter out = response.getWriter();
ARE.getLog().info("接收到Rpt记录:" + 1 + "条");
resultJson.put("status","200");
resultJson.put("result","success");
+ try{
+ BufferedReader in = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));
+ StringBuilder stb = new StringBuilder();
+ String line = null;
+ while ((line = in.readLine()) != null) {
+ stb.append(line);
+ }
+ ARE.getLog().info("接收到Rpt记录:" + stb.toString());
+ savePushLog(stb.toString());
+ }catch (Exception e){
+ e.printStackTrace();
+ resultJson.put("status","500");
+ resultJson.put("result",e.getMessage());
+ }
out.print(resultJson.toJSONString());
out.close();
}
+ private void savePushLog(String xmlRes) throws Exception{
+ JBOTransaction tx = null;
+ try{
+ if (!WriteScoreResultThread.rptIsAlive()) {
+ WriteScoreResultThread.getRptthread().start();
+ }
+ tx = JBOFactory.createJBOTransaction();
+ JSONObject resStrJson = PbocXmlUtils.toJson(xmlRes);
+ JSONObject resJson = resStrJson.getJSONObject("APPLICATION");//申请号
+ JSONObject baseInfoJson = resJson.getJSONObject("BASE_INFO");//申请号
+ String projectNo = baseInfoJson.getString("APPLICATION_NUMBER");//申请号
+ BizObjectManager rcCallbackLog = JBOFactory.getBizObjectManager(RC_CALLBACK_LOG.CLASS_NAME, tx);
+ BizObject rcCallbackLogBizObject = rcCallbackLog.newObject();
+ rcCallbackLogBizObject.setAttributeValue("project_no", projectNo);
+ rcCallbackLogBizObject.setAttributeValue("callback_data", xmlRes);
+ // 推送结果类型:评分结果 score, 反欺诈 fraud
+ rcCallbackLogBizObject.setAttributeValue("callback_type", "score");
+ rcCallbackLogBizObject.setAttributeValue("handle_sts", "0");
+ rcCallbackLogBizObject.setAttributeValue("handle_value", "待处理");
+ String callBackLogId = UUIDUtil.getUUID();
+ rcCallbackLogBizObject.setAttributeValue("callback_id", callBackLogId);
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); //日期格式
+ String date = sdf.format(new Date()); //将系统时间转换成上方指定类型
+ rcCallbackLogBizObject.setAttributeValue("input_time", date);
+ rcCallbackLogBizObject.setAttributeValue("update_time", date);
+ rcCallbackLog.saveObject(rcCallbackLogBizObject);
+ resStrJson.put("callBackLogId", callBackLogId);
+ WriteScoreResultThread.scoreResultQueue.put(resStrJson);
+ } catch (Exception e) {
+ tx.rollback();
+ e.printStackTrace();
+ throw new RuntimeException(e);
+ } finally {
+ try {
+ if (tx != null) {
+ tx.commit();
+ }
+ } catch (JBOException e) {
+ e.printStackTrace();
+ throw new RuntimeException(e);
+ }
+ }
+
+
+ }
+
}
diff --git a/src/com/ample/esb/server/WriteScoreResultThread.java b/src/com/ample/esb/server/WriteScoreResultThread.java
index 8921f7c81..2b5784311 100644
--- a/src/com/ample/esb/server/WriteScoreResultThread.java
+++ b/src/com/ample/esb/server/WriteScoreResultThread.java
@@ -2,10 +2,8 @@ package com.ample.esb.server;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
-import com.amarsoft.are.jbo.BizObject;
-import com.amarsoft.are.jbo.BizObjectManager;
-import com.amarsoft.are.jbo.JBOException;
-import com.amarsoft.are.jbo.JBOFactory;
+import com.amarsoft.are.ARE;
+import com.amarsoft.are.jbo.*;
import com.ample.sms.FileUtil;
import com.tenwa.httpclient.pboc.PbocXmlUtils;
import com.tenwa.reckon.util.UUIDUtil;
@@ -15,10 +13,7 @@ import jbo.app.tenwa.customer.CUSTOMER_PERSON_TEMP;
import jbo.com.tenwa.lease.comm.LB_GUARANTEE_UNIT_TEMP;
import jbo.com.tenwa.lease.comm.LB_PROJECT_INFO_TEMP;
import jbo.com.tenwa.lease.comm.LB_SMS_NOTICE_TASKS;
-import jbo.oti.RC_SCORE_RESULT;
-import jbo.oti.RC_SCORE_RESULT_DETAIL;
-import jbo.oti.RC_SCORE_RESULT_LOG;
-import jbo.oti.SMS_RPT;
+import jbo.oti.*;
import org.apache.commons.collections.CollectionUtils;
import org.dom4j.DocumentException;
@@ -27,7 +22,7 @@ import java.util.*;
import java.util.concurrent.LinkedBlockingQueue;
public class WriteScoreResultThread extends Thread{
- public static LinkedBlockingQueue scoreResultQueue = new LinkedBlockingQueue<>();
+ public static LinkedBlockingQueue scoreResultQueue = new LinkedBlockingQueue<>();
private static boolean STOP = false;
private static Thread rptThread = new WriteScoreResultThread();
private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -39,8 +34,8 @@ public class WriteScoreResultThread extends Thread{
STOP = false;
try {
while(!STOP) {
- String rptXmlStr = scoreResultQueue.take();
- saveSmsRpt(rptXmlStr);
+ JSONObject resJson = scoreResultQueue.take();
+ saveSmsRpt(resJson);
}
} catch (Exception var5) {
var5.printStackTrace();
@@ -61,8 +56,8 @@ public class WriteScoreResultThread extends Thread{
return rptThread;
}
- public void saveSmsRpt(String rptXmlStr) throws JBOException, DocumentException {
- JSONObject resJson = PbocXmlUtils.toJson(rptXmlStr);
+ public void saveSmsRpt(JSONObject resJson) throws JBOException, DocumentException {
+ saveUpdateScoreResult("score", resJson);
}
@@ -70,88 +65,214 @@ public class WriteScoreResultThread extends Thread{
/**
* 保存数据到实体
* @param type 处理类型:评分结果 score, 反欺诈 fraud
- * @param resJson 结果
+ * @param resStrJson 结果
*/
- private void saveUpdateScoreResult(String type, JSONObject resJson) throws JBOException {
- String projectNo = resJson.getString("APPLICATION_NUMBER");//申请号
- // TODO: 2023-8-24 解析结果
- BizObjectManager rcScoreResult = JBOFactory.getBizObjectManager(RC_SCORE_RESULT.CLASS_NAME);
- BizObject rcScoreResultBizObject = rcScoreResult.createQuery("project_no=:project_no").setParameter("project_no", projectNo).getSingleResult(true);
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); //日期格式
- String date = sdf.format(new Date()); //将系统时间转换成上方指定类型
- String resultId = UUIDUtil.getUUID();
- if(null == rcScoreResultBizObject){
- rcScoreResultBizObject = rcScoreResult.newObject();
- rcScoreResultBizObject.setAttributeValue("score_result_id", resultId);
- rcScoreResultBizObject.setAttributeValue("project_no", projectNo);
- rcScoreResultBizObject.setAttributeValue("input_time", date);
- }else {
- resultId = rcScoreResultBizObject.getAttribute("score_result_id").toString();
- }
- JSONObject blazeResultJson = resJson.getJSONObject("BLAZERESULT");//评分结果项
- String resultCode = blazeResultJson.getString("RESULT_CODE");// 评分结果状态 1000为成功,其他失败
- String result = blazeResultJson.getString("RESULT");//评分结果 AA RR RD DD
+ private void saveUpdateScoreResult(String type, JSONObject resStrJson) throws JBOException {
+ JBOTransaction tx = null;
+ try{
+ tx = JBOFactory.createJBOTransaction();
+ JSONObject resJson = resStrJson.getJSONObject("APPLICATION");//申请号
+ JSONObject baseInfoJson = resJson.getJSONObject("BASE_INFO");//申请号
+ String projectNo = baseInfoJson.getString("APPLICATION_NUMBER");//申请号
+ String flowNo = queryProjectTemp(projectNo);
+ ARE.getLog().info("WriteScoreResultThread#saveUpdateScoreResult:flowNo=" + flowNo);
+ // : 2023-8-24 解析结果
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); //日期格式
+ String date = sdf.format(new Date()); //将系统时间转换成上方指定类型
+ String resultId = UUIDUtil.getUUID();
+ JSONObject blazeResultJson = resJson.getJSONObject("BLAZERESULT");//评分结果项
+ String resultCode = blazeResultJson.getString("RESULT_CODE");// 评分结果状态 1000为成功,其他失败
+ String result = blazeResultJson.getString("RESULT");//评分结果 AA RR RD DD
- JSONObject fraudResultJson = resJson.getJSONObject("FRAUD_RESULT");// 反欺诈结果
- String fraudAlert = fraudResultJson.getString("FRAUD_ALERT");// 反欺诈预警结果:H、S、C
- String actionTaken = fraudResultJson.getString("ACTION_TAKEN");// 反欺诈判定结果:F、K、S、空
-
- rcScoreResultBizObject.setAttributeValue("score_result_code", result);// 评分结果 AA RR RD DD
- rcScoreResultBizObject.setAttributeValue("fraud_alert_code", fraudAlert);// 反欺诈预警结果:H、S、C
- rcScoreResultBizObject.setAttributeValue("fraud_taken_code", actionTaken);// 反欺诈判定结果:F、K、S、空
- rcScoreResultBizObject.setAttributeValue("update_time", date);
-
- if("score".equals(type)){
- rcScoreResultBizObject.setAttributeValue("score_result_data", resJson.toJSONString());
- rcScoreResultBizObject.setAttributeValue("score_result_status", resultCode);
- rcScoreResultBizObject.setAttributeValue("score_result_status_value", "失败");
- if("1000".equals(resultCode)){
- rcScoreResultBizObject.setAttributeValue("score_result_status_value", "成功");
+ JSONObject fraudResultJson = resJson.getJSONObject("FRAUD_RESULT");// 反欺诈结果
+ String fraudAlert = fraudResultJson.getString("FRAUD_ALERT");// 反欺诈预警结果:H、S、C
+ String actionTaken = fraudResultJson.getString("ACTION_TAKEN");// 反欺诈判定结果:F、K、S、空
+ //评分结果
+ BizObjectManager rcScoreResult = JBOFactory.getBizObjectManager(RC_SCORE_RESULT.CLASS_NAME, tx);
+ BizObject rcScoreResultBizObject = rcScoreResult.createQuery("project_no=:project_no").setParameter("project_no", projectNo).getSingleResult(true);
+ if(null == rcScoreResultBizObject){
+ rcScoreResultBizObject = rcScoreResult.newObject();
+ rcScoreResultBizObject.setAttributeValue("score_result_id", resultId);
+ rcScoreResultBizObject.setAttributeValue("project_no", projectNo);
+ rcScoreResultBizObject.setAttributeValue("flow_no", flowNo);
+ rcScoreResultBizObject.setAttributeValue("input_time", date);
+ }else {
+ resultId = rcScoreResultBizObject.getAttribute("score_result_id").toString();
}
- }else {
- rcScoreResultBizObject.setAttributeValue("fraud_result_data", resJson.toJSONString());
- rcScoreResultBizObject.setAttributeValue("fraud_result_status", resultCode);
- rcScoreResultBizObject.setAttributeValue("fraud_result_status_value", "失败");
- if("1000".equals(resultCode)){
- rcScoreResultBizObject.setAttributeValue("fraud_result_status_value", "成功");
- }
- rcScoreResultBizObject.setAttributeValue("fraud_result_status", resultCode);
- }
- rcScoreResult.saveObject(rcScoreResultBizObject);
- if("score".equals(type)){
- BizObjectManager rcScoreResultDetail = JBOFactory.getBizObjectManager(RC_SCORE_RESULT_DETAIL.CLASS_NAME);
-
- BizObjectManager lbProjectInfo = JBOFactory.getBizObjectManager(LB_PROJECT_INFO_TEMP.CLASS_NAME);// 项目信息
- BizObjectManager customerPerson = JBOFactory.getBizObjectManager(CUSTOMER_PERSON_TEMP.CLASS_NAME);// 承租人
- BizObjectManager customerFamily = JBOFactory.getBizObjectManager(CUSTOMER_FAMILY_TEMP.CLASS_NAME);// 共同申请人
- BizObjectManager lbGuaranteeUnit = JBOFactory.getBizObjectManager(LB_GUARANTEE_UNIT_TEMP.CLASS_NAME);// 担保人
-
- List rcScoreResultDetailBizObjectList = rcScoreResultDetail.createQuery("project_no=:project_no").setParameter("project_no", projectNo).getResultList(true);
- if(CollectionUtils.isEmpty(rcScoreResultDetailBizObjectList)){
- rcScoreResultDetailBizObjectList = new ArrayList<>();
- JSONArray personList = resJson.getJSONArray("NCIICS");//实名认证列表
- JSONArray scoreResults = resJson.getJSONArray("SCORERESULTS");//评分列表
- if(personList.size() >= scoreResults.size()){
+ rcScoreResultBizObject.setAttributeValue("score_result_code", result);// 评分结果 AA RR RD DD
+ rcScoreResultBizObject.setAttributeValue("fraud_alert_code", fraudAlert);// 反欺诈预警结果:H、S、C
+ rcScoreResultBizObject.setAttributeValue("fraud_taken_code", actionTaken);// 反欺诈判定结果:F、K、S、空
+ rcScoreResultBizObject.setAttributeValue("update_time", date);
+ rcScoreResult.saveObject(rcScoreResultBizObject);
+ // 评分结果明细
+ if("score".equals(type)){
+ BizObjectManager rcScoreResultDetail = JBOFactory.getBizObjectManager(RC_SCORE_RESULT_DETAIL.CLASS_NAME, tx);
+ List rcScoreResultDetailBizObjectList = rcScoreResultDetail.createQuery("project_no=:project_no").setParameter("project_no", projectNo).getResultList(true);
+ if(CollectionUtils.isEmpty(rcScoreResultDetailBizObjectList)){
+ rcScoreResultDetailBizObjectList = initScoreResultDetailBizObjectList(rcScoreResultDetail, flowNo, projectNo, resultId, date);
+ }
+ JSONObject personListObj = resJson.getJSONObject("NCIICS");//实名认证列表
+ JSONArray personList = personListObj.getJSONArray("NCIIC");//实名认证列表
+ for(int i = 0; i < personList.size(); i++){
+ for(BizObject scoreResBiz : rcScoreResultDetailBizObjectList){
+ if(personList.getJSONObject(i).getString("APPLICANTIDNUMBER").equals(scoreResBiz.getAttribute("person_card_no").toString())){
+ scoreResBiz.setAttributeValue("third_state_code", personList.getJSONObject(i).getString("THIRDSTATECODE"));
+ scoreResBiz.setAttributeValue("name_result", personList.getJSONObject(i).getString("NAMERESULT"));
+ scoreResBiz.setAttributeValue("cert_id_result", personList.getJSONObject(i).getString("CERTINORESULT"));
+ scoreResBiz.setAttributeValue("error_message", personList.getJSONObject(i).getString("ERRORMESSAGE"));
+ }
+ }
+ }
+ JSONObject scoreResultsObj = resJson.getJSONObject("BLAZERESULT");//评分列表
+ JSONObject scoreResultsObjRes = scoreResultsObj.getJSONObject("SCORERESULTS");//评分列表
+ JSONArray scoreResults = scoreResultsObjRes.getJSONArray("SCORERESULT");//评分列表
+ for(int i = 0; i < scoreResults.size(); i++){
+ for(BizObject scoreResBiz : rcScoreResultDetailBizObjectList){
+ if(scoreResults.getJSONObject(i).getString("ID_CARD_NBR").equals(scoreResBiz.getAttribute("person_card_no").toString())){
+ scoreResBiz.setAttributeValue("score_level", scoreResults.getJSONObject(i).getString("SCORE_LEVEL"));
+ }
+ }
+ }
+ for(BizObject scoreResBiz : rcScoreResultDetailBizObjectList){//保存评分明细
+ scoreResBiz.setAttributeValue("update_time", date);
+ scoreResBiz.setAttributeValue("third_result_url", "www.baidu.com");
+ scoreResBiz.setAttributeValue("pboc_result_url", "www.baidu.com");
+ rcScoreResultDetail.saveObject(scoreResBiz);
}
- BizObject bizObject = rcScoreResultDetail.newObject();
}
+ // 日志保存
+ BizObjectManager rcScoreResultLog = JBOFactory.getBizObjectManager(RC_SCORE_RESULT_LOG.CLASS_NAME, tx);
+ BizObject rcScoreResultLogBizObject = rcScoreResultLog.newObject();
+ rcScoreResultLogBizObject.setAttributeValue("score_result_id", resultId);
+ rcScoreResultLogBizObject.setAttributeValue("project_no", projectNo);
+ rcScoreResultLogBizObject.setAttributeValue("flow_no", flowNo);
+ rcScoreResultLogBizObject.setAttributeValue("score_result_code", result);// 评分结果 AA RR RD DD
+ rcScoreResultLogBizObject.setAttributeValue("fraud_alert_code", fraudAlert);// 反欺诈预警结果:H、S、C
+ rcScoreResultLogBizObject.setAttributeValue("fraud_taken_code", actionTaken);// 反欺诈判定结果:F、K、S、空
+ rcScoreResultLogBizObject.setAttributeValue("input_time", date);
+ rcScoreResultLog.saveObject(rcScoreResultLogBizObject);
+ // 更新回调接口执行状态
+ String callBackLogId = resStrJson.getString("callBackLogId");//处理日志logID
+ BizObjectManager rcCallbackLog = JBOFactory.getBizObjectManager(RC_CALLBACK_LOG.CLASS_NAME, tx);
+ BizObject rcCallbackLogBizObject = rcCallbackLog.createQuery("callback_id=:callback_id").setParameter("callback_id", callBackLogId).getSingleResult(true);
+ rcCallbackLogBizObject.setAttributeValue("handle_sts", "1");
+ rcCallbackLogBizObject.setAttributeValue("handle_value", "已处理");
+ rcCallbackLogBizObject.setAttributeValue("update_time", date);
+ rcCallbackLog.saveObject(rcCallbackLogBizObject);
+
+ } catch (Exception e) {
+ tx.rollback();
+ e.printStackTrace();
+ } finally {
+ try {
+ if (tx != null) {
+ tx.commit();
+ }
+ } catch (JBOException e) {
+ e.printStackTrace();
+ }
}
- BizObjectManager rcScoreResultLog = JBOFactory.getBizObjectManager(RC_SCORE_RESULT_LOG.CLASS_NAME);
- BizObject rcScoreResultLogBizObject = rcScoreResultLog.newObject();
- rcScoreResultLogBizObject.setAttributeValue("score_result_id", resultId);
- rcScoreResultLogBizObject.setAttributeValue("project_no", projectNo);
- rcScoreResultLogBizObject.setAttributeValue("score_result_data", resJson.toJSONString());
- rcScoreResultLogBizObject.setAttributeValue("result_status", resultCode);
- rcScoreResultLogBizObject.setAttributeValue("result_status_value", "失败");
- if("1000".equals(resultCode)){
- rcScoreResultLogBizObject.setAttributeValue("result_status_value", "成功");
+
+
+
+
+
+ }
+
+ private String queryProjectTemp(String projectNo) throws JBOException {
+ String flowNo = null;
+ ARE.getLog().info("WriteScoreResultThread#saveUpdateScoreResult:flowNo=" + flowNo);
+ BizObjectManager lbProjectInfo = JBOFactory.getBizObjectManager(LB_PROJECT_INFO_TEMP.CLASS_NAME);// 项目信息
+ List lbProjectInfoBizObjectList = lbProjectInfo.createQuery("PROJECT_NO=:PROJECT_NO").setParameter("PROJECT_NO", projectNo).getResultList(false);
+ if(CollectionUtils.isNotEmpty(lbProjectInfoBizObjectList)){
+ for(BizObject lbProject : lbProjectInfoBizObjectList){
+ if(null == flowNo){
+ flowNo = lbProject.getAttribute("FLOWUNID").toString();
+ ARE.getLog().info("WriteScoreResultThread#saveUpdateScoreResult:flowNoTempLong=" + flowNo.substring(3));
+ }else {
+ String flowNoTemp = lbProject.getAttribute("FLOWUNID").toString();
+ ARE.getLog().info("WriteScoreResultThread#saveUpdateScoreResult:flowNoTemp=" + flowNo);
+ if(Long.parseLong(flowNo.substring(3)) < Long.parseLong(flowNoTemp.substring(3))){
+ flowNo = flowNoTemp;
+ }
+ }
+ }
}
- rcScoreResultLogBizObject.setAttributeValue("input_time", date);
- rcScoreResultLog.saveObject(rcScoreResultLogBizObject);
+ return flowNo;
+ }
-// bo.setAttributeValue(key,rptJsn.getString(key));
+ /**
+ * 保存详细数据
+ * @param rcScoreResultDetail
+ * @param flowNo
+ * @param projectNo
+ * @param resultId
+ * @return
+ * @throws JBOException
+ */
+ private List initScoreResultDetailBizObjectList(BizObjectManager rcScoreResultDetail, String flowNo, String projectNo, String resultId, String date) throws JBOException {
+ List rcScoreResultDetailBizObjectList = new ArrayList<>();
+ // 承租人
+ BizObjectManager customerPerson = JBOFactory.getBizObjectManager(CUSTOMER_PERSON_TEMP.CLASS_NAME);
+ BizObject customerPersonBizObject = customerPerson.createQuery("flowunid=:flowunid").setParameter("flowunid", flowNo).getSingleResult(false);
+ BizObject rcScoreResultDetailCustomerPersonBizObject = rcScoreResultDetail.newObject();
+ rcScoreResultDetailCustomerPersonBizObject.setAttributeValue("score_result_detail_id", UUIDUtil.getUUID());
+ rcScoreResultDetailCustomerPersonBizObject.setAttributeValue("score_result_id", resultId);
+ rcScoreResultDetailCustomerPersonBizObject.setAttributeValue("project_no", projectNo);
+ rcScoreResultDetailCustomerPersonBizObject.setAttributeValue("flow_no", flowNo);
+ rcScoreResultDetailCustomerPersonBizObject.setAttributeValue("person_type", "01");//承租人
+ rcScoreResultDetailCustomerPersonBizObject.setAttributeValue("person_name",
+ customerPersonBizObject.getAttribute("FULLNAME").toString());// 承租人姓名
+ rcScoreResultDetailCustomerPersonBizObject.setAttributeValue("person_card_type",
+ customerPersonBizObject.getAttribute("CERTTYPE").toString());// 承租人
+ rcScoreResultDetailCustomerPersonBizObject.setAttributeValue("person_card_no",
+ customerPersonBizObject.getAttribute("CERTID").toString());// 承租人
+ rcScoreResultDetailCustomerPersonBizObject.setAttributeValue("input_time", date);
+ rcScoreResultDetailBizObjectList.add(rcScoreResultDetailCustomerPersonBizObject);
+ // 共同申请人
+ BizObjectManager customerFamily = JBOFactory.getBizObjectManager(CUSTOMER_FAMILY_TEMP.CLASS_NAME);
+ BizObject customerFamilyBizObject = customerFamily.createQuery("flowunid=:flowunid and Partner_='Y'")
+ .setParameter("flowunid", flowNo).getSingleResult(false);
+ if(null != customerFamilyBizObject){
+ BizObject rcScoreResultDetailCustomerFamilyBizObject = rcScoreResultDetail.newObject();
+ rcScoreResultDetailCustomerFamilyBizObject.setAttributeValue("score_result_detail_id", UUIDUtil.getUUID());
+ rcScoreResultDetailCustomerFamilyBizObject.setAttributeValue("score_result_id", resultId);
+ rcScoreResultDetailCustomerFamilyBizObject.setAttributeValue("project_no", projectNo);
+ rcScoreResultDetailCustomerFamilyBizObject.setAttributeValue("flow_no", flowNo);
+ rcScoreResultDetailCustomerFamilyBizObject.setAttributeValue("person_type", "02");//共同申请人
+ rcScoreResultDetailCustomerFamilyBizObject.setAttributeValue("person_name",
+ customerFamilyBizObject.getAttribute("name").toString());//共同申请人姓名
+ rcScoreResultDetailCustomerFamilyBizObject.setAttributeValue("person_card_type",
+ customerFamilyBizObject.getAttribute("certtype").toString());//共同申请人
+ rcScoreResultDetailCustomerFamilyBizObject.setAttributeValue("person_card_no",
+ customerFamilyBizObject.getAttribute("certid").toString());//共同申请人
+ rcScoreResultDetailCustomerFamilyBizObject.setAttributeValue("input_time", date);
+ rcScoreResultDetailBizObjectList.add(rcScoreResultDetailCustomerFamilyBizObject);
+ }
+ // 担保人
+ BizObjectManager guaranteeUnit = JBOFactory.getBizObjectManager(LB_GUARANTEE_UNIT_TEMP.CLASS_NAME);
+ List guaranteeUnitBizObjectList = guaranteeUnit.createQuery("FLOWUNID=:FLOWUNID").setParameter("FLOWUNID", flowNo).getResultList(false);
+ if(CollectionUtils.isNotEmpty(guaranteeUnitBizObjectList)){
+ for(BizObject guarantee : guaranteeUnitBizObjectList){
+ BizObject rcScoreResultDetailGuaranteeUnitBizObject = rcScoreResultDetail.newObject();
+ rcScoreResultDetailGuaranteeUnitBizObject.setAttributeValue("score_result_detail_id", UUIDUtil.getUUID());
+ rcScoreResultDetailGuaranteeUnitBizObject.setAttributeValue("score_result_id", resultId);
+ rcScoreResultDetailGuaranteeUnitBizObject.setAttributeValue("project_no", projectNo);
+ rcScoreResultDetailGuaranteeUnitBizObject.setAttributeValue("flow_no", flowNo);
+ rcScoreResultDetailGuaranteeUnitBizObject.setAttributeValue("person_type", "03");//担保人
+ rcScoreResultDetailGuaranteeUnitBizObject.setAttributeValue("person_name",
+ guarantee.getAttribute("FULLNAME").toString());//担保人姓名
+ rcScoreResultDetailGuaranteeUnitBizObject.setAttributeValue("person_card_type",
+ guarantee.getAttribute("CERTTYPE").toString());//担保人
+ rcScoreResultDetailGuaranteeUnitBizObject.setAttributeValue("person_card_no",
+ guarantee.getAttribute("CERTID").toString());//担保人
+ rcScoreResultDetailGuaranteeUnitBizObject.setAttributeValue("input_time", date);
+ rcScoreResultDetailBizObjectList.add(rcScoreResultDetailGuaranteeUnitBizObject);
+ }
+ }
+ return rcScoreResultDetailBizObjectList;
}
}
diff --git a/src_jbo/jbo/oti/RC_CALLBACK_LOG.java b/src_jbo/jbo/oti/RC_CALLBACK_LOG.java
new file mode 100644
index 000000000..0c9e1294f
--- /dev/null
+++ b/src_jbo/jbo/oti/RC_CALLBACK_LOG.java
@@ -0,0 +1,46 @@
+package jbo.oti;
+
+/**
+ * 北财风控中台评分反欺诈结果推送日志表 rc_score_result_log
+ */
+public interface RC_CALLBACK_LOG {
+
+ /**
+ * 业务类型
+ * 代表本类映射的BizObjectClass
+ */
+ public static final String CLASS_NAME = "jbo.oti.RC_CALLBACK_LOG";
+
+ /**
+ * id`
+ * STRING(20)
+ */
+ public static final String id = "id";
+ public static final String callback_id = "callback_id";
+
+ /**
+ * 业务申请编号
+ */
+ public static final String project_no = "project_no";
+
+ /**
+ * 推送结果类型:评分结果 score, 反欺诈 fraud
+ */
+ public static final String callback_type = "callback_type";
+
+
+ public static final String callback_data = "callback_data";
+
+ /**
+ * 处理状态:0 返回结果待处理。1 返回结果已处理
+ */
+ public static final String handle_sts = "handle_sts";
+
+ public static final String handle_value = "handle_value";
+
+ public static final String input_time = "input_time";
+
+ public static final String update_time = "update_time";
+
+ }
+
diff --git a/src_jbo/jbo/oti/RC_SCORE_RESULT.java b/src_jbo/jbo/oti/RC_SCORE_RESULT.java
index 3c5d6e115..a134bcc54 100644
--- a/src_jbo/jbo/oti/RC_SCORE_RESULT.java
+++ b/src_jbo/jbo/oti/RC_SCORE_RESULT.java
@@ -32,42 +32,6 @@ public interface RC_SCORE_RESULT {
*/
public static final String flow_no = "flow_no";
-
- /**
- * 反欺诈结果
- */
- public static final String fraud_result_data = "fraud_result_data";
-
- /**
- * 评分结果
- */
- public static final String score_result_data = "score_result_data";
-
-
- /**
- * 反欺诈结果状态
- */
- public static final String fraud_result_status = "fraud_result_status";
-
-
- /**
- * 反欺诈结果状态描述
- */
- public static final String fraud_result_status_value = "fraud_result_status_value";
-
-
- /**
- * 评分结果状态
- */
- public static final String score_result_status = "score_result_status";
-
-
- /**
- * 评分结果状态描述
- */
- public static final String score_result_status_value = "score_result_status_value";
-
-
/**
* 反欺诈预警结果:H、S、C
*/
diff --git a/src_jbo/jbo/oti/RC_SCORE_RESULT_DETAIL.java b/src_jbo/jbo/oti/RC_SCORE_RESULT_DETAIL.java
index 49b358e64..905c91507 100644
--- a/src_jbo/jbo/oti/RC_SCORE_RESULT_DETAIL.java
+++ b/src_jbo/jbo/oti/RC_SCORE_RESULT_DETAIL.java
@@ -71,6 +71,7 @@ public interface RC_SCORE_RESULT_DETAIL {
*/
public static final String pboc_result_url = "pboc_result_url";
+
/**
* 登记时间
*/
@@ -82,6 +83,15 @@ public interface RC_SCORE_RESULT_DETAIL {
*/
public static final String update_time = "update_time";
+ public static final String score_level = "score_level";
+
+ public static final String third_state_code = "third_state_code";
+
+ public static final String error_message = "error_message";
+
+ public static final String name_result = "name_result";
+
+ public static final String cert_id_result = "cert_id_result";
}
diff --git a/src_jbo/jbo/oti/RC_SCORE_RESULT_LOG.java b/src_jbo/jbo/oti/RC_SCORE_RESULT_LOG.java
index d36e2f669..105630896 100644
--- a/src_jbo/jbo/oti/RC_SCORE_RESULT_LOG.java
+++ b/src_jbo/jbo/oti/RC_SCORE_RESULT_LOG.java
@@ -10,6 +10,7 @@ public interface RC_SCORE_RESULT_LOG {
* 代表本类映射的BizObjectClass
*/
public static final String CLASS_NAME = "jbo.oti.RC_SCORE_RESULT_LOG";
+
/**
* id`
* STRING(20)
@@ -32,23 +33,22 @@ public interface RC_SCORE_RESULT_LOG {
*/
public static final String flow_no = "flow_no";
-
/**
- * 结果
+ * 反欺诈预警结果:H、S、C
*/
- public static final String result_data = "result_data";
+ public static final String fraud_alert_code = "fraud_alert_code";
/**
- * 结果状态
+ * 反欺诈判定结果:F、K、S、空
*/
- public static final String result_status = "result_status";
+ public static final String fraud_taken_code = "fraud_taken_code";
/**
- * 反结果状态描述
+ * 评分结果 AA RR RD DD
*/
- public static final String result_status_value = "result_status_value";
+ public static final String score_result_code = "score_result_code";
/**
@@ -57,11 +57,6 @@ public interface RC_SCORE_RESULT_LOG {
public static final String input_time = "input_time";
- /**
- * 更新时间
- */
- public static final String update_time = "update_time";
-
}