From b76daf6e19ef5d83b49513aebe121945837d080f Mon Sep 17 00:00:00 2001 From: zhanglei Date: Fri, 25 Aug 2023 16:41:21 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A3=8E=E6=8E=A7=E4=B8=AD=E5=8F=B0=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5-=E8=AF=84=E5=88=86=E7=BB=93=E6=9E=9C=E5=A4=84?= =?UTF-8?q?=E7=90=86=E4=BF=9D=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- WebContent/WEB-INF/etc/jbo/jbo_oti.xml | 36 ++- .../ample/esb/server/ScoreResultServlet.java | 81 ++++- .../esb/server/WriteScoreResultThread.java | 291 +++++++++++++----- src_jbo/jbo/oti/RC_CALLBACK_LOG.java | 46 +++ src_jbo/jbo/oti/RC_SCORE_RESULT.java | 36 --- src_jbo/jbo/oti/RC_SCORE_RESULT_DETAIL.java | 10 + src_jbo/jbo/oti/RC_SCORE_RESULT_LOG.java | 19 +- 7 files changed, 366 insertions(+), 153 deletions(-) create mode 100644 src_jbo/jbo/oti/RC_CALLBACK_LOG.java 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"; - }