use of com.itrus.portal.db.EvidenceTrustedIdentity in project portal by ixinportal.
the class HisCertificateController method preview.
/**
* 预览出证信息
*
* @param serialnumber
* @param type
* @param uiModel
* @return
*/
@RequestMapping(value = "/outhis/{serialnumber}", produces = "text/html")
public String preview(@PathVariable("serialnumber") String serialnumber, Model uiModel) {
// 得到证据基本信息表
List<EvidenceBasicInformation> blist = new ArrayList<EvidenceBasicInformation>();
// 得到企业平台信息
Map<Long, EvidenceCompaniesSubmit> companiesSubmit = new HashMap<Long, EvidenceCompaniesSubmit>();
// 得到天威企业信息
Map<Long, List<RealNameRecord>> realnameRecor = new HashMap<Long, List<RealNameRecord>>();
// 得到天威个人信息
Map<Long, PersonalName> personalName = new HashMap<Long, PersonalName>();
// 得到个人平台信息
Map<Long, EvidenceIndividual> denceid = new HashMap<Long, EvidenceIndividual>();
// 得到得到身份意愿信息
Map<Long, EvidenceDesireIdentify> mdesire = new HashMap<Long, EvidenceDesireIdentify>();
// 得到事件内容信息
Map<Long, EvidenceEventContent> eventcontent = new HashMap<Long, EvidenceEventContent>();
// 得到时间对象
Map<Long, List<EvidenceTrustedIdentity>> trusid = new HashMap<Long, List<EvidenceTrustedIdentity>>();
// 得到身份标识信息
Map<Long, List<EvidenceTrustedIdentity>> trusted = new HashMap<Long, List<EvidenceTrustedIdentity>>();
// 得到事件时间信息
Map<Long, List<EvidenceEventTime>> enenttime = new HashMap<Long, List<EvidenceEventTime>>();
// 得到事件行为认证信息
Map<Long, List<EvidenceEventBehavior>> enenbehavior = new HashMap<Long, List<EvidenceEventBehavior>>();
// 得到事件意愿认证信息
Map<Long, List<EvidenceEventDesire>> evendesire = new HashMap<Long, List<EvidenceEventDesire>>();
// 得到平台提交信息代表人
Map<Long, EvidenceRepresentative> erepresetative = new HashMap<Long, EvidenceRepresentative>();
// 得到平台提交信息代理人
Map<Long, EvidenceTheAgent> etheagent = new HashMap<Long, EvidenceTheAgent>();
// 得到营业执照
Map<Long, Licenseinformation> licensein = new HashMap<Long, Licenseinformation>();
// 得到企业银行信息
Map<Long, Enterprisebank> enterpris = new HashMap<Long, Enterprisebank>();
// 得到组织机构代码
Map<Long, Organization> organiza = new HashMap<Long, Organization>();
// 得到法定代表人信息
Map<Long, Corporateinformation> corporat = new HashMap<Long, Corporateinformation>();
// 得到代理人信息
Map<Long, Agentinformation> agemtom = new HashMap<Long, Agentinformation>();
// 得到银行三四要素信息
Map<Long, Bankcardelements> bankcardele = new HashMap<Long, Bankcardelements>();
// 证据基本信息,放入多个基本信息
List<EvidenceBasicInformation> basicinfos = new ArrayList<EvidenceBasicInformation>();
// 得到出证信息
EvidenceHisCertificateExample hiscer = new EvidenceHisCertificateExample();
EvidenceHisCertificateExample.Criteria tificate = hiscer.createCriteria();
tificate.andSerialnumberEqualTo(serialnumber);
EvidenceHisCertificate hisCertificate = sqlSession.selectOne("com.itrus.portal.db.EvidenceHisCertificateMapper.selectByExample", hiscer);
// 出征流水号
contractNumber = hisCertificate.getSerialnumber();
// 得到出证存证中间表
EvidenceHisRelationshipExample hisrelation = new EvidenceHisRelationshipExample();
EvidenceHisRelationshipExample.Criteria shipEx = hisrelation.createCriteria();
shipEx.andHisCertificateEqualTo(hisCertificate.getId());
List<EvidenceHisRelationship> hisrelationship = sqlSession.selectList("com.itrus.portal.db.EvidenceHisRelationshipMapper.selectByExample", hisrelation);
for (EvidenceHisRelationship h : hisrelationship) {
// 得到基本信息表
EvidenceBasicInformation basic = sqlSession.selectOne("com.itrus.portal.db.EvidenceBasicInformationMapper.selectByPrimaryKey", h.getBasicInformation());
basicinfos.add(basic);
// 得到身份意愿信息
EvidenceDesireIdentifyExample desireIdentify = new EvidenceDesireIdentifyExample();
EvidenceDesireIdentifyExample.Criteria desireExample = desireIdentify.createCriteria();
desireExample.andEvidenceSnEqualTo(basic.getEvidenceSn());
EvidenceDesireIdentify desire = sqlSession.selectOne("com.itrus.portal.db.EvidenceDesireIdentifyMapper.selectByExample", desireIdentify);
mdesire.put(basic.getId(), desire);
// 得到身份信息表
EvidenceRealNameExample realnameE = new EvidenceRealNameExample();
EvidenceRealNameExample.Criteria realnameEx = realnameE.createCriteria();
realnameEx.andBasicInformationEqualTo(basic.getId());
EvidenceRealName erealname = sqlSession.selectOne("com.itrus.portal.db.EvidenceRealNameMapper.selectByExample", realnameE);
if (erealname != null) {
// 判断身份信息是否为空
if (!"1".equals(erealname.getEventVerifierType())) {
// 判断平台认证
if ("1".equals(erealname.getType())) {
// 判断平台企业认证
EvidenceCompaniesSubmit companiesSubmit1 = sqlSession.selectOne("com.itrus.portal.db.EvidenceCompaniesSubmitMapper.selectByPrimaryKey", erealname.getCompaniesSubmit());
companiesSubmit.put(basic.getId(), companiesSubmit1);
// 得到法定代表人
EvidenceRepresentative representative = sqlSession.selectOne("com.itrus.portal.db.EvidenceRepresentativeMapper.selectByPrimaryKey", companiesSubmit1.getRepresentative());
erepresetative.put(basic.getId(), representative);
// 得到代理人
EvidenceTheAgent theAgen = sqlSession.selectOne("com.itrus.portal.db.EvidenceTheAgentMapper.selectByPrimaryKey", companiesSubmit1.getTheAgent());
etheagent.put(basic.getId(), theAgen);
uiModel.addAttribute("companiesSubmit", companiesSubmit);
uiModel.addAttribute("realname", companiesSubmit);
} else {
// 平台个人认证
EvidenceIndividual dic = sqlSession.selectOne("com.itrus.portal.db.EvidenceIndividualMapper.selectByPrimaryKey", erealname.getIndividual());
denceid.put(basic.getId(), dic);
uiModel.addAttribute("denceid", denceid);
uiModel.addAttribute("realname", denceid);
}
} else {
// 天威认证
if ("1".equals(erealname.getType())) {
// 天威企业认证
String serialnamber = erealname.getSerialnumber();
String[] namber = serialnamber.split(",");
// List<RealNameRecord> listReal = new
// ArrayList<RealNameRecord>();
List<String> listString = new ArrayList<String>();
for (int i = 0; i < namber.length; i++) {
listString.add(namber[i]);
}
RealNameRecordExample realname = new RealNameRecordExample();
RealNameRecordExample.Criteria recor = realname.createCriteria();
// recor.andSerialnumberEqualTo(erealname.getSerialnumber());
recor.andSerialnumberIn(listString);
List<RealNameRecord> realnameRecor1 = sqlSession.selectList("com.itrus.portal.db.RealNameRecordMapper.selectByExample", realname);
realnameRecor.put(basic.getId(), realnameRecor1);
for (RealNameRecord real : realnameRecor1) {
// 得到营业执照
if (real.getLicenseinformation() != null) {
Licenseinformation information = sqlSession.selectOne("com.itrus.portal.db.LicenseinformationMapper.selectByPrimaryKey", real.getLicenseinformation());
licensein.put(basic.getId(), information);
}
// 得到企业银行信息
if (real.getEnterprisebank() != null) {
Enterprisebank enterprise = sqlSession.selectOne("com.itrus.portal.db.EnterprisebankMapper.selectByPrimaryKey", real.getEnterprisebank());
enterpris.put(basic.getId(), enterprise);
}
// 得到组织机构代码信息
if (real.getOrganization() != null) {
Organization organization = sqlSession.selectOne("com.itrus.portal.db.OrganizationMapper.selectByPrimaryKey", real.getOrganization());
organiza.put(basic.getId(), organization);
}
// 得到法定代表人信息
if (real.getCorporateinformation() != null) {
Corporateinformation enterprise = sqlSession.selectOne("com.itrus.portal.db.CorporateinformationMapper.selectByPrimaryKey", real.getCorporateinformation());
corporat.put(basic.getId(), enterprise);
}
// 得到代理人信息
if (real.getAgentinformation() != null) {
Agentinformation enterprise = sqlSession.selectOne("com.itrus.portal.db.AgentinformationMapper.selectByPrimaryKey", real.getAgentinformation());
agemtom.put(basic.getId(), enterprise);
}
}
uiModel.addAttribute("realname", realnameRecor);
} else {
// 天威个人认证
PersonalNameExample personal = new PersonalNameExample();
PersonalNameExample.Criteria personalname = personal.createCriteria();
personalname.andSerialnumberEqualTo(erealname.getSerialnumber());
PersonalName personalName1 = sqlSession.selectOne("com.itrus.portal.db.PersonalNameMapper.selectByExample", personal);
personalName.put(basic.getId(), personalName1);
// 得到银行三四要素信息
Bankcardelements bank = sqlSession.selectOne("com.itrus.portal.db.BankcardelementsMapper.selectByPrimaryKey", personalName1.getBankcardelements());
bankcardele.put(basic.getId(), bank);
uiModel.addAttribute("personalName", personalName);
uiModel.addAttribute("realname", personalName);
}
}
}
// 事件内容
EvidenceEventContentExample evencontent = new EvidenceEventContentExample();
EvidenceEventContentExample.Criteria countent = evencontent.createCriteria();
// countent.andBasicInformationEqualTo(basic.getEvidenceSn());
countent.andEvidenceSnEqualTo(basic.getEvidenceSn());
List<EvidenceEventContent> mevencontent = sqlSession.selectList("com.itrus.portal.db.EvidenceEventContentMapper.selectByExample", evencontent);
eventcontent.put(basic.getId(), mevencontent.get(0));
// 得到身份可信标识
EvidenceTrustedIdentityExample trusten = new EvidenceTrustedIdentityExample();
EvidenceTrustedIdentityExample.Criteria identityex = trusten.createCriteria();
identityex.andBasicInformationEqualTo(basic.getEvidenceSn());
identityex.andEventContentIsNull();
List<EvidenceTrustedIdentity> trustedidentity = sqlSession.selectList("com.itrus.portal.db.EvidenceTrustedIdentityMapper.selectByExample", trusten);
trusted.put(basic.getId(), trustedidentity);
// 事件对象认证
EvidenceTrustedIdentityExample trustenid = new EvidenceTrustedIdentityExample();
EvidenceTrustedIdentityExample.Criteria identitye = trustenid.createCriteria();
identitye.andEventContentEqualTo(mevencontent.get(0).getIdCode());
List<EvidenceTrustedIdentity> trustedidentit = sqlSession.selectList("com.itrus.portal.db.EvidenceTrustedIdentityMapper.selectByExample", trustenid);
trusid.put(basic.getId(), trustedidentit);
// 事件时间认证
EvidenceEventTimeExample eventime = new EvidenceEventTimeExample();
EvidenceEventTimeExample.Criteria eventimeEx = eventime.createCriteria();
eventimeEx.andEventContentEqualTo(mevencontent.get(0).getIdCode());
List<EvidenceEventTime> meventime = sqlSession.selectList("com.itrus.portal.db.EvidenceEventTimeMapper.selectByExample", eventime);
enenttime.put(basic.getId(), meventime);
// 事件行为认证
EvidenceEventBehaviorExample eventbehaciorEx = new EvidenceEventBehaviorExample();
EvidenceEventBehaviorExample.Criteria eventbe = eventbehaciorEx.createCriteria();
eventbe.andEventContentEqualTo(mevencontent.get(0).getIdCode());
List<EvidenceEventBehavior> eventbehacior = sqlSession.selectList("com.itrus.portal.db.EvidenceEventBehaviorMapper.selectByExample", eventbehaciorEx);
enenbehavior.put(basic.getId(), eventbehacior);
// 事件意愿认证
EvidenceEventDesireExample desireEx = new EvidenceEventDesireExample();
EvidenceEventDesireExample.Criteria eventdesire = desireEx.createCriteria();
// eventdesire.andMainInformationEqualTo(basic.getId());
eventdesire.andEventContenteEqualTo(mevencontent.get(0).getIdCode());
List<EvidenceEventDesire> meventdesire = sqlSession.selectList("com.itrus.portal.db.EvidenceEventDesireMapper.selectByExample", desireEx);
evendesire.put(basic.getId(), meventdesire);
blist.add(basic);
// 判断图片是否存在
if (mevencontent.get(0).getIsimg() == null) {
// 得到证据附件表,用于获取信息
EvidenceEnclosureExample envlosureE = new EvidenceEnclosureExample();
EvidenceEnclosureExample.Criteria envlosureEx = envlosureE.createCriteria();
envlosureEx.andEvidenceSnEqualTo(basic.getEvidenceSn());
envlosureEx.andPdfTypeEqualTo("2");
EvidenceEnclosure envlosure = sqlSession.selectOne("com.itrus.portal.db.EvidenceEnclosureMapper.selectByExample", envlosureE);
// 判断是否为用户上传pdf
if (envlosure != null) {
String urlFile = systemConfigService.getpdfurl() + File.separator + envlosure.getBucketName() + File.separator + envlosure.getEvidenceSn();
File filePathStr = new File(urlFile, envlosure.getObjectName());
int pdfToPng = 0;
if (filePathStr != null && filePathStr.getPath() != null) {
try {
// 调用生成图片方法生成图片
pdfToPng = Pdf.pdf2png(filePathStr.getPath());
} catch (Exception e) {
e.printStackTrace();
}
}
// 判断生成图片是否成功
if (pdfToPng > 0) {
// 修改内容表信息,表示生成图片
log.error("pdfToPng=" + pdfToPng);
mevencontent.get(0).setIsimg(1);
mevencontent.get(0).setImgCount(pdfToPng);
sqlSession.update("com.itrus.portal.db.EvidenceEventContentMapper.updateByPrimaryKey", mevencontent);
String oper = "原文图片生成成功";
String info = "图片地址:" + urlFile;
LogUtil.evidencelog(sqlSession, null, oper, info);
} else {
String oper = "原文图片生成失败";
String info = "失败原因:" + systemConfigService.getpdfurl() + File.separator + envlosure.getBucketName();
LogUtil.evidencelog(sqlSession, null, oper, info);
}
}
}
}
uiModel.addAttribute("basicinfos", basicinfos);
// 平台代表人
uiModel.addAttribute("erepresetative", erepresetative);
// 平台代理人
uiModel.addAttribute("etheagent", etheagent);
// 营业执照信息
uiModel.addAttribute("licensein", licensein);
// 企业银行信息
uiModel.addAttribute("enterpris", enterpris);
// 住址机构代码
uiModel.addAttribute("organiza", organiza);
// 法定代表人
uiModel.addAttribute("corporat", corporat);
// 法定代理人
uiModel.addAttribute("agemtom", agemtom);
// 银行卡三四要素
uiModel.addAttribute("bankcardele", bankcardele);
// 得到得到身份意愿信息
uiModel.addAttribute("mdesire", mdesire);
// 得到事件时间信息
uiModel.addAttribute("enenttime", enenttime);
// 得到事件行为认证信息
uiModel.addAttribute("enenbehavior", enenbehavior);
// 得到时间对象
uiModel.addAttribute("trusid", trusid);
// 得到身份标识信息
uiModel.addAttribute("trusted", trusted);
// 得到证据基本信息表
uiModel.addAttribute("blist", blist);
// 得到事件内容信息
uiModel.addAttribute("eventcontent", eventcontent);
// 得到出证信息
uiModel.addAttribute("hisCertificate", hisCertificate);
// 出证时间
uiModel.addAttribute("datetime", new Date());
return "reporttemplate/certificationReport";
}
use of com.itrus.portal.db.EvidenceTrustedIdentity in project portal by ixinportal.
the class BasicInformationController method show1.
/**
* 查看详细内容(事件详细)
*
* @param id
* @param type
* @param uiModel
* @return
*/
@RequestMapping(value = "show1/{id}/{mid}/{type}", produces = "text/html")
public String show1(@PathVariable("id") Long id, @PathVariable("mid") Long mid, @PathVariable("type") int type, Model uiModel) {
/*
* if (type == 1) {// 身份意愿鉴别信息 EvidenceDesireIdentify desire =
* sqlSession .selectOne(
* "com.itrus.portal.db.EvidenceDesireIdentifyMapper.selectByPrimaryKey",
* id); EvidenceMainInformation mainInfo = sqlSession.selectOne(
* "com.itrus.portal.db.EvidenceMainInformationMapper.selectByPrimaryKey",
* desire.getMainInformation()); uiModel.addAttribute("desire", desire);
* uiModel.addAttribute("mainInfo", mainInfo); return
* "basicinformation/desireIdentify"; } else if (type == 2) {// 获取实名认证信息
* EvidenceCompaniesSubmit companiesSubmit = sqlSession .selectOne(
* "com.itrus.portal.db.EvidenceCompaniesSubmitMapper.selectByPrimaryKey",
* id); String cid = companiesSubmit.getId().toString(); int evid =
* Integer.parseInt(cid); EvidenceRealNameExample realnameE = new
* EvidenceRealNameExample(); EvidenceRealNameExample.Criteria
* realnameEx = realnameE.createCriteria();
* realnameEx.andCompaniesSubmitEqualTo(evid); EvidenceRealName
* erealname = sqlSession .selectOne(
* "com.itrus.portal.db.EvidenceRealNameMapper.selectByExample",
* realnameE); EvidenceMainInformation mainInfo = sqlSession.selectOne(
* "com.itrus.portal.db.EvidenceMainInformationMapper.selectByPrimaryKey",
* erealname.getMainInformation()); if
* (companiesSubmit.getRepresentative() != null) {// 法定代表人
* EvidenceRepresentative representative = sqlSession.selectOne(
* "com.itrus.portal.db.EvidenceRepresentativeMapper.selectByPrimaryKey",
* companiesSubmit.getRepresentative());
* uiModel.addAttribute("representative", representative); } if
* (companiesSubmit.getTheAgent() != null) {// 代理人 EvidenceTheAgent
* theagent = sqlSession.selectOne(
* "com.itrus.portal.db.EvidenceTheAgentMapper.selectByPrimaryKey",
* companiesSubmit.getTheAgent()); uiModel.addAttribute("theagent",
* theagent); } uiModel.addAttribute("erealname", erealname);
* uiModel.addAttribute("companiesSubmit", companiesSubmit);
* uiModel.addAttribute("mainInfo", mainInfo); return
* "basicinformation/companiesSubmit";
*
* } else
*/
if (type == 3) {
// 可信身份标识
// EvidenceTrustedIdentity trusted = sqlSession
// .selectOne("com.itrus.portal.db.EvidenceTrustedIdentityMapper.selectByPrimaryKey", id);
// EvidenceMainInformation mainInfo = sqlSession.selectOne(
// "com.itrus.portal.db.EvidenceMainInformationMapper.selectByPrimaryKey",
// trusted.getMainInformation());
// uiModel.addAttribute("trusted", trusted);
// uiModel.addAttribute("mainInfo", mainInfo);
EvidenceTrustedIdentity trusted = sqlSession.selectOne("com.itrus.portal.db.EvidenceTrustedIdentityMapper.selectByPrimaryKey", id);
String idCode = trusted.getMainInformation().split(";")[1];
String idName = trusted.getMainInformation().split(";")[0];
EvidenceMainInformationExample maininfor = new EvidenceMainInformationExample();
EvidenceMainInformationExample.Criteria mation = maininfor.createCriteria();
mation.andIdentificationEqualTo(idCode);
mation.andSubjectNameEqualTo(idName);
List<EvidenceMainInformation> mainInfo = sqlSession.selectList("com.itrus.portal.db.EvidenceMainInformationMapper.selectByExample", maininfor);
uiModel.addAttribute("trusted", trusted);
/*EvidenceCertExample basicEx = new EvidenceCertExample();
EvidenceCertExample.Criteria information = basicEx.createCriteria();
information.andCertSerialnumberEqualTo(trusted.getCertSerialnumber().trim());
EvidenceCert cert = sqlSession.selectOne("com.itrus.portal.db.EvidenceCertMapper.selectByExample", basicEx);
uiModel.addAttribute("cert", cert);
if(cert!=null && cert.getIssuerdn()!=null){
uiModel.addAttribute("Issuerdn", EvidenceSaveServiceApi.getCertCn(cert.getIssuerdn()));
}*/
uiModel.addAttribute("mainInfo", mainInfo.get(0));
return "basicinformation/trustedIdentity";
} else if (type == 4) {
// 事件内容
EvidenceEventContent mevencontent = sqlSession.selectOne("com.itrus.portal.db.EvidenceEventContentMapper.selectByPrimaryKey", id);
// 得到基本信息
/*EvidenceBasicInformation basicinfor = sqlSession
.selectOne("com.itrus.portal.db.EvidenceBasicInformationMapper.selectByPrimaryKey", mevencontent.getBasicInformation());*/
EvidenceBasicInformationExample basicEx = new EvidenceBasicInformationExample();
EvidenceBasicInformationExample.Criteria information = basicEx.createCriteria();
information.andEvidenceSnEqualTo(mevencontent.getEvidenceSn());
EvidenceBasicInformation basicinfor = sqlSession.selectOne("com.itrus.portal.db.EvidenceBasicInformationMapper.selectByExample", basicEx);
// 得到服务表信息
AppService appservice = appService.selectById(basicinfor.getAppService());
EvidenceSaveServiceExample save = new EvidenceSaveServiceExample();
EvidenceSaveServiceExample.Criteria saveEx = save.createCriteria();
saveEx.andAppServiceEqualTo(appservice.getId());
EvidenceSaveService evidenceSave = sqlSession.selectOne("com.itrus.portal.db.EvidenceSaveServiceMapper.selectByExample", save);
// String js = evidenceSave.getFactorBusinessInfo();
String evidenceType = null;
try {
JSONArray jsonArray = new JSONArray(evidenceSave.getFactorBusinessInfo());
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsob = JSONObject.parseObject(jsonArray.get(i).toString());
if ("业务类型".equals(jsob.getString("b_factor"))) {
evidenceType = jsob.getString("b_category");
}
}
if ("电子合同PDF".equals(evidenceType)) {
// 判断图片是否存在
if (mevencontent.getIsimg() == null) {
// EvidenceBasicInformation basic = sqlSession.selectOne(
// "com.itrus.portal.db.EvidenceBasicInformationMapper.selectByPrimaryKey",
// mevencontent.getEvidenceSn());
// 得到证据附件表,用于获取信息
EvidenceEnclosureExample envlosureE = new EvidenceEnclosureExample();
EvidenceEnclosureExample.Criteria envlosureEx = envlosureE.createCriteria();
envlosureEx.andEvidenceSnEqualTo(basicinfor.getEvidenceSn());
envlosureEx.andPdfTypeEqualTo("1");
EvidenceEnclosure envlosure = sqlSession.selectOne("com.itrus.portal.db.EvidenceEnclosureMapper.selectByExample", envlosureE);
RealNameAuthentication realNameAuthentication = CacheCustomer.getAUTH_CONFIG_MAP().get(2);
if (realNameAuthentication == null) {
try {
realNameAuthentication = realNameAuthenticationSerivce.getRealNameAuthenticationByTwo();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
String pdfbase64 = null;
String urlAgent = realNameAuthentication.getRealNameddress();
if (envlosure != null && envlosure.getBuid() != null) {
log.error("Buid======" + envlosure.getBuid());
pdfbase64 = EvidenceSaveServiceApi.decryptedAndDownload(sqlSession, envlosure.getBuid(), urlAgent);
}
if (pdfbase64 != null) {
log.error("*******pdfbase64不为空*********");
// 得到证据包的json
JSONObject jsonEvidenceContent = JSONObject.parseObject(pdfbase64);
String authEvent = jsonEvidenceContent.getString("authEvent");
JSONObject authEvent1 = JSONObject.parseObject(authEvent);
String jsonpdf = authEvent1.getString("eventContent");
JSONObject jsonpdf1 = JSONObject.parseObject(jsonpdf);
// 得到pdf的base64编码
String jsonbase64 = jsonpdf1.getString("contCode");
BufferedInputStream bin = null;
FileOutputStream fout = null;
BufferedOutputStream bout = null;
try {
BASE64Decoder decoder = new sun.misc.BASE64Decoder();
// 将base64编码的字符串解码成字节数组
byte[] bytes = decoder.decodeBuffer(jsonbase64);
// apache公司的API
// byte[] bytes = Base64.decodeBase64(base64sString);
// 创建一个将bytes作为其缓冲区的ByteArrayInputStream对象
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
// 创建从底层输入流中读取数据的缓冲输入流对象
bin = new BufferedInputStream(bais);
// 指定输出的文件
log.error("路径地址=" + systemConfigService.getpdfurl() + File.separator + envlosure.getBucketName() + File.separator + envlosure.getEvidenceSn() + ".pdf");
File file = new File(systemConfigService.getpdfurl() + File.separator + envlosure.getBucketName() + File.separator + envlosure.getEvidenceSn() + ".pdf");
// 创建到指定文件的输出流
fout = new FileOutputStream(file);
// 为文件输出流对接缓冲输出流对象
bout = new BufferedOutputStream(fout);
byte[] buffers = new byte[1024];
int len = bin.read(buffers);
while (len != -1) {
bout.write(buffers, 0, len);
len = bin.read(buffers);
}
// 刷新此输出流并强制写出所有缓冲的输出字节,必须这行代码,否则有可能有问题
bout.flush();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (bin != null) {
bin.close();
}
if (fout != null) {
fout.close();
}
if (bout != null) {
bout.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
// 判断是否为用户上传pdf
if (envlosure != null) {
String urlFile = systemConfigService.getpdfurl() + File.separator + envlosure.getBucketName();
File filePathStr = new File(urlFile, envlosure.getEvidenceSn() + ".pdf");
log.error("***********filePathStr=" + filePathStr.getPath());
int pdfToPng = 0;
if (filePathStr != null && filePathStr.getPath() != null) {
try {
pdfToPng = Pdf.pdf2png(filePathStr.getPath());
} catch (Exception e) {
e.printStackTrace();
}
}
log.error("是否生成,数量****pdfToPng=" + pdfToPng);
// 判断生成图片是否成功
if (pdfToPng > 0) {
// 修改内容表信息,表示生成图片
mevencontent.setIsimg(1);
mevencontent.setImgCount(pdfToPng);
sqlSession.update("com.itrus.portal.db.EvidenceEventContentMapper.updateByPrimaryKey", mevencontent);
String oper = "原文图片生成成功";
String info = "图片地址:" + urlFile;
LogUtil.evidencelog(sqlSession, null, oper, info);
} else {
String oper = "原文图片生成失败";
String info = "失败原因:" + systemConfigService.getpdfurl() + File.separator + envlosure.getBucketName();
LogUtil.evidencelog(sqlSession, null, oper, info);
}
}
}
}
uiModel.addAttribute("selectType", 1);
} else if ("合同摘要数据".equals(evidenceType)) {
uiModel.addAttribute("selectType", 2);
} else if ("图片摘要数据".equals(evidenceType)) {
uiModel.addAttribute("selectType", 3);
} else if ("信息摘要数据".equals(evidenceType)) {
uiModel.addAttribute("selectType", 4);
}
} catch (JSONException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
uiModel.addAttribute("mevencontent", mevencontent);
return "basicinformation/evenconrent";
} else if (type == 5) {
// 事件详细
EvidenceEventContent mevencontent = sqlSession.selectOne("com.itrus.portal.db.EvidenceEventContentMapper.selectByPrimaryKey", id);
// EvidenceBasicInformation basicInformation = basicInformationimpl.selectById(mevencontent.getEvidenceSn());
EvidenceBasicInformationExample basicEx = new EvidenceBasicInformationExample();
EvidenceBasicInformationExample.Criteria information = basicEx.createCriteria();
information.andEvidenceSnEqualTo(mevencontent.getEvidenceSn());
EvidenceBasicInformation basicInformation = sqlSession.selectOne("com.itrus.portal.db.EvidenceBasicInformationMapper.selectByExample", basicEx);
EvidenceMainInformation mainInfo = new EvidenceMainInformation();
// 事件对象
EvidenceTrustedIdentityExample trustenid = new EvidenceTrustedIdentityExample();
EvidenceTrustedIdentityExample.Criteria identitye = trustenid.createCriteria();
// identitye.andBasicInformationEqualTo(mevencontent.getEvidenceSn());// 获取事件对象
identitye.andEventContentEqualTo(mevencontent.getIdCode());
// identitye.andMainInformationEqualTo(mid);
EvidenceTrustedIdentity trusted = sqlSession.selectOne("com.itrus.portal.db.EvidenceTrustedIdentityMapper.selectByExample", trustenid);
if (trusted != null) {
String mainName = trusted.getMainInformation().split(";")[0];
String mainIdentity = trusted.getMainInformation().split(";")[1];
// 证据主体信息
EvidenceMainInformationExample infomationE = new EvidenceMainInformationExample();
EvidenceMainInformationExample.Criteria tionE = infomationE.createCriteria();
tionE.andIdentificationEqualTo(mainIdentity);
if (mainName != null) {
tionE.andSubjectNameEqualTo(mainName);
}
List<EvidenceMainInformation> ainInfo = sqlSession.selectList("com.itrus.portal.db.EvidenceMainInformationMapper.selectByExample", infomationE);
mainInfo = ainInfo.get(0);
/*mainInfo = sqlSession.selectOne("com.itrus.portal.db.EvidenceMainInformationMapper.selectByPrimaryKey",
trusted.getMainInformation());*/
}
// 事件行为
EvidenceEventBehaviorExample eventbehaciorEx = new EvidenceEventBehaviorExample();
EvidenceEventBehaviorExample.Criteria eventbe = eventbehaciorEx.createCriteria();
eventbe.andEventContentEqualTo(mevencontent.getIdCode());
// eventbe.andMainInformationEqualTo(mid);
List<EvidenceEventBehavior> elist = sqlSession.selectList("com.itrus.portal.db.EvidenceEventBehaviorMapper.selectByExample", eventbehaciorEx);
// 事件时间
EvidenceEventTimeExample eventime = new EvidenceEventTimeExample();
EvidenceEventTimeExample.Criteria eventimeEx = eventime.createCriteria();
eventimeEx.andEventContentEqualTo(mevencontent.getIdCode());
// eventimeEx.andMainInformationEqualTo(mid);
List<EvidenceEventTime> meventime = sqlSession.selectList("com.itrus.portal.db.EvidenceEventTimeMapper.selectByExample", eventime);
// 事件意愿
EvidenceEventDesireExample desireEx = new EvidenceEventDesireExample();
EvidenceEventDesireExample.Criteria eventdesire = desireEx.createCriteria();
eventdesire.andEventContenteEqualTo(mevencontent.getIdCode());
// eventdesire.andMainInformationEqualTo(mid);
EvidenceEventDesire meventdesire = sqlSession.selectOne("com.itrus.portal.db.EvidenceEventDesireMapper.selectByExample", desireEx);
// 事件网络地址
EvidenceEventNetworkAddressExample network = new EvidenceEventNetworkAddressExample();
EvidenceEventNetworkAddressExample.Criteria address = network.createCriteria();
address.andEventContentEqualTo(mevencontent.getIdCode());
// address.andMainInformationEqualTo(mid);
EvidenceEventNetworkAddress networkaddress = sqlSession.selectOne("com.itrus.portal.db.EvidenceEventNetworkAddressMapper.selectByExample", network);
uiModel.addAttribute("mevencontent", mevencontent);
uiModel.addAttribute("meventdesire", meventdesire);
uiModel.addAttribute("networkaddress", networkaddress);
uiModel.addAttribute("basicInformation", basicInformation);
uiModel.addAttribute("trusted", trusted);
uiModel.addAttribute("mainInfo", mainInfo);
uiModel.addAttribute("elist", elist);
uiModel.addAttribute("meventime", meventime);
return "basicinformation/certificationdetails";
} else if (type == 6) {
// 服务委托人签名信息
EvidenceClientSignature cliensig = sqlSession.selectOne("com.itrus.portal.db.EvidenceClientSignatureMapper.selectByPrimaryKey", id);
EvidenceEnclosureExample enclo = new EvidenceEnclosureExample();
EvidenceEnclosureExample.Criteria enclosureEx = enclo.createCriteria();
enclosureEx.andEvidenceSnEqualTo(cliensig.getEvidenceSn());
enclosureEx.andPdfTypeEqualTo("1");
EvidenceEnclosure enclosure = sqlSession.selectOne("com.itrus.portal.db.EvidenceEnclosureMapper.selectByExample", enclo);
// 天威签名信息
EvidenceClientSignatureExample cilentsign = new EvidenceClientSignatureExample();
EvidenceClientSignatureExample.Criteria signature = cilentsign.createCriteria();
signature.andEvidenceSnEqualTo(enclosure.getEvidenceSn());
signature.andNameEqualTo("1");
EvidenceClientSignature cilentsignature = sqlSession.selectOne("com.itrus.portal.db.EvidenceClientSignatureMapper.selectByExample", cilentsign);
EvidenceCert oneCert = new EvidenceCert();
EvidenceCheck oneCheck = new EvidenceCheck();
if (cilentsignature != null) {
// 天威证书信息
/*EvidenceCertExample certE = new EvidenceCertExample();
EvidenceCertExample.Criteria evidenceCertE = certE.createCriteria();
evidenceCertE.andClientSignatureEqualTo(cilentsignature.getId());
oneCert = sqlSession.selectOne("com.itrus.portal.db.EvidenceCertMapper.selectByExample",certE);*/
oneCert = sqlSession.selectOne("com.itrus.portal.db.EvidenceCertMapper.selectByPrimaryKey", cilentsignature.getCertId());
// 天威核验信息
EvidenceCheckExample checkE = new EvidenceCheckExample();
EvidenceCheckExample.Criteria evidenceCheckE = checkE.createCriteria();
evidenceCheckE.andClientSignatureEqualTo(cilentsignature.getId());
oneCheck = sqlSession.selectOne("com.itrus.portal.db.EvidenceCheckMapper.selectByExample", checkE);
}
// 服务委托人时间戳信息
EvidenceClientTimeStampExample clientTime = new EvidenceClientTimeStampExample();
EvidenceClientTimeStampExample.Criteria stamp = clientTime.createCriteria();
stamp.andEvidenceSnEqualTo(enclosure.getEvidenceSn());
stamp.andNameEqualTo("0");
EvidenceClientTimeStamp clientTimestamp = sqlSession.selectOne("com.itrus.portal.db.EvidenceClientTimeStampMapper.selectByExample", clientTime);
// 天威时间戳信息
EvidenceClientTimeStampExample tclientTime = new EvidenceClientTimeStampExample();
EvidenceClientTimeStampExample.Criteria tstamp = tclientTime.createCriteria();
tstamp.andEvidenceSnEqualTo(enclosure.getEvidenceSn());
tstamp.andNameEqualTo("1");
EvidenceClientTimeStamp tclientTimestamp = sqlSession.selectOne("com.itrus.portal.db.EvidenceClientTimeStampMapper.selectByExample", tclientTime);
// 服务委托人证书信息
/*EvidenceCertExample certEx = new EvidenceCertExample();
EvidenceCertExample.Criteria evidenceCert = certEx.createCriteria();
evidenceCert.andClientSignatureEqualTo(cliensig.getId());
List<EvidenceCert> listCert = sqlSession
.selectList("com.itrus.portal.db.EvidenceCertMapper.selectByExample", certEx);*/
List<EvidenceCert> listCert = sqlSession.selectList("com.itrus.portal.db.EvidenceCertMapper.selectByPrimaryKey", cliensig.getCertId());
// 服务委托人核验信息
EvidenceCheckExample checkEx = new EvidenceCheckExample();
EvidenceCheckExample.Criteria evidenceCheck = checkEx.createCriteria();
evidenceCheck.andClientSignatureEqualTo(cliensig.getId());
EvidenceCheck listCheck = sqlSession.selectOne("com.itrus.portal.db.EvidenceCheckMapper.selectByExample", checkEx);
Map<Long, EvidenceCheck> mapCheck = new HashMap<Long, EvidenceCheck>();
// 服务委托人证书核验信息
for (EvidenceCert c : listCert) {
EvidenceCheckExample certcheckEx = new EvidenceCheckExample();
EvidenceCheckExample.Criteria certCheck = certcheckEx.createCriteria();
certCheck.andEvidenceCertEqualTo(c.getId());
EvidenceCheck listCertCheck = sqlSession.selectOne("com.itrus.portal.db.EvidenceCheckMapper.selectByExample", certcheckEx);
mapCheck.put(c.getId(), listCertCheck);
}
// 服务委托人证书信息
uiModel.addAttribute("listCert", listCert);
// 服务委托人核验信息
uiModel.addAttribute("listCheck", listCheck);
// 天威证书信息
uiModel.addAttribute("oneCert", oneCert);
// 天威核验信息
uiModel.addAttribute("oneCheck", oneCheck);
// 服务委托人证书核验信息
uiModel.addAttribute("mapCheck", mapCheck);
// 服务委托人签名信息
uiModel.addAttribute("cliensig", cliensig);
// 天威签名信息
uiModel.addAttribute("cilentsignature", cilentsignature);
// 服务委托人时间戳信息
uiModel.addAttribute("clientTimestamp", clientTimestamp);
// 天威时间戳信息
uiModel.addAttribute("tclientTimestamp", tclientTimestamp);
return "basicinformation/evidenceexists";
}
/*
* else if (type == 7) { EvidenceIndividual indiv = sqlSession
* .selectOne(
* "com.itrus.portal.db.EvidenceIndividualMapper.selectByPrimaryKey",
* id); String cid = indiv.getId().toString(); int evid =
* Integer.parseInt(cid); EvidenceRealNameExample realnameE = new
* EvidenceRealNameExample(); EvidenceRealNameExample.Criteria
* realnameEx = realnameE.createCriteria();
* realnameEx.andIndividualEqualTo(evid); EvidenceRealName erealname
* = sqlSession .selectOne(
* "com.itrus.portal.db.EvidenceRealNameMapper.selectByExample",
* realnameE); EvidenceMainInformation mainInfo =
* sqlSession.selectOne(
* "com.itrus.portal.db.EvidenceMainInformationMapper.selectByPrimaryKey",
* erealname.getMainInformation()); uiModel.addAttribute("indiv",
* indiv); uiModel.addAttribute("mainInfo", mainInfo); return
* "basicinformation/ineividual"; }
*/
return null;
}
use of com.itrus.portal.db.EvidenceTrustedIdentity in project portal by ixinportal.
the class EvidencePdfVerifyService method savePdfVerify.
private void savePdfVerify(String data) {
JSONObject jsonPdfVerify = JSONObject.parseObject(data);
try {
if (data == null) {
throw new Exception("返回值为空");
}
if (jsonPdfVerify.getInteger("code") == 0) {
eventContent.setEventStatus(1);
} else {
eventContent.setEventStatus(0);
eventContent.setFailureReason(jsonPdfVerify.getString("message"));
}
String retVerifyTi = null;
String retVerifyBehavior = null;
String retVerifyTime = null;
if (StringUtils.isNotEmpty(data) && StringUtils.isNotEmpty(jsonPdfVerify.getString("signInfos"))) {
// 解析pdf验章返回信息
JSONArray jsonArraySignInfos = jsonPdfVerify.getJSONArray("signInfos");
List<String> listStr = new ArrayList<>();
int noId = 0;
for (int k = 0; k < jsonArraySignInfos.size(); k++) {
// 循环得到pdf验章返回数据
JSONObject json = jsonArraySignInfos.getJSONObject(k);
// 对应可信身份
EvidenceTrustedIdentity trustedIdentity1 = null;
// 判断验章是否包含证书
if (StringUtils.isNotEmpty(json.getString("signerCert"))) {
// 解析签名者证书base64编码
UserCert userCert1 = CertUtil.getCertFromBase64(json.getString("signerCert"));
EvidenceCertUser certUser = certUserService.getCertBySn(userCert1.getCertSn());
if (certUser == null) {
certUser = new EvidenceCertUser();
certUser.setCertBase64(json.getString("signerCert"));
certUser.setCertSerialnumber(userCert1.getCertSn());
certUser.setSubjectdn(userCert1.getCertDn());
certUser.setIssuerdn(userCert1.getIssuerDn());
certUser.setIssuer(EvidenceSaveServiceApi.getCertCn(userCert1.getIssuerDn()));
if (userCert1.getCertBuf() != null) {
certUser.setEvidenceBuf(userCert1.getCertBuf().toString());
}
certUser.setStartTime(userCert1.getCertStartTime());
certUser.setEndTime(userCert1.getCertEndTime());
certUser.setCreateTime(new Date());
certUser.setIdCode(UniqueIDUtils.getUID());
queueThread.putObjectQueue(certUser);
}
boolean blt = true;
// 循环已经存在的证书序列号 判断证书序列号是否存在
for (String strCertSn : listStr) {
if (userCert1 != null && strCertSn.equals(userCert1.getCertSn())) {
blt = false;
}
}
// 循环可信身份list缓存 判断证书序列号是否相同
if (!tiCacheList.isEmpty() && tiCacheList != null) {
for (EvidenceTrustedIdentity identity : tiCacheList) {
if (identity.getCertSerialnumber().equals(userCert1.getCertSn())) {
trustedIdentity1 = identity;
}
}
}
if (trustedIdentity1 == null) {
noId--;
}
if (blt) {
// 事件对象定义
EvidenceTrustedIdentity trustedIdentity = new EvidenceTrustedIdentity();
trustedIdentity.setBasicInformation(eventContent.getEvidenceSn());
trustedIdentity.setEventContent(eventContent.getIdCode());
if (trustedIdentity1 != null) {
trustedIdentity.setMainInformation(trustedIdentity1.getMainInformation());
// 整合证书信息存储到对应可信身份表
trustedIdentity1.setCertBase64(certUser.getIdCode());
queueThread.putObjectQueue(trustedIdentity1);
} else {
trustedIdentity.setMainInformation(noId + "");
}
trustedIdentity.setCertBase64(certUser.getIdCode());
trustedIdentity.setCreateTime(new Date());
trustedIdentity.setIdentiType("1");
if (userCert1.getCertBuf() != null) {
trustedIdentity.setEvidenceBuf(userCert1.getCertBuf().toString());
}
trustedIdentity.setStartTime(userCert1.getCertStartTime());
trustedIdentity.setEndTime(userCert1.getCertEndTime());
// 事件对象核验结果
trustedIdentity.setCheckTime(new Date());
if (json.getIntValue("vcResult") == 0) {
trustedIdentity.setCheckStatus("1");
trustedIdentity.setCheckSuccessTime(new Date());
} else {
if (StringUtils.isEmpty(retVerifyTi))
retVerifyTi = "事件对象核验失败";
trustedIdentity.setCheckStatus("0");
if (json.getIntValue("vcResult") == 30006)
trustedIdentity.setUnreason("未找到对应的受信任CA证书");
else if (json.getIntValue("vcResult") == 30007)
trustedIdentity.setUnreason("证书已吊销");
else if (json.getIntValue("vcResult") == 30008)
trustedIdentity.setUnreason("证书不在有效期内");
else if (json.getIntValue("vcResult") == 30009)
trustedIdentity.setUnreason("无效的证书签名");
else if (json.getIntValue("vcResult") == 300010)
trustedIdentity.setUnreason("其他证书验证错误");
else
trustedIdentity.setUnreason("非正常其他证书验证错误");
}
trustedIdentity.setVewestCheckTime(new Date());
queueThread.putObjectQueue(trustedIdentity);
}
listStr.add(userCert1.getCertSn());
} else {
retVerifyTi = "事件对象核验失败";
}
// 事件行为定义
EvidenceEventBehavior eventBehavior = new EvidenceEventBehavior();
// 判断时间戳是否存在
if (StringUtils.isNotEmpty(json.getString("timeStamp")) && !json.getString("timeStamp").equals("{}")) {
// 验证时间戳
EvidenceEventTime eventTime = new EvidenceEventTime();
if (trustedIdentity1 != null) {
eventTime.setMainInformation(trustedIdentity1.getMainInformation());
} else {
eventTime.setMainInformation(noId + "");
}
eventTime.setIdentiType("1");
eventTime.setEventContent(eventContent.getIdCode());
eventTime.setCertificate(json.getJSONObject("timeStamp").getString("signature"));
eventTime.setHashAlgorithm(json.getJSONObject("timeStamp").getString("hashAlg"));
eventTime.setHashvalue(json.getJSONObject("timeStamp").getString("hashData"));
eventTime.setCertBase64(json.getJSONObject("timeStamp").getString("tsCert"));
if (StringUtils.isNotEmpty(json.getJSONObject("timeStamp").getString("time"))) {
eventTime.setSignatureTime(json.getJSONObject("timeStamp").getDate("time"));
} else {
eventTime.setSignatureTime(json.getDate("stampTime"));
}
eventTime.setCreateTime(new Date());
// 解析时间戳证书 Base64
if (json.getJSONObject("timeStamp").getString("tsCert") != null) {
UserCert userCert = CertUtil.getCertFromBase64(json.getJSONObject("timeStamp").getString("tsCert"));
eventTime.setCertificateDn(userCert.getCertDn());
eventTime.setIssuerdn(userCert.getIssuerDn());
}
// 时间核验结果
eventTime.setCheckTime(new Date());
if (json.getIntValue("vtsResult") == 0) {
eventTime.setCheckStatus("1");
eventTime.setCheckSuccessTime(new Date());
} else {
if (StringUtils.isEmpty(retVerifyTime)) {
retVerifyTime = "事件时间核验失败";
}
eventTime.setCheckStatus("0");
if (json.getIntValue("vtsResult") == 60002) {
eventTime.setUnreason("验证时戳失败");
} else {
eventTime.setUnreason("其他验证时戳错误");
}
}
eventTime.setVewestCheckTime(new Date());
// eventTime.setCheckContent("签名原文完整、真实、是否被篡改");
queueThread.putObjectQueue(eventTime);
} else {
eventBehavior.setVerificationTime(json.getDate("stampTime"));
}
// 判断事件行为是否返回为空
if (StringUtils.isNotEmpty(json.getString("signature"))) {
eventBehavior.setHashAlgorithm(json.getString("hashAlg"));
eventBehavior.setSignaturevalue(json.getString("signature"));
eventBehavior.setHashBackSigning(json.getString("msgDigest"));
eventBehavior.setEventContent(eventContent.getIdCode());
eventBehavior.setIdentiType("1");
if (trustedIdentity1 != null) {
eventBehavior.setMainInformation(trustedIdentity1.getMainInformation());
} else {
eventBehavior.setMainInformation(noId + "");
}
// 事件行为核验结果
eventBehavior.setCheckTime(new Date());
if (json.getIntValue("vdsResult") == 0) {
eventBehavior.setCheckStatus("1");
eventBehavior.setCheckSuccessTime(new Date());
} else {
if (StringUtils.isEmpty(retVerifyBehavior)) {
retVerifyBehavior = "事件行为核验失败";
}
eventBehavior.setCheckStatus("0");
if (json.getIntValue("vdsResult") == 40002) {
eventBehavior.setUnreason("验证签名失败");
} else {
eventBehavior.setUnreason("其他验证签名错误");
}
}
eventBehavior.setVewestCheckTime(new Date());
queueThread.putObjectQueue(eventBehavior);
} else {
retVerifyBehavior = "事件行为核验失败";
}
}
if (jsonArraySignInfos.size() == 0) {
// eventContent.setEventStatus(0);
// if(StringUtils.isNotEmpty(eventContent.getFailureReason())) {
// eventContent.setFailureReason(eventContent.getFailureReason() + ",pdf签章失败:返回集合为空。");
// } else {
// eventContent.setFailureReason("pdf签章失败:返回集合为空。");
// }
// result.put("status", 0);
// result.put("message", "pdf签章失败:返回集合为空。");
// return result;
}
if (StringUtils.isNotEmpty(retVerifyTi)) {
if (StringUtils.isNotEmpty(eventContent.getFailureReason()))
eventContent.setFailureReason(eventContent.getFailureReason() + "," + retVerifyTi);
else
eventContent.setFailureReason(retVerifyTi);
}
if (StringUtils.isNotEmpty(retVerifyBehavior)) {
if (StringUtils.isNotEmpty(eventContent.getFailureReason()))
eventContent.setFailureReason(retVerifyBehavior);
else
eventContent.setFailureReason(eventContent.getFailureReason() + "," + retVerifyBehavior);
}
if (StringUtils.isNotEmpty(retVerifyTime)) {
if (StringUtils.isNotEmpty(eventContent.getFailureReason()))
eventContent.setFailureReason(retVerifyTime);
else
eventContent.setFailureReason(eventContent.getFailureReason() + "," + retVerifyTime);
}
}
queueThread.putObjectQueue(eventContent);
} catch (Exception e) {
e.printStackTrace();
String ret = null;
if (jsonPdfVerify != null) {
ret = jsonPdfVerify.getString("message");
}
LogUtil.evidencelog(sqlSession, eventContent.getEvidenceSn(), "存证接口_天威签名", "PDF验章失败,证据编号:" + eventContent.getEvidenceSn() + ", 请求参数:" + (StringUtils.isEmpty(pdfContent) ? "空值" : "有值").toString() + ", 请求地址:" + url + ", 返回结果:" + ret + ", 失败原因" + e);
}
}
use of com.itrus.portal.db.EvidenceTrustedIdentity in project portal by ixinportal.
the class EvidenceQueueThread method run.
@Override
public void run() {
boolean isException = false;
while (true) {
// long startDate = System.currentTimeMillis();
log.debug("EvidenceQueueThread execute run,the queue size is [" + OBJECT_QUEUE.size() + "]");
if (OBJECT_QUEUE.isEmpty()) {
try {
// 若队列中没有信息则等待10秒
sleep(10 * 1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
continue;
}
log.debug("EvidenceQueueThread execute run,the queue size is [" + OBJECT_QUEUE.size() + "]");
// 存证记录信息
List<EvidenceBasicInformation> basicInformations = new ArrayList<EvidenceBasicInformation>();
// 事件内容记录
List<EvidenceEventContent> eventContents = new ArrayList<EvidenceEventContent>();
// 主体
Map<String, EvidenceMainInformation> mainInformationMap = new HashMap<>();
// 主体与记录关联
List<EvidenceSubjectIdentity> subjectIdentites = new ArrayList<EvidenceSubjectIdentity>();
// 日志记录
List<EvidenceLog> logs = new ArrayList<EvidenceLog>();
// 签名服务信息记录
List<EvidenceClientSignature> signatures = new ArrayList<EvidenceClientSignature>();
// 时间戳服务信息记录
List<EvidenceClientTimeStamp> clientTimeStamps = new ArrayList<EvidenceClientTimeStamp>();
// 附件信息记录
List<EvidenceEnclosure> enclosures = new ArrayList<EvidenceEnclosure>();
// 身份意愿鉴别信息记录
List<EvidenceDesireIdentify> desireIdentifies = new ArrayList<EvidenceDesireIdentify>();
// 身份实名信息记录
List<EvidenceRealName> realNames = new ArrayList<EvidenceRealName>();
// 身份个人实名提交信息
List<EvidenceIndividual> individuals = new ArrayList<EvidenceIndividual>();
// 身份企业法人实名提交信息
List<EvidenceRepresentative> representatives = new ArrayList<EvidenceRepresentative>();
// 身份企业代理人实名提交信息
List<EvidenceTheAgent> agents = new ArrayList<EvidenceTheAgent>();
// 身份企业实名提交信息
List<EvidenceCompaniesSubmit> companiesSubmits = new ArrayList<EvidenceCompaniesSubmit>();
// 事件意愿认证信息
List<EvidenceEventDesire> eventDesires = new ArrayList<EvidenceEventDesire>();
// 事件地点认证信息
List<EvidenceEventNetworkAddress> addresses = new ArrayList<EvidenceEventNetworkAddress>();
// 事件对象认证信息
List<EvidenceTrustedIdentity> trustedIdentities = new ArrayList<EvidenceTrustedIdentity>();
// 事件行为信息
List<EvidenceEventBehavior> eventBehaviors = new ArrayList<EvidenceEventBehavior>();
// 事件时间戳信息
List<EvidenceEventTime> eventTimes = new ArrayList<EvidenceEventTime>();
// 用户上传证书信息
List<EvidenceCertUser> certUsers = new ArrayList<EvidenceCertUser>();
for (int i = 0; !OBJECT_QUEUE.isEmpty() && i < 1000; i++) {
Object object = OBJECT_QUEUE.poll();
isOver = false;
if (object instanceof EvidenceBasicInformation) {
EvidenceBasicInformation ebi = (EvidenceBasicInformation) object;
basicInformations.add(ebi);
} else if (object instanceof EvidenceEventContent) {
EvidenceEventContent eec = (EvidenceEventContent) object;
eventContents.add(eec);
} else if (object instanceof EvidenceMainInformation) {
EvidenceMainInformation emi = (EvidenceMainInformation) object;
mainInformationMap.put(emi.getSubjectName() + emi.getIdentification(), emi);
} else if (object instanceof EvidenceSubjectIdentity) {
EvidenceSubjectIdentity esi = (EvidenceSubjectIdentity) object;
subjectIdentites.add(esi);
} else if (object instanceof EvidenceLog) {
EvidenceLog eLog = (EvidenceLog) object;
eLog.setInfo(StringUtils.replaceHtml(eLog.getInfo()));
logs.add(eLog);
} else if (object instanceof EvidenceClientSignature) {
EvidenceClientSignature ecs = (EvidenceClientSignature) object;
signatures.add(ecs);
} else if ((object instanceof EvidenceClientTimeStamp)) {
EvidenceClientTimeStamp ects = (EvidenceClientTimeStamp) object;
clientTimeStamps.add(ects);
} else if ((object instanceof EvidenceEnclosure)) {
EvidenceEnclosure ee = (EvidenceEnclosure) object;
enclosures.add(ee);
} else if ((object instanceof EvidenceDesireIdentify)) {
EvidenceDesireIdentify edi = (EvidenceDesireIdentify) object;
desireIdentifies.add(edi);
} else if ((object instanceof EvidenceEnclosure)) {
EvidenceEnclosure ee = (EvidenceEnclosure) object;
enclosures.add(ee);
} else if ((object instanceof EvidenceRealName)) {
EvidenceRealName erl = (EvidenceRealName) object;
realNames.add(erl);
} else if ((object instanceof EvidenceIndividual)) {
EvidenceIndividual ei = (EvidenceIndividual) object;
individuals.add(ei);
} else if ((object instanceof EvidenceRepresentative)) {
EvidenceRepresentative er = (EvidenceRepresentative) object;
representatives.add(er);
} else if ((object instanceof EvidenceTheAgent)) {
EvidenceTheAgent eta = (EvidenceTheAgent) object;
agents.add(eta);
} else if ((object instanceof EvidenceCompaniesSubmit)) {
EvidenceCompaniesSubmit ecs = (EvidenceCompaniesSubmit) object;
companiesSubmits.add(ecs);
} else if ((object instanceof EvidenceEventDesire)) {
EvidenceEventDesire eed = (EvidenceEventDesire) object;
eventDesires.add(eed);
} else if ((object instanceof EvidenceEventNetworkAddress)) {
EvidenceEventNetworkAddress eena = (EvidenceEventNetworkAddress) object;
addresses.add(eena);
} else if ((object instanceof EvidenceTrustedIdentity)) {
EvidenceTrustedIdentity eti = (EvidenceTrustedIdentity) object;
trustedIdentities.add(eti);
} else if ((object instanceof EvidenceEventBehavior)) {
EvidenceEventBehavior eeb = (EvidenceEventBehavior) object;
eventBehaviors.add(eeb);
} else if ((object instanceof EvidenceEventTime)) {
EvidenceEventTime eet = (EvidenceEventTime) object;
eventTimes.add(eet);
} else if ((object instanceof EvidenceCertUser)) {
EvidenceCertUser ecu = (EvidenceCertUser) object;
certUsers.add(ecu);
}
}
// 保存事件内容记录
if (!eventContents.isEmpty())
try {
sqlSession.insert("com.itrus.portal.db.EvidenceEventContentMapper.insertOrUpdate", eventContents.toArray());
} catch (Exception e) {
isException = true;
// 将错误信息显示,不进行操作
this.log.error("EvidenceQueueThread add eventContents " + e);
Calendar cal = Calendar.getInstance();
String content = JSONObject.toJSONString(eventContents.toArray());
String fileName = "EvidenceEventContent" + "_" + cal.get(Calendar.YEAR) + cal.get(Calendar.MONTH) + cal.get(Calendar.DATE) + cal.get(Calendar.HOUR) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND);
try {
saveContent(content, fileName);
} catch (Exception e2) {
EvidenceLog log = new EvidenceLog();
log.setCreateTime(new Date());
log.setType("存储入库异常_存证事件内容");
log.setInfo("失败原因:" + e2 + ",失败数据:" + content);
log.setIp(null);
logs.add(log);
}
} finally {
eventContents = null;
}
// 保存证据主体记录
if (!mainInformationMap.isEmpty())
try {
sqlSession.insert("com.itrus.portal.db.EvidenceMainInformationMapper.insertOrUpdate", mainInformationMap.values().toArray());
} catch (Exception e) {
isException = true;
// 将错误信息显示,不进行操作
this.log.error("EvidenceQueueThread add mainInformations " + e);
Calendar cal = Calendar.getInstance();
String content = JSONObject.toJSONString(mainInformationMap.values().toArray());
String fileName = "EvidenceMainInformation" + "_" + cal.get(Calendar.YEAR) + cal.get(Calendar.MONTH) + cal.get(Calendar.DATE) + cal.get(Calendar.HOUR) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND);
try {
saveContent(content, fileName);
} catch (Exception e2) {
EvidenceLog log = new EvidenceLog();
log.setCreateTime(new Date());
log.setType("存储入库异常_存证主体");
log.setInfo("失败原因:" + e2 + ",失败数据:" + content);
log.setIp(null);
logs.add(log);
}
} finally {
mainInformationMap.clear();
}
// 保存主体与记录关联记录
if (!subjectIdentites.isEmpty())
try {
sqlSession.insert("com.itrus.portal.db.EvidenceSubjectIdentityMapper.insertOrUpdate", subjectIdentites.toArray());
} catch (Exception e) {
isException = true;
// 将错误信息显示,不进行操作
this.log.error("EvidenceQueueThread add subjectIdentites " + e);
Calendar cal = Calendar.getInstance();
String content = JSONObject.toJSONString(subjectIdentites.toArray());
String fileName = "EvidenceSubjectIdentity" + "_" + cal.get(Calendar.YEAR) + cal.get(Calendar.MONTH) + cal.get(Calendar.DATE) + cal.get(Calendar.HOUR) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND);
try {
saveContent(content, fileName);
} catch (Exception e2) {
EvidenceLog log = new EvidenceLog();
log.setCreateTime(new Date());
log.setType("存储入库异常_存证主体");
log.setInfo("失败原因:" + e2 + ",失败数据:" + content);
log.setIp(null);
logs.add(log);
}
} finally {
subjectIdentites = null;
}
// 保存签名服务信息记录
if (!signatures.isEmpty()) {
try {
sqlSession.insert("com.itrus.portal.db.EvidenceClientSignatureMapper.insertOrUpdate", signatures.toArray());
} catch (Exception e) {
isException = true;
// 将错误信息显示,不进行操作
this.log.error("EvidenceQueueThread add signatures " + e);
Calendar cal = Calendar.getInstance();
String content = JSONObject.toJSONString(signatures.toArray());
String fileName = "EvidenceClientSignature" + "_" + cal.get(Calendar.YEAR) + cal.get(Calendar.MONTH) + cal.get(Calendar.DATE) + cal.get(Calendar.HOUR) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND);
try {
saveContent(content, fileName);
} catch (Exception e2) {
EvidenceLog log = new EvidenceLog();
log.setCreateTime(new Date());
log.setType("存储入库异常_存证签名服务");
log.setInfo("失败原因:" + e2 + ",失败数据:" + content);
log.setIp(null);
logs.add(log);
}
} finally {
signatures = null;
}
}
// 保存时间戳服务信息
if (!clientTimeStamps.isEmpty()) {
try {
this.sqlSession.insert("com.itrus.portal.db.EvidenceClientTimeStampMapper.insertOrUpdate", clientTimeStamps.toArray());
} catch (Exception e) {
isException = true;
this.log.error("EvidenceQueueThread add clientTimeStamps " + e);
Calendar cal = Calendar.getInstance();
String content = JSONObject.toJSONString(clientTimeStamps.toArray());
String fileName = "EvidenceClientTimeStamp" + "_" + cal.get(Calendar.YEAR) + cal.get(Calendar.MONTH) + cal.get(Calendar.DATE) + cal.get(Calendar.HOUR) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND);
try {
saveContent(content, fileName);
} catch (Exception e2) {
EvidenceLog log = new EvidenceLog();
log.setCreateTime(new Date());
log.setType("存储入库异常_存证时间戳服务");
log.setInfo("失败原因:" + e2 + ",失败数据:" + content);
log.setIp(null);
logs.add(log);
}
} finally {
clientTimeStamps = null;
}
}
// 保存附件信息
if (!enclosures.isEmpty()) {
try {
this.sqlSession.insert("com.itrus.portal.db.EvidenceEnclosureMapper.insertOrUpdate", enclosures.toArray());
} catch (Exception e) {
isException = true;
this.log.error("EvidenceQueueThread add enclosures " + e);
Calendar cal = Calendar.getInstance();
String content = JSONObject.toJSONString(enclosures.toArray());
String fileName = "EvidenceEnclosure" + "_" + cal.get(Calendar.YEAR) + cal.get(Calendar.MONTH) + cal.get(Calendar.DATE) + cal.get(Calendar.HOUR) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND);
try {
saveContent(content, fileName);
} catch (Exception e2) {
EvidenceLog log = new EvidenceLog();
log.setCreateTime(new Date());
log.setType("存储入库异常_存证附件");
log.setInfo("失败原因:" + e2 + ",失败数据:" + content);
log.setIp(null);
logs.add(log);
}
} finally {
enclosures = null;
}
}
// 保存身份意愿信息
if (!desireIdentifies.isEmpty()) {
try {
sqlSession.insert("com.itrus.portal.db.EvidenceDesireIdentifyMapper.insertOrUpdate", desireIdentifies.toArray());
} catch (Exception e) {
isException = true;
this.log.error("EvidenceQueueThread add desireIdentifies " + e);
Calendar cal = Calendar.getInstance();
String content = JSONObject.toJSONString(desireIdentifies.toArray());
String fileName = "EvidenceDesireIdentify" + "_" + cal.get(Calendar.YEAR) + cal.get(Calendar.MONTH) + cal.get(Calendar.DATE) + cal.get(Calendar.HOUR) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND);
try {
saveContent(content, fileName);
} catch (Exception e2) {
EvidenceLog log = new EvidenceLog();
log.setCreateTime(new Date());
log.setType("存储入库异常_存证身份意愿");
log.setInfo("失败原因:" + e2 + ",失败数据:" + content);
log.setIp(null);
logs.add(log);
}
} finally {
desireIdentifies = null;
}
}
// 保存身份个人实名提交信息
if (!individuals.isEmpty()) {
try {
sqlSession.insert("com.itrus.portal.db.EvidenceIndividualMapper.insertOrUpdate", individuals.toArray());
} catch (Exception e) {
isException = true;
this.log.error("EvidenceQueueThread add individuals " + e);
Calendar cal = Calendar.getInstance();
String content = JSONObject.toJSONString(individuals.toArray());
String fileName = "EvidenceIndividual" + "_" + cal.get(Calendar.YEAR) + cal.get(Calendar.MONTH) + cal.get(Calendar.DATE) + cal.get(Calendar.HOUR) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND);
try {
saveContent(content, fileName);
} catch (Exception e2) {
EvidenceLog log = new EvidenceLog();
log.setCreateTime(new Date());
log.setType("存储入库异常_存证身份个人实名提交信息");
log.setInfo("失败原因:" + e2 + ",失败数据:" + content);
log.setIp(null);
logs.add(log);
}
} finally {
individuals = null;
}
}
// 保存身份实名信息
if (!realNames.isEmpty()) {
try {
sqlSession.insert("com.itrus.portal.db.EvidenceRealNameMapper.insertOrUpdate", realNames.toArray());
} catch (Exception e) {
isException = true;
this.log.error("EvidenceQueueThread add realNames " + e);
Calendar cal = Calendar.getInstance();
String content = JSONObject.toJSONString(realNames.toArray());
String fileName = "EvidenceRealName" + "_" + cal.get(Calendar.YEAR) + cal.get(Calendar.MONTH) + cal.get(Calendar.DATE) + cal.get(Calendar.HOUR) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND);
try {
saveContent(content, fileName);
} catch (Exception e2) {
EvidenceLog log = new EvidenceLog();
log.setCreateTime(new Date());
log.setType("存储入库异常_存证身份实名");
log.setInfo("失败原因:" + e2 + ",失败数据:" + content);
log.setIp(null);
logs.add(log);
}
} finally {
realNames = null;
}
}
// 保存身份企业法人实名提交信息
if (!representatives.isEmpty()) {
try {
sqlSession.insert("com.itrus.portal.db.EvidenceRepresentativeMapper.insertOrUpdate", representatives.toArray());
} catch (Exception e) {
isException = true;
this.log.error("EvidenceQueueThread add representatives " + e);
Calendar cal = Calendar.getInstance();
String content = JSONObject.toJSONString(representatives.toArray());
String fileName = "EvidenceRepresentative" + "_" + cal.get(Calendar.YEAR) + cal.get(Calendar.MONTH) + cal.get(Calendar.DATE) + cal.get(Calendar.HOUR) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND);
try {
saveContent(content, fileName);
} catch (Exception e2) {
EvidenceLog log = new EvidenceLog();
log.setCreateTime(new Date());
log.setType("存储入库异常_存证身份企业法人实名");
log.setInfo("失败原因:" + e2 + ",失败数据:" + content);
log.setIp(null);
logs.add(log);
}
} finally {
representatives = null;
}
}
// 保存身份企业代理人实名提交信息
if (!agents.isEmpty()) {
try {
sqlSession.insert("com.itrus.portal.db.EvidenceTheAgentMapper.insertOrUpdate", agents.toArray());
} catch (Exception e) {
isException = true;
this.log.error("EvidenceQueueThread add agents " + e);
Calendar cal = Calendar.getInstance();
String content = JSONObject.toJSONString(agents.toArray());
String fileName = "EvidenceTheAgent" + "_" + cal.get(Calendar.YEAR) + cal.get(Calendar.MONTH) + cal.get(Calendar.DATE) + cal.get(Calendar.HOUR) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND);
try {
saveContent(content, fileName);
} catch (Exception e2) {
EvidenceLog log = new EvidenceLog();
log.setCreateTime(new Date());
log.setType("存储入库异常_存证身份企业代理人");
log.setInfo("失败原因:" + e2 + ",失败数据:" + content);
log.setIp(null);
logs.add(log);
}
} finally {
agents = null;
}
}
// 保存身份企业实名提交信息
if (!companiesSubmits.isEmpty()) {
try {
sqlSession.insert("com.itrus.portal.db.EvidenceCompaniesSubmitMapper.insertOrUpdate", companiesSubmits.toArray());
} catch (Exception e) {
isException = true;
this.log.error("EvidenceQueueThread add companiesSubmits " + e);
Calendar cal = Calendar.getInstance();
String content = JSONObject.toJSONString(companiesSubmits.toArray());
String fileName = "EvidenceCompaniesSubmit" + "_" + cal.get(Calendar.YEAR) + cal.get(Calendar.MONTH) + cal.get(Calendar.DATE) + cal.get(Calendar.HOUR) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND);
try {
saveContent(content, fileName);
} catch (Exception e2) {
EvidenceLog log = new EvidenceLog();
log.setCreateTime(new Date());
log.setType("存储入库异常_存证身份企业实名");
log.setInfo("失败原因:" + e2 + ",失败数据:" + content);
log.setIp(null);
logs.add(log);
}
} finally {
companiesSubmits = null;
}
}
// 保存事件意愿认证信息
if (!eventDesires.isEmpty()) {
try {
sqlSession.insert("com.itrus.portal.db.EvidenceEventDesireMapper.insertOrUpdate", eventDesires.toArray());
} catch (Exception e) {
isException = true;
this.log.error("EvidenceQueueThread add eventDesires " + e);
Calendar cal = Calendar.getInstance();
String content = JSONObject.toJSONString(eventDesires.toArray());
String fileName = "EvidenceEventDesire" + "_" + cal.get(Calendar.YEAR) + cal.get(Calendar.MONTH) + cal.get(Calendar.DATE) + cal.get(Calendar.HOUR) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND);
try {
saveContent(content, fileName);
} catch (Exception e2) {
EvidenceLog log = new EvidenceLog();
log.setCreateTime(new Date());
log.setType("存储入库异常_存证事件意愿认证");
log.setInfo("失败原因:" + e2 + ",失败数据:" + content);
log.setIp(null);
logs.add(log);
}
} finally {
eventDesires = null;
}
}
// 保存事件地点认证信息
if (!addresses.isEmpty()) {
try {
sqlSession.insert("com.itrus.portal.db.EvidenceEventNetworkAddressMapper.insertOrUpdate", addresses.toArray());
} catch (Exception e) {
isException = true;
this.log.error("EvidenceQueueThread add addresses " + e);
Calendar cal = Calendar.getInstance();
String content = JSONObject.toJSONString(addresses.toArray());
String fileName = "EvidenceEventNetworkAddress" + "_" + cal.get(Calendar.YEAR) + cal.get(Calendar.MONTH) + cal.get(Calendar.DATE) + cal.get(Calendar.HOUR) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND);
try {
saveContent(content, fileName);
} catch (Exception e2) {
EvidenceLog log = new EvidenceLog();
log.setCreateTime(new Date());
log.setType("存储入库异常_存证事件地点认证");
log.setInfo("失败原因:" + e2 + ",失败数据:" + content);
log.setIp(null);
logs.add(log);
}
} finally {
addresses = null;
}
}
// 保存事件对象认证信息
if (!trustedIdentities.isEmpty()) {
try {
sqlSession.insert("com.itrus.portal.db.EvidenceTrustedIdentityMapper.insertOrUpdate", trustedIdentities.toArray());
} catch (Exception e) {
isException = true;
this.log.error("EvidenceQueueThread add trustedIdentities " + e);
Calendar cal = Calendar.getInstance();
String content = JSONObject.toJSONString(trustedIdentities.toArray());
String fileName = "EvidenceTrustedIdentity" + "_" + cal.get(Calendar.YEAR) + cal.get(Calendar.MONTH) + cal.get(Calendar.DATE) + cal.get(Calendar.HOUR) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND);
try {
saveContent(content, fileName);
} catch (Exception e2) {
EvidenceLog log = new EvidenceLog();
log.setCreateTime(new Date());
log.setType("存储入库异常_存证事件对象认证");
log.setInfo("失败原因:" + e2 + ",失败数据:" + content);
log.setIp(null);
logs.add(log);
}
} finally {
trustedIdentities = null;
}
}
// 保存事件行为信息
if (!eventBehaviors.isEmpty()) {
try {
sqlSession.insert("com.itrus.portal.db.EvidenceEventBehaviorMapper.insertOrUpdate", eventBehaviors.toArray());
} catch (Exception e) {
isException = true;
this.log.error("EvidenceQueueThread add eventBehaviors " + e);
Calendar cal = Calendar.getInstance();
String content = JSONObject.toJSONString(eventBehaviors.toArray());
String fileName = "EvidenceEventBehavior" + "_" + cal.get(Calendar.YEAR) + cal.get(Calendar.MONTH) + cal.get(Calendar.DATE) + cal.get(Calendar.HOUR) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND);
try {
saveContent(content, fileName);
} catch (Exception e2) {
EvidenceLog log = new EvidenceLog();
log.setCreateTime(new Date());
log.setType("存储入库异常_存证事件行为");
log.setInfo("失败原因:" + e2 + ",失败数据:" + content);
log.setIp(null);
logs.add(log);
}
} finally {
eventBehaviors = null;
}
}
// 保存事件时间戳信息
if (!eventTimes.isEmpty()) {
try {
sqlSession.insert("com.itrus.portal.db.EvidenceEventTimeMapper.insertOrUpdate", eventTimes.toArray());
} catch (Exception e) {
isException = true;
this.log.error("EvidenceQueueThread add eventTimes " + e);
Calendar cal = Calendar.getInstance();
String content = JSONObject.toJSONString(eventTimes.toArray());
String fileName = "EvidenceEventTime" + "_" + cal.get(Calendar.YEAR) + cal.get(Calendar.MONTH) + cal.get(Calendar.DATE) + cal.get(Calendar.HOUR) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND);
try {
saveContent(content, fileName);
} catch (Exception e2) {
EvidenceLog log = new EvidenceLog();
log.setCreateTime(new Date());
log.setType("存储入库异常_存证事件时间戳");
log.setInfo("失败原因:" + e2 + ",失败数据:" + content);
log.setIp(null);
logs.add(log);
}
} finally {
eventTimes = null;
}
}
// 保存用户上传证书信息
if (!certUsers.isEmpty()) {
// TODO
try {
sqlSession.insert("com.itrus.portal.db.EvidenceCertUserMapper.insertOrUpdate", certUsers.toArray());
} catch (Exception e) {
isException = true;
this.log.error("EvidenceQueueThread add certUsers " + e);
Calendar cal = Calendar.getInstance();
String content = JSONObject.toJSONString(certUsers.toArray());
String fileName = "EvidenceCertUser" + "_" + cal.get(Calendar.YEAR) + cal.get(Calendar.MONTH) + cal.get(Calendar.DATE) + cal.get(Calendar.HOUR) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND);
try {
saveContent(content, fileName);
} catch (Exception e2) {
EvidenceLog log = new EvidenceLog();
log.setCreateTime(new Date());
log.setType("存储入库异常_存证用户上传证书");
log.setInfo("失败原因:" + e2 + ",失败数据:" + content);
log.setIp(null);
logs.add(log);
}
} finally {
certUsers = null;
}
}
// 保存存证记录信息
if (!basicInformations.isEmpty()) {
try {
try {
sqlSession.insert("com.itrus.portal.db.EvidenceBasicInformationMapper.insertOrUpdate", basicInformations.toArray());
// 调用回调方法
if (evidenceQueryQueue != null) {
try {
evidenceQueryQueue.putObjectList(basicInformations);
} catch (IllegalStateException e) {
e.printStackTrace();
}
}
} catch (Exception e) {
Calendar cal = Calendar.getInstance();
String content = JSONObject.toJSONString(basicInformations.toArray());
String fileName = "EvidenceBasicInformation" + "_" + cal.get(Calendar.YEAR) + cal.get(Calendar.MONTH) + cal.get(Calendar.DATE) + cal.get(Calendar.HOUR) + cal.get(Calendar.MINUTE) + cal.get(Calendar.SECOND);
try {
saveContent(content, fileName);
} catch (Exception e2) {
EvidenceLog log = new EvidenceLog();
log.setCreateTime(new Date());
log.setType("存储入库异常_存证基础信息");
log.setInfo("失败原因:" + e2 + ",失败数据:" + content);
log.setIp(null);
logs.add(log);
throw new Exception("失败原因:" + e2);
}
}
} catch (Exception e) {
isException = true;
// 将错误信息显示,不进行操作
this.log.error("EvidenceQueueThread add basicInformations " + e);
} finally {
basicInformations = null;
}
}
// 保存日志记录
if (!logs.isEmpty())
try {
sqlSession.insert("com.itrus.portal.db.EvidenceLogMapper.insertOrUpdate", logs.toArray());
} catch (Exception e) {
isException = true;
// 将错误信息显示,不进行操作
this.log.error("EvidenceQueueThread add logs " + e);
// Calendar cal = Calendar.getInstance();
// String content = JSONObject.toJSONString(logs.toArray());
// String fileName = "EvidenceLog"
// + "_"
// + cal.get(Calendar.YEAR)
// + cal.get(Calendar.MONTH)
// + cal.get(Calendar.DATE)
// + cal.get(Calendar.HOUR)
// + cal.get(Calendar.MINUTE)
// + cal.get(Calendar.SECOND);
// try {
// saveContent(content, fileName);
// } catch (Exception e2) {
// EvidenceLog log = new EvidenceLog();
// log.setCreateTime(new Date());
// log.setType("存储入库异常_存证日志");
// log.setInfo("失败原因:" + e2 + ",失败数据:" + content);
// log.setIp(null);
// logs.add(log);
// }
} finally {
logs = null;
}
log.debug("EvidenceQueueThread the exception is [" + isException + "]");
// 若出现异常则暂停10秒钟
if (isException) {
try {
// 若队列中没有信息则等待10秒
sleep(10 * 1000);
} catch (InterruptedException e) {
log.error(e);
} finally {
isException = false;
}
}
isOver = true;
// log.error("Queue 耗时:" + (System.currentTimeMillis() - startDate));
}
}
Aggregations