Search in sources :

Example 6 with EvidenceEventContent

use of com.itrus.portal.db.EvidenceEventContent in project portal by ixinportal.

the class BasicInformationController method show.

/**
 * 查看详情
 *
 * @param id
 * @param uiModel
 * @return
 */
@RequestMapping(value = "/{id}", produces = "text/html")
public String show(@PathVariable("id") Long id, Model uiModel) {
    Date time = new Date();
    // 得到方法开始的时间
    log.error("---------------------------" + time);
    basid = id;
    int coutn = 0;
    int size = 0;
    int cousize = 0;
    EvidenceBasicInformation basicinfor = sqlSession.selectOne("com.itrus.portal.db.EvidenceBasicInformationMapper.selectByPrimaryKey", id);
    List<EvidenceMainInformation> mlist = new ArrayList<EvidenceMainInformation>();
    Map<Long, EvidenceCompaniesSubmit> companiesSubmit = new HashMap<Long, EvidenceCompaniesSubmit>();
    Map<Long, List<RealNameRecord>> realnameRecor = new HashMap<Long, List<RealNameRecord>>();
    Map<Long, List<PersonalName>> personalName = new HashMap<Long, List<PersonalName>>();
    Map<Long, EvidenceIndividual> denceid = new HashMap<Long, EvidenceIndividual>();
    Map<Long, EvidenceRealName> realName = new HashMap<Long, EvidenceRealName>();
    // 事件对象认证
    Map<Long, EvidenceTrustedIdentity> trustedidentit = new HashMap<Long, EvidenceTrustedIdentity>();
    // 事件时间认证
    Map<Long, EvidenceEventTime> meventime = new HashMap<Long, EvidenceEventTime>();
    // 事件行为认证
    Map<Long, EvidenceEventBehavior> eventbehacior = new HashMap<Long, EvidenceEventBehavior>();
    // 无主体 事件对象认证
    Map<Integer, EvidenceTrustedIdentity> maintrustedidentit = new HashMap<Integer, EvidenceTrustedIdentity>();
    // 无主体事件时间认证
    Map<Integer, EvidenceEventTime> mainmeventime = new HashMap<Integer, EvidenceEventTime>();
    // 无主体事件行为认证
    Map<Integer, EvidenceEventBehavior> maineventbehacior = new HashMap<Integer, EvidenceEventBehavior>();
    // 事件意愿认证
    Map<Long, EvidenceEventDesire> meventdesire = new HashMap<Long, EvidenceEventDesire>();
    // 事件网络地址
    Map<Long, EvidenceEventNetworkAddress> networkaddress = new HashMap<Long, EvidenceEventNetworkAddress>();
    // 得到主体身份信息
    EvidenceSubjectIdentityExample subjectExample = new EvidenceSubjectIdentityExample();
    EvidenceSubjectIdentityExample.Criteria identity = subjectExample.createCriteria();
    // subjectExample.isDistinct();
    identity.andBasicInformationEqualTo(basicinfor.getEvidenceSn());
    List<EvidenceSubjectIdentity> subjectIdentity = sqlSession.selectList("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectExample);
    for (int i = 0; i < subjectIdentity.size(); i++) {
        // 得到主体信息
        EvidenceMainInformationExample infomationE = new EvidenceMainInformationExample();
        EvidenceMainInformationExample.Criteria tionE = infomationE.createCriteria();
        tionE.andIdentificationEqualTo(subjectIdentity.get(i).getMainInformation());
        // infomationE.isDistinct();
        if (subjectIdentity.get(i).getMainName() != null) {
            tionE.andSubjectNameEqualTo(subjectIdentity.get(i).getMainName());
        }
        List<EvidenceMainInformation> mainInfo = sqlSession.selectList("com.itrus.portal.db.EvidenceMainInformationMapper.selectByExample", infomationE);
        if (mainInfo.size() != 0) {
            mlist.add(mainInfo.get(0));
        }
    }
    for (int i = 0; i < mlist.size() - 1; i++) {
        for (int j = mlist.size() - 1; j > i; j--) {
            if (mlist.get(j).getIdentification().equals(mlist.get(i).getIdentification()) && mlist.get(j).getSubjectName().equals(mlist.get(i).getSubjectName())) {
                mlist.remove(j);
            }
        }
    }
    log.error("主题数量**********" + mlist.size());
    // 得到主题的时间
    Date time1 = new Date();
    Long Ltime = time1.getTime() - time.getTime();
    log.error("得到主题身份的毫秒数,Ltime" + Ltime);
    // 得到身份可信标识
    EvidenceTrustedIdentityExample trusten = new EvidenceTrustedIdentityExample();
    EvidenceTrustedIdentityExample.Criteria identityex = trusten.createCriteria();
    identityex.andBasicInformationEqualTo(basicinfor.getEvidenceSn());
    identityex.andEventContentIsNull();
    Map<Long, EvidenceTrustedIdentity> trustedidentity = sqlSession.selectMap("com.itrus.portal.db.EvidenceTrustedIdentityMapper.selectByExample", trusten, "mainInformation");
    // 得到主题的时间
    Date time2 = new Date();
    Long Ltime1 = time2.getTime() - time.getTime();
    log.error("得到身份可信标识的毫秒数,Ltime1=" + Ltime1);
    // 身份意愿map
    Map<Long, EvidenceDesireIdentify> desire = new HashMap<Long, EvidenceDesireIdentify>();
    // 证据基本信息map
    Map<Long, EvidenceBasicInformation> basi = new HashMap<Long, EvidenceBasicInformation>();
    EvidenceRealName erealname = new EvidenceRealName();
    // 循环主题信息
    for (EvidenceMainInformation m : mlist) {
        // 判断可信身份标识是否为空
        if (/*trustedidentity!=null && trustedidentity.size()!=0&&*/
        trustedidentity.get(m.getId()) != null && trustedidentity.get(m.getId()).getEvidenceSn() != null) {
            // 得到可信身份标识关联的身份证据编号
            String evidenceSn = trustedidentity.get(m.getId()).getEvidenceSn().toString();
            if (StringUtils.isNotEmpty(evidenceSn)) {
                EvidenceBasicInformationExample basicinforE = new EvidenceBasicInformationExample();
                EvidenceBasicInformationExample.Criteria critbasic = basicinforE.createCriteria();
                critbasic.andEvidenceSnEqualTo(evidenceSn);
                EvidenceBasicInformation basicinfor1 = sqlSession.selectOne("com.itrus.portal.db.EvidenceBasicInformationMapper.selectByExample", basicinforE);
                // 得到身份意愿信息
                EvidenceDesireIdentifyExample desireIdentify = new EvidenceDesireIdentifyExample();
                EvidenceDesireIdentifyExample.Criteria desireExample = desireIdentify.createCriteria();
                desireExample.andEvidenceSnEqualTo(basicinfor1.getEvidenceSn());
                EvidenceDesireIdentify desire1 = sqlSession.selectOne("com.itrus.portal.db.EvidenceDesireIdentifyMapper.selectByExample", desireIdentify);
                desire.put(m.getId(), desire1);
                // 将身份认证信息放入map
                basi.put(m.getId(), basicinfor1);
                // 得到实名认证信息
                EvidenceRealNameExample realnameE = new EvidenceRealNameExample();
                EvidenceRealNameExample.Criteria realnameEx = realnameE.createCriteria();
                realnameEx.andMainInformationEqualTo(m.getSubjectName() + ";" + m.getIdentification());
                // realnameEx.andBasicInformationEqualTo(basicinfor1.getId());
                realnameEx.andEvidenceSnEqualTo(basicinfor.getEvidenceSn());
                erealname = sqlSession.selectOne("com.itrus.portal.db.EvidenceRealNameMapper.selectByExample", realnameE);
                realName.put(m.getId(), erealname);
            }
            if (erealname != null) {
                if ("2".equals(erealname.getEventVerifierType()) || "3".equals(erealname.getEventVerifierType())) {
                    if ("1".equals(erealname.getType())) {
                        EvidenceCompaniesSubmitExample evidenceCompanies = new EvidenceCompaniesSubmitExample();
                        EvidenceCompaniesSubmitExample.Criteria submit = evidenceCompanies.createCriteria();
                        submit.andIdCodeEqualTo(erealname.getCompaniesSubmit());
                        EvidenceCompaniesSubmit companiesSubmit1 = sqlSession.selectOne("com.itrus.portal.db.EvidenceCompaniesSubmitMapper.selectByExample", evidenceCompanies);
                        companiesSubmit.put(m.getId(), companiesSubmit1);
                    } else {
                        // 天威
                        EvidenceIndividualExample evidenceIndividual = new EvidenceIndividualExample();
                        EvidenceIndividualExample.Criteria individual = evidenceIndividual.createCriteria();
                        individual.andIdCodeEqualTo(erealname.getIndividual());
                        EvidenceIndividual dic = sqlSession.selectOne("com.itrus.portal.db.EvidenceIndividualMapper.selectByExample", evidenceIndividual);
                        denceid.put(m.getId(), dic);
                    }
                } else if ("1".equals(erealname.getEventVerifierType())) {
                    // 天威
                    if ("1".equals(erealname.getType())) {
                        // 获取流水号
                        String serialnamber = erealname.getSerialnumber();
                        // 将多个流水号以逗号分隔成一个数组
                        String[] namber = serialnamber.split(",");
                        // 声明一个list存储流水号
                        List<String> listString = new ArrayList<String>();
                        for (int i = 0; i < namber.length; i++) {
                            // 将数组中的流水号放入list中
                            listString.add(namber[i]);
                        }
                        // 查询实名认证信息
                        RealNameRecordExample realname = new RealNameRecordExample();
                        RealNameRecordExample.Criteria recor = realname.createCriteria();
                        recor.andSerialnumberIn(listString);
                        realname.setOrderByClause("returntime");
                        listReal = sqlSession.selectList("com.itrus.portal.db.RealNameRecordMapper.selectByExample", realname);
                        realnameRecor.put(m.getId(), listReal);
                    } else {
                        String serialnamber = erealname.getSerialnumber();
                        String[] namber = serialnamber.split(",");
                        List<String> listString = new ArrayList<String>();
                        for (int i = 0; i < namber.length; i++) {
                            listString.add(namber[i]);
                        // listReal.add(realnameRecor1);
                        }
                        PersonalNameExample personal = new PersonalNameExample();
                        PersonalNameExample.Criteria personalname = personal.createCriteria();
                        personalname.andSerialnumberIn(listString);
                        personal.setOrderByClause("returntime");
                        listPersonal = sqlSession.selectList("com.itrus.portal.db.PersonalNameMapper.selectByExample", personal);
                        personalName.put(m.getId(), listPersonal);
                    }
                }
            }
        }
    }
    // 得到身份的时间
    Date time3 = new Date();
    Long Ltime2 = time3.getTime() - time.getTime();
    log.error("得到身份信息的毫秒数,Ltime2=" + Ltime2);
    // 事件内容
    /*EvidenceEventContentExample evencontent = new EvidenceEventContentExample();
		EvidenceEventContentExample.Criteria countent = evencontent.createCriteria();
		//countent.andBasicInformationEqualTo(id);
		countent.andEvidenceSnEqualTo(basicinfor.getEvidenceSn());
		EvidenceEventContent mevencontent = sqlSession
				.selectOne("com.itrus.portal.db.EvidenceEventContentMapper.selectByExample", evencontent);*/
    EvidenceEventContent mevencontent = sqlSession.selectOne("com.itrus.portal.db.EvidenceEventContentMapper.selecttId", basicinfor.getEvidenceSn());
    // 得到事件内容的时间
    Date time4 = new Date();
    Long Ltime3 = time4.getTime() - time.getTime();
    log.error("得到事件内容的毫秒数,Ltime3=" + Ltime3);
    if (mevencontent != null && mevencontent.getIdCode() != null) {
        // 事件对象认证
        EvidenceTrustedIdentityExample trustenid = new EvidenceTrustedIdentityExample();
        EvidenceTrustedIdentityExample.Criteria identitye = trustenid.createCriteria();
        identitye.andEventContentEqualTo(mevencontent.getIdCode());
        trustedidentit = sqlSession.selectMap("com.itrus.portal.db.EvidenceTrustedIdentityMapper.selectByExample", trustenid, "mainInformation");
        // 事件时间认证
        EvidenceEventTimeExample eventime = new EvidenceEventTimeExample();
        EvidenceEventTimeExample.Criteria eventimeEx = eventime.createCriteria();
        eventimeEx.andEventContentEqualTo(mevencontent.getIdCode());
        meventime = sqlSession.selectMap("com.itrus.portal.db.EvidenceEventTimeMapper.selectByExample", eventime, "mainInformation");
        // 事件行为认证
        EvidenceEventBehaviorExample eventbehaciorEx = new EvidenceEventBehaviorExample();
        EvidenceEventBehaviorExample.Criteria eventbe = eventbehaciorEx.createCriteria();
        eventbe.andEventContentEqualTo(mevencontent.getIdCode());
        eventbehacior = sqlSession.selectMap("com.itrus.portal.db.EvidenceEventBehaviorMapper.selectByExample", eventbehaciorEx, "mainInformation");
        // 事件意愿认证
        EvidenceEventDesireExample desireEx = new EvidenceEventDesireExample();
        EvidenceEventDesireExample.Criteria eventdesire = desireEx.createCriteria();
        eventdesire.andEventContenteEqualTo(mevencontent.getIdCode());
        meventdesire = sqlSession.selectMap("com.itrus.portal.db.EvidenceEventDesireMapper.selectByExample", desireEx, "mainInformation");
        // 事件网络地址
        EvidenceEventNetworkAddressExample network = new EvidenceEventNetworkAddressExample();
        EvidenceEventNetworkAddressExample.Criteria address = network.createCriteria();
        address.andEventContentEqualTo(mevencontent.getIdCode());
        networkaddress = sqlSession.selectMap("com.itrus.portal.db.EvidenceEventNetworkAddressMapper.selectByExample", network, "mainInformation");
        // 得到证据附件表,用于获取信息
        EvidenceEnclosure envlosure = sqlSession.selectOne("com.itrus.portal.db.EvidenceEnclosureMapper.selectByPrimaryKey", mevencontent.getEvidenceEnclosure());
        uiModel.addAttribute("enclosure", envlosure);
    }
    // 得到事件的时间
    Date time5 = new Date();
    Long Ltime4 = time5.getTime() - time.getTime();
    log.error("得到事件详情的毫秒数,Ltime4=" + Ltime4);
    // 得到证据附件信息,用于查询服务委托人等信息
    EvidenceEnclosureExample enclou = new EvidenceEnclosureExample();
    EvidenceEnclosureExample.Criteria sure = enclou.createCriteria();
    sure.andEvidenceSnEqualTo(basicinfor.getEvidenceSn());
    ;
    sure.andPdfTypeEqualTo("1");
    List<EvidenceEnclosure> enclosure = sqlSession.selectList("com.itrus.portal.db.EvidenceEnclosureMapper.selectByExample", enclou);
    // 得到事件的时间
    Date qtime = new Date();
    Long qLtime = qtime.getTime() - time5.getTime();
    log.error("***得到证据附件信息1的毫秒数,qLtime=" + qLtime);
    EvidenceEnclosureExample enclouE = new EvidenceEnclosureExample();
    EvidenceEnclosureExample.Criteria sureEX = enclouE.createCriteria();
    sureEX.andEvidenceSnEqualTo(basicinfor.getEvidenceSn());
    ;
    sureEX.andPdfTypeEqualTo("3");
    EvidenceEnclosure enclosurepdf = sqlSession.selectOne("com.itrus.portal.db.EvidenceEnclosureMapper.selectByExample", enclouE);
    // 得到事件的时间
    Date wtime = new Date();
    Long wLtime = wtime.getTime() - qtime.getTime();
    log.error("---得到证据附件信息2的毫秒数,wLtime=" + wLtime);
    // 得到无主题信息的数量
    int evencount = 0;
    if (trustedidentit.size() > 0) {
        evencount = trustedidentit.size();
    } else if (meventime.size() > 0) {
        evencount = meventime.size();
    } else if (maineventbehacior.size() > 0) {
        evencount = maineventbehacior.size();
    }
    Map<Integer, Integer> mapcoune = new HashMap<Integer, Integer>();
    // 用于得到无主题信息和数量
    for (int g = 0; g < evencount; g++) {
        int intsize = 0;
        // 得到无主题信息的key
        long z = g - evencount;
        String s = String.valueOf(z);
        // 将long类型转换为int类型,作为map的key进行重组
        int f = Integer.parseInt(s);
        if (trustedidentit.get(z) != null) {
            // System.out.println(trustedidentit.get(z).getMainInformation());
            // if(trustedidentit.get(z).getMainInformation()<0){
            maintrustedidentit.put(f, trustedidentit.get(z));
            cousize++;
            intsize++;
        // }
        }
        if (meventime.get(z) != null) {
            // if(meventime.get(z).getMainInformation()<0){
            mainmeventime.put(f, meventime.get(z));
            cousize++;
            intsize++;
        // }
        }
        if (eventbehacior.get(z) != null) {
            // if(eventbehacior.get(z).getMainInformation()<0){
            maineventbehacior.put(f, eventbehacior.get(z));
            cousize++;
            intsize++;
        // }
        }
        mapcoune.put(f, intsize);
    }
    uiModel.addAttribute("mapcoune", mapcoune);
    uiModel.addAttribute("enclosurepdf", enclosurepdf);
    uiModel.addAttribute("maintrustedidentit", maintrustedidentit);
    uiModel.addAttribute("mainmeventime", mainmeventime);
    uiModel.addAttribute("maineventbehacior", maineventbehacior);
    // 得到事件的时间
    Date time6 = new Date();
    Long Ltime5 = time6.getTime() - time.getTime();
    log.error("得到无主题信息的毫秒数,Ltime5=" + Ltime5);
    // 服务委托人签名信息
    Map<Long, EvidenceClientSignature> cilentsignat = new HashMap<Long, EvidenceClientSignature>();
    // 天威签名信息
    Map<Long, EvidenceClientSignature> cilentsignature = new HashMap<Long, EvidenceClientSignature>();
    // 服务委托人时间戳信息
    Map<Long, EvidenceClientTimeStamp> clientTimestamp = new HashMap<Long, EvidenceClientTimeStamp>();
    // 天威时间戳信息
    Map<Long, EvidenceClientTimeStamp> tclientTimestamp = new HashMap<Long, EvidenceClientTimeStamp>();
    // 服务委托人证书信息
    Map<Long, List<EvidenceCert>> listcert = new HashMap<Long, List<EvidenceCert>>();
    // 服务委托人核验信息
    Map<Long, EvidenceCheck> check = new HashMap<Long, EvidenceCheck>();
    // 天威核验信息
    Map<Long, EvidenceCheck> tcheck = new HashMap<Long, EvidenceCheck>();
    int ensize = 0;
    Map<Long, Integer> mint = new HashMap<Long, Integer>();
    // 循环附件信息取得服务委托人和天威签名时间戳信息
    for (EvidenceEnclosure en : enclosure) {
        Date time11 = new Date();
        int encount = 0;
        // 服务委托人签名信息
        /*EvidenceClientSignatureExample cilent = new EvidenceClientSignatureExample();
			EvidenceClientSignatureExample.Criteria signat = cilent.createCriteria();
			signat.andEvidenceSnEqualTo(en.getEvidenceSn());*/
        // signat.andNameEqualTo("0");
        List<EvidenceClientSignature> listclient = sqlSession.selectList("com.itrus.portal.db.EvidenceClientSignatureMapper.selectcertId", en.getEvidenceSn());
        EvidenceClientSignature clien1 = new EvidenceClientSignature();
        EvidenceClientSignature clien2 = new EvidenceClientSignature();
        for (int i = 0; i < listclient.size(); i++) {
            if ("0".equals(listclient.get(i).getName())) {
                clien1 = listclient.get(i);
            }
            if ("1".equals(listclient.get(i).getName())) {
                clien2 = listclient.get(i);
            }
        }
        cilentsignat.put(en.getId(), clien1);
        if (clien1.getId() != null) {
            ensize++;
            encount++;
            // 服务委托人证书信息
            /*EvidenceCertExample certEx = new EvidenceCertExample();
				EvidenceCertExample.Criteria evidenceCert = certEx.createCriteria();
				evidenceCert.andClientSignatureEqualTo(listclient.getId());*/
            List<EvidenceCert> listCert = sqlSession.selectList("com.itrus.portal.db.EvidenceCertMapper.selectByPrimaryKey", clien1.getCertId());
            listcert.put(en.getId(), listCert);
            // 服务委托人核验信息
            EvidenceCheckExample checkEx = new EvidenceCheckExample();
            EvidenceCheckExample.Criteria evidenceCheck = checkEx.createCriteria();
            evidenceCheck.andClientSignatureEqualTo(clien1.getId());
            EvidenceCheck listCheck = sqlSession.selectOne("com.itrus.portal.db.EvidenceCheckMapper.selectByExample", checkEx);
            check.put(en.getId(), listCheck);
        }
        Date time12 = new Date();
        Long gettime = time12.getTime() - time11.getTime();
        log.error("-----------gettime0--------------" + gettime);
        // 天威签名信息
        /*EvidenceClientSignatureExample cilentsign = new EvidenceClientSignatureExample();
			EvidenceClientSignatureExample.Criteria signature = cilentsign.createCriteria();
			signature.andEvidenceSnEqualTo(en.getEvidenceSn());
			signature.andNameEqualTo("1");
			EvidenceClientSignature clientlist = sqlSession
					.selectOne("com.itrus.portal.db.EvidenceClientSignatureMapper.selectByExample", cilentsign);*/
        cilentsignature.put(en.getId(), clien2);
        if (clien2.getId() != null) {
            ensize++;
            encount++;
            // 服务委托人核验信息
            EvidenceCheckExample checkEx = new EvidenceCheckExample();
            EvidenceCheckExample.Criteria evidenceCheck = checkEx.createCriteria();
            evidenceCheck.andClientSignatureEqualTo(clien2.getId());
            EvidenceCheck listCheck = sqlSession.selectOne("com.itrus.portal.db.EvidenceCheckMapper.selectByExample", checkEx);
            tcheck.put(en.getId(), listCheck);
        }
        Date time13 = new Date();
        Long gettime1 = time13.getTime() - time12.getTime();
        log.error("-----------gettime1--------------" + gettime1);
        // 服务委托人时间戳信息
        /*EvidenceClientTimeStampExample clientTime = new EvidenceClientTimeStampExample();
			EvidenceClientTimeStampExample.Criteria stamp = clientTime.createCriteria();
			stamp.andEvidenceSnEqualTo(en.getEvidenceSn());*/
        // stamp.andNameEqualTo("0");
        log.error("证据编号=======" + en.getEvidenceSn());
        List<EvidenceClientTimeStamp> listtime = sqlSession.selectList("com.itrus.portal.db.EvidenceClientTimeStampMapper.selectTimeStamp", en.getEvidenceSn());
        EvidenceClientTimeStamp timestamp1 = new EvidenceClientTimeStamp();
        EvidenceClientTimeStamp timestamp2 = new EvidenceClientTimeStamp();
        log.error("时间戳listtime==--**" + listtime);
        for (int j = 0; j < listtime.size(); j++) {
            if ("0".equals(listtime.get(j).getName())) {
                timestamp1 = listtime.get(j);
                log.error("服务委托人时间-----------" + timestamp1);
            }
            /*else if("1".equals(listtime.get(j).getName())){
					timestamp2 = listtime.get(j);
				}*/
            log.error("服务委托人时间***********" + listtime.get(j).getName());
            if ("1".equals(listtime.get(j).getName())) {
                timestamp2 = listtime.get(j);
                log.error("服务委托人时间-----------" + timestamp2);
            }
        /*else if("0".equals(listtime.get(j).getName())){
					timestamp1 = listtime.get(j);
				}*/
        }
        clientTimestamp.put(en.getId(), timestamp1);
        if (timestamp1 != null) {
            ensize++;
            encount++;
        }
        Date time14 = new Date();
        Long gettime2 = time14.getTime() - time13.getTime();
        log.error("-----------gettime2--------------" + gettime2);
        // 天威时间戳信息
        /*EvidenceClientTimeStampExample tclientTime = new EvidenceClientTimeStampExample();
			EvidenceClientTimeStampExample.Criteria tstamp = tclientTime.createCriteria();
			tstamp.andEvidenceSnEqualTo(en.getEvidenceSn());
			tstamp.andNameEqualTo("1");
			EvidenceClientTimeStamp timelist = sqlSession
					.selectOne("com.itrus.portal.db.EvidenceClientTimeStampMapper.selectByExample", tclientTime);*/
        tclientTimestamp.put(en.getId(), timestamp2);
        if (timestamp2 != null) {
            ensize++;
            encount++;
        }
        mint.put(en.getId(), encount);
        Date time15 = new Date();
        Long gettime3 = time15.getTime() - time14.getTime();
        log.error("-----------gettime3--------------" + gettime3);
    }
    // 得到事件的时间
    Date time7 = new Date();
    Long Ltime6 = time7.getTime() - time.getTime();
    log.error("得到证据申请信息和申请时间戳的毫秒数,Ltime6=" + Ltime6);
    Long Ltime10 = time7.getTime() - time6.getTime();
    log.error("+++++++++++*********---------,Ltime10++++++++++++++=" + Ltime10);
    uiModel.addAttribute("ensize", ensize);
    uiModel.addAttribute("mint", mint);
    List<EvidenceHisCertificate> hisCertificete = new ArrayList<EvidenceHisCertificate>();
    EvidenceHisRelationshipExample relation = new EvidenceHisRelationshipExample();
    EvidenceHisRelationshipExample.Criteria hisreation = relation.createCriteria();
    hisreation.andBasicInformationEqualTo(id);
    List<EvidenceHisRelationship> hisRelation = sqlSession.selectList("com.itrus.portal.db.EvidenceHisRelationshipMapper.selectByExample", relation);
    for (int g = 0; g < hisRelation.size(); g++) {
        // 得到证据基本信息
        /*EvidenceBasicInformation basic = sqlSession.selectOne(
					"com.itrus.portal.db.EvidenceBasicInformationMapper.selectByPrimaryKey",
					hisRelation.get(g).getBasicInformation());*/
        EvidenceHisCertificate eh = sqlSession.selectOne("com.itrus.portal.db.EvidenceHisCertificateMapper.selectByPrimaryKey", hisRelation.get(g).getHisCertificate());
        hisCertificete.add(eh);
    }
    // 出证信息
    // List<Map<String, Object>> hisCertificete = hiscertificate.selectHisCertificateEnt();
    Map<Long, EvidenceOutTemplate> mout = new HashMap<Long, EvidenceOutTemplate>();
    Map<Long, EvidenceEnclosure> closure = new HashMap<Long, EvidenceEnclosure>();
    Map<Long, List<EvidenceBasicInformation>> mbasilist = new HashMap<Long, List<EvidenceBasicInformation>>();
    // ArrayList<EvidenceBasicInformation>();
    for (int j = 0; j < hisCertificete.size(); j++) {
        List<EvidenceBasicInformation> blist = new ArrayList<EvidenceBasicInformation>();
        Long hidId = hisCertificete.get(j).getId();
        String serialnumber = hisCertificete.get(j).getSerialnumber();
        if (hisCertificete.get(j).getHisAppService() != null && hisCertificete.get(j).getHisAppService() > 0) {
            Long appServiceId = hisCertificete.get(j).getHisAppService();
            // 得到服务编码
            AppService happservice = appService.selectById(appServiceId);
            // 得到出证服务配置
            EvidenceOutServiceConfigExample outsaveService = new EvidenceOutServiceConfigExample();
            EvidenceOutServiceConfigExample.Criteria saveServiceEx = outsaveService.createCriteria();
            saveServiceEx.andAppServiceEqualTo(happservice.getId());
            EvidenceOutServiceConfig outService = sqlSession.selectOne("com.itrus.portal.db.EvidenceOutServiceConfigMapper.selectByExample", outsaveService);
            // 得到出证模板信息
            EvidenceOutTemplate outtemp = sqlSession.selectOne("com.itrus.portal.db.EvidenceOutTemplateMapper.selectByPrimaryKey", outService.getSaveRetTemplate());
            mout.put(hidId, outtemp);
            // 获取证据附件表
            EvidenceEnclosureExample envlosureE = new EvidenceEnclosureExample();
            EvidenceEnclosureExample.Criteria envlosureEx = envlosureE.createCriteria();
            envlosureEx.andSerialnumberEqualTo(serialnumber);
            envlosureEx.andPdfTypeEqualTo("4");
            EvidenceEnclosure envlosure = sqlSession.selectOne("com.itrus.portal.db.EvidenceEnclosureMapper.selectByExample", envlosureE);
            closure.put(hidId, envlosure);
        }
        uiModel.addAttribute("closure", closure);
    /*long hid = Long.parseLong(hisCertificete.get(j).get("id").toString());
			EvidenceHisRelationshipExample relation = new EvidenceHisRelationshipExample();
			EvidenceHisRelationshipExample.Criteria hisreation = relation.createCriteria();
			hisreation.andHisCertificateEqualTo(hid);
			List<EvidenceHisRelationship> hisRelation = sqlSession
					.selectList("com.itrus.portal.db.EvidenceHisRelationshipMapper.selectByExample", relation);
			for (int g = 0; g < hisRelation.size(); g++) {
				// 得到证据基本信息
				EvidenceBasicInformation basic = sqlSession.selectOne(
						"com.itrus.portal.db.EvidenceBasicInformationMapper.selectByPrimaryKey",
						hisRelation.get(g).getBasicInformation());
				blist.add(basic);
			}
			mbasilist.put(hidId, blist);*/
    }
    uiModel.addAttribute("basi", basi);
    uiModel.addAttribute("check", check);
    uiModel.addAttribute("listcert", listcert);
    uiModel.addAttribute("realName", realName);
    uiModel.addAttribute("mbasilist", mbasilist);
    uiModel.addAttribute("mout", mout);
    uiModel.addAttribute("envlosure", enclosure);
    uiModel.addAttribute("hisCertificete", hisCertificete);
    uiModel.addAttribute("basicinfor", basicinfor);
    uiModel.addAttribute("tclientTimestamp", tclientTimestamp);
    uiModel.addAttribute("clientTimestamp", clientTimestamp);
    uiModel.addAttribute("cilentsignature", cilentsignature);
    uiModel.addAttribute("cilentsignat", cilentsignat);
    uiModel.addAttribute("networkaddress", networkaddress);
    uiModel.addAttribute("meventdesire", meventdesire);
    uiModel.addAttribute("eventbehacior", eventbehacior);
    uiModel.addAttribute("meventime", meventime);
    uiModel.addAttribute("trustedidentit", trustedidentit);
    uiModel.addAttribute("mevencontent", mevencontent);
    uiModel.addAttribute("trustedidentity", trustedidentity);
    uiModel.addAttribute("companiesSubmit", companiesSubmit);
    uiModel.addAttribute("realnameRecor", realnameRecor);
    uiModel.addAttribute("denceid", denceid);
    uiModel.addAttribute("personalName", personalName);
    uiModel.addAttribute("mainInfo", mlist);
    uiModel.addAttribute("milist", mlist);
    Map<Long, Integer> msize = new HashMap<Long, Integer>();
    // 得到认证数量
    for (EvidenceMainInformation m : mlist) {
        int showsize = 0;
        // 身份认证
        if (companiesSubmit.get(m.getId()) != null) {
            coutn++;
        }
        if (realnameRecor.get(m.getId()) != null) {
            coutn++;
        }
        if (personalName.get(m.getId()) != null) {
            coutn++;
        }
        if (desire.get(m.getId()) != null) {
            coutn++;
        }
        if (trustedidentity.get(m.getSubjectName() + ";" + m.getIdentification()) != null) {
            coutn++;
        }
        if (denceid.get(m.getId()) != null) {
            coutn++;
        }
        // 事件认证
        if (trustedidentit.get(m.getSubjectName() + ";" + m.getIdentification()) != null) {
            size++;
            showsize++;
        }
        if (meventime.get(m.getSubjectName() + ";" + m.getIdentification()) != null) {
            size++;
            showsize++;
        }
        if (eventbehacior.get(m.getSubjectName() + ";" + m.getIdentification()) != null) {
            size++;
            showsize++;
        }
        if (meventdesire.get(m.getSubjectName() + ";" + m.getIdentification()) != null) {
            size++;
            showsize++;
        }
        if (networkaddress.get(m.getSubjectName() + ";" + m.getIdentification()) != null) {
            size++;
            showsize++;
        }
        msize.put(m.getId(), showsize);
    }
    uiModel.addAttribute("cousize", cousize);
    uiModel.addAttribute("rowsize", size + 1 + cousize);
    uiModel.addAttribute("showsize", msize);
    uiModel.addAttribute("rowcoutn", coutn);
    uiModel.addAttribute("desire", desire);
    // 得到事件的时间
    Date time8 = new Date();
    // 方法结束时间
    log.error("******************time8=" + time8);
    Long Ltime7 = time8.getTime() - time.getTime();
    log.error("方法结束的毫秒数,Ltime7=" + Ltime7);
    return "basicinformation/show";
}
Also used : EvidenceSubjectIdentityExample(com.itrus.portal.db.EvidenceSubjectIdentityExample) PersonalNameExample(com.itrus.portal.db.PersonalNameExample) ArrayList(java.util.ArrayList) EvidenceRealName(com.itrus.portal.db.EvidenceRealName) EvidenceCompaniesSubmitExample(com.itrus.portal.db.EvidenceCompaniesSubmitExample) EvidenceEventNetworkAddressExample(com.itrus.portal.db.EvidenceEventNetworkAddressExample) EvidenceDesireIdentify(com.itrus.portal.db.EvidenceDesireIdentify) EvidenceEventBehaviorExample(com.itrus.portal.db.EvidenceEventBehaviorExample) EvidenceOutServiceConfigExample(com.itrus.portal.db.EvidenceOutServiceConfigExample) EvidenceSubjectIdentity(com.itrus.portal.db.EvidenceSubjectIdentity) EvidenceEnclosureExample(com.itrus.portal.db.EvidenceEnclosureExample) RealNameRecord(com.itrus.portal.db.RealNameRecord) EvidenceEventNetworkAddress(com.itrus.portal.db.EvidenceEventNetworkAddress) EvidenceIndividualExample(com.itrus.portal.db.EvidenceIndividualExample) EvidenceRealNameExample(com.itrus.portal.db.EvidenceRealNameExample) EvidenceBasicInformation(com.itrus.portal.db.EvidenceBasicInformation) EvidenceHisCertificate(com.itrus.portal.db.EvidenceHisCertificate) EvidenceEnclosure(com.itrus.portal.db.EvidenceEnclosure) EvidenceOutServiceConfig(com.itrus.portal.db.EvidenceOutServiceConfig) PersonalName(com.itrus.portal.db.PersonalName) EvidenceOutTemplate(com.itrus.portal.db.EvidenceOutTemplate) EvidenceCompaniesSubmit(com.itrus.portal.db.EvidenceCompaniesSubmit) EvidenceClientSignature(com.itrus.portal.db.EvidenceClientSignature) EvidenceCheck(com.itrus.portal.db.EvidenceCheck) EvidenceEventBehavior(com.itrus.portal.db.EvidenceEventBehavior) EvidenceIndividual(com.itrus.portal.db.EvidenceIndividual) HashMap(java.util.HashMap) EvidenceClientTimeStamp(com.itrus.portal.db.EvidenceClientTimeStamp) ArrayList(java.util.ArrayList) List(java.util.List) EvidenceEventDesire(com.itrus.portal.db.EvidenceEventDesire) EvidenceHisRelationship(com.itrus.portal.db.EvidenceHisRelationship) EvidenceCheckExample(com.itrus.portal.db.EvidenceCheckExample) EvidenceCert(com.itrus.portal.db.EvidenceCert) EvidenceEventTime(com.itrus.portal.db.EvidenceEventTime) EvidenceMainInformation(com.itrus.portal.db.EvidenceMainInformation) EvidenceDesireIdentifyExample(com.itrus.portal.db.EvidenceDesireIdentifyExample) EvidenceEventDesireExample(com.itrus.portal.db.EvidenceEventDesireExample) EvidenceEventTimeExample(com.itrus.portal.db.EvidenceEventTimeExample) EvidenceEventContent(com.itrus.portal.db.EvidenceEventContent) AppService(com.itrus.portal.db.AppService) Date(java.util.Date) EvidenceHisRelationshipExample(com.itrus.portal.db.EvidenceHisRelationshipExample) EvidenceBasicInformationExample(com.itrus.portal.db.EvidenceBasicInformationExample) EvidenceTrustedIdentity(com.itrus.portal.db.EvidenceTrustedIdentity) EvidenceMainInformationExample(com.itrus.portal.db.EvidenceMainInformationExample) RealNameRecordExample(com.itrus.portal.db.RealNameRecordExample) EvidenceTrustedIdentityExample(com.itrus.portal.db.EvidenceTrustedIdentityExample) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 7 with EvidenceEventContent

use of com.itrus.portal.db.EvidenceEventContent in project portal by ixinportal.

the class BasicInformationController method logImg.

/**
 * 得到合同图片
 *
 * @param id
 * @param response
 * @return
 */
@RequestMapping(value = "/img/{id}/{count}")
public String logImg(@PathVariable("id") Long id, @PathVariable("count") int count, HttpServletResponse response) {
    String img = null;
    OutputStream os = null;
    FileInputStream fis = null;
    File file = null;
    // 得到证据内容信息
    EvidenceEventContent mevencontent = sqlSession.selectOne("com.itrus.portal.db.EvidenceEventContentMapper.selectByPrimaryKey", id);
    /*EvidenceBasicInformation basic = sqlSession.selectOne(
				"com.itrus.portal.db.EvidenceBasicInformationMapper.selectByPrimaryKey",
				mevencontent.getBasicInformation());*/
    // 得到证据附件信息
    EvidenceEnclosureExample envlosureE = new EvidenceEnclosureExample();
    EvidenceEnclosureExample.Criteria envlosureEx = envlosureE.createCriteria();
    envlosureEx.andEvidenceSnEqualTo(mevencontent.getEvidenceSn());
    envlosureEx.andPdfTypeEqualTo("1");
    EvidenceEnclosure enclosure = sqlSession.selectOne("com.itrus.portal.db.EvidenceEnclosureMapper.selectByExample", envlosureE);
    try {
        // 生成图片
        if (enclosure != null) {
            if ("1".equals(enclosure.getPdfType())) {
                // 得到图片
                response.setHeader("Pragma", "no-cache");
                response.setHeader("Cache-Control", "no-cache");
                response.setDateHeader("Expires", 0);
                int size = count - 1;
                img = enclosure.getEvidenceSn() + ".pdf.1.0." + size + ".png";
                file = new File(systemConfigService.getpdfurl() + File.separator + enclosure.getBucketName());
                // filePathUtils
                // .getBillFile(systemConfigService.getpdfurl() + File.separator + enclosure.getBucketName());
                log.error("图片路径file===" + file);
                log.error("图片名称img===" + img + "********size=" + size);
            }
        }
        if (img == null) {
            return "status403";
        }
        if (!file.exists()) {
            file.mkdir();
        }
        File imgFile = new File(file, img);
        fis = new FileInputStream(imgFile);
        byte[] bb = IOUtils.toByteArray(fis);
        os = response.getOutputStream();
        os.write(bb);
        os.flush();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } finally {
        // 关闭流!
        try {
            if (null != fis) {
                fis.close();
            }
            if (null != os) {
                os.close();
            }
        } catch (IOException e) {
        }
    }
    return null;
}
Also used : BufferedOutputStream(java.io.BufferedOutputStream) FileOutputStream(java.io.FileOutputStream) OutputStream(java.io.OutputStream) EvidenceEnclosureExample(com.itrus.portal.db.EvidenceEnclosureExample) EvidenceEnclosure(com.itrus.portal.db.EvidenceEnclosure) IOException(java.io.IOException) File(java.io.File) FileInputStream(java.io.FileInputStream) EvidenceEventContent(com.itrus.portal.db.EvidenceEventContent) JSONException(org.json.JSONException) IOException(java.io.IOException) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 8 with EvidenceEventContent

use of com.itrus.portal.db.EvidenceEventContent in project portal by ixinportal.

the class EvidenceSaveContractService method saveFactor.

// 核验要素
private Map<String, Object> saveFactor(Map<String, Object> result, EvidenceSaveService evidenceSaveService, String evidenceSn, JSONObject jsonEvidenceContent, EvidenceBasicInformation basicInformation, RealNameAuthentication realNameAuthentication, RealNameAuthentication realNameAuthenticationOss, EvidenceServiceConfiguration serviceConfiguration, Boolean bl, Long sbtTime) throws Exception {
    List<Object> objs = new ArrayList<Object>();
    // 定义证据要素字段
    String saveFactor = null;
    // 证据存证的业务类型
    String type = null;
    // 得到业务基本信息要素配置
    String factorBusinessInfo = evidenceSaveService.getFactorBusinessInfo();
    JSONArray jsonBiArray = JSONArray.parseArray(factorBusinessInfo);
    try {
        // TODO : 核验身份认证
        if (jsonEvidenceContent.get("authId") != null && bl) {
            basicInformation.setEvidenceType(1);
            // 得到数据包身份认证数据
            JSONObject jsonAuthId = jsonEvidenceContent.getJSONObject("authId");
            for (int i = 0; i < jsonBiArray.size(); i++) {
                JSONObject object = jsonBiArray.getJSONObject(i);
                JSONObject jsonContent;
                // 事件发生平台
                if (i == 0) {
                    jsonContent = jsonAuthId.getJSONObject("eventHapPlatform");
                    // 判断是否接收
                    if (object.getBooleanValue("b_isReception")) {
                        // 判断是否必填
                        if (object.getBooleanValue("b_isRequired") && StringUtils.isEmpty(jsonContent.getString("hapPlatformDomain"))) {
                            result.put("status", 0);
                            result.put("message", "提交的参数信息不完整,缺少事件发生平台必要参数值");
                            return result;
                        }
                        basicInformation.setEventPlatformName(jsonContent.getString("hapPlatformName"));
                        basicInformation.setDomainName(jsonContent.getString("hapPlatformDomain"));
                        if (StringUtils.isEmpty(saveFactor) || !saveFactor.contains("基本信息"))
                            saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, "基本信息");
                    }
                }
            }
            EvidenceMainInformation mainInformation = null;
            // 得到身份认证要素配置
            String factorIdVerify = evidenceSaveService.getFactorIdVerify();
            JSONArray jsonIdArray = JSONArray.parseArray(factorIdVerify);
            // 得到证据包中的身份认证数据
            for (int i = 0; i < jsonIdArray.size(); i++) {
                // 得到对应认证配置
                JSONObject object = jsonIdArray.getJSONObject(i);
                JSONObject jsonContent = null;
                switch(i) {
                    // 主体身份
                    case 0:
                        jsonContent = jsonAuthId.getJSONObject("principalId");
                        // 判断是否接收
                        if (object.getBooleanValue("i_isReception")) {
                            // 判断是否必填
                            if (object.getBooleanValue("i_isRequired") && (StringUtils.isEmpty(jsonContent.getString("name")) || StringUtils.isEmpty(jsonContent.getString("dataId")) || StringUtils.isEmpty(jsonContent.getString("type")))) {
                                result.put("status", 0);
                                result.put("message", "提交的参数信息不完整,缺少主体身份参数值");
                                return result;
                            }
                            // 判断主体是否存在
                            String idCacheKey = jsonContent.getString("name") + jsonContent.getString("dataId");
                            if (cacheMainMap.get(idCacheKey) != null) {
                                mainInformation = cacheMainMap.get(idCacheKey);
                            } else {
                                EvidenceMainInformationExample mainInformationExample = new EvidenceMainInformationExample();
                                EvidenceMainInformationExample.Criteria mainExampleCriteria = mainInformationExample.createCriteria();
                                mainExampleCriteria.andSubjectNameEqualTo(jsonContent.getString("name").trim());
                                mainExampleCriteria.andIdentificationEqualTo(jsonContent.getString("dataId").trim());
                                mainExampleCriteria.andMainTypeEqualTo(jsonContent.getString("type"));
                                mainInformationExample.setOrderByClause("create_time DESC");
                                List<EvidenceMainInformation> mainInformationList = sqlSession.selectList("com.itrus.portal.db.EvidenceMainInformationMapper.selectByExample", mainInformationExample);
                                if (!mainInformationList.isEmpty()) {
                                    mainInformation = mainInformationList.get(0);
                                }
                                // 当主体为空时 添加主体信息
                                if (mainInformation == null) {
                                    mainInformation = new EvidenceMainInformation();
                                    mainInformation.setSubjectName(jsonContent.getString("name").trim());
                                    mainInformation.setIdentification(jsonContent.getString("dataId").trim());
                                    mainInformation.setMainType(jsonContent.getString("type"));
                                    mainInformation.setCreateTime(new Date());
                                    objs.add(mainInformation);
                                }
                                cacheMainMap.put(mainInformation.getSubjectName() + mainInformation.getIdentification(), mainInformation);
                            }
                            // 添加证据和主体关系表
                            EvidenceSubjectIdentity subjectIdentity1 = new EvidenceSubjectIdentity();
                            subjectIdentity1.setBasicInformation(evidenceSn);
                            subjectIdentity1.setMainInformation(jsonContent.getString("dataId").trim());
                            subjectIdentity1.setMainName(jsonContent.getString("name").trim());
                            subjectIdentity1.setMainType(jsonContent.getShort("type"));
                            subjectIdentity1.setCreateTime(new Date());
                            objs.add(subjectIdentity1);
                            saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("i_factor"));
                        }
                        break;
                    // 身份意愿鉴别
                    case 1:
                        jsonContent = jsonAuthId.getJSONObject("authIdWillSms");
                        // 判断是否接收
                        if (object.getBooleanValue("i_isReception")) {
                            // 判断是否必填
                            if (object.getBooleanValue("i_isRequired") && (StringUtils.isEmpty(jsonContent.getString("phone")) || StringUtils.isEmpty(jsonContent.getString("sendTime")) || StringUtils.isEmpty(jsonContent.getString("content")) || StringUtils.isEmpty(jsonContent.getString("verifyCode")) || StringUtils.isEmpty(jsonContent.getString("verifySmsTime")) || StringUtils.isEmpty(jsonContent.getString("verifierType")))) {
                                result.put("status", 0);
                                result.put("message", "提交的参数信息不完整,缺少身份意愿鉴别参数值");
                                return result;
                            }
                            // 获取验证方
                            String eventVerifier = getAuthenticator(Integer.parseInt(jsonContent.getString("verifierType")), basicInformation.getEventPlatformName());
                            // 存储身份意愿鉴别信息
                            EvidenceDesireIdentify desireIdentify = new EvidenceDesireIdentify();
                            desireIdentify.setVerifier(eventVerifier);
                            desireIdentify.setVerifierType(jsonContent.getString("verifierType"));
                            desireIdentify.setPhone(jsonContent.getString("phone"));
                            desireIdentify.setSendOutTime(jsonContent.getDate("sendTime"));
                            desireIdentify.setSmsContent(jsonContent.getString("content"));
                            desireIdentify.setVerificationCode(jsonContent.getString("verifyCode"));
                            desireIdentify.setVerificationTime(jsonContent.getDate("verifySmsTime"));
                            desireIdentify.setMainInformation(mainInformation.getSubjectName() + ";" + mainInformation.getIdentification());
                            desireIdentify.setCreateTime(new Date());
                            desireIdentify.setEvidenceSn(evidenceSn);
                            objs.add(desireIdentify);
                            // 整合提交要素
                            saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("i_factor"));
                        }
                        break;
                    // 身份实名认证
                    case 2:
                        JSONObject jsonContentPerson = jsonAuthId.getJSONObject("authIdInfoPerson");
                        JSONObject jsonContentBusiness = jsonAuthId.getJSONObject("authIdInfoBusiness");
                        // 判断是否接收
                        if (object.getBooleanValue("i_isReception")) {
                            // 核验个人身份认证和企业身份认证是否提交其一
                            if ((jsonContentPerson == null && jsonContentBusiness == null) || (jsonContentPerson != null && jsonContentBusiness != null)) {
                                result.put("status", 0);
                                result.put("message", "提交的参数信息错误,个人身份认证和企业身份认证只能提交其一");
                                return result;
                            }
                            // true 代表个人身份认证       false 代表企业身份认证
                            if (jsonContentPerson != null) {
                                // 判断是否必填
                                if (object.getBooleanValue("i_isRequired") && (StringUtils.isEmpty(jsonContentPerson.getString("authenticatorType")))) {
                                    result.put("status", 0);
                                    result.put("message", "提交的参数信息不完整,缺少身份实名认证参数值");
                                    return result;
                                }
                                String eventVerifier = getAuthenticator(Integer.parseInt(jsonContentPerson.getString("authenticatorType")), basicInformation.getEventPlatformName());
                                // 身份实名认证表
                                EvidenceRealName realName = new EvidenceRealName();
                                realName.setEventVerifierType(jsonContentPerson.getString("authenticatorType"));
                                realName.setEventVerifier(eventVerifier);
                                realName.setCertificationTime(jsonContentPerson.getDate("time"));
                                realName.setType(mainInformation.getMainType());
                                realName.setMainInformation(mainInformation.getSubjectName() + ";" + mainInformation.getIdentification());
                                realName.setEvidenceSn(evidenceSn);
                                String orderNumber = jsonContentPerson.getString("orderNumber");
                                if (jsonContentPerson.getInteger("authenticatorType") == 1) {
                                    // 认证方 为 1 时,orderNumber 为必填项
                                    if (StringUtils.isEmpty(orderNumber)) {
                                        result.put("status", 0);
                                        result.put("message", "提交的参数信息不完整,缺少身份实名认证参数值");
                                        return result;
                                    }
                                    realName.setSerialnumber(orderNumber);
                                    // 判断企业实名认证信息是否为可靠信息
                                    for (String o : orderNumber.split(",")) {
                                        PersonalNameExample personalNameExample = new PersonalNameExample();
                                        PersonalNameExample.Criteria pec = personalNameExample.createCriteria();
                                        pec.andSerialnumberEqualTo(o);
                                        PersonalName personalName = sqlSession.selectOne("com.itrus.portal.db.PersonalNameMapper.selectByExample", personalNameExample);
                                        if (personalName == null || personalName.getAuthenticationstatus() != 0) {
                                            result.put("status", 0);
                                            result.put("message", "流水号为:" + o + "的个人信息验证未通过");
                                            return result;
                                        }
                                    }
                                } else if (jsonContentPerson.getInteger("authenticatorType") == 2) {
                                    EvidenceIndividual individual = new EvidenceIndividual();
                                    individual.setName(mainInformation.getSubjectName());
                                    individual.setCreateTime(new Date());
                                    individual.setIdCode(UniqueIDUtils.getUID());
                                    // 必填判断
                                    if (object.getBooleanValue("i_isRequired") && (StringUtils.isEmpty(jsonContentPerson.getString("idType")) || StringUtils.isEmpty(jsonContentPerson.getString("idCode")) || StringUtils.isEmpty(jsonContentPerson.getString("idImg1")))) {
                                        result.put("status", 0);
                                        result.put("message", "提交的参数信息不完整,缺少身份实名认证参数值");
                                        return result;
                                    }
                                    individual.setType(jsonContentPerson.getString("idType"));
                                    individual.setCertificateid(jsonContentPerson.getString("idCode"));
                                    // 1.身份证 2.其他
                                    if (jsonContentPerson.getIntValue("idType") == 1) {
                                        if (StringUtils.isNotEmpty(jsonContentPerson.getString("idImg1")) && StringUtils.isNotEmpty(jsonContentPerson.getString("idImg2"))) {
                                            // 存储图片
                                            File frontImg = saveImg(evidenceSn, jsonContentPerson.getString("idImg1"), IMG_ID_IMG_FRONT);
                                            individual.setPhotoCodeImg(frontImg.getName());
                                            individual.setPhotoCodeImgHash(HMACSHA1.genSha1HashOfFile(frontImg));
                                            File frontImg2 = saveImg(evidenceSn, jsonContentPerson.getString("idImg2"), IMG_ID_IMG_BACK);
                                            individual.setInformationImg(frontImg2.getName());
                                            individual.setInformationImgHash(HMACSHA1.genSha1HashOfFile(frontImg2));
                                        } else {
                                            result.put("status", 0);
                                            result.put("message", "提交的参数信息不完整,个人身份认证证据为身份证时 idImg2 为必选参数。");
                                            return result;
                                        }
                                    } else {
                                        // 存储图片
                                        File frontImg = saveImg(evidenceSn, jsonContentPerson.getString("idImg1"), IMG_ID_IMG_BACK);
                                        individual.setPhotoCodeImg(frontImg.getName());
                                        individual.setPhotoCodeImgHash(HMACSHA1.genSha1HashOfFile(frontImg));
                                    }
                                    objs.add(individual);
                                    realName.setIndividual(individual.getIdCode());
                                }
                                objs.add(realName);
                            } else {
                                // 判断是否必填
                                if (object.getBooleanValue("i_isRequired") && (StringUtils.isEmpty(jsonContentBusiness.getString("authenticatorType")))) {
                                    result.put("status", 0);
                                    result.put("message", "提交的参数信息不完整,缺少身份实名认证参数值");
                                    return result;
                                }
                                String eventVerifier = getAuthenticator(Integer.parseInt(jsonContentBusiness.getString("authenticatorType")), basicInformation.getEventPlatformName());
                                // 身份实名认证表
                                EvidenceRealName realName = new EvidenceRealName();
                                realName.setEventVerifierType(jsonContentBusiness.getString("authenticatorType"));
                                realName.setEventVerifier(eventVerifier);
                                realName.setCertificationTime(jsonContentBusiness.getDate("time"));
                                realName.setType(mainInformation.getMainType());
                                realName.setMainInformation(mainInformation.getSubjectName() + ":" + mainInformation.getIdentification());
                                realName.setEvidenceSn(evidenceSn);
                                String orderNumber = jsonContentBusiness.getString("orderNumber");
                                if (jsonContentBusiness.getInteger("authenticatorType") == 1) {
                                    // 认证方 为 1 时,orderNumber 为必填项
                                    if (StringUtils.isEmpty(orderNumber)) {
                                        result.put("status", 0);
                                        result.put("message", "提交的参数信息不完整,缺少身份实名认证参数值");
                                        return result;
                                    }
                                    realName.setSerialnumber(orderNumber);
                                    // 判断企业实名认证信息是否为可靠信息
                                    for (String o : orderNumber.split(",")) {
                                        RealNameRecordExample recordExample = new RealNameRecordExample();
                                        RealNameRecordExample.Criteria rec = recordExample.createCriteria();
                                        rec.andSerialnumberEqualTo(o);
                                        RealNameRecord realNameRecord = sqlSession.selectOne("com.itrus.portal.db.RealNameRecordMapper.selectByExample", recordExample);
                                        if (realNameRecord == null || realNameRecord.getAuthenticationstatus() != 0) {
                                            result.put("status", 0);
                                            result.put("message", "流水号为:" + o + "的企业信息验证未通过");
                                            return result;
                                        }
                                    }
                                } else if (jsonContentBusiness.getInteger("authenticatorType") == 2) {
                                    if (object.getBooleanValue("i_isRequired") && ((StringUtils.isEmpty(jsonContentBusiness.getString("blCode")) && StringUtils.isEmpty(jsonContentBusiness.getString("blImg"))) && (StringUtils.isEmpty(jsonContentBusiness.getString("orgCode")) && StringUtils.isEmpty(jsonContentBusiness.getString("orgImg"))))) {
                                        result.put("status", 0);
                                        result.put("message", "提交的参数信息不完整,缺少身份实名认证参数值");
                                        return result;
                                    }
                                    // 法人
                                    EvidenceRepresentative representative = null;
                                    if (StringUtils.isNotEmpty(jsonContentBusiness.getString("legalIdName")) && StringUtils.isNotEmpty(jsonContentBusiness.getString("legalIdType")) && StringUtils.isNotEmpty(jsonContentBusiness.getString("legalIdCode"))) {
                                        representative = new EvidenceRepresentative();
                                        representative.setName(jsonContentBusiness.getString("legalIdName"));
                                        representative.setType(jsonContentBusiness.getString("legalIdType"));
                                        representative.setCertificateid(jsonContentBusiness.getString("legalIdCode"));
                                        representative.setCreateTime(new Date());
                                        representative.setIdCode(UniqueIDUtils.getUID());
                                        // 存储图片
                                        if (StringUtils.isNotEmpty(jsonContentBusiness.getString("idImg1"))) {
                                            File frontImg = saveImg(evidenceSn, jsonContentBusiness.getString("idImg1"), IMG_ID_IMG_FRONT);
                                            representative.setPhotoCodeImg(frontImg.getName());
                                            representative.setPhotoCodeImgHash(HMACSHA1.genSha1HashOfFile(frontImg));
                                        }
                                        if (StringUtils.isNotEmpty(jsonContentBusiness.getString("idImg2"))) {
                                            File frontImg = saveImg(evidenceSn, jsonContentBusiness.getString("idImg2"), IMG_ID_IMG_BACK);
                                            representative.setInformationImg(frontImg.getName());
                                            representative.setInformationImgHash(HMACSHA1.genSha1HashOfFile(frontImg));
                                        }
                                        // 存储法人信息
                                        objs.add(representative);
                                    }
                                    // 代理人
                                    EvidenceTheAgent theAgent = null;
                                    if (StringUtils.isNotEmpty(jsonContentBusiness.getString("agentIdName")) && StringUtils.isNotEmpty(jsonContentBusiness.getString("agentIdType")) && StringUtils.isNotEmpty(jsonContentBusiness.getString("agentIdCode"))) {
                                        theAgent = new EvidenceTheAgent();
                                        theAgent.setName(jsonContentBusiness.getString("agentIdName"));
                                        theAgent.setType(jsonContentBusiness.getString("agentIdType"));
                                        theAgent.setCertificateid(jsonContentBusiness.getString("agentIdCode"));
                                        theAgent.setCreateTime(new Date());
                                        theAgent.setIdCode(UniqueIDUtils.getUID());
                                        // 存储图片
                                        if (StringUtils.isNotEmpty(jsonContentBusiness.getString("agentIdImg1"))) {
                                            File frontImg = saveImg(evidenceSn, jsonContentBusiness.getString("agentIdImg1"), IMG_ID_IMG_FRONT);
                                            theAgent.setPhotoCodeImg(frontImg.getName());
                                            theAgent.setPhotoCodeImgHash(HMACSHA1.genSha1HashOfFile(frontImg));
                                        }
                                        if (StringUtils.isNotEmpty(jsonContentBusiness.getString("agentIdImg2"))) {
                                            File frontImg = saveImg(evidenceSn, jsonContentBusiness.getString("agentIdImg2"), IMG_ID_IMG_BACK);
                                            theAgent.setInformationImg(frontImg.getName());
                                            theAgent.setInformationImgHash(HMACSHA1.genSha1HashOfFile(frontImg));
                                        }
                                        // // 存储代理人信息
                                        objs.add(theAgent);
                                        // 营业执照
                                        EvidenceCompaniesSubmit companiesSubmit = new EvidenceCompaniesSubmit();
                                        companiesSubmit.setBusCertificateid(jsonContentBusiness.getString("blCode"));
                                        if (StringUtils.isNotEmpty(jsonContentBusiness.getString("blImg"))) {
                                            // 存储图片
                                            File frontImg = saveImg(evidenceSn, jsonContentBusiness.getString("blImg"), IMG_BL);
                                            companiesSubmit.setPhotoCodeImg(frontImg.getName());
                                            companiesSubmit.setPhotoCodeImgHash(HMACSHA1.genSha1HashOfFile(frontImg));
                                        }
                                        // 组织机构代码
                                        companiesSubmit.setOrgCertificateid(jsonContentBusiness.getString("orgCode"));
                                        if (StringUtils.isNotEmpty(jsonContentBusiness.getString("orgImg"))) {
                                            // 存储图片
                                            File frontImg = saveImg(evidenceSn, jsonContentBusiness.getString("orgImg"), IMG_ORG);
                                            companiesSubmit.setInformationImg(frontImg.getName());
                                            companiesSubmit.setInformationImgHash(HMACSHA1.genSha1HashOfFile(frontImg));
                                        }
                                        if (theAgent != null)
                                            companiesSubmit.setTheAgent(theAgent.getIdCode());
                                        if (representative != null)
                                            companiesSubmit.setRepresentative(representative.getIdCode());
                                        companiesSubmit.setBusinessName(mainInformation.getSubjectName());
                                        companiesSubmit.setCreateTime(new Date());
                                        companiesSubmit.setIdCode(UniqueIDUtils.getUID());
                                        objs.add(companiesSubmit);
                                        realName.setCompaniesSubmit(companiesSubmit.getIdCode());
                                    }
                                }
                                objs.add(realName);
                            }
                            saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("i_factor"));
                        }
                        break;
                    default:
                        break;
                }
            }
        }
        // TODO : 核验事件认证
        if (jsonEvidenceContent.get("authEvent") != null) {
            basicInformation.setEvidenceType(2);
            JSONObject jsonAuthEvent = jsonEvidenceContent.getJSONObject("authEvent");
            // 可信身份缓存信息
            List<EvidenceTrustedIdentity> tiCacheList = new ArrayList<>();
            // 核验基础信息
            for (int i = 0; i < jsonBiArray.size(); i++) {
                JSONObject object = jsonBiArray.getJSONObject(i);
                JSONObject jsonContent;
                switch(i) {
                    // 事件发生平台
                    case 0:
                        jsonContent = jsonAuthEvent.getJSONObject("eventHapPlatform");
                        // 判断是否接收
                        if (object.getBooleanValue("b_isReception")) {
                            // 判断是否必填
                            if (object.getBooleanValue("b_isRequired") && StringUtils.isEmpty(jsonContent.getString("hapPlatformDomain"))) {
                                result.put("status", 0);
                                result.put("message", "提交的参数信息不完整,缺少事件发生平台必要参数值");
                                return result;
                            }
                            basicInformation.setEventPlatformName(jsonContent.getString("hapPlatformName"));
                            basicInformation.setDomainName(jsonContent.getString("hapPlatformDomain"));
                            saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, "基本信息");
                        }
                        break;
                    // 业务类型
                    case 1:
                        String eventType = jsonAuthEvent.getString("eventType");
                        // 判断是否接收
                        if (object.getBooleanValue("b_isReception")) {
                            // 判断是否必填
                            if (object.getBooleanValue("b_isRequired") && StringUtils.isEmpty(eventType)) {
                                result.put("status", 0);
                                result.put("message", "提交的参数信息不完整,缺少业务类型参数值");
                                return result;
                            }
                            basicInformation.setType(eventType);
                            type = object.getString("b_category");
                            saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, "基本信息");
                        }
                        break;
                    // 业务单号
                    case 3:
                        String eventSn = jsonAuthEvent.getString("eventSn");
                        // 判断是否接收
                        if (object.getBooleanValue("b_isReception")) {
                            basicInformation.setServiceNumber(eventSn);
                            saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, "基本信息");
                        }
                        break;
                    default:
                        break;
                }
            }
            // 得到身份认证要素配置
            JSONArray jsonIdArray = JSONArray.parseArray(evidenceSaveService.getFactorIdVerify());
            for (int i = 0; i < jsonIdArray.size(); i++) {
                JSONObject object = jsonIdArray.getJSONObject(i);
                if (i == 3 && object.getBooleanValue("i_isReception")) {
                    // 得到事件包信息数据
                    JSONArray jsonContentArray = jsonAuthEvent.getJSONArray("event");
                    for (int j = 0; j < jsonContentArray.size(); j++) {
                        JSONObject jsonContent = jsonContentArray.getJSONObject(j).getJSONObject("principalId");
                        // 判断是否必填
                        if (object.getBooleanValue("e_isRequired") && (StringUtils.isEmpty(jsonContent.getString("type")) || StringUtils.isEmpty(jsonContent.getString("certSn")) || StringUtils.isEmpty(jsonContent.getString("name")) || StringUtils.isEmpty(jsonContent.getString("dataId")))) {
                            result.put("status", 0);
                            result.put("message", "提交的参数信息不完整,缺少可信身份标识参数值");
                            return result;
                        }
                        // 判断主体是否存在
                        String idCacheKey = jsonContent.getString("name").trim() + jsonContent.getString("dataId").trim();
                        EvidenceMainInformation mainInformation = cacheMainMap.get(idCacheKey);
                        EvidenceBasicInformation basicInformation2 = null;
                        if (mainInformation == null) {
                            EvidenceMainInformationExample mainInformationExample = new EvidenceMainInformationExample();
                            EvidenceMainInformationExample.Criteria mainExampleCriteria = mainInformationExample.createCriteria();
                            mainExampleCriteria.andSubjectNameEqualTo(jsonContent.getString("name").trim());
                            mainExampleCriteria.andIdentificationEqualTo(jsonContent.getString("dataId").trim());
                            mainExampleCriteria.andMainTypeEqualTo(jsonContent.getString("type"));
                            mainInformationExample.setOrderByClause("create_time DESC");
                            List<EvidenceMainInformation> mainInformationList = sqlSession.selectList("com.itrus.portal.db.EvidenceMainInformationMapper.selectByExample", mainInformationExample);
                            if (!mainInformationList.isEmpty()) {
                                mainInformation = mainInformationList.get(0);
                            }
                        }
                        // 当主体为空时 添加主体信息
                        if (mainInformation == null) {
                            mainInformation = new EvidenceMainInformation();
                            mainInformation.setSubjectName(jsonContent.getString("name").trim());
                            mainInformation.setIdentification(jsonContent.getString("dataId").trim());
                            mainInformation.setMainType(jsonContent.getString("type"));
                            mainInformation.setCreateTime(new Date());
                            objs.add(mainInformation);
                        }
                        // 遍历 mapIdCache 的key值 判断是否存在   不存在则添加
                        // for(String key:mapIdCache.keySet()) {
                        // if(!idCacheKey.equals(key)) {
                        cacheMainMap.put(mainInformation.getSubjectName() + mainInformation.getIdentification(), mainInformation);
                        // }
                        // }
                        // 判断基础信息表 和 主体表是否存在关联
                        // EvidenceSubjectIdentityExample subjectIdentityExampleExist = new EvidenceSubjectIdentityExample();
                        // EvidenceSubjectIdentityExample.Criteria iece = subjectIdentityExampleExist.createCriteria();
                        // iece.andBasicInformationEqualTo(evidenceSn);
                        // iece.andMainInformationEqualTo(mainInformation.getIdentification());
                        // EvidenceSubjectIdentity subjectIdentityExist = sqlSession
                        // .selectOne("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectIdentityExampleExist);
                        // if(subjectIdentityExist == null) {
                        // 
                        // }
                        // 基础信息表 和 主体表添加关联
                        EvidenceSubjectIdentity subjectIdentity1 = new EvidenceSubjectIdentity();
                        subjectIdentity1.setBasicInformation(evidenceSn);
                        subjectIdentity1.setMainInformation(mainInformation.getIdentification());
                        subjectIdentity1.setCreateTime(new Date());
                        subjectIdentity1.setMainName(mainInformation.getSubjectName());
                        subjectIdentity1.setMainType(Short.parseShort(mainInformation.getMainType()));
                        objs.add(subjectIdentity1);
                        // 判断是否需要关联身份证据
                        if (StringUtils.isNotEmpty(jsonContent.getString("evidenceSn"))) {
                            basicInformation2 = basicInformationService.getInformationBySn(jsonContent.getString("evidenceSn"), 1);
                            if (basicInformation2 != null) {
                                EvidenceSubjectIdentityExample subjectIdentityExample = new EvidenceSubjectIdentityExample();
                                EvidenceSubjectIdentityExample.Criteria iec = subjectIdentityExample.createCriteria();
                                iec.andBasicInformationEqualTo(jsonContent.getString("evidenceSn"));
                                iec.andMainInformationEqualTo(mainInformation.getIdentification());
                                EvidenceSubjectIdentity subjectIdentity = sqlSession.selectOne("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectIdentityExample);
                                if (subjectIdentity == null) {
                                    result.put("status", 0);
                                    result.put("message", "证据编码:" + jsonContent.getString("evidenceSn") + "与主体:" + jsonContent.getString("name") + "," + jsonContent.getString("dataId") + "不存在关联");
                                    return result;
                                }
                            } else {
                                result.put("status", 0);
                                result.put("message", "证据编码:" + jsonContent.getString("evidenceSn") + "与主体:" + jsonContent.getString("name") + "," + jsonContent.getString("dataId") + "不存在关联");
                                return result;
                            }
                        }
                        EvidenceTrustedIdentity trustedIdentity = new EvidenceTrustedIdentity();
                        trustedIdentity.setCertSerialnumber(jsonContent.getString("certSn"));
                        trustedIdentity.setIdentiType(jsonContent.getString("type"));
                        trustedIdentity.setBasicInformation(basicInformation.getEvidenceSn());
                        // trustedIdentity.setEvidenceEnclosure(enclosure.getId());
                        if (StringUtils.isNotEmpty(jsonContent.getString("evidenceSn")))
                            trustedIdentity.setEvidenceSn(jsonContent.getString("evidenceSn"));
                        trustedIdentity.setCreateTime(new Date());
                        if (mainInformation != null && !"".equals(mainInformation))
                            trustedIdentity.setMainInformation(mainInformation.getSubjectName() + ";" + mainInformation.getIdentification());
                        // sqlSession.insert("com.itrus.portal.db.EvidenceTrustedIdentityMapper.insert", trustedIdentity);
                        // sqlSession.flushStatements();
                        tiCacheList.add(trustedIdentity);
                    }
                    saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("i_factor"));
                }
            }
            // 得到事件认证要素配置
            JSONArray jsonEvArray = JSONArray.parseArray(evidenceSaveService.getFactorEventVerify());
            EvidenceEventContent eventContent = new EvidenceEventContent();
            // 得到证据包中的事件数据
            for (int i = 0; i < jsonEvArray.size(); i++) {
                JSONObject object = jsonEvArray.getJSONObject(i);
                switch(i) {
                    // 事件认证
                    case 0:
                        log.equals("type is " + "电子合同PDF".equals(type));
                        // 判断合同类型
                        if ("电子合同PDF".equals(type)) {
                            // 电子合同
                            log.error("e_isReception is " + object.getBooleanValue("e_isReception"));
                            // 判断是否接收
                            if (object.getBooleanValue("e_isReception")) {
                                // 得到事件内容中的信息
                                JSONObject jsonEventContent = jsonAuthEvent.getJSONObject("eventContent");
                                // 判断必填
                                if (object.getBooleanValue("e_isRequired") && (StringUtils.isEmpty(jsonEventContent.getString("contCode")))) {
                                    result.put("status", 0);
                                    result.put("message", "提交的参数信息不完整,缺少事件内容认证参数值");
                                    return result;
                                }
                                String urlPdfVerify = realNameAuthentication.getRealNameddress() + PDF_VERIFY;
                                Map<String, Object> mapPdfVerify = new HashMap<String, Object>();
                                mapPdfVerify.put("pdfContent", jsonEventContent.get("contCode"));
                                eventContent.setIsPdf(true);
                                eventContent.setContractTitle(jsonEventContent.getString("title"));
                                eventContent.setValidStartTime(jsonEventContent.getDate("validStartTime"));
                                eventContent.setValidEndTime(jsonEventContent.getDate("validEndTime"));
                                eventContent.setCreateTime(new Date());
                                eventContent.setEvidenceSn(evidenceSn);
                                eventContent.setIdCode(UniqueIDUtils.getUID());
                                log.error("e_isVerify is " + object.getBooleanValue("e_isVerify"));
                                if (object.getBooleanValue("e_isVerify")) {
                                    Long pdfVerifyTimeAsync = System.currentTimeMillis();
                                    // 异步处理pdf验章
                                    // HttpAsyncClientUtil.getInstance().execute(
                                    // urlPdfVerify,
                                    // AuthService.getHeader(),
                                    // mapPdfVerify,
                                    // new EvidencePdfVerifyService(
                                    // urlPdfVerify,
                                    // jsonEventContent.getString("contCode"),
                                    // eventContent,
                                    // tiCacheList));
                                    OkHttpClientManagerPdfVerify.postAsyn(urlPdfVerify, AuthService.getHeader().get("Authorization").toString(), mapPdfVerify, new EvidencePdfVerifyService(urlPdfVerify, jsonEventContent.getString("contCode"), eventContent, tiCacheList));
                                    log.error("pdfVerifyTimeAsync time is [" + (System.currentTimeMillis() - pdfVerifyTimeAsync) + "]");
                                // 调用pdf验章接口
                                // Long pdfVerifyTime = System.currentTimeMillis();
                                // String rep_pdf_verify = OkHttpClientManagerPdfVerify.post(urlPdfVerify, AuthService.getHeader().get("Authorization").toString(), mapPdfVerify);
                                // log.error("pdfVerifyTime time is [" + (System.currentTimeMillis() - pdfVerifyTime) + "]");
                                // 
                                // JSONObject jsonPdfVerify = JSONObject.parseObject(rep_pdf_verify);
                                // if(jsonPdfVerify.getInteger("code") == 0){
                                // eventContent.setEventStatus(1);
                                // } else {
                                // eventContent.setEventStatus(0);
                                // eventContent.setFailureReason(jsonPdfVerify.getString("message"));
                                // basicInformation.setEvidenceStatus(0);
                                // if(StringUtils.isEmpty(basicInformation.getFailureReason())) {
                                // basicInformation.setFailureReason(jsonPdfVerify.getString("message"));
                                // } else {
                                // basicInformation.setFailureReason(basicInformation.getFailureReason() + "," + jsonPdfVerify.getString("message"));
                                // }
                                // }
                                // String retVerifyTi = null;
                                // String retVerifyBehavior = null;
                                // String retVerifyTime = null;
                                // if(StringUtils.isNotEmpty(rep_pdf_verify)
                                // && 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());
                                // objs.add(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(basicInformation.getEvidenceSn());
                                // trustedIdentity.setEventContent(eventContent.getIdCode());
                                // if(trustedIdentity1 != null){
                                // trustedIdentity.setMainInformation(trustedIdentity1.getMainInformation());
                                // // 整合证书信息存储到对应可信身份表
                                // trustedIdentity1.setCertBase64(certUser.getIdCode());
                                // //                                    					  sqlSession.update("com.itrus.portal.db.EvidenceTrustedIdentityMapper.updateByPrimaryKey",
                                // //                                    							  trustedIdentity1);
                                // objs.add(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());
                                // //        											trustedIdentity.setCheckContent("1.验证证书有效期/n2.验证证书颁发者签名/n3.验证证书是否吊销");
                                // //        											sqlSession.insert("com.itrus.portal.db.EvidenceTrustedIdentityMapper.insert", trustedIdentity);
                                // objs.add(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("签名原文完整、真实、是否被篡改");
                                // objs.add(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");
                                // eventBehavior.setCreateTime(new Date());
                                // 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());
                                // //        										eventBehavior.setCheckContent("签名原文完整、真实、是否被篡改");
                                // objs.add(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(eventContent.getFailureReason())) {
                                // //          	eventContent.setFailureReason(eventContent.getFailureReason());
                                // //       	}
                                // 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);
                                // }
                                // if(eventContent.getEventStatus() == 0) {
                                // if(StringUtils.isNotEmpty(basicInformation.getFailureReason())) {
                                // basicInformation.setFailureReason(basicInformation.getFailureReason() + "," + eventContent.getFailureReason());
                                // } else {
                                // basicInformation.setEvidenceStatus(0);
                                // basicInformation.setFailureReason(eventContent.getFailureReason());
                                // }
                                // result.put("status", 0);
                                // result.put("message", eventContent.getFailureReason());
                                // return result;
                                // }
                                // }
                                } else {
                                    objs.add(eventContent);
                                    for (EvidenceTrustedIdentity identity : tiCacheList) {
                                        objs.add(identity);
                                    }
                                }
                                saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("e_factor"));
                            }
                        /**
                         ***********************************************     《电子合同PDF》 获取事件内容    end      *******************************************
                         */
                        }
                        break;
                    default:
                        break;
                }
            }
            JSONArray jsonContentArray = jsonAuthEvent.getJSONArray("event");
            for (int i = 0; i < jsonContentArray.size(); i++) {
                // 得到对应的主体信息
                JSONObject jsonContent = jsonContentArray.getJSONObject(i);
                JSONObject jsonIdIdentify = jsonContent.getJSONObject("principalId");
                // 判断主体是否存在
                String idCacheKey = jsonIdIdentify.getString("name") + jsonIdIdentify.getString("dataId");
                EvidenceMainInformation mainInformation = null;
                if (cacheMainMap.get(idCacheKey) == null || "".equals(cacheMainMap.get(idCacheKey))) {
                    EvidenceMainInformationExample mainInformationExample = new EvidenceMainInformationExample();
                    EvidenceMainInformationExample.Criteria mainExampleCriteria = mainInformationExample.createCriteria();
                    mainExampleCriteria.andSubjectNameEqualTo(jsonIdIdentify.getString("name"));
                    mainExampleCriteria.andIdentificationEqualTo(jsonIdIdentify.getString("dataId"));
                    List<EvidenceMainInformation> mainInformationList = sqlSession.selectList("com.itrus.portal.db.EvidenceMainInformationMapper.selectByExample", mainInformationExample);
                    if (!mainInformationList.isEmpty()) {
                        mainInformation = mainInformationList.get(0);
                        cacheMainMap.put(mainInformation.getSubjectName() + mainInformation.getIdentification(), mainInformation);
                    }
                } else {
                    mainInformation = cacheMainMap.get(idCacheKey);
                }
                if (mainInformation == null || "".equals(mainInformation)) {
                    result.put("status", 0);
                    result.put("message", "判断主体为空");
                    return result;
                }
                // 得到证据包中的事件数据
                for (int j = 0; j < jsonEvArray.size(); j++) {
                    JSONObject object = jsonEvArray.getJSONObject(j);
                    switch(j) {
                        // 事件意愿认证
                        case 2:
                            // <---------------------   提交证书授权    start  ------------------------->
                            JSONObject jsonWillCert = jsonContent.getJSONObject("authEventWillCert");
                            JSONObject jsonWillSms = jsonContent.getJSONObject("authEventWillSms");
                            if (jsonWillSms != null && jsonWillCert != null) {
                                result.put("status", 0);
                                result.put("message", "提交的参数信息错误,证据及短信授权信息只能填写其一");
                                return result;
                            }
                            if (jsonWillCert != null) {
                                // 判断是否接收
                                if (object.getJSONObject("e_isReception").getBooleanValue("e_isReception_1")) {
                                    EvidenceEventDesire eventDesire = new EvidenceEventDesire();
                                    if (object.getBooleanValue("e_isRequired") && (StringUtils.isEmpty(jsonWillCert.getString("certBase64")) || StringUtils.isEmpty(jsonWillCert.getString("challengeCode")) || StringUtils.isEmpty(jsonWillCert.getString("answerCode")) || StringUtils.isEmpty(jsonWillCert.getString("verifyTime")) || StringUtils.isEmpty(jsonWillCert.getString("authenticatorThenType")))) {
                                        result.put("status", 0);
                                        result.put("message", "提交的参数信息不完整,缺少事件意愿认证参数值");
                                        return result;
                                    }
                                    // 验证证书
                                    String urlCertVerify = realNameAuthentication.getRealNameddress() + CERT_VERIFY;
                                    Map<String, Object> mapCertVerify = new HashMap<String, Object>();
                                    mapCertVerify.put("cert", jsonWillCert.getString("certBase64"));
                                    mapCertVerify.put("verifyFlag", "7");
                                    String rep_cert_verify = HttpClientUtil.postForm(urlCertVerify, AuthService.getHeader(), mapCertVerify);
                                    JSONObject jsonCertVerify = JSONObject.parseObject(rep_cert_verify);
                                    if (StringUtils.isNotEmpty(rep_cert_verify) && jsonCertVerify.getIntValue("code") == 0) {
                                        // 解析证书Base64
                                        UserCert userCert = CertUtil.getCertFromBase64(jsonWillCert.getString("certBase64"));
                                        eventDesire.setCertSerialnumber(userCert.getCertSn());
                                        eventDesire.setSubjectdn(userCert.getCertDn());
                                        eventDesire.setIssuerdn(userCert.getIssuerDn());
                                        if (userCert.getCertBuf() != null) {
                                            eventDesire.setEvidenceBuf(userCert.getCertBuf().toString());
                                        }
                                        eventDesire.setStartTime(userCert.getCertStartTime());
                                        eventDesire.setEndTime(userCert.getCertEndTime());
                                    } else {
                                        result.put("status", 0);
                                        result.put("message", "验证证书失败");
                                        return result;
                                    }
                                    eventDesire.setChallengeCode(jsonWillCert.getString("challengeCode"));
                                    eventDesire.setAnswerCode(jsonWillCert.getString("answerCode"));
                                    eventDesire.setClientDevice(jsonWillCert.getString("clientFacility"));
                                    eventDesire.setVerificationTime(jsonWillCert.getDate("verifyTime"));
                                    eventDesire.setWaysExpression("1");
                                    String eventVerifier = getAuthenticator(Integer.parseInt(jsonWillCert.getString("authenticatorThenType")), basicInformation.getEventPlatformName());
                                    eventDesire.setMainInformation(mainInformation.getSubjectName() + ";" + mainInformation.getIdentification());
                                    eventDesire.setEventContente(eventContent.getIdCode());
                                    eventDesire.setCreateTime(new Date());
                                    eventDesire.setEventVerifierType(jsonWillCert.getString("authenticatorThenType"));
                                    eventDesire.setEventVerifier(eventVerifier);
                                    objs.add(eventDesire);
                                    saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("e_factor"));
                                }
                            }
                            // <---------------------   提交短信授权    start  ------------------------->
                            if (jsonWillSms != null) {
                                // 判断是否接收
                                if (object.getJSONObject("e_isReception").getBooleanValue("e_isReception_2")) {
                                    EvidenceEventDesire eventDesire = new EvidenceEventDesire();
                                    if (object.getBooleanValue("e_isRequired") && (StringUtils.isEmpty(jsonWillSms.getString("phone")) || StringUtils.isEmpty(jsonWillSms.getString("sendTime")) || StringUtils.isEmpty(jsonWillSms.getString("smsContent")) || StringUtils.isEmpty(jsonWillSms.getString("verifyCode")) || StringUtils.isEmpty(jsonWillSms.getString("verifyTime")) || StringUtils.isEmpty(jsonWillSms.getString("authenticatorThenType")))) {
                                        result.put("status", 0);
                                        result.put("message", "提交的参数信息不完整,缺少事件意愿认证参数值");
                                        return result;
                                    }
                                    eventDesire.setPhone(jsonWillSms.getString("phone"));
                                    eventDesire.setSmsContent(jsonWillSms.getString("smsContent"));
                                    eventDesire.setVerificationCode(jsonWillSms.getString("verifyCode"));
                                    eventDesire.setSendOutTime(jsonWillSms.getDate("sendTime"));
                                    eventDesire.setVerificationTime(jsonWillSms.getDate("verifyTime"));
                                    eventDesire.setWaysExpression("2");
                                    String eventVerifier = getAuthenticator(Integer.parseInt(jsonWillSms.getString("authenticatorThenType")), basicInformation.getEventPlatformName());
                                    eventDesire.setMainInformation(mainInformation.getSubjectName() + ";" + mainInformation.getIdentification());
                                    eventDesire.setEventContente(eventContent.getIdCode());
                                    eventDesire.setCreateTime(new Date());
                                    eventDesire.setEventVerifierType(jsonWillSms.getString("authenticatorThenType"));
                                    eventDesire.setEventVerifier(eventVerifier);
                                    objs.add(eventDesire);
                                    saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("e_factor"));
                                }
                            }
                            break;
                        // 事件地点认证
                        case 4:
                            // 判断是否接收
                            if (object.getBooleanValue("e_isReception")) {
                                JSONObject jsonAddress = jsonContent.getJSONObject("netAddress");
                                if (jsonAddress != null && !(jsonAddress.getString("appUid") == null && jsonAddress.getString("timeReg") == null && jsonAddress.getString("ipAddressReg") == null && jsonAddress.getString("ipAddressSign") == null)) {
                                    // 定义事件网络地址对象
                                    EvidenceEventNetworkAddress eventNetworkAddress = new EvidenceEventNetworkAddress();
                                    // 整合数据 存储
                                    eventNetworkAddress.setEventContent(eventContent.getIdCode());
                                    eventNetworkAddress.setMainInformation(mainInformation.getSubjectName() + ";" + mainInformation.getIdentification());
                                    eventNetworkAddress.setCreateTime(new Date());
                                    eventNetworkAddress.setAccountNumber(jsonAddress.getString("appUid"));
                                    eventNetworkAddress.setIpAddress(jsonAddress.getString("ipAddressReg"));
                                    eventNetworkAddress.setSigninTime(jsonAddress.getDate("timeReg"));
                                    eventNetworkAddress.setSigninNumber(jsonAddress.getString("appUid"));
                                    eventNetworkAddress.setSigninipAddress(jsonAddress.getString("ipAddressReg"));
                                    eventNetworkAddress.setSendOutTime(jsonAddress.getDate("timeReg"));
                                    objs.add(eventNetworkAddress);
                                }
                                saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("e_factor"));
                            }
                            break;
                    }
                }
            }
        }
        log.error("saveFactor content is [" + saveFactor + "]");
        result.put("saveFactor", saveFactor);
        result.put("basicInformation", basicInformation);
        result.put("objs", objs);
        return result;
    } catch (Exception e) {
        e.printStackTrace();
        StackTraceElement stackTraceElement = e.getStackTrace()[e.getStackTrace().length - 5];
        String info = stackTraceElement.getClassName() + stackTraceElement.getLineNumber() + e.toString();
        LogUtil.evidencelog(sqlSession, evidenceSn, "存证接口", "存证失败,证据编号:" + evidenceSn + ", 失败原因:" + info);
        result.put("status", -5);
        result.put("message", "系统服务错误,请联系管理员");
        return result;
    }
}
Also used : EvidenceIndividual(com.itrus.portal.db.EvidenceIndividual) EvidenceSubjectIdentityExample(com.itrus.portal.db.EvidenceSubjectIdentityExample) EvidenceBasicInformation(com.itrus.portal.db.EvidenceBasicInformation) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) HashMap(java.util.HashMap) PersonalNameExample(com.itrus.portal.db.PersonalNameExample) ArrayList(java.util.ArrayList) EvidenceMainInformation(com.itrus.portal.db.EvidenceMainInformation) EvidenceRealName(com.itrus.portal.db.EvidenceRealName) EvidenceTheAgent(com.itrus.portal.db.EvidenceTheAgent) PersonalName(com.itrus.portal.db.PersonalName) EvidenceEventDesire(com.itrus.portal.db.EvidenceEventDesire) EvidenceCompaniesSubmit(com.itrus.portal.db.EvidenceCompaniesSubmit) EvidenceEventContent(com.itrus.portal.db.EvidenceEventContent) UserCert(com.itrus.portal.db.UserCert) EvidenceDesireIdentify(com.itrus.portal.db.EvidenceDesireIdentify) JSONArray(com.alibaba.fastjson.JSONArray) EvidenceSubjectIdentity(com.itrus.portal.db.EvidenceSubjectIdentity) RealNameRecord(com.itrus.portal.db.RealNameRecord) Date(java.util.Date) JSONObject(com.alibaba.fastjson.JSONObject) EvidenceTrustedIdentity(com.itrus.portal.db.EvidenceTrustedIdentity) JSONObject(com.alibaba.fastjson.JSONObject) EvidenceMainInformationExample(com.itrus.portal.db.EvidenceMainInformationExample) RealNameRecordExample(com.itrus.portal.db.RealNameRecordExample) EvidenceRepresentative(com.itrus.portal.db.EvidenceRepresentative) File(java.io.File) EvidenceEventNetworkAddress(com.itrus.portal.db.EvidenceEventNetworkAddress)

