package com.tenwa.httpclient.pboc; import com.amarsoft.are.ARE; import com.amarsoft.are.jbo.*; import com.amarsoft.are.util.StringFunction; import com.amarsoft.awe.util.ASResultSet; import com.amarsoft.awe.util.SqlObject; import com.amarsoft.awe.util.Transaction; import com.amarsoft.dict.als.cache.CacheLoaderFactory; import com.tenwa.httpclient.resources.BigDataPropertiesUtil; import com.tenwa.lease.app.quartzmession.CreditAuditHolidayBatch; import com.tenwa.util.SerialNumberUtil; import jbo.com.tenwa.entity.comm.message.BT_BUSSINESS_MESSAGE; import jbo.oti.FC_REQUEST; import jbo.oti.FC_REQUEST_FILE; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import java.util.List; public class PbocAction { private String fullName; private String fullCertId; private String fullPhone; private String flowId; private String projectNo; private String actionType; public PbocAction() { } public String getActionType() { return actionType; } public void setActionType(String actionType) { this.actionType = actionType; } public String getFlowId() { return flowId; } public void setFlowId(String flowId) { this.flowId = flowId; } public String getProjectNo() { return projectNo; } public void setProjectNo(String projectNo) { this.projectNo = projectNo; } public String getFullName() { return fullName; } public void setFullName(String fullName) { this.fullName = fullName; } public String getFullCertId() { return fullCertId; } public void setFullCertId(String fullCertId) { this.fullCertId = fullCertId; } public String getFullPhone() { return fullPhone; } public void setFullPhone(String fullPhone) { this.fullPhone = fullPhone; } public PbocAction(String fullName, String fullCertId , String fullPhone) { this.fullName = fullName; this.fullCertId = fullCertId; this.fullPhone = fullPhone; } private static final Logger logger = LogManager.getLogger(PbocAction.class);// 引入logger日志 /** * actionType : get: * 1、无结果,返回异常:未进行拉取过。 * 2、有结果,则需要判断状态: * 2.1、结果失败:查询失败,请重新拉取。 * 2.2、结果正常:返回true,执行拉取。 * 2.3、结果正在进行中:征信结果正在处理中,请稍后再试! * actionType : save: * 1、无结果,返回true,执行拉取。 * 2、有结果,则需要判断状态: * 2.1、结果失败:返回true,执行拉取。 * 2.2、结果正常:返回true,执行拉取。 * 2.3、结果正在进行中:征信结果正在处理中,请稍后再试! * @return */ public String checkReqData(){ Transaction Sqlca=null; String result = "false@系统异常,请稍后再试!"; try{ // if(true){ // JBOTransaction tx = JBOFactory.createJBOTransaction(); // String applyId = SerialNumberUtil.getPengyuanNumber(tx); // tx.commit(); // logger.info("PbocAction.checkReqData====测试事物问题。"); // return "true@"+applyId; // } logger.info("【PbocAction】【checkReqData】 start<<<<<<<<<<<<<"); Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource()); //根据审批时间初始化信审考核表 String sql = "select max(id) applyid from bigdata_pboc_af where project_no='"+projectNo+"' and fullname='"+fullName +"' and fullcertId='"+fullCertId+"' and fullphone='"+fullPhone+"' "; logger.info("sql======================"+sql+"========================================================"); ASResultSet rs = Sqlca.getASResultSet(new SqlObject(sql)); if(rs.next()) { String applyId = rs.getString("applyid"); if(null == applyId || "null".equals(applyId.toLowerCase())){ //无结果 if("GET".equals(actionType)){ return "false@当前用户征信数据未进行拉取过,请先执行拉取征信数据!"; }else { JBOTransaction tx = JBOFactory.createJBOTransaction(); applyId = SerialNumberUtil.getPengyuanNumber(tx); tx.commit(); logger.info("PbocAction.checkReqData====1无结果,生成applyid"); return "true@"+applyId; } } String sql2 = "select req_sts from bigdata_pboc_af where id='" + applyId+ "' "; logger.info("sql2======================"+sql2+"========================================================"); ASResultSet rs2 = Sqlca.getASResultSet(new SqlObject(sql2)); // req_sts : 0,进行中,-1 失败,-2 成功 if(rs2.next()) {//进行中 String reqSts = rs2.getString("req_sts"); if(null == reqSts || "null".equals(reqSts.toLowerCase())){ return "false@征信查询状态异常!"; } if("0".equals(reqSts)){ return "false@征信结果正在处理中,请稍后再试!"; }else if("-1".equals(reqSts)){//查询失败 if("GET".equals(actionType)){ return "false@查询结果失败,请重新拉取拉取征信数据!"; }else { JBOTransaction tx = JBOFactory.createJBOTransaction(); applyId = SerialNumberUtil.getPengyuanNumber(tx); tx.commit(); logger.info("PbocAction.checkReqData====2无结果,生成applyid"); return "true@"+applyId; } }else if("1".equals(reqSts)){//成功 logger.info("PbocAction.checkReqData====3有结果,返回结果===applyId="+applyId); return "true@" + applyId; }else {//状态异常 return "false@征信查询状态异常!"; } }else { return "false@系统异常,请稍后再试!"; } }else { //无结果 if("GET".equals(actionType)){ return "false@当前用户征信数据未进行拉取过,请先执行拉取征信数据!"; }else { JBOTransaction tx = JBOFactory.createJBOTransaction(); String applyId = SerialNumberUtil.getPengyuanNumber(tx); tx.commit(); logger.info("PbocAction.checkReqData====4无结果,生成applyid"); return "true@"+applyId; } } }catch(Exception e){ e.printStackTrace(); logger.error("<<<<<<<<<<<<<<<<<<<<<<【PbocAction】【checkReqData】error>>>>>>1>>>>>>>>>>>>>>>>>", e); try { Sqlca.rollback(); } catch (JBOException e1) { e1.printStackTrace(); logger.error("<<<<<<<<<<<<<<<<<<<<<<【PbocAction】【checkReqData】error>>>>>>2>>>>>>>>>>>>>>>>>", e1); } }finally { if(Sqlca!=null) { try { Sqlca.commit(); } catch (JBOException e) { e.printStackTrace(); logger.error("<<<<<<<<<<<<<<<<<<<<<<【PbocAction】【checkReqData】error>>>>>>3>>>>>>>>>>>>>>>>>", e); } } } return result; } }