客户(张磊)更新鹏元接口

This commit is contained in:
tangfutang 2020-05-27 14:47:30 +08:00
parent c9104b52d4
commit 1c1236d437
4 changed files with 601 additions and 282 deletions

View File

@ -63,12 +63,12 @@
// String resultals =bdc.getCustomerInfoPerson(flowunid, Sqlca);
// if(!"false".equals(resultals)){
// String[] sReturn = resultals.split("@");
params.put("queryType","25212");
params.put("queryType","25136");
params.put("name",CurPage.getParameter("fullName"));
params.put("documentNo",CurPage.getParameter("fullcertId"));
params.put("phone",CurPage.getParameter("fullphone"));
params.put("queryReasonID","101");
params.put("subreportIDs","96040");
params.put("subreportIDs","96100");
params.put("refID","");
// }
FileInputStream fr = null;

View File

@ -115,3 +115,207 @@ INSERT INTO `bf_templatelable` (`ID`, `LABLEID`, `TEMPLATEID`, `INPUTUSERID`, `I
VALUES
('fbb7a95f12ad41f490781b7acbf65079', '870f11068af6485d8ae0b2a859da3811', '7acb675c671b4f92ab8b45d26e477055', NULL, NULL, NULL, NULL, NULL, NULL);
-- 修改鹏元接口
drop table if exists bigdata_py_paf_personjudicialriskinfoitem;
CREATE TABLE `bigdata_py_paf_personjudicialriskinfoitem` (
`id` varchar(32) NOT NULL COMMENT 'id',
`applyid` varchar(32) NOT NULL COMMENT '请求id',
`batno` varchar(32) DEFAULT NULL COMMENT '查询批次号',
`reportid` varchar(32) DEFAULT NULL COMMENT '报告编号',
`timeperiod` varchar(32) DEFAULT NULL COMMENT '统计时间段1-近1年、2-近2年、3-近5年、4-历史',
`civilcasecount` varchar(32) DEFAULT NULL COMMENT '民事案件被告风险事件数量',
`criminalcasecount` varchar(32) DEFAULT NULL COMMENT '刑事案件被告风险事件数量',
`judicialcount` varchar(32) DEFAULT NULL COMMENT '司法被执行人风险事件数量',
`endcasecount` varchar(32) DEFAULT NULL COMMENT '终本案件风险事件数量',
`breakfaithcount` varchar(32) DEFAULT NULL COMMENT '失信被执行人风险事件数量',
`judicialtotalcount` varchar(32) DEFAULT NULL COMMENT '(司法涉诉风险事件)合计',
`taxpunishcount` varchar(32) DEFAULT NULL COMMENT '税务处罚事件数量',
`marketpunishcount` varchar(32) DEFAULT NULL COMMENT '市场监管处罚事件数量',
`customspunishcount` varchar(32) DEFAULT NULL COMMENT '海关处罚事件数量',
`environmentpunishcount` varchar(32) DEFAULT NULL COMMENT '环保处罚事件数量',
`otherpunishcount` varchar(32) DEFAULT NULL COMMENT '其他行政处罚事件数量',
`punishtotalcount` varchar(32) DEFAULT NULL COMMENT '(行政处罚事件)合计',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
drop table if exists bigdata_py_paf_personjudicialriskinfo;
CREATE TABLE `bigdata_py_paf_personjudicialriskinfo` (
`id` varchar(32) NOT NULL COMMENT 'id',
`applyid` varchar(32) NOT NULL COMMENT '请求id',
`batno` varchar(32) DEFAULT NULL COMMENT '查询批次号',
`reportid` varchar(32) DEFAULT NULL COMMENT '报告编号',
`subreporttype` varchar(32) DEFAULT NULL COMMENT '14277',
`subreporttypecost` varchar(32) DEFAULT NULL COMMENT '96100',
`treatresult` varchar(32) DEFAULT NULL COMMENT '子报告查询状态,1查得2未查得3其他原因未查得',
`treaterrorcode` varchar(32) DEFAULT NULL COMMENT 'treatResult=3时的错误代码,详见数据字典,treatResult!=3时,该属性不存在',
`errormessage` varchar(255) DEFAULT NULL COMMENT 'treatResult=3时的错误描述信息,treatResult!=3时,该属性的值为空',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
drop table if exists bigdata_py_paf_personriskrosterinfo;
CREATE TABLE `bigdata_py_paf_personriskrosterinfo` (
`id` varchar(32) NOT NULL COMMENT 'id',
`applyid` varchar(32) NOT NULL COMMENT '请求id',
`batno` varchar(32) DEFAULT NULL COMMENT '查询批次号',
`reportid` varchar(32) DEFAULT NULL COMMENT '报告编号',
`subreporttype` varchar(32) DEFAULT NULL COMMENT '14277',
`subreporttypecost` varchar(32) DEFAULT NULL COMMENT '96100',
`treatresult` varchar(32) DEFAULT NULL COMMENT '子报告查询状态,1查得2未查得3其他原因未查得',
`treaterrorcode` varchar(32) DEFAULT NULL COMMENT 'treatResult=3时的错误代码,详见数据字典,treatResult!=3时,该属性不存在',
`errormessage` varchar(32) DEFAULT NULL COMMENT 'treatResult=3时的错误描述信息,treatResult!=3时,该属性的值为空',
`risktypes` varchar(255) DEFAULT NULL COMMENT '命中风险类型多个风险类型以英文逗号隔开treatresult为3时可能没有该节点不存在treatresult为2的情况',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
drop table if exists bigdata_py_paf_mobilestatusinfoitem;
CREATE TABLE `bigdata_py_paf_mobilestatusinfoitem` (
`id` varchar(32) NOT NULL COMMENT 'id',
`applyid` varchar(32) NOT NULL COMMENT '请求id',
`batno` varchar(32) DEFAULT NULL COMMENT '查询批次号',
`reportid` varchar(32) DEFAULT NULL COMMENT '报告编号',
`phonestatus` varchar(32) DEFAULT NULL COMMENT '手机状态 1正常在用 2: 停机 3未启用 4已销号 6预销号该值可能为空',
`timelength` varchar(32) DEFAULT NULL COMMENT '手机号码在网时长 1不足3个月 23-6个月 36-12个月 412-24个月 524个月',
`operator` varchar(32) DEFAULT NULL COMMENT '运营商 1中国电信 2中国移动 3:中国联通',
`areainfo` varchar(32) DEFAULT NULL COMMENT '手机号码归属地',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
drop table if exists bigdata_py_paf_mobilestatusinfo;
CREATE TABLE `bigdata_py_paf_mobilestatusinfo` (
`id` varchar(32) NOT NULL COMMENT 'id',
`applyid` varchar(32) NOT NULL COMMENT '请求id',
`batno` varchar(32) DEFAULT NULL COMMENT '查询批次号',
`reportid` varchar(32) DEFAULT NULL COMMENT '报告编号',
`subreporttype` varchar(32) DEFAULT NULL COMMENT '14277',
`subreporttypecost` varchar(32) DEFAULT NULL COMMENT '96100',
`treatresult` varchar(32) DEFAULT NULL COMMENT '子报告查询状态,1查得2未查得3其他原因未查得',
`treaterrorcode` varchar(32) DEFAULT NULL COMMENT 'treatResult=3时的错误代码,详见数据字典,treatResult!=3时,该属性不存在',
`errormessage` varchar(255) DEFAULT NULL COMMENT 'treatResult=3时的错误描述信息,treatResult!=3时,该属性的值为空',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
drop table if exists bigdata_py_paf_mobilecheckinfoitem;
CREATE TABLE `bigdata_py_paf_mobilecheckinfoitem` (
`id` varchar(32) NOT NULL COMMENT 'id',
`applyid` varchar(32) NOT NULL COMMENT '请求id',
`batno` varchar(32) DEFAULT NULL COMMENT '查询批次号',
`reportid` varchar(32) DEFAULT NULL COMMENT '报告编号',
`checkresult` varchar(32) DEFAULT NULL COMMENT '手机号码核查结果,有:一致、不一致',
`operator` varchar(32) DEFAULT NULL COMMENT '运营商 1中国电信 2中国移动 3:中国联通',
`areainfo` varchar(32) DEFAULT NULL COMMENT '手机号码归属地',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
drop table if exists bigdata_py_paf_mobilecheckinfo;
CREATE TABLE `bigdata_py_paf_mobilecheckinfo` (
`id` varchar(32) NOT NULL COMMENT 'id',
`applyid` varchar(32) NOT NULL COMMENT '请求id',
`batno` varchar(32) DEFAULT NULL COMMENT '查询批次号',
`reportid` varchar(32) DEFAULT NULL COMMENT '报告编号',
`subreporttype` varchar(32) DEFAULT NULL COMMENT '14277',
`subreporttypecost` varchar(32) DEFAULT NULL COMMENT '96100',
`treatresult` varchar(32) DEFAULT NULL COMMENT '子报告查询状态,1查得2未查得3其他原因未查得',
`treaterrorcode` varchar(32) DEFAULT NULL COMMENT 'treatResult=3时的错误代码,详见数据字典,treatResult!=3时,该属性不存在',
`errormessage` varchar(255) DEFAULT NULL COMMENT 'treatResult=3时的错误描述信息,treatResult!=3时,该属性的值为空',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
drop table if exists bigdata_py_paf_policecheckinfoitem;
CREATE TABLE `bigdata_py_paf_policecheckinfoitem` (
`id` varchar(32) NOT NULL COMMENT 'id',
`applyid` varchar(32) NOT NULL COMMENT '请求id',
`batno` varchar(32) DEFAULT NULL COMMENT '查询批次号',
`reportid` varchar(32) DEFAULT NULL COMMENT '报告编号',
`name` varchar(32) DEFAULT NULL COMMENT '被查询者姓名',
`documentno` varchar(32) DEFAULT NULL COMMENT '被查询者证件号码',
`result` varchar(32) DEFAULT NULL COMMENT '身份认证结果1一致 2,不一致',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
drop table if exists bigdata_py_paf_policecheckinfo;
CREATE TABLE `bigdata_py_paf_policecheckinfo` (
`id` varchar(32) NOT NULL COMMENT 'id',
`applyid` varchar(32) NOT NULL COMMENT '请求id',
`batno` varchar(32) DEFAULT NULL COMMENT '查询批次号',
`reportid` varchar(32) DEFAULT NULL COMMENT '报告编号',
`subreporttype` varchar(32) DEFAULT NULL COMMENT '14277',
`subreporttypecost` varchar(32) DEFAULT NULL COMMENT '96100',
`treatresult` varchar(32) DEFAULT NULL COMMENT '子报告查询状态,1查得2未查得3其他原因未查得',
`treaterrorcode` varchar(32) DEFAULT NULL COMMENT 'treatResult=3时的错误代码,详见数据字典,treatResult!=3时,该属性不存在',
`errormessage` varchar(32) DEFAULT NULL COMMENT 'treatResult=3时的错误描述信息,treatResult!=3时,该属性的值为空',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
drop table if exists bigdata_py_paf_personbaseinfo;
CREATE TABLE `bigdata_py_paf_personbaseinfo` (
`id` varchar(32) NOT NULL COMMENT 'id',
`applyid` varchar(32) NOT NULL COMMENT '请求id',
`batno` varchar(32) DEFAULT NULL COMMENT '查询批次号',
`reportid` varchar(32) DEFAULT NULL COMMENT '报告编号',
`subreporttype` varchar(32) DEFAULT NULL COMMENT '14277',
`subreporttypecost` varchar(32) DEFAULT NULL COMMENT '96100',
`treatresult` varchar(32) DEFAULT NULL COMMENT '子报告查询状态,1查得2未查得3其他原因未查得',
`treaterrorcode` varchar(32) DEFAULT NULL COMMENT 'treatResult=3时的错误代码,详见数据字典,treatResult!=3时,该属性不存在',
`errormessage` varchar(255) DEFAULT NULL COMMENT 'treatResult=3时的错误描述信息,treatResult!=3时,该属性的值为空',
`name` varchar(32) DEFAULT NULL COMMENT '姓名',
`docno` varchar(32) DEFAULT NULL COMMENT '证件号码',
`birthday` varchar(32) DEFAULT NULL COMMENT '出生日期',
`genderid` varchar(32) DEFAULT NULL COMMENT '性别ID,1:男 2:女 3:不详',
`age` varchar(32) DEFAULT NULL COMMENT '年龄',
`originaladdress` varchar(255) DEFAULT NULL COMMENT '地址',
`verifyresult` varchar(255) DEFAULT NULL COMMENT '校验结果',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
drop table if exists bigdata_py_paf_personantifraudscoreinfo;
CREATE TABLE `bigdata_py_paf_personantifraudscoreinfo` (
`id` varchar(32) NOT NULL COMMENT 'id',
`applyid` varchar(32) NOT NULL COMMENT '请求id',
`batno` varchar(32) DEFAULT NULL COMMENT '查询批次号',
`reportid` varchar(32) DEFAULT NULL COMMENT '报告编号',
`subreporttype` varchar(32) DEFAULT NULL COMMENT '14277',
`subreporttypecost` varchar(32) DEFAULT NULL COMMENT '96100',
`treatresult` varchar(32) DEFAULT NULL COMMENT '子报告查询状态,1查得2未查得3其他原因未查得',
`treaterrorcode` varchar(32) DEFAULT NULL COMMENT 'treatResult=3时的错误代码,详见数据字典,treatResult!=3时,该属性不存在',
`errormessage` varchar(32) DEFAULT NULL COMMENT 'treatResult=3时的错误描述信息,treatResult!=3时,该属性的值为空',
`riskscore` varchar(32) DEFAULT NULL COMMENT '风险指数,取值范围[0-1000]',
`risklevel` varchar(32) DEFAULT NULL COMMENT '风险等级:低风险、中风险、高风险',
`hittypes` varchar(255) DEFAULT NULL COMMENT '风险标签:身份认证不一致、手机认证不一致/疑似虚拟手机号、手机号码状态异常/疑似异常手机号、手机入网时长较短、命中风险名单、司法风险高/中/低、未检测到风险信息可能为1个或多个多个风险标签以英文逗号隔开',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
drop table if exists bigdata_py_paf_personantifrauddescinfo;
CREATE TABLE `bigdata_py_paf_personantifrauddescinfo` (
`id` varchar(32) NOT NULL COMMENT 'id',
`applyid` varchar(32) NOT NULL COMMENT '请求id',
`batno` varchar(32) DEFAULT NULL COMMENT '查询批次号',
`reportid` varchar(32) DEFAULT NULL COMMENT '报告编号',
`subreporttype` varchar(32) DEFAULT NULL COMMENT '14277',
`subreporttypecost` varchar(32) DEFAULT NULL COMMENT '96100',
`treatresult` varchar(32) DEFAULT NULL COMMENT '子报告查询状态,1查得2未查得3其他原因未查得',
`treaterrorcode` varchar(32) DEFAULT NULL COMMENT 'treatResult=3时的错误代码,详见数据字典,treatResult!=3时,该属性不存在',
`errormessage` varchar(255) DEFAULT NULL COMMENT 'treatResult=3时的错误描述信息,treatResult!=3时,该属性的值为空',
`antifraudscore` varchar(32) DEFAULT NULL COMMENT '欺诈风险指数,取值范围[0-1000],可能为空',
`antifraudscorerisklevel` varchar(32) DEFAULT NULL COMMENT '欺诈风险指数风险等级:低风险、中风险、高风险,可能为空',
`policecheckrisklevel` varchar(32) DEFAULT NULL COMMENT '身份认证结果风险等级:低风险、中风险、高风险,可能为空',
`policecheckdesc` varchar(255) DEFAULT NULL COMMENT '身份认证结果描述,可能为空',
`mobilecheckrisklevel` varchar(32) DEFAULT NULL COMMENT '手机号码核查结果风险等级:低风险、中风险、高风险,可能为空',
`mobilecheckdesc` varchar(255) DEFAULT NULL COMMENT '手机号码核查结果描述,可能为空',
`mobilestatusrisklevel` varchar(32) DEFAULT NULL COMMENT '手机号码状态及在网时长结果风险等级:低风险、中风险、高风险,可能为空',
`mobilestatusdesc` varchar(255) DEFAULT NULL COMMENT '手机号码状态及在网时长结果描述,可能为空',
`riskrosterrisklevel` varchar(32) DEFAULT NULL COMMENT '风险名单结果风险等级:低风险、中风险、高风险,可能为空',
`riskrosterdesc` varchar(255) DEFAULT NULL COMMENT '风险名单结果描述,可能为空',
`judicialrisklevel` varchar(32) DEFAULT NULL COMMENT '司法风险结果风险等级:低风险、中风险、高风险,可能为空',
`judicialriskdesc` varchar(255) DEFAULT NULL COMMENT '司法风险结果描述,可能为空',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;

View File

@ -0,0 +1,393 @@
package com.tenwa.httpclient;
import com.alibaba.fastjson.JSONObject;
import com.amarsoft.are.ARE;
import com.amarsoft.are.log.Log;
import org.apache.commons.collections.CollectionUtils;
import org.dom4j.Element;
import org.dom4j.tree.DefaultAttribute;
import java.sql.Statement;
import java.util.*;
/**
* 鹏元个人发欺诈数据存储sql处理生成
*/
public class PyPafUtils {
private static Log logger= ARE.getLog();
private static String[] personAntiFraudDescInfo = {
"id",
"applyid",
"batNo",
"reportID",
"subReportType",
"subReportTypeCost",
"treatResult",
"treatErrorCode",
"errorMessage",
"antiFraudScore",
"antiFraudScoreRiskLevel",
"policeCheckRiskLevel",
"policeCheckDesc",
"mobileCheckRiskLevel",
"mobileCheckDesc",
"mobileStatusRiskLevel",
"mobileStatusDesc",
"riskRosterRiskLevel",
"riskRosterDesc",
"judicialRiskLevel",
"judicialRiskDesc"
};
private static String[] personAntiFraudScoreInfo = {
"id",
"applyid",
"batno",
"reportid",
"subreporttype",
"subreporttypecost",
"treatresult",
"treaterrorcode",
"errormessage",
"riskscore",
"risklevel",
"hittypes"
};
private static String[] personBaseInfo = {
"id",
"applyid",
"batno",
"reportid",
"subreporttype",
"subreporttypecost",
"treatresult",
"treaterrorcode",
"errormessage",
"name",
"docno",
"birthday",
"genderid",
"age",
"originaladdress",
"verifyresult"
};
private static String[] policeCheckInfo = {
"id",
"applyid",
"batno",
"reportid",
"subreporttype",
"subreporttypecost",
"treatresult",
"treaterrorcode",
"errormessage"
};
private static String[] policeCheckInfoItem = {
"id",
"applyid",
"batno",
"reportid",
"name",
"documentno",
"result"
};
private static String[] mobileCheckInfo = {
"id",
"applyid",
"batno",
"reportid",
"subreporttype",
"subreporttypecost",
"treatresult",
"treaterrorcode",
"errormessage"
};
private static String[] mobileCheckInfoItem = {
"id",
"applyid",
"batno",
"reportid",
"checkresult",
"operator",
"areainfo"
};
private static String[] mobileStatusInfo = {
"id",
"applyid",
"batno",
"reportid",
"subreporttype",
"subreporttypecost",
"treatresult",
"treaterrorcode",
"errormessage"
};
private static String[] mobileStatusInfoItem = {
"id",
"applyid",
"batno",
"reportid",
"phonestatus",
"timelength",
"operator",
"areainfo"
};
private static String[] personRiskRosterInfo = {
"id",
"applyid",
"batno",
"reportid",
"subreporttype",
"subreporttypecost",
"treatresult",
"treaterrorcode",
"errormessage",
"riskTypes"
};
private static String[] personJudicialRiskInfo = {
"id",
"applyid",
"batno",
"reportid",
"subreporttype",
"subreporttypecost",
"treatresult",
"treaterrorcode",
"errormessage"
};
private static String[] personJudicialRiskInfoItem = {
"id",
"applyid",
"batno",
"reportid",
"timeperiod",
"civilcasecount",
"criminalcasecount",
"judicialcount",
"endcasecount",
"breakfaithcount",
"judicialtotalcount",
"taxpunishcount",
"marketpunishcount",
"customspunishcount",
"environmentpunishcount",
"otherpunishcount",
"punishtotalcount"
};
/**
* 数据库表名和列字段对应关系
*/
public enum PersonalAntiFraudDataEnum{
pafdi("personAntiFraudDescInfo", personAntiFraudDescInfo, "1", "个人反欺诈风险综述信息"),
pafsi("personAntiFraudScoreInfo", personAntiFraudScoreInfo, "1", "欺诈风险指数信息"),
pbi("personBaseInfo", personBaseInfo, "1", "证件号码校验信息"),
pci("policeCheckInfo", policeCheckInfo, "1", "身份认证"),
pcii("policeCheckInfoItem", policeCheckInfoItem, "2", "身份认证item"),
mci("mobileCheckInfo", mobileCheckInfo, "1", "手机号码核查"),
mcii("mobileCheckInfoItem", mobileCheckInfoItem, "2", "手机号码核查item"),
msi("mobileStatusInfo", mobileStatusInfo, "1", "手机号码状态和在网时长"),
msii("mobileStatusInfoItem", mobileStatusInfoItem, "2", "手机号码状态和在网时长item"),
prri("personRiskRosterInfo", personRiskRosterInfo, "1", "风险名单信息"),
pjri("personJudicialRiskInfo", personJudicialRiskInfo, "1", "司法风险汇总信息"),
pjrii("personJudicialRiskInfoItem", personJudicialRiskInfoItem, "2", "司法风险汇总信息item");
private String code; //类型
private String[] value; // 对应关系
private String type; //类型
private String desc; //描述
private PersonalAntiFraudDataEnum(String code, String[] value, String type, String desc){
this.code=code;
this.value=value;
this.type=type;
this.desc=desc;
}
public String[] getValue() {
return this.value;
}
public String getType() {
return type;
}
public String getDesc() {
return desc;
}
public String getCode() {
return this.code;
}
/**
* 获取主表
* @return
*/
public static List<PersonalAntiFraudDataEnum> getDataList(){
List<PersonalAntiFraudDataEnum> list = new ArrayList<>();
for(PersonalAntiFraudDataEnum data : PersonalAntiFraudDataEnum.values()){
if("1".equals(data.getType())){
list.add(data);
}
}
return list;
}
/**
* 根据code 数据库表名的列字段
* @param code
* @return
*/
public static String[] getValueData(String code){
for(PersonalAntiFraudDataEnum data : PersonalAntiFraudDataEnum.values()){
if(data.getCode().toLowerCase().equals(code.toLowerCase())){
return data.getValue();
}
}
return null;
}
}
/**
* 保存个人反欺诈数据
* @param
* @param
* @return
*/
public static void savePafData(String applyId, String batNo, String reportID,
Statement stat, Element cisReport){
try{
List<PersonalAntiFraudDataEnum> personalAntiFraudDataEnumList = PersonalAntiFraudDataEnum.getDataList();
if(CollectionUtils.isNotEmpty(personalAntiFraudDataEnumList)) {
for (PersonalAntiFraudDataEnum personalAntiFraudDataEnum : personalAntiFraudDataEnumList) {
insertPafData(personalAntiFraudDataEnum.getCode(), applyId, batNo, reportID, stat, cisReport);
}
}
}catch (Exception e){
e.printStackTrace();
}
}
/**
* 根据表名和列名初始化sql
* @param tableName
* @param
* @return
*/
public static void insertPafData(String tableName, String applyId, String batNo, String reportID,
Statement stat, Element cisReport){
try{
//遍历集合-组装参数
Element element = cisReport.element(tableName);
JSONObject obj = initObj(applyId, batNo, reportID);
List<DefaultAttribute> praAttributes = element.attributes();
if(CollectionUtils.isNotEmpty(praAttributes)) {
for (DefaultAttribute praAttribute : praAttributes) {
obj.put(praAttribute.getName(), praAttribute.getStringValue().trim());//收集主参
}
}
List<Element> listElements = element.elements();
//item单独保存暂不处理item中数据
List<Element> listSonElements = new ArrayList<>();
if(CollectionUtils.isNotEmpty(listElements)){
for(Element fieldElement : listElements){
if("item".equals(fieldElement.getName())) {
listSonElements.add(fieldElement);//收集item
}else {
obj.put(fieldElement.getName(), fieldElement.getStringValue().trim());//收集主参
}
}
}
//保存主参数据到表
excuteSql(tableName, obj, stat);
//处理item数据
if(CollectionUtils.isNotEmpty(listSonElements)){
//item数据需更改表名
tableName = tableName + "item";
//初始化obj参数
obj = initObj(applyId, batNo, reportID);
for(Element fieldSonElement : listSonElements){
List<Element> listFieldGraElements = fieldSonElement.elements();
if(CollectionUtils.isNotEmpty(listFieldGraElements)){
for(Element fieldGraElement : listFieldGraElements){
obj.put(fieldGraElement.getName(), fieldGraElement.getStringValue().trim());
}
//保存item数据到表
excuteSql(tableName, obj, stat);
//初始化obj参数
obj = initObj(applyId, batNo, reportID);
}
}
}
}catch (Exception e){
e.printStackTrace();
}
}
/**
* obj初始化
* @param applyId
* @param batNo
* @param reportID
*/
private static JSONObject initObj(String applyId, String batNo, String reportID){
JSONObject obj = new JSONObject();
String id = UUID.randomUUID().toString().replace("-", "");
obj.put("id", id);
obj.put("applyId", applyId);
obj.put("batNo", batNo);
obj.put("reportID", reportID);
return obj;
}
/**
* 整理sql并保存
* @param tableName 表名
* @param obj 参数
* @param stat jdbc通道
*/
private static void excuteSql(String tableName, JSONObject obj, Statement stat){
try{
logger.info("insertPafData#excuteSql 添加一条记录:" + tableName.toLowerCase());
String keys = "";
String values = "";
String sql = "INSERT INTO bigdata_py_paf_" + tableName.toLowerCase() + "({keys}) VALUES({values})";
String[] keysSqlArr = PersonalAntiFraudDataEnum.getValueData(tableName);
if(null == keysSqlArr){
logger.warn("insertPafData#excuteSql 当前数据库表的列字段对应关系未配置:" + tableName.toLowerCase());
return;
}
String[] valueArr = new String[keysSqlArr.length];
//填充数组的每个项为单引号
Arrays.fill(valueArr, "''");
Set<String> keySet = obj.keySet();
for(int i = 0; i < keysSqlArr.length; i++){
for(String key : keySet){
if(keysSqlArr[i].toLowerCase().equals(key.toLowerCase())){
valueArr[i] = "'" + obj.getString(key) + "'";
}
}
}
keys = Arrays.toString(keysSqlArr).replace("[", "").replace("]", "");
values = Arrays.toString(valueArr).replace("[", "").replace("]", "");
sql = sql.replaceAll("\\{keys\\}", keys).replaceAll("\\{values\\}", values);
logger.info("insertPafData#excuteSql 添加一条记录:[封装sql]" + sql);
stat.execute(sql);
}catch (Exception e){
e.printStackTrace();
}
}
}

View File

@ -14,6 +14,7 @@ import java.util.Map.Entry;
import java.util.Set;
import java.util.regex.Pattern;
import com.tenwa.httpclient.PyPafUtils;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
@ -327,286 +328,7 @@ public class BigDataController {
}
} else if("pengyuan_af".equals(type)){//个人反欺诈
//身份认证信息
JSONArray array = new JSONArray();
JSONObject object = new JSONObject();
object.put("type", "tables");
object.put("subTable", array);
List<String> fieldList = new ArrayList<String>();
JSONObject subTable1 = new JSONObject();
subTable1 = new JSONObject();
subTable1.put("name", "item");
subTable1.put("type", "table");
subTable1.put("tableName", "bigdata_py_certid_info");
fieldList.add("name");
fieldList.add("documentNo");
fieldList.add("result");
subTable1.put("field", fieldList);
array.add(subTable1);
savePengyuanResultData(object, cisReport, "policeCheckInfo", stat, otherFields, dateFields, stringFields);
//手机号码核查结果
object.clear();
array.clear();
object.put("type", "tables");
object.put("subTable", array);
fieldList.clear();
subTable1 = new JSONObject();
subTable1.put("name", "item");
subTable1.put("type", "table");
subTable1.put("tableName", "bigdata_py_phone_info");
fieldList.add("areaInfo");
fieldList.add("documentNoCheckResult");
fieldList.add("nameCheckResult");
fieldList.add("operator");
fieldList.add("phoneCheckResult");
subTable1.put("field", fieldList);
array.add(subTable1);
savePengyuanResultData(object, cisReport, "mobileCheckInfo", stat, otherFields, dateFields, stringFields);
//个人反欺诈风险综述信息
object.clear();
object.put("type", "table");
object.put("tableName", "bigdata_py_pe_an_sp_de_info");
fieldList.clear();
fieldList.add("personAntiSpoofingDesc");
object.put("field", fieldList);
savePengyuanResultData(object, cisReport, "personAntiSpoofingDescInfo", stat, otherFields, dateFields, stringFields);
//个人反欺诈风险评分信息
object.clear();
object.put("type", "table");
object.put("tableName", "bigdata_py_pe_an_sp_info");
fieldList.clear();
fieldList.add("riskScore");
fieldList.add("riskLevel");
fieldList.add("suggest");
fieldList.add("hitTypes");
object.put("field", fieldList);
savePengyuanResultData(object, cisReport, "personAntiSpoofingInfo", stat, otherFields, dateFields, stringFields);
//手机号码信息
object.clear();
array.clear();
object.put("type", "tables");
object.put("subTable", array);
fieldList.clear();
subTable1 = new JSONObject();
subTable1.put("name", "item");
subTable1.put("type", "table");
subTable1.put("tableName", "bigdata_py_phonestatus_info");
fieldList.add("areaInfo");
fieldList.add("cancelTime");
fieldList.add("operator");
fieldList.add("phoneStatus");
fieldList.add("timeLength");
subTable1.put("field", fieldList);
array.add(subTable1);
savePengyuanResultData(object, cisReport, "mobileStatusInfo", stat, otherFields, dateFields, stringFields);
//是否命中高风险名单不在返回
/* object.clear();
object.put("type", "table");
object.put("tableName", "bigdata_py_person_risk_assess");
fieldList.clear();
fieldList.add("checkResult");
fieldList.add("riskType");
object.put("field", fieldList);
savePengyuanResultData(object, cisReport, "personRiskAssess", stat, otherFields, dateFields, stringFields);
*/
//是否命中羊毛党名单 ,不在返回
/*object.clear();
object.put("type", "table");
object.put("tableName", "bigdata_py_ec_info");
fieldList.clear();
fieldList.add("state");
object.put("field", fieldList);
savePengyuanResultData(object, cisReport, "econnoisserurInfo", stat, otherFields, dateFields, stringFields);
*/
//是否命中欺诈风险名单不在返回
/*object.clear();
object.put("type", "table");
object.put("tableName", "bigdata_py_fraud_risk_info");
fieldList.clear();
fieldList.add("state");
object.put("field", fieldList);
savePengyuanResultData(object, cisReport, "fraudRiskInfo", stat, otherFields, dateFields, stringFields);
*/
//个人被机构查询概要信息
array.clear();
object.clear();
object.put("type", "tables");
object.put("subTable", array);
fieldList.clear();
subTable1 = new JSONObject();
subTable1.put("name", "items");
subTable1.put("type", "arrayTable");
subTable1.put("tableName", "bigdata_py_his_que_info");
fieldList.add("unitMember");
fieldList.add("last1Month");
fieldList.add("last3Month");
fieldList.add("last6Month");
fieldList.add("last12Month");
fieldList.add("last18Month");
fieldList.add("last24Month");
subTable1.put("field", fieldList);
JSONObject subTable2 = new JSONObject();
subTable2 = new JSONObject();
subTable2.put("name", "count");
subTable2.put("type", "table");
subTable2.put("tableName", "bigdata_py_his_que_info_count");
fieldList = new ArrayList<String>();
fieldList.add("last1Month");
fieldList.add("last3Month");
fieldList.add("last6Month");
fieldList.add("last12Month");
fieldList.add("last18Month");
fieldList.add("last24Month");
subTable2.put("field", fieldList);
JSONObject subTable3 = new JSONObject();
/*subTable3.put("name", "suspectedBulllending");
subTable3.put("type", "table");
subTable3.put("tableName", "bigdata_py_his_que_info_sb");
fieldList = new ArrayList<String>();
fieldList.add("appplyCnt");
fieldList.add("applyNetLoanCnt");
fieldList.add("applyFinclCnt");
subTable3.put("field", fieldList);*/
array.add(subTable1);
array.add(subTable2);
// array.add(subTable3);
//savePengyuanResultData(object, cisReport, "historySimpleQueryInfo", stat, otherFields, dateFields, stringFields);
//近三年信贷逾期信息
array.clear();
object.clear();
object.put("type", "tables");
object.put("subTable", array);
fieldList.clear();
subTable1 = new JSONObject();
subTable1.put("name", "stat");
subTable1.put("type", "table");
subTable1.put("tableName", "bigdata_py_overdue_summary");
fieldList.add("overdueAmount");
fieldList.add("overdueDays");
fieldList.add("overdueCount");
subTable1.put("field", fieldList);
subTable2 = new JSONObject();
subTable2.put("name", "items");
subTable2.put("type", "arrayTable");
subTable2.put("tableName", "bigdata_py_overdue_info");
fieldList = new ArrayList<String>();
fieldList.add("overdueAmount");
fieldList.add("overdueDays");
fieldList.add("overdueCount");
subTable2.put("field", fieldList);
array.add(subTable1);
array.add(subTable2);
//savePengyuanResultData(object, cisReport, "microNearlyThreeYearsOverdueInfo", stat, otherFields, dateFields, stringFields);
//险信息风
array.clear();
object.clear();
object.put("type", "tables");
object.put("subTable", array);
fieldList.clear();
subTable1 = new JSONObject();
subTable1.put("name", "stat");
subTable1.put("type", "table");
subTable1.put("tableName", "bigdata_py_pr_stat");
fieldList.add("totleCount");
fieldList.add("alCount");
fieldList.add("zxCount");
fieldList.add("sxCount");
fieldList.add("swCount");
fieldList.add("cqggCount");
fieldList.add("wdyqCount");
subTable1.put("field", fieldList);
subTable2 = new JSONObject();
subTable2.put("name", "summary");
subTable2.put("type", "tables");
JSONArray subArray = new JSONArray();
subTable2.put("subTable", subArray);
subTable3 = new JSONObject();
subTable3.put("name", "als");
subTable3.put("type", "arrayTable");
subTable3.put("tableName", "bigdata_py_pr_als");
fieldList = new ArrayList<String>();
fieldList.add("recordId");
fieldList.add("bt");
fieldList.add("ajlx");
fieldList.add("sjnf");
fieldList.add("dsrlx");
subTable3.put("field", fieldList);
subArray.add(subTable3);
JSONObject subTable4 = new JSONObject();
subTable4.put("name", "zxs");
subTable4.put("type", "arrayTable");
subTable4.put("tableName", "bigdata_py_pr_zxs");
fieldList = new ArrayList<String>();
fieldList.add("recordId");
fieldList.add("bt");
fieldList.add("zxbd");
fieldList.add("larq");
subTable4.put("field", fieldList);
subArray.add(subTable4);
JSONObject subTable5 = new JSONObject();
subTable5.put("name", "sxs");
subTable5.put("type", "arrayTable");
subTable5.put("tableName", "bigdata_py_pr_sxs");
fieldList = new ArrayList<String>();
fieldList.add("recordId");
fieldList.add("bt");
fieldList.add("larq");
fieldList.add("fbrq");
subTable5.put("field", fieldList);
subArray.add(subTable5);
JSONObject subTable6 = new JSONObject();
subTable6.put("name", "sws");
subTable6.put("type", "arrayTable");
subTable6.put("tableName", "bigdata_py_pr_sws");
fieldList = new ArrayList<String>();
fieldList.add("recordId");
fieldList.add("bt");
fieldList.add("ggrq");
subTable6.put("field", fieldList);
subArray.add(subTable6);
JSONObject subTable7 = new JSONObject();
subTable7.put("name", "cqs");
subTable7.put("type", "arrayTable");
subTable7.put("tableName", "bigdata_py_pr_cqs");
fieldList = new ArrayList<String>();
fieldList.add("recordId");
fieldList.add("bt");
fieldList.add("fbrq");
subTable7.put("field", fieldList);
subArray.add(subTable7);
JSONObject subTable8 = new JSONObject();
subTable8.put("name", "wdyqs");
subTable8.put("type", "arrayTable");
subTable8.put("tableName", "bigdata_py_pr_wdyqs");
fieldList = new ArrayList<String>();
fieldList.add("recordId");
fieldList.add("bt");
fieldList.add("fbrq");
subTable8.put("field", fieldList);
subArray.add(subTable8);
array.add(subTable1);
array.add(subTable2);
savePengyuanResultData(object, cisReport, "personRiskInfo", stat, otherFields, dateFields, stringFields);
PyPafUtils.savePafData(applyId, batNo, reportID, stat, cisReport);
}
}
} catch(Exception e) {