Example 9 with EvidenceEventContent

use of com.itrus.portal.db.EvidenceEventContent in project portal by ixinportal.

the class EvidenceSaveTask method saveFactor.

// 核验要素
private Map<String, Object> saveFactor(Map<String, Object> result, EvidenceSaveService evidenceSaveService, String evidenceSn, JSONObject jsonEvidenceContent, EvidenceBasicInformation basicInformation, RealNameAuthentication realNameAuthentication, RealNameAuthentication realNameAuthenticationOss, EvidenceServiceConfiguration serviceConfiguration, Boolean bl) throws Exception {
    try {
        List<Object> objs = new ArrayList<Object>();
        // 定义证据要素字段
        String saveFactor = null;
        // 证据存证的业务类型
        String type = null;
        String hapPrincipalName = null;
        // 定义主体身份
        // Map<String, EvidenceMainInformation> mapIdCache = new HashMap<String, EvidenceMainInformation>();
        // 得到业务基本信息要素配置
        String factorBusinessInfo = evidenceSaveService.getFactorBusinessInfo();
        JSONArray jsonBiArray = JSONArray.parseArray(factorBusinessInfo);
        // TODO : 核验事件认证
        if (jsonEvidenceContent.get("authEvent") != null) {
            // 可信身份缓存信息
            // List<EvidenceTrustedIdentity> tiCacheList = new ArrayList<>();
            JSONObject jsonAuthEvent = jsonEvidenceContent.getJSONObject("authEvent");
            // 判断是否为补交信息
            if (bl) {
                basicInformation.setEvidenceType(2);
                // 核验基础信息
                for (int i = 0; i < jsonBiArray.size(); i++) {
                    JSONObject object = jsonBiArray.getJSONObject(i);
                    String name = object.getString("name");
                    String content = jsonAuthEvent.getString(name);
                    JSONObject jsonContent;
                    switch(i) {
                        // 事件发生平台
                        case 0:
                            jsonContent = JSONObject.parseObject(content);
                            hapPrincipalName = jsonContent.getString("hapPrincipalName");
                            // 判断是否接收
                            if (object.getBooleanValue("b_isReception") && StringUtils.isEmpty(basicInformation.getCompanyName())) {
                                // 判断是否必填
                                if (bl && object.getBooleanValue("b_isRequired") && StringUtils.isEmpty(jsonContent.getString("hapPlatformDomain"))) {
                                    result.put("status", 0);
                                    result.put("message", "提交的参数信息不完整,缺少事件发生平台必要参数值");
                                    return result;
                                }
                                if (StringUtils.isEmpty(saveFactor) || !saveFactor.contains("基本信息"))
                                    saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, "基本信息");
                                basicInformation.setCompanyName(hapPrincipalName);
                                basicInformation.setEventPlatformName(jsonContent.getString("hapPlatformName"));
                                basicInformation.setDomainName(jsonContent.getString("hapPlatformDomain"));
                            }
                            break;
                        // 业务类型
                        case 1:
                            // 判断是否接收
                            if (object.getBooleanValue("b_isReception") && StringUtils.isEmpty(basicInformation.getType())) {
                                // 判断是否必填
                                if (bl && object.getBooleanValue("b_isRequired") && StringUtils.isEmpty(content)) {
                                    result.put("status", 0);
                                    result.put("message", "提交的参数信息不完整,缺少业务类型参数值");
                                    return result;
                                }
                                if (StringUtils.isEmpty(saveFactor) || !saveFactor.contains("基本信息"))
                                    saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, "基本信息");
                                basicInformation.setType(content);
                                type = object.getString("b_category");
                            }
                            break;
                        // 业务描述
                        case 2:
                            // 判断是否接收
                            if (object.getBooleanValue("b_isReception") && StringUtils.isEmpty(basicInformation.getDescription())) {
                                if (StringUtils.isEmpty(saveFactor) || !saveFactor.contains("基本信息"))
                                    saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, "基本信息");
                                basicInformation.setDescription(content);
                            }
                            break;
                        // 业务单号
                        case 3:
                            // 判断是否接收
                            if (object.getBooleanValue("b_isReception") && StringUtils.isEmpty(basicInformation.getServiceNumber())) {
                                if (StringUtils.isEmpty(saveFactor) || !saveFactor.contains("基本信息"))
                                    saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, "基本信息");
                                basicInformation.setServiceNumber(content);
                            }
                            break;
                    }
                }
            // if(basicInformation.getId() == null) {
            // // 存储证据基本信息
            // long beginTime = System.currentTimeMillis();//1、开始时间
            // sqlSession.insert("com.itrus.portal.db.EvidenceBasicInformationMapper.insert", basicInformation);
            // sqlSession.flushStatements();
            // log.error("证据表耗时:{}", System.currentTimeMillis() - beginTime);
            // } else {
            // sqlSession.update("com.itrus.portal.db.EvidenceBasicInformationMapper.updateByPrimaryKey", basicInformation);
            // sqlSession.flushStatements();
            // log.debug("Size : " + basicInformation.getEvidenceSize());
            // }
            } else {
                sqlSession.update("com.itrus.portal.db.EvidenceBasicInformationMapper.updateByPrimaryKey", basicInformation);
                sqlSession.flushStatements();
                // 核验基础信息
                for (int i = 0; i < jsonBiArray.size(); i++) {
                    JSONObject object = jsonBiArray.getJSONObject(i);
                    if (i == 1) {
                        type = object.getString("b_category");
                    }
                }
            }
            // 得到身份认证要素配置
            String factorIdVerify = evidenceSaveService.getFactorIdVerify();
            JSONArray jsonIdArray = JSONArray.parseArray(factorIdVerify);
            Map<String, Object> cacheSubjectIdentity = new HashMap<String, Object>();
            // 得到证据包中的事件认证数据中的事件对象认证
            for (int i = 0; i < jsonIdArray.size(); i++) {
                JSONObject object = jsonIdArray.getJSONObject(i);
                /**
                 ***********************************************     《合同摘要数据》和《图片摘要数据》, 《信息摘要数据》获取主体    start      *******************************************
                 */
                if ("合同摘要数据".equals(type) || "图片摘要数据".equals(type) || "信息摘要数据".equals(type)) {
                    // 得到事件包信息数据
                    JSONArray jsonContentArray = jsonAuthEvent.getJSONArray("principalId");
                    if (i == 0 && object.getBooleanValue("i_isReception")) {
                        // 循环主体
                        for (int j = 0; j < jsonContentArray.size(); j++) {
                            JSONObject jsonContent = jsonContentArray.getJSONObject(j);
                            // 判断是否必填
                            if (object.getBooleanValue("i_isRequired") && (StringUtils.isEmpty(jsonContent.getString("type")) || StringUtils.isEmpty(jsonContent.getString("name")) || StringUtils.isEmpty(jsonContent.getString("dataId")))) {
                                result.put("status", 0);
                                result.put("message", "提交的参数信息不完整,缺少主体身份参数值");
                                return result;
                            }
                            // 判断主体是否存在
                            // String idCacheKey = jsonContent.getString("name") + jsonContent.getString("dataId");
                            EvidenceMainInformation mainInformation = null;
                            // EvidenceBasicInformation basicInformation2 = null;
                            EvidenceMainInformationExample mainInformationExample = new EvidenceMainInformationExample();
                            EvidenceMainInformationExample.Criteria mainExampleCriteria = mainInformationExample.createCriteria();
                            mainExampleCriteria.andSubjectNameEqualTo(jsonContent.getString("name").trim());
                            mainExampleCriteria.andIdentificationEqualTo(jsonContent.getString("dataId").trim());
                            mainExampleCriteria.andMainTypeEqualTo(jsonContent.getString("type"));
                            List<EvidenceMainInformation> mainInformationList = sqlSession.selectList("com.itrus.portal.db.EvidenceMainInformationMapper.selectByExample", mainInformationExample);
                            if (!mainInformationList.isEmpty()) {
                                mainInformation = mainInformationList.get(0);
                            }
                            // 当主体为空时 添加主体信息
                            if (mainInformation == null) {
                                mainInformation = new EvidenceMainInformation();
                                mainInformation.setSubjectName(jsonContent.getString("name").trim());
                                mainInformation.setIdentification(jsonContent.getString("dataId").trim());
                                mainInformation.setMainType(jsonContent.getString("type"));
                                mainInformation.setCreateTime(new Date());
                                mainInformation.setId(basicInformation.getId());
                                // queueThread.putObjectQueue(mainInformation);
                                objs.add(mainInformation);
                            // queueThread.putMap(mainInformation.getSubjectName() + mainInformation.getIdentification());
                            }
                            // else {
                            // // 判断基础信息表 和 主体表是否存在关联
                            // EvidenceSubjectIdentityExample subjectIdentityExampleExist = new EvidenceSubjectIdentityExample();
                            // EvidenceSubjectIdentityExample.Criteria iece = subjectIdentityExampleExist.createCriteria();
                            // iece.andBasicInformationEqualTo(evidenceSn!=null?evidenceSn:genSn);
                            // iece.andMainInformationEqualTo(mainInformation.getIdentification());
                            // EvidenceSubjectIdentity subjectIdentityExist = sqlSession
                            // .selectOne("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectIdentityExampleExist);
                            // if(subjectIdentityExist == null) {
                            // EvidenceSubjectIdentity subjectIdentity1 = new EvidenceSubjectIdentity();
                            // subjectIdentity1.setBasicInformation(evidenceSn!=null?evidenceSn:genSn);
                            // subjectIdentity1.setMainInformation(mainInformation.getIdentification());
                            // queueThread.putObjectQueue(subjectIdentity1);
                            // //        								sqlSession.insert("com.itrus.portal.db.EvidenceSubjectIdentityMapper.insert", subjectIdentity1);
                            // }
                            // }
                            String key = evidenceSn + jsonContent.getString("name").trim() + jsonContent.getString("dataId").trim();
                            if (cacheSubjectIdentity.get(key) == null) {
                                EvidenceSubjectIdentity subjectIdentity1 = new EvidenceSubjectIdentity();
                                subjectIdentity1.setBasicInformation(evidenceSn);
                                subjectIdentity1.setMainInformation(jsonContent.getString("dataId").trim());
                                subjectIdentity1.setMainName(jsonContent.getString("name").trim());
                                subjectIdentity1.setMainType(jsonContent.getShort("type"));
                                subjectIdentity1.setCreateTime(new Date());
                                // queueThread.putObjectQueue(subjectIdentity1);
                                objs.add(subjectIdentity1);
                                cacheSubjectIdentity.put(key, subjectIdentity1);
                            }
                            // 遍历 mapIdCache 的key值 判断是否存在   不存在则添加
                            // for(String key:mapIdCache.keySet()) {
                            // if(!idCacheKey.equals(key)) {
                            // mapIdCache.put(mainInformation.getSubjectName() + mainInformation.getIdentification(), mainInformation);
                            // }
                            // }
                            mainInformation = null;
                            mainInformationExample = null;
                        }
                    }
                }
            /**
             ***********************************************     《合同摘要数据》和《图片摘要数据》 , 《信息摘要数据》获取主体    end      *******************************************
             */
            }
            // 得到事件认证要素配置
            String factorEventVerify = evidenceSaveService.getFactorEventVerify();
            JSONArray jsonEvArray = JSONArray.parseArray(factorEventVerify);
            // 得到证据包中的事件认证数据中的事件对象认证
            // for(int i=0;i<jsonEvArray.size();i++) {
            // JSONObject object = jsonEvArray.getJSONObject(i);
            // // 可信身份标识
            // // 判断是否接收
            // if(i == 3 && object.getBooleanValue("e_isReception")) {
            // if("电子合同PDF".equals(type)) {
            // /*************************************************     《电子合同PDF》 获取事件发生主体    start      ********************************************/
            // // 得到事件包信息数据
            // JSONArray jsonContentArray = jsonAuthEvent.getJSONArray("event");
            // for(int j=0;j<jsonContentArray.size();j++) {
            // JSONObject jsonContent = jsonContentArray.getJSONObject(j).getJSONObject("idIdentify");
            // // 判断是否必填
            // if(object.getBooleanValue("e_isRequired") && (StringUtils.isEmpty(jsonContent.getString("type"))
            // ||  StringUtils.isEmpty(jsonContent.getString("certSn"))
            // ||  StringUtils.isEmpty(jsonContent.getString("name"))
            // ||  StringUtils.isEmpty(jsonContent.getString("dataId")))
            // ) {
            // result.put("status", 0);
            // result.put("message", "提交的参数信息不完整,缺少可信身份标识参数值");
            // return;
            // }
            // // 判断主体是否存在
            // String idCacheKey = jsonContent.getString("name") + jsonContent.getString("dataId");
            // EvidenceMainInformation mainInformation = null;
            // EvidenceBasicInformation basicInformation2 = null;
            // EvidenceMainInformationExample mainInformationExample = new EvidenceMainInformationExample();
            // EvidenceMainInformationExample.Criteria mainExampleCriteria = mainInformationExample.createCriteria();
            // mainExampleCriteria.andSubjectNameEqualTo(jsonContent.getString("name"));
            // mainExampleCriteria.andIdentificationEqualTo(jsonContent.getString("dataId"));
            // mainExampleCriteria.andMainTypeEqualTo(jsonContent.getString("type"));
            // List<EvidenceMainInformation> mainInformationList = sqlSession
            // .selectList("com.itrus.portal.db.EvidenceMainInformationMapper.selectByExample", mainInformationExample);
            // if(!mainInformationList.isEmpty()) {
            // mainInformation = mainInformationList.get(0);
            // }
            // // 当主体为空时 添加主体信息
            // if(mainInformation == null) {
            // mainInformation = new EvidenceMainInformation();
            // mainInformation.setSubjectName(jsonContent.getString("name"));
            // mainInformation.setIdentification(jsonContent.getString("dataId"));
            // mainInformation.setMainType(jsonContent.getString("type"));
            // mainInformation.setCreateTime(new Date());
            // sqlSession.insert("com.itrus.portal.db.EvidenceMainInformationMapper.insert", mainInformation);
            // sqlSession.flushStatements();
            // }
            // // 遍历 mapIdCache 的key值 判断是否存在   不存在则添加
            // for(String key:mapIdCache.keySet()) {
            // if(!idCacheKey.equals(key)) {
            // mapIdCache.put(mainInformation.getSubjectName() + mainInformation.getIdentification(), mainInformation);
            // }
            // }
            // // 判断基础信息表 和 主体表是否存在关联
            // EvidenceSubjectIdentityExample subjectIdentityExampleExist = new EvidenceSubjectIdentityExample();
            // EvidenceSubjectIdentityExample.Criteria iece = subjectIdentityExampleExist.createCriteria();
            // iece.andBasicInformationEqualTo(evidenceSn!=null?evidenceSn:genSn);
            // iece.andMainInformationEqualTo(mainInformation.getIdentification());
            // EvidenceSubjectIdentity subjectIdentityExist = sqlSession
            // .selectOne("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectIdentityExampleExist);
            // if(subjectIdentityExist == null) {
            // EvidenceSubjectIdentity subjectIdentity1 = new EvidenceSubjectIdentity();
            // subjectIdentity1.setBasicInformation(evidenceSn!=null?evidenceSn:genSn);
            // subjectIdentity1.setMainInformation(mainInformation.getIdentification());
            // sqlSession.insert("com.itrus.portal.db.EvidenceSubjectIdentityMapper.insert", subjectIdentity1);
            // }
            // // 判断是否需要关联身份证据
            // if(StringUtils.isNotEmpty(jsonContent.getString("evidenceSn"))) {
            // basicInformation2 = informationServiceImpl.getInformationBySn(jsonContent.getString("evidenceSn"), 1);
            // if(basicInformation2 != null) {
            // EvidenceSubjectIdentityExample subjectIdentityExample = new EvidenceSubjectIdentityExample();
            // EvidenceSubjectIdentityExample.Criteria iec = subjectIdentityExample.createCriteria();
            // iec.andBasicInformationEqualTo(evidenceSn!=null?evidenceSn:genSn);
            // iec.andMainInformationEqualTo(mainInformation.getIdentification());
            // EvidenceSubjectIdentity subjectIdentity = sqlSession
            // .selectOne("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectIdentityExample);
            // if(subjectIdentity == null) {
            // result.put("status", 0);
            // result.put("message", "证据编码:" + jsonContent.getString("evidenceSn") + "与主体:"
            // + jsonContent.getString("name") + "," + jsonContent.getString("dataId") + "不存在关联");
            // return;
            // }
            // } else {
            // result.put("status", 0);
            // result.put("message", "证据编码:" + jsonContent.getString("evidenceSn") + "与主体:"
            // + jsonContent.getString("name") + "," + jsonContent.getString("dataId") + "不存在关联");
            // return;
            // }
            // }
            // EvidenceTrustedIdentity trustedIdentity = new EvidenceTrustedIdentity();
            // // 判断是否为补交信息
            // if(!bl && jsonContent.getString("certSn") != null) {
            // EvidenceTrustedIdentityExample trustedIdentityExample = new EvidenceTrustedIdentityExample();
            // EvidenceTrustedIdentityExample.Criteria tec = trustedIdentityExample.createCriteria();
            // tec.andBasicInformationEqualTo(basicInformation.getId());
            // tec.andCertSerialnumberEqualTo(jsonContent.getString("certSn"));
            // List<EvidenceTrustedIdentity> trustedIdentities = sqlSession
            // .selectList("com.itrus.portal.db.EvidenceTrustedIdentityMapper.selectByExample", trustedIdentityExample);
            // // 补交主体后判断 事件对象不为空则修改事件对象关联的主体
            // if(!trustedIdentities.isEmpty()) {
            // EvidenceTrustedIdentity ti = trustedIdentities.get(0);
            // Long oldMainId = ti.getMainInformation();
            // ti.setMainInformation(mainInformation.getId());
            // sqlSession.update("com.itrus.portal.db.EvidenceTrustedIdentityMapper.updateByPrimaryKey", ti);
            // // 给可信身份赋值
            // trustedIdentity.setCertSerialnumber(ti.getCertSerialnumber());
            // trustedIdentity.setSubjectdn(ti.getSubjectdn());
            // trustedIdentity.setIssuerdn(ti.getIssuerdn());
            // trustedIdentity.setIssuer(ti.getIssuer());
            // trustedIdentity.setEvidenceBuf(ti.getEvidenceBuf());
            // trustedIdentity.setStartTime(ti.getStartTime());
            // trustedIdentity.setEndTime(ti.getEndTime());
            // // 修改事件时间关联的主体信息
            // EvidenceEventTimeExample timeExample = new EvidenceEventTimeExample();
            // EvidenceEventTimeExample.Criteria timeEc = timeExample.createCriteria();
            // timeEc.andMainInformationEqualTo(oldMainId);
            // timeEc.andEventContentEqualTo(ti.getEventContent());
            // List<EvidenceEventTime> times = sqlSession
            // .selectList("com.itrus.portal.db.EvidenceEventTimeMapper.selectByExample", timeExample);
            // for(EvidenceEventTime time:times) {
            // time.setMainInformation(mainInformation.getId());
            // sqlSession.update("com.itrus.portal.db.EvidenceEventTimeMapper.updateByPrimaryKey", time);
            // }
            // // 修改事件行为关联的主体信息
            // EvidenceEventBehaviorExample behaviorExample = new EvidenceEventBehaviorExample();
            // EvidenceEventBehaviorExample.Criteria behaviorEc = behaviorExample.createCriteria();
            // behaviorEc.andMainInformationEqualTo(oldMainId);
            // behaviorEc.andEventContentEqualTo(ti.getEventContent());
            // List<EvidenceEventBehavior> behaviors = sqlSession
            // .selectList("com.itrus.portal.db.EvidenceEventBehaviorMapper.selectByExample", behaviorExample);
            // for(EvidenceEventBehavior behavior:behaviors) {
            // behavior.setMainInformation(mainInformation.getId());
            // sqlSession.update("com.itrus.portal.db.EvidenceEventBehaviorMapper.updateByPrimaryKey", behavior);
            // }
            // sqlSession.flushStatements();
            // } else {
            // continue;
            // }
            // }
            // // 判断证据base64 字段是否为空
            // //								if(StringUtils.isNotEmpty(jsonContent.getString("certBase64"))) {
            // //									trustedIdentity.setCertBase64(jsonContent.getString("certBase64"));
            // //									// 解析证书Base64
            // //									UserCert userCert = CertUtil.getCertFromBase64(jsonContent.getString("certBase64"));
            // //									trustedIdentity.setCertSerialnumber(userCert.getCertSn());
            // //									trustedIdentity.setSubjectdn(userCert.getCertDn());
            // //									trustedIdentity.setIssuerdn(userCert.getIssuerDn());
            // //									trustedIdentity.setIssuer(EvidenceSaveServiceApi.getCertCn(userCert.getIssuerDn()));
            // //									if(userCert.getCertBuf() != null) {
            // //										trustedIdentity.setEvidenceBuf(userCert.getCertBuf().toString());
            // //									}
            // //									trustedIdentity.setStartTime(userCert.getCertStartTime());
            // //									trustedIdentity.setEndTime(userCert.getCertEndTime());
            // //								}
            // ////								trustedIdentity.setCertSerialnumber(jsonContent.getString("certSn"));
            // //								trustedIdentity.setIdentiType(jsonContent.getString("type"));
            // //								trustedIdentity.setBasicInformation(basicInformation.getId());
            // //								trustedIdentity.setEvidenceEnclosure(enclosure.getId());
            // //								if(StringUtils.isNotEmpty(jsonContent.getString("evidenceSn")))
            // //									trustedIdentity.setEvidenceSn(jsonContent.getString("evidenceSn"));
            // //								trustedIdentity.setCreateTime(new Date());
            // //								if(mainInformation != null && !"".equals(mainInformation))
            // //									trustedIdentity.setMainInformation(mainInformation.getId());
            // //								sqlSession.insert("com.itrus.portal.db.EvidenceTrustedIdentityMapper.insert", trustedIdentity);
            // //								sqlSession.flushStatements();
            // tiCacheList.add(trustedIdentity);
            // }
            // if(jsonContentArray.size() != 0) {
            // saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("i_factor"));
            // }
            // }
            // /*************************************************     《电子合同PDF》 获取事件发生主体    end      ********************************************/
            // }
            // }
            // 得到事件包信息数据
            // JSONArray jsonContentArray = jsonAuthEvent.getJSONArray("event");
            // for(int j=0;j<jsonContentArray.size();j++) {
            // JSONObject jsonContent = jsonContentArray.getJSONObject(j).getJSONObject("idIdentify");
            // // 判断是否必填
            // if(object.getBooleanValue("i_isRequired") && ( StringUtils.isEmpty(jsonContent.getString("type"))
            // || (("1".equals(type) && StringUtils.isEmpty(jsonContent.getString("certSn")))
            // || (!"1".equals(type) && StringUtils.isEmpty(jsonContent.getString("certBase64")))))) {
            // result.put("status", 0);
            // result.put("message", "提交的参数信息不完整,缺少可信身份标识参数值");
            // return;
            // }
            // // 判断主体是否存在
            // String idCacheKey = jsonContent.getString("name") + jsonContent.getString("dataId");
            // EvidenceMainInformation mainInformation = null;
            // EvidenceBasicInformation basicInformation2 = null;
            // EvidenceMainInformationExample mainInformationExample = new EvidenceMainInformationExample();
            // EvidenceMainInformationExample.Criteria mainExampleCriteria = mainInformationExample.createCriteria();
            // mainExampleCriteria.andSubjectNameEqualTo(jsonContent.getString("name"));
            // mainExampleCriteria.andIdentificationEqualTo(jsonContent.getString("dataId"));
            // mainExampleCriteria.andMainTypeEqualTo(jsonContent.getString("type"));
            // List<EvidenceMainInformation> mainInformationList = sqlSession
            // .selectList("com.itrus.portal.db.EvidenceMainInformationMapper.selectByExample", mainInformationExample);
            // if(!mainInformationList.isEmpty()) {
            // mainInformation = mainInformationList.get(0);
            // }
            // // 当主体为空时 添加主体信息
            // if(mainInformation == null) {
            // mainInformation = new EvidenceMainInformation();
            // mainInformation.setSubjectName(jsonContent.getString("name"));
            // mainInformation.setIdentification(jsonContent.getString("dataId"));
            // mainInformation.setMainType(jsonContent.getString("type"));
            // mainInformation.setCreateTime(new Date());
            // sqlSession.insert("com.itrus.portal.db.EvidenceMainInformationMapper.insert", mainInformation);
            // sqlSession.flushStatements();
            // }
            // // 遍历 mapIdCache 的key值 判断是否存在   不存在则添加
            // for(String key:mapIdCache.keySet()) {
            // if(!idCacheKey.equals(key)) {
            // mapIdCache.put(mainInformation.getSubjectName() + mainInformation.getIdentification(), mainInformation);
            // }
            // }
            // // 判断基础信息表 和 主体表是否存在关联
            // EvidenceSubjectIdentityExample subjectIdentityExampleExist = new EvidenceSubjectIdentityExample();
            // EvidenceSubjectIdentityExample.Criteria iece = subjectIdentityExampleExist.createCriteria();
            // iece.andBasicInformationEqualTo(basicInformation.getId());
            // iece.andMainInformationEqualTo(mainInformation.getId());
            // EvidenceSubjectIdentity subjectIdentityExist = sqlSession
            // .selectOne("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectIdentityExampleExist);
            // if(subjectIdentityExist == null) {
            // EvidenceSubjectIdentity subjectIdentity1 = new EvidenceSubjectIdentity();
            // subjectIdentity1.setBasicInformation(basicInformation.getId());
            // subjectIdentity1.setMainInformation(mainInformation.getId());
            // sqlSession.insert("com.itrus.portal.db.EvidenceSubjectIdentityMapper.insert", subjectIdentity1);
            // }
            // // 判断是否需要关联身份证据
            // if(StringUtils.isNotEmpty(jsonContent.getString("evidenceSn"))) {
            // basicInformation2 = informationServiceImpl.getInformationBySn(jsonContent.getString("evidenceSn"), 1);
            // if(basicInformation2 != null) {
            // EvidenceSubjectIdentityExample subjectIdentityExample = new EvidenceSubjectIdentityExample();
            // EvidenceSubjectIdentityExample.Criteria iec = subjectIdentityExample.createCriteria();
            // iec.andBasicInformationEqualTo(basicInformation2.getId());
            // iec.andMainInformationEqualTo(mainInformation.getId());
            // EvidenceSubjectIdentity subjectIdentity = sqlSession
            // .selectOne("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectIdentityExample);
            // if(subjectIdentity == null) {
            // result.put("status", 0);
            // result.put("message", "证据编码:" + jsonContent.getString("evidenceSn") + "与主体:"
            // + jsonContent.getString("name") + "," + jsonContent.getString("dataId") + "不存在关联");
            // return;
            // }
            // } else {
            // result.put("status", 0);
            // result.put("message", "证据编码:" + jsonContent.getString("evidenceSn") + "与主体:"
            // + jsonContent.getString("name") + "," + jsonContent.getString("dataId") + "不存在关联");
            // return;
            // }
            // }
            // EvidenceTrustedIdentity trustedIdentity = new EvidenceTrustedIdentity();
            // // 判断是否为补交信息
            // if(!bl && jsonContent.getString("certSn") != null) {
            // EvidenceTrustedIdentityExample trustedIdentityExample = new EvidenceTrustedIdentityExample();
            // EvidenceTrustedIdentityExample.Criteria tec = trustedIdentityExample.createCriteria();
            // tec.andBasicInformationEqualTo(basicInformation.getId());
            // tec.andCertSerialnumberEqualTo(jsonContent.getString("certSn"));
            // List<EvidenceTrustedIdentity> trustedIdentities = sqlSession
            // .selectList("com.itrus.portal.db.EvidenceTrustedIdentityMapper.selectByExample", trustedIdentityExample);
            // // 补交主体后判断 事件对象不为空则修改事件对象关联的主体
            // if(!trustedIdentities.isEmpty()) {
            // EvidenceTrustedIdentity ti = trustedIdentities.get(0);
            // Long oldMainId = ti.getMainInformation();
            // ti.setMainInformation(mainInformation.getId());
            // sqlSession.update("com.itrus.portal.db.EvidenceTrustedIdentityMapper.updateByPrimaryKey", ti);
            // // 给可信身份赋值
            // trustedIdentity.setCertSerialnumber(ti.getCertSerialnumber());
            // trustedIdentity.setSubjectdn(ti.getSubjectdn());
            // trustedIdentity.setIssuerdn(ti.getIssuerdn());
            // trustedIdentity.setIssuer(ti.getIssuer());
            // trustedIdentity.setEvidenceBuf(ti.getEvidenceBuf());
            // trustedIdentity.setStartTime(ti.getStartTime());
            // trustedIdentity.setEndTime(ti.getEndTime());
            // // 修改事件时间关联的主体信息
            // EvidenceEventTimeExample timeExample = new EvidenceEventTimeExample();
            // EvidenceEventTimeExample.Criteria timeEc = timeExample.createCriteria();
            // timeEc.andMainInformationEqualTo(oldMainId);
            // timeEc.andEventContentEqualTo(ti.getEventContent());
            // List<EvidenceEventTime> times = sqlSession
            // .selectList("com.itrus.portal.db.EvidenceEventTimeMapper.selectByExample", timeExample);
            // for(EvidenceEventTime time:times) {
            // time.setMainInformation(mainInformation.getId());
            // sqlSession.update("com.itrus.portal.db.EvidenceEventTimeMapper.updateByPrimaryKey", time);
            // }
            // // 修改事件行为关联的主体信息
            // EvidenceEventBehaviorExample behaviorExample = new EvidenceEventBehaviorExample();
            // EvidenceEventBehaviorExample.Criteria behaviorEc = behaviorExample.createCriteria();
            // behaviorEc.andMainInformationEqualTo(oldMainId);
            // behaviorEc.andEventContentEqualTo(ti.getEventContent());
            // List<EvidenceEventBehavior> behaviors = sqlSession
            // .selectList("com.itrus.portal.db.EvidenceEventBehaviorMapper.selectByExample", behaviorExample);
            // for(EvidenceEventBehavior behavior:behaviors) {
            // behavior.setMainInformation(mainInformation.getId());
            // sqlSession.update("com.itrus.portal.db.EvidenceEventBehaviorMapper.updateByPrimaryKey", behavior);
            // }
            // sqlSession.flushStatements();
            // } else {
            // continue;
            // }
            // }
            // 
            // // 判断是否为电子合同
            // if("1".equals(type)) {
            // // 判断是否需要关联身份证据
            // if(StringUtils.isNotEmpty(jsonContent.getString("evidenceSn"))) {
            // basicInformation2 = informationServiceImpl.getInformationBySn(jsonContent.getString("evidenceSn"), 1);
            // if(basicInformation2 != null) {
            // EvidenceSubjectIdentityExample subjectIdentityExample = new EvidenceSubjectIdentityExample();
            // EvidenceSubjectIdentityExample.Criteria iec = subjectIdentityExample.createCriteria();
            // iec.andBasicInformationEqualTo(basicInformation2.getId());
            // iec.andMainInformationEqualTo(mainInformation.getId());
            // EvidenceSubjectIdentity subjectIdentity = sqlSession
            // .selectOne("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectIdentityExample);
            // if(subjectIdentity == null) {
            // result.put("status", 0);
            // result.put("message", "证据编码:" + jsonContent.getString("evidenceSn") + "与主体:"
            // + jsonContent.getString("name") + "," + jsonContent.getString("dataId") + "不存在关联");
            // return;
            // }
            // } else {
            // result.put("status", 0);
            // result.put("message", "证据编码:" + jsonContent.getString("evidenceSn") + "与主体:"
            // + jsonContent.getString("name") + "," + jsonContent.getString("dataId") + "不存在关联");
            // return;
            // }
            // }
            // EvidenceTrustedIdentity trustedIdentity = new EvidenceTrustedIdentity();
            // // 判断是否为补交信息
            // if(!bl && jsonContent.getString("certSn") != null) {
            // EvidenceTrustedIdentityExample trustedIdentityExample = new EvidenceTrustedIdentityExample();
            // EvidenceTrustedIdentityExample.Criteria tec = trustedIdentityExample.createCriteria();
            // tec.andBasicInformationEqualTo(basicInformation.getId());
            // tec.andCertSerialnumberEqualTo(jsonContent.getString("certSn"));
            // List<EvidenceTrustedIdentity> trustedIdentities = sqlSession
            // .selectList("com.itrus.portal.db.EvidenceTrustedIdentityMapper.selectByExample", trustedIdentityExample);
            // // 补交主体后判断 事件对象不为空则修改事件对象关联的主体
            // if(!trustedIdentities.isEmpty()) {
            // EvidenceTrustedIdentity ti = trustedIdentities.get(0);
            // Long oldMainId = ti.getMainInformation();
            // ti.setMainInformation(mainInformation.getId());
            // sqlSession.update("com.itrus.portal.db.EvidenceTrustedIdentityMapper.updateByPrimaryKey", ti);
            // // 给可信身份赋值
            // trustedIdentity.setCertSerialnumber(ti.getCertSerialnumber());
            // trustedIdentity.setSubjectdn(ti.getSubjectdn());
            // trustedIdentity.setIssuerdn(ti.getIssuerdn());
            // trustedIdentity.setIssuer(ti.getIssuer());
            // trustedIdentity.setEvidenceBuf(ti.getEvidenceBuf());
            // trustedIdentity.setStartTime(ti.getStartTime());
            // trustedIdentity.setEndTime(ti.getEndTime());
            // // 修改事件时间关联的主体信息
            // EvidenceEventTimeExample timeExample = new EvidenceEventTimeExample();
            // EvidenceEventTimeExample.Criteria timeEc = timeExample.createCriteria();
            // timeEc.andMainInformationEqualTo(oldMainId);
            // timeEc.andEventContentEqualTo(ti.getEventContent());
            // List<EvidenceEventTime> times = sqlSession
            // .selectList("com.itrus.portal.db.EvidenceEventTimeMapper.selectByExample", timeExample);
            // for(EvidenceEventTime time:times) {
            // time.setMainInformation(mainInformation.getId());
            // sqlSession.update("com.itrus.portal.db.EvidenceEventTimeMapper.updateByPrimaryKey", time);
            // }
            // // 修改事件行为关联的主体信息
            // EvidenceEventBehaviorExample behaviorExample = new EvidenceEventBehaviorExample();
            // EvidenceEventBehaviorExample.Criteria behaviorEc = behaviorExample.createCriteria();
            // behaviorEc.andMainInformationEqualTo(oldMainId);
            // behaviorEc.andEventContentEqualTo(ti.getEventContent());
            // List<EvidenceEventBehavior> behaviors = sqlSession
            // .selectList("com.itrus.portal.db.EvidenceEventBehaviorMapper.selectByExample", behaviorExample);
            // for(EvidenceEventBehavior behavior:behaviors) {
            // behavior.setMainInformation(mainInformation.getId());
            // sqlSession.update("com.itrus.portal.db.EvidenceEventBehaviorMapper.updateByPrimaryKey", behavior);
            // }
            // sqlSession.flushStatements();
            // } else {
            // continue;
            // }
            // }
            // // 判断证据base64 字段是否为空
            // if(StringUtils.isNotEmpty(jsonContent.getString("certBase64"))) {
            // trustedIdentity.setCertBase64(jsonContent.getString("certBase64"));
            // // 解析证书Base64
            // UserCert userCert = CertUtil.getCertFromBase64(jsonContent.getString("certBase64"));
            // trustedIdentity.setCertSerialnumber(userCert.getCertSn());
            // trustedIdentity.setSubjectdn(userCert.getCertDn());
            // trustedIdentity.setIssuerdn(userCert.getIssuerDn());
            // trustedIdentity.setIssuer(EvidenceSaveServiceApi.getCertCn(userCert.getIssuerDn()));
            // if(userCert.getCertBuf() != null) {
            // trustedIdentity.setEvidenceBuf(userCert.getCertBuf().toString());
            // }
            // trustedIdentity.setStartTime(userCert.getCertStartTime());
            // trustedIdentity.setEndTime(userCert.getCertEndTime());
            // }
            // trustedIdentity.setCertSerialnumber(jsonContent.getString("certSn"));
            // trustedIdentity.setIdentiType(jsonContent.getString("type"));
            // trustedIdentity.setBasicInformation(basicInformation.getId());
            // trustedIdentity.setEvidenceEnclosure(enclosure.getId());
            // if(StringUtils.isNotEmpty(jsonContent.getString("evidenceSn")))
            // trustedIdentity.setEvidenceSn(jsonContent.getString("evidenceSn"));
            // trustedIdentity.setCreateTime(new Date());
            // if(mainInformation != null && !"".equals(mainInformation))
            // trustedIdentity.setMainInformation(mainInformation.getId());
            // sqlSession.insert("com.itrus.portal.db.EvidenceTrustedIdentityMapper.insert", trustedIdentity);
            // sqlSession.flushStatements();
            // tiCacheList.add(trustedIdentity);
            // }
            // if(jsonContentArray.size() != 0) {
            // saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("i_factor"));
            // }
            // }
            EvidenceEventContent eventContent = new EvidenceEventContent();
            // 判断 补交不接收
            if (bl) {
                // 得到证据包中的事件数据
                for (int i = 0; i < jsonEvArray.size(); i++) {
                    JSONObject object = jsonEvArray.getJSONObject(i);
                    String name = object.getString("name");
                    switch(i) {
                        // 事件认证
                        case 0:
                            // 判断合同类型
                            if ("电子合同PDF".equals(type)) {
                            // 电子合同
                            // // 判断是否接收
                            // if(object.getBooleanValue("e_isReception")) {
                            // // 得到事件内容中的信息
                            // JSONObject jsonEventContent = jsonAuthEvent.getJSONObject(name);
                            // // 判断必填
                            // if(object.getBooleanValue("e_isRequired") && (StringUtils.isEmpty(jsonEventContent.getString("contCode"))
                            // || StringUtils.isEmpty(jsonEventContent.getString("title"))
                            // || StringUtils.isEmpty(jsonEventContent.getString("size"))
                            // || StringUtils.isEmpty(jsonEventContent.getString("page"))
                            // || StringUtils.isEmpty(jsonEventContent.getString("eventVerifierType")))) {
                            // result.put("status", 0);
                            // result.put("message", "提交的参数信息不完整,缺少事件内容认证参数值");
                            // return;
                            // }
                            // String eventVerifier = getAuthenticator(Integer.parseInt(jsonEventContent.getString("eventVerifierType")),
                            // hapPrincipalName, jsonEventContent.getString("eventVerifier"));
                            // if(StringUtils.isEmpty(eventVerifier)) {
                            // result.put("status", 0);
                            // result.put("message", "提交的参数信息不完整,缺少事件认证参数值");
                            // return;
                            // }
                            // // 存储事件内容信息
                            // eventContent.setEventVerifierType(jsonEventContent.getString("eventVerifierType"));
                            // eventContent.setEventVerifier(eventVerifier);
                            // eventContent.setIsPdf(true);
                            // eventContent.setContractTitle(jsonEventContent.getString("title"));
                            // eventContent.setContractNumber(jsonEventContent.getString("code"));
                            // eventContent.setValidStartTime(jsonEventContent.getDate("validStartTime"));
                            // eventContent.setValidEndTime(jsonEventContent.getDate("validEndTime"));
                            // eventContent.setDataFormat(jsonEventContent.getString("dataFormat"));
                            // eventContent.setEventSize(jsonEventContent.getString("size"));
                            // eventContent.setThePages(jsonEventContent.getInteger("page"));
                            // eventContent.setCreateTime(new Date());
                            // eventContent.setBasicInformation(basicInformation.getId());
                            // //            						eventContent.setEvidenceEnclosure(enclosure.getId());
                            // if (StringUtils.isNotEmpty(evidenceSn))
                            // eventContent.setEvidenceSn(evidenceSn);
                            // else
                            // eventContent.setEvidenceSn(genSn);
                            // sqlSession.insert("com.itrus.portal.db.EvidenceEventContentMapper.insert", eventContent);
                            // 
                            // // 定义存储路径和存储名称
                            // //        							String bucketName = realNameAuthenticationOss.getKeyCode();
                            // String pdfName = evidenceSn + "UserUp.pdf";
                            // // 得到加密证书别名
                            // //                                          String encryptionAlias = secretKeyService.getAliasByCertId((long)serviceConfiguration.getEncryptionCertificate());
                            // // 存储contCode 到原子服务
                            // //        							String retSave = EvidenceSaveServiceApi.storageSave("ST_O", bucketName, pdfName, "CT_MESSAGE",
                            // //        									jsonEventContent.get("contCode").toString(), null, null, null, null, null, false, null,
                            // //        									realNameAuthentication.getRealNameddress());
                            // //        							JSONObject jsonRetSave = JSONObject.parseObject(retSave);
                            // //        							if(jsonRetSave.getIntValue("code") != 0) {
                            // //                                          result.put("status", 0);
                            // //                                          result.put("message", "存储用户contCode失败");
                            // ////                                              throw new Exception("存储用户contCode失败");
                            // //                                          return;
                            // //                                      } else {
                            // //                                    	  String pdfSaveFile = systemConfigService.getpdfurl()+ File.separator + bucketName + File.separator + evidenceSn;
                            // // pdf存储到本地
                            // String pdfSaveFile = systemConfigService.getpdfurl()+  File.separator + evidenceSn;
                            // File filePathStr = new File(pdfSaveFile, pdfName);
                            // // 判断目录是否存在
                            // File fileUrl = new File(pdfSaveFile);
                            // if(!fileUrl.exists()) {
                            // fileUrl.mkdir();
                            // }
                            // // 用户contCode转pdf存储到本地
                            // boolean pdfSaveBl = Base64Util.genFileFromBase64(jsonEventContent.getString("contCode"), filePathStr.getPath());
                            // //          								  boolean blStr = false;
                            // //          							      if(StringUtils.isNotEmpty(jsonEventContent.getString("contCode"))) {
                            // //          								      blStr = true;
                            // //          								  }
                            // //                                          if(pdfSaveBl) {
                            // //                                        	  EvidenceEnclosure evidenceEnclosure = new EvidenceEnclosure();
                            // //                                        	  evidenceEnclosure.setEvidenceSn(evidenceSn);
                            // //                                        	  evidenceEnclosure.setBuid(jsonRetSave.getString("buid"));
                            // //                                        	  evidenceEnclosure.setPdfType("2");
                            // //                                        	  evidenceEnclosure.setType("ST_O");
                            // //                                        	  evidenceEnclosure.setContentType("CT_MESSAGE");
                            // //                                        	  evidenceEnclosure.setBucketName(bucketName);
                            // //                                        	  evidenceEnclosure.setObjectName(pdfName);
                            // ////                                            	  evidenceEnclosure.setAlias(encryptionAlias);
                            // //                                        	  evidenceEnclosure.setApplicationTime(new Date());
                            // //                                        	  evidenceEnclosure.setFixationTime(new Date());
                            // //                                        	  evidenceEnclosure.setCreateTime(new Date());
                            // //                                        	  evidenceEnclosure.setBasicInformation(basicInformation.getId());
                            // //                                        	  sqlSession.insert("com.itrus.portal.db.EvidenceEnclosureMapper.insert", evidenceEnclosure);
                            // //                                          }
                            // //                                      }
                            // // 调用pdf验章接口
                            // Map<String, Object> mapPdfVerify = new HashMap<String, Object>();
                            // String urlPdfVerify = realNameAuthentication.getRealNameddress() + PDF_VERIFY;
                            // mapPdfVerify.put("pdfContent", jsonEventContent.get("contCode"));
                            // String rep_pdf_verify = HttpClientUtil.postForm(urlPdfVerify, AuthService.getHeader(), mapPdfVerify);
                            // JSONObject jsonPdfVerify = JSONObject.parseObject(rep_pdf_verify);
                            // if(jsonPdfVerify.getInteger("code") == 0){
                            // eventContent.setEventStatus(1);
                            // } else {
                            // eventContent.setEventStatus(0);
                            // eventContent.setFailureReason(jsonPdfVerify.getString("message"));
                            // basicInformation.setEvidenceStatus(0);
                            // if(StringUtils.isEmpty(basicInformation.getFailureReason())) {
                            // basicInformation.setFailureReason(jsonPdfVerify.getString("message"));
                            // } else {
                            // basicInformation.setFailureReason(basicInformation.getFailureReason() + "," + jsonPdfVerify.getString("message"));
                            // }
                            // sqlSession.update("com.itrus.portal.db.EvidenceBasicInformationMapper.updateByPrimaryKey", basicInformation);
                            // }
                            // String retVerifyTi = null;
                            // String retVerifyBehavior = null;
                            // String retVerifyTime = null;
                            // if(StringUtils.isNotEmpty(rep_pdf_verify)
                            // && 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"));
                            // 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(basicInformation.getId());
                            // trustedIdentity.setEventContent(eventContent.getId());
                            // trustedIdentity.setEvidenceSn(evidenceSn);
                            // if(trustedIdentity1 != null){
                            // trustedIdentity.setMainInformation(trustedIdentity1.getMainInformation());
                            // // 整合证书信息存储到对应可信身份表
                            // trustedIdentity1.setCertBase64(json.getString("signerCert"));
                            // trustedIdentity1.setSubjectdn(userCert1.getCertDn());
                            // trustedIdentity1.setIssuerdn(userCert1.getIssuerDn());
                            // trustedIdentity1.setIssuer(EvidenceSaveServiceApi.getCertCn(userCert1.getIssuerDn()));
                            // if(userCert1.getCertBuf() != null){
                            // trustedIdentity1.setEvidenceBuf(userCert1.getCertBuf().toString());
                            // }
                            // trustedIdentity1.setStartTime(userCert1.getCertStartTime());
                            // trustedIdentity1.setEndTime(userCert1.getCertEndTime());
                            // sqlSession.update("com.itrus.portal.db.EvidenceTrustedIdentityMapper.updateByPrimaryKey",
                            // trustedIdentity1);
                            // } else {
                            // trustedIdentity.setMainInformation((long)noId);
                            // }
                            // trustedIdentity.setCertBase64(json.getString("signerCert"));
                            // trustedIdentity.setCreateTime(new Date());
                            // trustedIdentity.setCertSerialnumber(userCert1.getCertSn());
                            // trustedIdentity.setSubjectdn(userCert1.getCertDn());
                            // trustedIdentity.setIssuerdn(userCert1.getIssuerDn());
                            // trustedIdentity.setIdentiType("1");
                            // trustedIdentity.setIssuer(EvidenceSaveServiceApi.getCertCn(userCert1.getIssuerDn()));
                            // 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());
                            // trustedIdentity.setCheckContent("1.验证证书有效期/n2.验证证书颁发者签名/n3.验证证书是否吊销");
                            // sqlSession.insert("com.itrus.portal.db.EvidenceTrustedIdentityMapper.insert", 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((long)noId);
                            // }
                            // eventTime.setIdentiType("1");
                            // eventTime.setEventContent(eventContent.getId());
                            // 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("签名原文完整、真实、是否被篡改");
                            // sqlSession.insert("com.itrus.portal.db.EvidenceEventTimeMapper.insert", 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.getId());
                            // eventBehavior.setIdentiType("1");
                            // if(trustedIdentity1 != null){
                            // eventBehavior.setMainInformation(trustedIdentity1.getMainInformation());
                            // } else {
                            // eventBehavior.setMainInformation((long)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());
                            // eventBehavior.setCheckContent("签名原文完整、真实、是否被篡改");
                            // sqlSession.insert("com.itrus.portal.db.EvidenceEventBehaviorMapper.insert", eventBehavior);
                            // } else {
                            // retVerifyBehavior = "事件行为核验失败";
                            // }
                            // }
                            // if(jsonArraySignInfos.size() == 0) {
                            // eventContent.setEventStatus(0);
                            // if(StringUtils.isNotEmpty(eventContent.getFailureReason())) {
                            // eventContent.setFailureReason(eventContent.getFailureReason() + ",pdf签章失败:返回集合为空。");
                            // } else {
                            // eventContent.setFailureReason("pdf签章失败:返回集合为空。");
                            // }
                            // }
                            // // 整合错误信息
                            // //       	if(StringUtils.isNotEmpty(eventContent.getFailureReason())) {
                            // //          	eventContent.setFailureReason(eventContent.getFailureReason());
                            // //       	}
                            // 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);
                            // }
                            // sqlSession.update("com.itrus.portal.db.EvidenceEventContentMapper.updateByPrimaryKey", eventContent);
                            // if(eventContent.getEventStatus() == 0) {
                            // if(StringUtils.isNotEmpty(basicInformation.getFailureReason())) {
                            // basicInformation.setFailureReason(basicInformation.getFailureReason() + "," + eventContent.getFailureReason());
                            // } else {
                            // basicInformation.setEvidenceStatus(0);
                            // basicInformation.setFailureReason(eventContent.getFailureReason());
                            // }
                            // sqlSession.update("com.itrus.portal.db.EvidenceBasicInformationMapper.updateByPrimaryKey", basicInformation);
                            // }
                            // }
                            // saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("e_factor"));
                            // }
                            /**
                             ***********************************************     《电子合同PDF》 获取事件内容    end      *******************************************
                             */
                            } else if ("合同摘要数据".equals(type) || "图片摘要数据".equals(type) || "信息摘要数据".equals(type)) {
                                // 判断是否接收
                                if (object.getBooleanValue("e_isReception")) {
                                    // 得到事件内容中的信息
                                    JSONObject jsonEventContent = jsonAuthEvent.getJSONObject(name);
                                    // 判断必填
                                    if (object.getBooleanValue("e_isRequired") && (StringUtils.isEmpty(jsonEventContent.getString("contCode")) || StringUtils.isEmpty(jsonEventContent.getString("dataFormat")))) {
                                        result.put("status", 0);
                                        result.put("message", "提交的参数信息不完整,缺少事件内容认证参数值");
                                        return result;
                                    }
                                    // 存储事件内容信息
                                    eventContent.setIsPdf(false);
                                    eventContent.setContractTitle(jsonEventContent.getString("title"));
                                    eventContent.setCreateTime(new Date());
                                    eventContent.setBasicInformation(basicInformation.getId());
                                    eventContent.setEvidenceSn(evidenceSn);
                                    eventContent.setContCode(jsonEventContent.getString("contCode"));
                                    if ("合同摘要数据".equals(type) || "信息摘要数据".equals(type)) {
                                        eventContent.setValidStartTime(jsonEventContent.getDate("validStartTime"));
                                        eventContent.setValidEndTime(jsonEventContent.getDate("validEndTime"));
                                        eventContent.setDataFormat(jsonEventContent.getString("dataFormat"));
                                    } else {
                                        eventContent.setDataFormatImg(jsonEventContent.getString("dataFormat"));
                                    }
                                    // queueThread.putObjectQueue(eventContent);
                                    objs.add(eventContent);
                                    eventContent = null;
                                    saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("e_factor"));
                                }
                            /**
                             ***********************************************     《合同摘要数据》 和 《图片摘要数据》 获取事件内容    end      *******************************************
                             */
                            }
                            break;
                    }
                }
            } else {
                // 补交信息得到事件内容
                EvidenceEventContentExample contentExample = new EvidenceEventContentExample();
                EvidenceEventContentExample.Criteria cec = contentExample.createCriteria();
                cec.andBasicInformationEqualTo(basicInformation.getId());
                List<EvidenceEventContent> eventContents = sqlSession.selectList("com.itrus.portal.db.EvidenceEventContentMapper.selectByExample", contentExample);
                if (!eventContents.isEmpty()) {
                    eventContent = eventContents.get(0);
                }
            }
        /*if(StringUtils.isNotEmpty(jsonAuthEvent.getString("event"))) {
    				
    				JSONArray jsonContentArray = jsonAuthEvent.getJSONArray("event");
    				for(int i=0;i<jsonContentArray.size();i++) {
        				// 得到对应的主体信息
        				JSONObject jsonContent = jsonContentArray.getJSONObject(i);
        				JSONObject jsonIdIdentify = jsonContentArray.getJSONObject(i).getJSONObject("idIdentify");
    					// 判断主体是否存在
    					String idCacheKey = jsonIdIdentify.getString("name") + jsonIdIdentify.getString("dataId");
    					EvidenceMainInformation mainInformation = null;	
    					if(mapIdCache.get(idCacheKey) == null || "".equals(mapIdCache.get(idCacheKey))) {
    						EvidenceMainInformationExample mainInformationExample = new EvidenceMainInformationExample();
    						EvidenceMainInformationExample.Criteria mainExampleCriteria = mainInformationExample.createCriteria();
    						mainExampleCriteria.andSubjectNameEqualTo(jsonIdIdentify.getString("name"));
    						mainExampleCriteria.andIdentificationEqualTo(jsonIdIdentify.getString("dataId"));
    						List<EvidenceMainInformation> mainInformationList = sqlSession.selectList("com.itrus.portal.db.EvidenceMainInformationMapper.selectByExample", mainInformationExample);
    						if(!mainInformationList.isEmpty()) {
    							mainInformation = mainInformationList.get(0);
    							mapIdCache.put(mainInformation.getSubjectName() + mainInformation.getIdentification(), mainInformation);
    						}
    					} else {
    						mainInformation = mapIdCache.get(idCacheKey);
    					}
    					if(mainInformation == null || "".equals(mainInformation)) {
    						result.put("status", 0);
    						result.put("message", "判断主体为空");
    						return;
    					}
    					
    					// 核验事件认证
    					// 得到证据包中的事件数据
    	    			for(int j=0;j<jsonEvArray.size();j++) {
    	    				JSONObject object = jsonEvArray.getJSONObject(j);
    	    				String name = object.getString("name");
    	    				switch (j) {
    	    				// 事件意愿认证
    	    				case 2:
    	                        if(!bl) {
    	                        	// 查询信息是否已经存证
    	                            EvidenceEventDesireExample ede = new EvidenceEventDesireExample();
    	                            EvidenceEventDesireExample.Criteria edec = ede.createCriteria();
    	                            edec.andEventContenteEqualTo(eventContent.getId());
    	                            edec.andMainInformationEqualTo(mainInformation.getId());
    	                            List<EvidenceEventDesire> eventDesires = sqlSession
    	                                    .selectList("com.itrus.portal.db.EvidenceEventDesireMapper.selectByExample", ede);
    	                            if(!eventDesires.isEmpty()) {
    	                            	break;
    	                            }
    	                        }
    	                        // 判断是否接收
    	                        if(object.getJSONObject("e_isReception").getBooleanValue("e_isReception_1")
    	                                || object.getJSONObject("e_isReception").getBooleanValue("e_isReception_2")) {
    	                        	JSONObject jsonWill = jsonContent.getJSONObject(name);
                                    
                                    if(bl && object.getBooleanValue("e_isRequired") && (
                                            StringUtils.isEmpty(jsonWill.getString("authenticatorThenType"))
                                            ||	(jsonWill.getString("authenticatorThenType").equals("3") 
                                            		&& StringUtils.isEmpty(jsonWill.getString("authenticatorThen")))
                                            ||	StringUtils.isEmpty(jsonWill.getString("way")))) {
                                        result.put("status", 0);
                                        result.put("message", "提交的参数信息不完整,缺少事件意愿认证参数值");
                                        return;
                                    }
                                    EvidenceEventDesire eventDesire = new EvidenceEventDesire();
                                    // 1.证书授权 2.短信验证
                                    if(jsonWill.getIntValue("way") == 1) {
                                        JSONObject jsonCertContent = jsonWill.getJSONObject("certAccreditContent");
                                        if(bl && object.getBooleanValue("e_isRequired") && (
                                                StringUtils.isEmpty(jsonCertContent.getString("certBase64"))
                                                        ||	StringUtils.isEmpty(jsonCertContent.getString("challengeCode"))
                                                        ||	StringUtils.isEmpty(jsonCertContent.getString("answerCode"))
                                                        ||	StringUtils.isEmpty(jsonCertContent.getString("verifyTime")))) {
                                            result.put("status", 0);
                                            result.put("message", "提交的参数信息不完整,缺少事件意愿认证参数值");
                                            return;
                                        }
                                        // 验证证书
                                        String urlCertVerify = realNameAuthentication.getRealNameddress() + CERT_VERIFY;
                                        Map<String, Object> mapCertVerify = new HashMap<String, Object>();
                                        mapCertVerify.put("cert", jsonCertContent.getString("certBase64"));
                                        mapCertVerify.put("verifyFlag", "7");
                                        String rep_cert_verify = HttpClientUtil.postForm(urlCertVerify, AuthService.getHeader(), mapCertVerify);
                                        JSONObject jsonCertVerify = JSONObject.parseObject(rep_cert_verify);
                                        if(StringUtils.isNotEmpty(rep_cert_verify) && jsonCertVerify.getIntValue("code") == 0) {
                                            // 解析证书Base64
                                            UserCert userCert = CertUtil.getCertFromBase64(jsonCertVerify.getString("certBase64"));
                                            eventDesire.setCertSerialnumber(userCert.getCertSn());
                                            eventDesire.setSubjectdn(userCert.getCertDn());
                                            eventDesire.setIssuerdn(userCert.getIssuerDn());
                                            eventDesire.setEvidenceBuf(userCert.getCertBuf().toString());
                                            eventDesire.setStartTime(userCert.getCertStartTime());
                                            eventDesire.setEndTime(userCert.getCertEndTime());
                                        } else {
                                            result.put("status", 0);
                                            result.put("message", "验证证书失败");
                                            return;
                                        }
                                        eventDesire.setChallengeCode(jsonCertContent.getString("challengeCode"));
                                        eventDesire.setAnswerCode(jsonCertContent.getString("answerCode"));
                                        eventDesire.setClientDevice(jsonCertContent.getString("clientFacility"));
                                        eventDesire.setVerificationTime(jsonCertContent.getDate("verifyTime"));
                                        eventDesire.setWaysExpression(jsonWill.getString("way"));
                                    } else if(jsonWill.getIntValue("way") == 2) {
                                        JSONObject jsonSmsContent = jsonWill.getJSONObject("verifySmsContent");
                                        if(bl && object.getBooleanValue("e_isRequired") && (
                                                StringUtils.isEmpty(jsonSmsContent.getString("phone"))
                                                        ||	StringUtils.isEmpty(jsonSmsContent.getString("sendTime"))
                                                        ||	StringUtils.isEmpty(jsonSmsContent.getString("smsContent"))
                                                        ||	StringUtils.isEmpty(jsonSmsContent.getString("verifyCode"))
                                                        ||	StringUtils.isEmpty(jsonSmsContent.getString("verifyTime")))) {
                                            result.put("status", 0);
                                            result.put("message", "提交的参数信息不完整,缺少事件意愿认证参数值");
                                            return;
                                        }
                                        eventDesire.setPhone(jsonSmsContent.getString("phone"));
                                        eventDesire.setSmsContent(jsonSmsContent.getString("smsContent"));
                                        eventDesire.setVerificationCode(jsonSmsContent.getString("verifyCode"));
                                        eventDesire.setSendOutTime(jsonSmsContent.getDate("sendTime"));
                                        eventDesire.setVerificationTime(jsonSmsContent.getDate("verifyTime"));
                                        eventDesire.setWaysExpression(jsonWill.getString("way"));
                                    }
                                    String eventVerifier = getAuthenticator(Integer.parseInt(jsonWill.getString("authenticatorThenType")),
                                            hapPrincipalName, jsonWill.getString("authenticatorThen"));
                                    if(StringUtils.isEmpty(eventVerifier)) {
                                        result.put("status", 0);
                                        result.put("message", "提交的参数信息不完整,缺少身份意愿鉴别参数值");
                                        return;
                                    }
                                    eventDesire.setMainInformation(mainInformation.getId());
                                    eventDesire.setEventContente(eventContent.getId());
                                    eventDesire.setCreateTime(new Date());
                                    eventDesire.setEventVerifierType(jsonWill.getString("authenticatorThenType"));
                                    eventDesire.setEventVerifier(eventVerifier);
                                    eventDesire.setVerificationResult(jsonWill.getString("verifyResult"));
                                    sqlSession.insert("com.itrus.portal.db.EvidenceEventDesireMapper.insert", eventDesire);
    	                            
                                    saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("e_factor"));
    	                        }
    	                        break;
    	                    // 事件地点认证
    	    				case 4:
    	    					if(!bl) {
    	    						// 查询信息是否已经存证
    	    						EvidenceEventNetworkAddressExample nae = new EvidenceEventNetworkAddressExample();
    	    						EvidenceEventNetworkAddressExample.Criteria naec = nae.createCriteria();
    	    						naec.andEventContentEqualTo(eventContent.getId());
    	    						naec.andMainInformationEqualTo(mainInformation.getId());
    	    						List<EvidenceEventNetworkAddress> eventNetworkAddresses = sqlSession
    	    								.selectList("com.itrus.portal.db.EvidenceEventNetworkAddressMapper.selectByExample", nae);
    	    						if(!eventNetworkAddresses.isEmpty()) {
    	    							break;
    	    						}
    	    					}
    	    					// 判断是否接收
    	    					if(object.getBooleanValue("e_isReception")) {
        							JSONObject jsonAddress = jsonContent.getJSONObject("netAddress");
        							// 定义事件网络地址对象
        							EvidenceEventNetworkAddress eventNetworkAddress = new EvidenceEventNetworkAddress();
        							// 整合数据 存储
        							eventNetworkAddress.setEventContent(eventContent.getId());
        							eventNetworkAddress.setMainInformation(mainInformation.getId());
        							eventNetworkAddress.setCreateTime(new Date());
        							if(jsonAddress.getBooleanValue("typeReg")) {
        								JSONObject jsonContentReg = jsonAddress.getJSONObject("content");
        								eventNetworkAddress.setType("1");
        								eventNetworkAddress.setAccountNumber(jsonContentReg.getString("code"));
        								eventNetworkAddress.setIpAddress(jsonContentReg.getString("ipAddress"));
        								eventNetworkAddress.setSigninTime(jsonContentReg.getDate("time"));
        							} else {
        								eventNetworkAddress.setType("0");
        							}
        							if(jsonAddress.getBooleanValue("typeSign")) {
        								JSONObject jsonContentSign = jsonAddress.getJSONObject("content1");
        								eventNetworkAddress.setSigninNumber(jsonContentSign.getString("code"));
        								eventNetworkAddress.setSigninipAddress(jsonContentSign.getString("ipAddress"));
        								eventNetworkAddress.setSendOutTime(jsonContentSign.getDate("time"));
        								eventNetworkAddress.setSigninType("1");
        							} else {
        								eventNetworkAddress.setSigninType("0");
        							}
        							sqlSession.insert("com.itrus.portal.db.EvidenceEventNetworkAddressMapper.insert", eventNetworkAddress);
    	    						
    	    						saveFactor = EvidenceSaveServiceApi.mergeFactor(saveFactor, object.getString("e_factor"));
    	    					}
    	    					break;
    	    				}
    	    			}
        			}
    			}*/
        }
        result.put("saveFactor", saveFactor);
        result.put("basicInformation", basicInformation);
        result.put("objs", objs);
        return result;
    } catch (Exception e) {
        e.printStackTrace();
        StackTraceElement stackTraceElement = e.getStackTrace()[e.getStackTrace().length - 5];
        String info = stackTraceElement.getClassName() + stackTraceElement.getLineNumber() + e.toString();
        LogUtil.evidencelog(sqlSession, evidenceSn, "存证接口", "存证失败,证据编号:" + evidenceSn + ", 失败原因:" + info);
        result.put("status", -5);
        result.put("message", "系统服务错误,请联系管理员");
        return result;
    }
}
Also used : HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) JSONArray(com.alibaba.fastjson.JSONArray) EvidenceSubjectIdentity(com.itrus.portal.db.EvidenceSubjectIdentity) EvidenceMainInformation(com.itrus.portal.db.EvidenceMainInformation) Date(java.util.Date) EvidenceEventContentExample(com.itrus.portal.db.EvidenceEventContentExample) JSONObject(com.alibaba.fastjson.JSONObject) JSONObject(com.alibaba.fastjson.JSONObject) EvidenceMainInformationExample(com.itrus.portal.db.EvidenceMainInformationExample) EvidenceEventContent(com.itrus.portal.db.EvidenceEventContent)

