客户(张磊)更新鹏元接口
This commit is contained in:
parent
c9104b52d4
commit
1c1236d437
@ -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;
|
||||
|
||||
@ -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个月 2:3-6个月 3:6-12个月 4:12-24个月 5:24个月',
|
||||
`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;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
393
src_tenwa/com/tenwa/httpclient/PyPafUtils.java
Normal file
393
src_tenwa/com/tenwa/httpclient/PyPafUtils.java
Normal 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user