diff --git a/WebContent/WEB-INF/etc/jbo/jbo_oti.xml b/WebContent/WEB-INF/etc/jbo/jbo_oti.xml
index 8e1af2fdf..c74333f8c 100644
--- a/WebContent/WEB-INF/etc/jbo/jbo_oti.xml
+++ b/WebContent/WEB-INF/etc/jbo/jbo_oti.xml
@@ -809,13 +809,10 @@
-
-
+
+
-
-
-
diff --git a/WebContent/WEB-INF/web.xml b/WebContent/WEB-INF/web.xml
index be278a31c..f08996531 100644
--- a/WebContent/WEB-INF/web.xml
+++ b/WebContent/WEB-INF/web.xml
@@ -129,7 +129,14 @@
als
-
+
+ ScoreResultServlet
+ com.ample.esb.server.ScoreResultServlet
+
+ DataSource
+ als
+
+
RewriteRunJavaMethodServlet
com.tenwa.workflow.RewriteRunJavaMethodServlet
@@ -311,7 +318,10 @@
SmsRptServlet
/smsRpt
-
+
+ ScoreResultServlet
+ /scoreResult
+
DocDownloadZipServlet
/servlet/view/docDownloadZipServlet
diff --git a/src/com/ample/esb/server/ScoreResultServlet.java b/src/com/ample/esb/server/ScoreResultServlet.java
new file mode 100644
index 000000000..7d3c4cd64
--- /dev/null
+++ b/src/com/ample/esb/server/ScoreResultServlet.java
@@ -0,0 +1,44 @@
+package com.ample.esb.server;
+import com.alibaba.fastjson.JSONObject;
+import com.amarsoft.are.ARE;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
+
+/**
+ * 评分结果推送接收接口
+ */
+public class ScoreResultServlet extends HttpServlet {
+ public ScoreResultServlet() {
+ }
+
+ private static final long serialVersionUID = 1L;
+ public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
+ 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();
+ resultJson.put("cmd","RPT_RESP");
+ PrintWriter out = response.getWriter();
+ ARE.getLog().info("接收到Rpt记录:" + 1 + "条");
+ resultJson.put("status","200");
+ resultJson.put("result","success");
+ out.print(resultJson.toJSONString());
+ out.close();
+ }
+
+}
diff --git a/src/com/ample/esb/server/WriteScoreResultThread.java b/src/com/ample/esb/server/WriteScoreResultThread.java
new file mode 100644
index 000000000..8921f7c81
--- /dev/null
+++ b/src/com/ample/esb/server/WriteScoreResultThread.java
@@ -0,0 +1,157 @@
+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.ample.sms.FileUtil;
+import com.tenwa.httpclient.pboc.PbocXmlUtils;
+import com.tenwa.reckon.util.UUIDUtil;
+import jbo.app.tenwa.customer.CUSTOMER_FAMILY_TEMP;
+import jbo.app.tenwa.customer.CUSTOMER_PERSON;
+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 org.apache.commons.collections.CollectionUtils;
+import org.dom4j.DocumentException;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.concurrent.LinkedBlockingQueue;
+
+public class WriteScoreResultThread extends Thread{
+ 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");
+
+ private WriteScoreResultThread() {
+ }
+
+ public void run() {
+ STOP = false;
+ try {
+ while(!STOP) {
+ String rptXmlStr = scoreResultQueue.take();
+ saveSmsRpt(rptXmlStr);
+ }
+ } catch (Exception var5) {
+ var5.printStackTrace();
+ STOP = true;
+ rptThread = null;
+ }
+
+ }
+
+ public static boolean rptIsAlive() {
+ return rptThread.isAlive();
+ }
+
+ public static Thread getRptthread() {
+ if (rptThread == null) {
+ rptThread = new WriteScoreResultThread();
+ }
+
+ return rptThread;
+ }
+ public void saveSmsRpt(String rptXmlStr) throws JBOException, DocumentException {
+ JSONObject resJson = PbocXmlUtils.toJson(rptXmlStr);
+
+
+ }
+
+ /**
+ * 保存数据到实体
+ * @param type 处理类型:评分结果 score, 反欺诈 fraud
+ * @param resJson 结果
+ */
+ 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
+
+ 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", "成功");
+ }
+ }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()){
+
+ }
+ BizObject bizObject = rcScoreResultDetail.newObject();
+ }
+
+ }
+ 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", "成功");
+ }
+ rcScoreResultLogBizObject.setAttributeValue("input_time", date);
+ rcScoreResultLog.saveObject(rcScoreResultLogBizObject);
+
+
+// bo.setAttributeValue(key,rptJsn.getString(key));
+ }
+}
diff --git a/src_jbo/jbo/oti/RC_SCORE_RESULT_LOG.java b/src_jbo/jbo/oti/RC_SCORE_RESULT_LOG.java
index b41685c76..d36e2f669 100644
--- a/src_jbo/jbo/oti/RC_SCORE_RESULT_LOG.java
+++ b/src_jbo/jbo/oti/RC_SCORE_RESULT_LOG.java
@@ -51,24 +51,6 @@ public interface RC_SCORE_RESULT_LOG {
public static final String result_status_value = "result_status_value";
- /**
- * 反欺诈预警结果:H、S、C
- */
- public static final String fraud_alert_code = "fraud_alert_code";
-
-
- /**
- * 反欺诈判定结果:F、K、S、空
- */
- public static final String fraud_taken_code = "fraud_taken_code";
-
-
- /**
- * 评分结果 AA RR RD DD
- */
- public static final String score_result_code = "score_result_code";
-
-
/**
* 登记时间
*/