Example 10 with EvidenceEventContent

use of com.itrus.portal.db.EvidenceEventContent 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";
}
Also used : EvidenceIndividual(com.itrus.portal.db.EvidenceIndividual) HashMap(java.util.HashMap) PersonalNameExample(com.itrus.portal.db.PersonalNameExample) ArrayList(java.util.ArrayList) Corporateinformation(com.itrus.portal.db.Corporateinformation) EvidenceRealName(com.itrus.portal.db.EvidenceRealName) ArrayList(java.util.ArrayList) List(java.util.List) EvidenceEventDesire(com.itrus.portal.db.EvidenceEventDesire) Enterprisebank(com.itrus.portal.db.Enterprisebank) EvidenceDesireIdentify(com.itrus.portal.db.EvidenceDesireIdentify) EvidenceEventBehaviorExample(com.itrus.portal.db.EvidenceEventBehaviorExample) EvidenceHisRelationship(com.itrus.portal.db.EvidenceHisRelationship) EvidenceEnclosureExample(com.itrus.portal.db.EvidenceEnclosureExample) RealNameRecord(com.itrus.portal.db.RealNameRecord) EvidenceEventContentExample(com.itrus.portal.db.EvidenceEventContentExample) EvidenceEventTime(com.itrus.portal.db.EvidenceEventTime) EvidenceRepresentative(com.itrus.portal.db.EvidenceRepresentative) File(java.io.File) MultipartFile(org.springframework.web.multipart.MultipartFile) EvidenceRealNameExample(com.itrus.portal.db.EvidenceRealNameExample) Organization(com.itrus.portal.db.Organization) EvidenceBasicInformation(com.itrus.portal.db.EvidenceBasicInformation) EvidenceHisCertificate(com.itrus.portal.db.EvidenceHisCertificate) EvidenceEnclosure(com.itrus.portal.db.EvidenceEnclosure) EvidenceTheAgent(com.itrus.portal.db.EvidenceTheAgent) Agentinformation(com.itrus.portal.db.Agentinformation) EvidenceDesireIdentifyExample(com.itrus.portal.db.EvidenceDesireIdentifyExample) PersonalName(com.itrus.portal.db.PersonalName) EvidenceEventDesireExample(com.itrus.portal.db.EvidenceEventDesireExample) EvidenceEventTimeExample(com.itrus.portal.db.EvidenceEventTimeExample) EvidenceCompaniesSubmit(com.itrus.portal.db.EvidenceCompaniesSubmit) EvidenceEventContent(com.itrus.portal.db.EvidenceEventContent) Licenseinformation(com.itrus.portal.db.Licenseinformation) EvidenceHisRelationshipExample(com.itrus.portal.db.EvidenceHisRelationshipExample) IOException(java.io.IOException) FileNotFoundException(java.io.FileNotFoundException) Date(java.util.Date) EvidenceEventBehavior(com.itrus.portal.db.EvidenceEventBehavior) EvidenceHisCertificateExample(com.itrus.portal.db.EvidenceHisCertificateExample) EvidenceTrustedIdentity(com.itrus.portal.db.EvidenceTrustedIdentity) Bankcardelements(com.itrus.portal.db.Bankcardelements) RealNameRecordExample(com.itrus.portal.db.RealNameRecordExample) EvidenceTrustedIdentityExample(com.itrus.portal.db.EvidenceTrustedIdentityExample) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Aggregations

EvidenceEventContent (com.itrus.portal.db.EvidenceEventContent)12 EvidenceBasicInformation (com.itrus.portal.db.EvidenceBasicInformation)10 EvidenceEnclosure (com.itrus.portal.db.EvidenceEnclosure)10 HashMap (java.util.HashMap)10 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)9 ArrayList (java.util.ArrayList)8 Date (java.util.Date)8 EvidenceEnclosureExample (com.itrus.portal.db.EvidenceEnclosureExample)7 EvidenceEventDesire (com.itrus.portal.db.EvidenceEventDesire)7 EvidenceTrustedIdentity (com.itrus.portal.db.EvidenceTrustedIdentity)7 EvidenceCompaniesSubmit (com.itrus.portal.db.EvidenceCompaniesSubmit)6 EvidenceDesireIdentify (com.itrus.portal.db.EvidenceDesireIdentify)6 EvidenceEventBehavior (com.itrus.portal.db.EvidenceEventBehavior)6 EvidenceEventContentExample (com.itrus.portal.db.EvidenceEventContentExample)6 EvidenceEventTime (com.itrus.portal.db.EvidenceEventTime)6 EvidenceIndividual (com.itrus.portal.db.EvidenceIndividual)6 EvidenceMainInformation (com.itrus.portal.db.EvidenceMainInformation)6 EvidenceRealName (com.itrus.portal.db.EvidenceRealName)6 File (java.io.File)6 EvidenceBasicInformationExample (com.itrus.portal.db.EvidenceBasicInformationExample)5