use of com.itrus.portal.db.EvidenceBasicInformation in project portal by ixinportal.
the class EvidenceSaveServiceApi method generateTask.
/**
* 出证
* @param signature
* 签名值
* @param appId
* 应用标识
* @param serviceCode
* 服务编码
* @param evidenceSns
* 要出证的证据编号(多个用逗号隔开)
* @param businessSn
* 事件发生平台业务单号
* @param request
* @return
*/
@RequestMapping(value = "/generate")
@ResponseBody
public Map<String, Object> generateTask(@RequestHeader("Content-Signature") String signature, @RequestParam(value = "appId", required = true) String appId, @RequestParam(value = "serviceCode", required = true) String serviceCode, @RequestParam(value = "evidenceSns", required = false) String evidenceSns, @RequestParam(value = "businessSn", required = false) String businessSn, @RequestParam(value = "name", required = true) String name, @RequestParam(value = "code", required = true) String code, HttpServletRequest request) {
log.equals("【提交出证申请日志】appId=" + appId + ",serviceCode=" + serviceCode + ",evidenceSns=" + evidenceSns + ",businessSn=" + businessSn + ",name=" + name + ",code=" + code);
// 申请时间
Date date = new Date();
// TODO : 出证接口
Map<String, Object> result = new HashMap<String, Object>();
result.put("status", 1);
// 验证参数是否完整
if (StringUtils.isEmpty(signature) || StringUtils.isEmpty(appId) || StringUtils.isEmpty(serviceCode) || StringUtils.isEmpty(code) || StringUtils.isEmpty(name) || (evidenceSns == null && StringUtils.isEmpty(businessSn))) {
result.put("status", 0);
result.put("message", "提交的参数信息不完整");
return result;
}
// 得到应用信息 改成service
Map<String, ApplicationInfo> appInfoMap = CacheCustomer.getAPP_INFO_MAP();
ApplicationInfo applicationInfo = appInfoMap.get(appId);
if (applicationInfo == null) {
ApplicationInfoExample applicationInfoExample = new ApplicationInfoExample();
ApplicationInfoExample.Criteria appInfoExampleCriteria = applicationInfoExample.createCriteria();
appInfoExampleCriteria.andAppIdEqualTo(appId);
applicationInfo = sqlSession.selectOne("com.itrus.portal.db.ApplicationInfoMapper.selectByExample", applicationInfoExample);
}
if (applicationInfo == null) {
result.put("status", -11);
result.put("message", "应用标识不存在");
return result;
}
if (applicationInfo.getIsAppStatus() == 0) {
result.put("status", -12);
result.put("message", "应用状态已关闭");
return result;
}
// 核验ip限制
if (!applicationInfo.getAccessIp().contains(request.getRemoteAddr()) && "1".equals(applicationInfo.getIsIpStatus())) {
result.put("status", -1);
result.put("message", "没有此服务权限");
log.debug("EvidenceSaveSeriveceTest_AccsessIp : " + request.getRemoteAddr());
return result;
}
// 验证hmac有效性
try {
String macVal = Base64.encode(HMACSHA1.getHmacSHA1(appId + serviceCode + evidenceSns + businessSn + name + code, applicationInfo.getSecretKey()), false);
if (!signature.equals("HMAC-SHA1 " + macVal)) {
result.put("status", -2);
result.put("message", "服务密钥错误");
return result;
}
} catch (Exception e) {
result.put("status", -3);
result.put("message", "Hmac验证错误");
e.printStackTrace();
return result;
}
// 获取对应应用信息
EvidenceOutServiceConfig outServiceConfig = null;
AppService appService = appServiceExt.getAppService(serviceCode);
if (appService != null && "EvidenceOutServiceConfig".equals(appService.getServiceConfigName())) {
outServiceConfig = configService.selectById(appService.getServiceConfigId());
} else {
result.put("status", -21);
result.put("message", "应用服务不存在");
return result;
}
if (outServiceConfig == null) {
result.put("status", -21);
result.put("message", "应用服务不存在");
return result;
}
if (appService.getIsAppServiceStatus() == 0) {
result.put("status", -22);
result.put("message", "服务已关闭");
return result;
}
if (outServiceConfig.getOutWay() == null) {
result.put("status", 0);
result.put("message", "请联系管理员配置出证方式");
return result;
}
// 得到出证份数
int count = 0;
if (StringUtils.isNotEmpty(evidenceSns)) {
count = evidenceSns.split(",").length;
} else {
List<EvidenceBasicInformation> basicInformations = basicInformationService.getInformationByBusinessSn(businessSn, 2);
count = basicInformations.size();
}
// 核验计费
boolean blCharing = takeChargingService.checkTakeCharing(applicationInfo, appService, count);
if (!blCharing) {
result.put("status", -4);
result.put("message", "服务计费失败");
return result;
}
// 生成流水号
String orderNumber = UniqueIDUtils.genAppServiceUID(applicationInfo, appService.getAppServiceName(), sqlSession, 3);
// 修改需要出证的证据为待出征状态
if (StringUtils.isNotEmpty(evidenceSns)) {
String[] evidenceSnArr = evidenceSns.split(",");
for (String evidenceSn : evidenceSnArr) {
EvidenceBasicInformation basicInformation = basicInformationService.getInformationBySn(evidenceSn, 2);
if (basicInformation != null) {
basicInformation.setStatus(1);
sqlSession.update("com.itrus.portal.db.EvidenceBasicInformationMapper.updateByPrimaryKey", basicInformation);
sqlSession.flushStatements();
}
}
} else {
List<EvidenceBasicInformation> basicInformations = basicInformationService.getInformationByBusinessSn(businessSn, 2);
if (basicInformations != null) {
for (EvidenceBasicInformation basicInformation : basicInformations) {
basicInformation.setStatus(1);
sqlSession.update("com.itrus.portal.db.EvidenceBasicInformationMapper.updateByPrimaryKey", basicInformation);
sqlSession.flushStatements();
}
}
}
// 判断是否为自动出证
if ((int) result.get("status") == 1 && outServiceConfig.getOutWay() == 1) {
// queueTask.putObjectQueue(new EvidenceLog(orderNumber, outServiceConfig, applicationInfo, appService, evidenceSns, businessSn, date, code, count, true));
result.put("status", 1);
result.put("message", "申请自动出证成功,请稍后通过查询出证接口查看出证结果!");
result.put("orderNumber", orderNumber);
} else {
queueTask.putObjectQueue(new EvidenceOutTask(orderNumber, outServiceConfig, applicationInfo, appService, evidenceSns, businessSn, date, code, count, false));
result.put("status", 0);
result.put("message", "已转入人工出证");
}
return result;
}
use of com.itrus.portal.db.EvidenceBasicInformation in project portal by ixinportal.
the class EvidenceSaveTask method saveBody.
// private AtomicInteger counter = new AtomicInteger(0);
// private static final String CERT_VERIFY = "/cert/verify";
// 验证pdf文档签章
// private static final String PDF_VERIFY = "/pdf/verify";
// private Map<String, Object> result;
// private ApplicationInfo applicationInfo;
// private AppService appService;
// private EvidenceSaveService evidenceSaveService;
// private Date applyDate;
// private String evidenceSn;
// private String genSn;
// private String signedBase64;
// private String evidencePackage;
// private String hashAlg;
// private String hashvalue;
// private Date dateVp;
// private Date dateVc;
// private List<String> certs;
// private RealNameAuthentication realNameAuthentication;
// private RealNameAuthentication realNameAuthenticationTime;
// private RealNameAuthentication realNameAuthenticationOss;
// private Map<String, Object> mapCharging;
// private static EvidenceSaveTask evidenceSaveTask;
// public static EvidenceSaveTask getInstance() {
// if(evidenceSaveTask == null) {
// synchronized (EvidenceSaveTask.class) {
// evidenceSaveTask = new EvidenceSaveTask();
// }
// }
// return evidenceSaveTask;
// }
// public EvidenceSaveTask () {
// super();
// }
// private ScheduledTask scheduledTask = SpringContextHolder.getBean(ScheduledTask.class);
// public EvidenceSaveTask(Map<String, Object> result, ApplicationInfo applicationInfo, AppService appService,
// EvidenceSaveService evidenceSaveService, Date applyDate, String evidenceSn, String genSn,
// String signedBase64, String evidencePackage, String hashAlg, String hashvalue, Date dateVp,
// Date dateVc, List<String> certs, RealNameAuthentication realNameAuthentication,
// RealNameAuthentication realNameAuthenticationTime, RealNameAuthentication realNameAuthenticationOss,
// Map<String, Object> mapCharging) {
// this.result = result;
// this.applicationInfo = applicationInfo;
// this.appService = appService;
// this.evidenceSaveService = evidenceSaveService;
// this.applyDate = applyDate;
// this.evidenceSn = evidenceSn;
// this.genSn = genSn;
// this.signedBase64 = signedBase64;
// this.evidencePackage = evidencePackage;
// this.hashAlg = hashAlg;
// this.hashvalue = hashvalue;
// this.dateVp = dateVp;
// this.dateVc = dateVc;
// this.certs = certs;
// this.realNameAuthentication = realNameAuthentication;
// this.realNameAuthenticationTime = realNameAuthenticationTime;
// this.realNameAuthenticationOss = realNameAuthenticationOss;
// this.mapCharging = mapCharging;
// }
/**
* 删除证件包
* @param fileName
* @return
* @throws Exception
*/
// public boolean deleteEvidence(String fileName) throws Exception{
// try {
// File file = new File(systemConfigService.getpdfurl(), fileName);
// if(file.exists()) {
// return file.delete();
// }
// } catch (Exception e) {
// e.printStackTrace();
// }
// return false;
// }
/**
* 核验处理方法
* @param result
* 返回值
* @param applicationInfo
* 应用
* @param evidenceSaveService
* 服务配置
* @param evidenceSn
* 证据编号
* @param signedBase64
* 签名值
* @param evidencePackage
* 证据包
* @return
* @throws Exception
*/
public Map<String, Object> saveBody(Map<String, Object> result, ApplicationInfo applicationInfo, AppService appService, EvidenceSaveService evidenceSaveService, Date applyDate, String evidenceSn, String genSn, String signedBase64, String evidencePackage, String hashAlg, String hashvalue, Date dateVp, Date dateVc, List<String> certs, RealNameAuthentication realNameAuthentication, RealNameAuthentication realNameAuthenticationTime, RealNameAuthentication realNameAuthenticationOss, Map<String, Object> mapCharging) throws Exception {
List<Object> objs = new ArrayList<Object>();
String info = null;
// 证据服务记录
EvidenceBasicInformation basicInformation = null;
// 本次证据包大小
int fileSize = evidencePackage.getBytes().length;
// 定义一个证据的提交次数
int count = 0;
try {
// 定义时间戳固定时间
// Date genTime = null;
String failureReason = null;
JSONObject jsonEvidenceContent = JSONObject.parseObject(evidencePackage);
// 定义证书固定服务配置
EvidenceServiceConfiguration serviceConfiguration = null;
// 定义证书固定服务配置
serviceConfiguration = CacheCustomer.getEVIDENCE_SERVICE_CONFIG();
if (serviceConfiguration == null) {
// 得到证书固定服务配置
List<EvidenceServiceConfiguration> serviceconfig = sqlSession.selectList("com.itrus.portal.db.EvidenceServiceConfigurationMapper.selectByExample");
if (!serviceconfig.isEmpty()) {
serviceConfiguration = serviceconfig.get(0);
CacheCustomer.setEVIDENCE_SERVICE_CONFIG(serviceConfiguration);
} else {
result.put("status", -22);
result.put("message", "缺少服务配置");
return result;
}
}
// 验签信息入库
EvidenceClientSignature clientSignature = new EvidenceClientSignature();
clientSignature.setHashAlgorithm(hashAlg);
clientSignature.setHashvalue(hashvalue);
clientSignature.setName("0");
// ---- 关联证书
clientSignature.setCertId(Long.parseLong(applicationInfo.getCertBase64()));
clientSignature.setSignatureType("2");
clientSignature.setIdentiType("1");
clientSignature.setSignaturevalue(signedBase64);
clientSignature.setCreateTime(dateVp);
// clientSignature.setCreateTimeMs(applyDate.getTime());
if (StringUtils.isNotEmpty(evidenceSn))
clientSignature.setEvidenceSn(evidenceSn);
else
clientSignature.setEvidenceSn(genSn);
// queueThread.putObjectQueue(clientSignature);
objs.add(clientSignature);
clientSignature = null;
// 密钥别名定义
String alias = null;
// 判断是否需要签名或时间戳
if (evidenceSaveService.getFixationWay() != null && evidenceSaveService.getFixationWay() != 1) {
// 判断是否需要签名
if (evidenceSaveService.getFixationWay() == 2 || evidenceSaveService.getFixationWay() == 4) {
// 定义签名参数
Map<String, Object> param = new HashMap<String, Object>();
String url = null;
// 判断签名类型配置是否为空
if (StringUtils.isNotBlank(serviceConfiguration.getSignatureType())) {
// 得到配置证书
EvidenceCertificate evidenceCertificate = null;
evidenceCertificate = CacheCustomer.getEVIDENCE_CERTIFICATE_MAP().get((long) serviceConfiguration.getSignatureCertificate());
if (evidenceCertificate == null) {
evidenceCertificate = certificateService.selectById((long) serviceConfiguration.getSignatureCertificate());
}
// 得到服务配置的签名证书的密钥别名
alias = CacheCustomer.getMAP_COMFIG().get((long) serviceConfiguration.getSignatureCertificate());
if (StringUtils.isEmpty(alias)) {
alias = secretKeyService.getAliasByCertId((long) serviceConfiguration.getSignatureCertificate());
}
// 配置签名url 和 参数 1.裸签名 2.p7分离式签名 3.p7非分离式签名 (本期只做2)
switch(Integer.parseInt(serviceConfiguration.getSignatureType())) {
case 1:
param.put("alias", alias);
param.put("hashAlg", serviceConfiguration.getArithmetic());
param.put("contentType", "CT_HASH");
url = realNameAuthentication.getRealNameddress() + SIGNATURE_SIGN;
break;
case 2:
param.put("alias", alias);
param.put("hashAlg", serviceConfiguration.getArithmetic());
param.put("detached", true);
param.put("contentType", "CT_HASH");
param.put("content", HMACSHA1.getDigest(serviceConfiguration.getArithmetic(), evidencePackage));
url = realNameAuthentication.getRealNameddress() + P7_SIGN;
break;
case 3:
param.put("alias", alias);
param.put("hashAlg", serviceConfiguration.getArithmetic());
param.put("detached", false);
param.put("contentType", "CT_HASH");
param.put("content", HMACSHA1.getDigest(serviceConfiguration.getArithmetic(), evidencePackage));
url = realNameAuthentication.getRealNameddress() + P7_SIGN;
break;
}
// 异步处理p7签名
// HttpAsyncClientUtil.getInstance().execute(
// url,
// AuthService.getHeader(),
// param,
// new EvidenceSignTask(
// url,
// param,
// evidenceSn!=null?evidenceSn:genSn,
// Long.parseLong(evidenceCertificate.getCert())));
String strP7 = null;
try {
// strP7 = clientService.postForm(url, AuthService.getHeader(), param);
strP7 = OkHttpClientManagerSign.post(url, AuthService.getHeader().get("Authorization").toString(), param);
} catch (Exception e) {
e.printStackTrace();
LogUtil.evidencelog(sqlSession, (evidenceSn != null ? evidenceSn : genSn).toString(), "存证接口_天威签名", "天威签名失败,证据编号:" + (evidenceSn != null ? evidenceSn : genSn).toString() + ", 请求参数:" + param.toString() + ", 请求地址:" + url + ", 返回结果:" + strP7 + ", 失败原因:" + e.toString());
// TODO: handle exception
result.put("status", 0);
result.put("message", "天威签名失败");
return result;
}
// log.error("strP7 : " + strP7);
JSONObject jsonRepP7Sign = JSONObject.parseObject(strP7);
if (jsonRepP7Sign.getIntValue("code") != 0) {
// 天威签名失败
LogUtil.evidencelog(sqlSession, (evidenceSn != null ? evidenceSn : genSn).toString(), "存证接口_天威签名", "天威签名失败,证据编号:" + (evidenceSn != null ? evidenceSn : genSn).toString() + ", 请求参数:" + param.toString() + ", 请求地址:" + url + ", 返回结果:" + strP7 + ", 失败原因:" + jsonRepP7Sign.getString("message"));
result.put("status", 0);
result.put("message", "天威签名失败");
return result;
} else {
// 天威签名服务记录入库
EvidenceClientSignature signature = new EvidenceClientSignature();
signature.setHashAlgorithm(param.get("hashAlg").toString());
signature.setName("1");
signature.setEvidenceSn(evidenceSn != null ? evidenceSn : genSn);
signature.setSignatureType("2");
signature.setCertId(Long.parseLong(evidenceCertificate.getCert()));
signature.setHashvalue(param.get("content").toString());
signature.setSignaturevalue(jsonRepP7Sign.getString("signedData"));
signature.setCreateTime(new Date());
// signature.setCreateTimeMs(applyDate.getTime());
objs.add(signature);
}
evidenceCertificate = null;
}
}
// 判断是否需要签名时间戳
if (evidenceSaveService.getFixationWay() == 3 || evidenceSaveService.getFixationWay() == 4) {
// 对证据包HASH
String plainHash = HMACSHA1.getDigest(serviceConfiguration.getArithmetic(), evidencePackage);
// 异步处理时间戳 --- 本期是实现新版本接口
Map<String, Object> retTime = EvidenceSaveServiceApi.genTimeStamp(realNameAuthenticationTime, plainHash, serviceConfiguration.getArithmetic(), evidenceSn != null ? evidenceSn : genSn, null);
if (!(boolean) retTime.get("retStatus") && retTime.get("obj") != null) {
result.put("status", 0);
result.put("message", "天威时间戳签名失败");
return result;
}
objs.add(retTime.get("obj"));
}
}
alias = null;
Map<String, Object> retSaveMap = new HashMap<String, Object>();
// 判断证据编号是否为空 true -> 证据编码为空 代表第一次存证 ,false ->证据编码不为空 代表不是第一次存证
if (StringUtils.isEmpty(evidenceSn)) {
basicInformation = new EvidenceBasicInformation();
basicInformation.setReceiptStatus(0);
basicInformation.setStatus(0);
basicInformation.setIsCallback(0);
basicInformation.setCreateTime(new Date());
// basicInformation.setCreateTimeMs(applyDate.getTime());
basicInformation.setEndTime(EvidenceSaveServiceApi.convertDate(evidenceSaveService.getSaveTime()));
basicInformation.setEvidenceSize(fileSize);
basicInformation.setEvidenceSn(genSn);
basicInformation.setAppService(appService.getId());
basicInformation.setEvidenceStatus(1);
basicInformation.setApplicationInfo(applicationInfo.getId());
basicInformation.setOutAppService(evidenceSaveService.getAppServiceName());
basicInformation.setSaveServiceNmae(appService.getAppServiceName());
basicInformation.setServicePlatformName(applicationInfo.getName());
basicInformation.setServiceClientName(applicationInfo.getServiceClientName());
basicInformation.setServiceClientId(applicationInfo.getServiceClientId());
if (StringUtils.isNotEmpty(failureReason)) {
basicInformation.setFailureReason(failureReason);
basicInformation.setEvidenceStatus(0);
result.put("status", 0);
}
// 对要素 (接收 核验 必填) 操作进行处理
retSaveMap = saveFactor(retSaveMap, evidenceSaveService, genSn, jsonEvidenceContent, basicInformation, realNameAuthentication, realNameAuthenticationOss, serviceConfiguration, true);
} else {
EvidenceBasicInformationExample basicInformationExample = new EvidenceBasicInformationExample();
EvidenceBasicInformationExample.Criteria beCriteria = basicInformationExample.createCriteria();
beCriteria.andEvidenceSnEqualTo(evidenceSn);
List<EvidenceBasicInformation> basicInformationList = sqlSession.selectList("com.itrus.portal.db.EvidenceBasicInformationMapper.selectByExample", basicInformationExample);
if (basicInformationList.size() == 0 || basicInformationList.isEmpty()) {
result.put("status", 0);
result.put("message", "未找到对应证据编号信息");
return result;
}
basicInformation = basicInformationList.get(0);
if (basicInformation.getEvidenceStatus() != null && basicInformation.getEvidenceStatus() == 0) {
result.put("status", 0);
result.put("message", "本次证据补交失败。对应证据编号已存在核验失败信息,原因:" + basicInformation.getFailureReason());
return result;
}
// 得到提交次数
EvidenceEnclosureExample enclosureExample = new EvidenceEnclosureExample();
EvidenceEnclosureExample.Criteria eec = enclosureExample.createCriteria();
eec.andBasicInformationEqualTo(basicInformation.getId());
eec.andPdfTypeEqualTo("1");
List<EvidenceEnclosure> enclosures = sqlSession.selectList("com.itrus.portal.db.EvidenceEnclosureMapper.selectByExample", enclosureExample);
if (!enclosures.isEmpty()) {
count = enclosures.size();
}
basicInformation.setEvidenceSize(basicInformation.getEvidenceSize() + fileSize);
basicInformation.setAppService(appService.getId());
// 对要素 (接收 核验) 操作进行处理
retSaveMap = saveFactor(retSaveMap, evidenceSaveService, evidenceSn, jsonEvidenceContent, basicInformation, realNameAuthentication, realNameAuthenticationOss, serviceConfiguration, false);
}
String saveFactor = null;
if (retSaveMap.get("status") != null) {
result.put("status", retSaveMap.get("status"));
result.put("message", retSaveMap.get("message"));
return result;
} else {
List<Object> lists = (List<Object>) retSaveMap.get("objs");
for (Object obj : lists) {
objs.add(obj);
}
}
basicInformation = (EvidenceBasicInformation) retSaveMap.get("basicInformation");
if (basicInformation.getEvidenceStatus() != null && basicInformation.getEvidenceStatus() == 0) {
result.put("status", 0);
result.put("message", basicInformation.getEvidenceStatus());
return result;
}
// 得到加密证书别名
alias = CacheCustomer.getMAP_COMFIG().get((long) serviceConfiguration.getEncryptionCertificate());
if (StringUtils.isEmpty(alias)) {
alias = secretKeyService.getAliasByCertId((long) serviceConfiguration.getEncryptionCertificate());
}
// 内部加密存储证据包
String urlSave = realNameAuthentication.getRealNameddress() + "/storage/save";
Map<String, Object> mapSave = new HashMap<String, Object>();
mapSave.put("type", "ST_E");
mapSave.put("bucketName", realNameAuthenticationOss.getKeyCode());
mapSave.put("objectName", applicationInfo.getServiceClientId() + "/" + (StringUtils.isEmpty(evidenceSn) ? genSn : evidenceSn) + (count + 1));
mapSave.put("contentType", "CT_BASE64_DATA");
mapSave.put("content", Base64.encode(evidencePackage.getBytes("utf-8")));
mapSave.put("alias", alias);
mapSave.put("digestZValue", false);
mapSave.put("encAlg", serviceConfiguration.getEncryptionAlgorithm());
if (result.get("saveFactor") != null) {
saveFactor = retSaveMap.get("saveFactor").toString();
}
// 异步处理存储
// HttpAsyncClientUtil.getInstance().execute(
// urlSave,
// AuthService.getHeader(),
// mapSave,
// new EvidenceSavePackageTask(
// urlSave,
// mapSave,
// null,
// evidenceSn!=null?evidenceSn:genSn,
// Integer.toString(fileSize),
// genTime,
// applyDate,
// Integer.toString(evidenceSaveService.getSaveTime()),
// saveFactor));
// String retSave = clientService.postForm(urlSave, AuthService.getHeader(), mapSave);
String retSave = null;
try {
retSave = OkHttpClientManagerSave.post(urlSave, AuthService.getHeader().get("Authorization").toString(), mapSave);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
LogUtil.evidencelog(sqlSession, (evidenceSn != null ? evidenceSn : genSn).toString(), "存证接口_存储数据包", "存储数据包失败,证据编号:" + (evidenceSn != null ? evidenceSn : genSn).toString() + ", 请求参数:" + mapSave.toString() + ", 请求地址:" + urlSave + ",返回结果" + retSave + ", 失败原因:" + e.toString());
result.put("status", 0);
result.put("message", "证据存储失败");
return result;
}
JSONObject jsonSave = JSONObject.parseObject(retSave);
if (jsonSave.getIntValue("code") != 0) {
// 天威签名失败
LogUtil.evidencelog(sqlSession, (evidenceSn != null ? evidenceSn : genSn).toString(), "存证接口_存储数据包", "存储数据包失败,证据编号:" + (evidenceSn != null ? evidenceSn : genSn).toString() + ", 请求参数:" + mapSave.toString() + ", 请求地址:" + urlSave + ",返回结果" + retSave + ", 失败原因:" + jsonSave);
result.put("status", 0);
result.put("message", "证据存储失败");
return result;
} else {
EvidenceEnclosure enclosure = new EvidenceEnclosure();
enclosure.setBuid(jsonSave.getString("buid"));
enclosure.setEvidenceSn((evidenceSn != null ? evidenceSn : genSn).toString());
enclosure.setFilesize(Integer.toString(fileSize));
enclosure.setPdfType("1");
enclosure.setApplicationTime(applyDate);
enclosure.setCreateTime(new Date());
// enclosure.setCreateTimeMs(applyDate.getTime());
enclosure.setSaveTime(Integer.toString(evidenceSaveService.getSaveTime()));
if (mapSave.get("type") != null)
enclosure.setType(mapSave.get("type").toString());
if (mapSave.get("contentType") != null)
enclosure.setContentType(mapSave.get("contentType").toString());
if (mapSave.get("bucketName") != null)
enclosure.setBucketName(mapSave.get("bucketName").toString());
if (mapSave.get("objectName") != null)
enclosure.setObjectName(mapSave.get("objectName").toString());
if (mapSave.get("alias") != null)
enclosure.setAlias(mapSave.get("alias").toString());
enclosure.setFixationTime(new Date());
if (saveFactor != null) {
enclosure.setSaveFactor(saveFactor);
}
// queueThread.putObjectQueue(enclosure);
objs.add(enclosure);
}
// 判断是否为补交
if (count > 0) {
// 判断是否出过证据, true : 修改出证状态为部分出 ; 出证状态:0未出1待出2已出 3部分出 4出证失败
if (basicInformation.getStatus() == 2) {
basicInformation.setStatus(3);
}
}
// }
if ((int) result.get("status") == 1) {
// 判断是否需要生成存在回执
// if(evidenceSaveService.getAppServiceName() != null) {
// // 生成存证回执报告 查询存证时
// Map<String, Object> mapRet = reportTemplate.returnreceipt(basicInformation.getEvidenceSn(), applicationInfo);
// if(mapRet.get("status") != null && (int)mapRet.get("status") == 0) {
// basicInformation.setReceiptStatus(1);//存证回执状态1已出0未出
// } else {
// // throw new Exception("生成存证回执报告失败," + mapRet.get("message"));
// }
// }
// EvidenceSubmitDateExample dateExample = new EvidenceSubmitDateExample();
// EvidenceSubmitDateExample.Criteria criteria = dateExample.createCriteria();
// if(StringUtils.isNotBlank(evidenceSn))
// criteria.andEvidenceSnEqualTo(evidenceSn);
// else
// criteria.andEvidenceSnEqualTo(genSn);
// sqlSession.delete("com.itrus.portal.db.EvidenceClientTimeStampMapper.deleteByExample", dateExample);
} else {
basicInformation.setEvidenceStatus(0);
if (StringUtils.isEmpty(basicInformation.getFailureReason())) {
if (result.get("message") != null) {
basicInformation.setFailureReason(result.get("message").toString());
}
} else {
if (result.get("message") != null) {
basicInformation.setFailureReason(basicInformation.getFailureReason() + "," + result.get("message").toString());
}
}
}
// queueThread.putObjectQueue(basicInformation);
objs.add(basicInformation);
queueThread.putListQueue(objs);
// 记录计费流水
if ((int) mapCharging.get("retCode") == 1) {
// log.error("计费次数:" + counter.getAndIncrement());
// log.error("【计费】");
Map<String, Object> mapStoreCg = storeChargingService.storeCharging(appService.getServiceConfigName(), appService.getServiceConfigId(), applicationInfo, appService, null, "EvidenceBasicInformation", evidenceSaveService.getBaseSpace(), EvidenceSaveServiceApi.getSize(fileSize), StringUtils.isBlank(evidenceSn), (evidenceSn != null ? evidenceSn : genSn).toString());
// + ",totalSize__ : " + EvidenceSaveServiceApi.getSize(fileSize));
if ((int) mapStoreCg.get("retCode") != 1) {
result.put("status", -4);
result.put("message", "服务计费失败");
return result;
}
}
// sqlSession.update("com.itrus.portal.db.EvidenceBasicInformationMapper.updateByPrimaryKey", basicInformation);
// sqlSession.flushStatements();
// if((int)result.get("status") == 1) {
// LogUtil.evidencelog(sqlSession, "存证接口", "存证基础信息保存成功,证据编号:" + basicInformation.getEvidenceSn());
// } else {
// LogUtil.evidencelog(sqlSession, "存证接口", "存证失败,详情:"+ basicInformation.getEvidenceSn()
// + basicInformation.getFailureReason());
// }
} catch (Exception e) {
e.printStackTrace();
if (null == info) {
info = "系统处理异常!";
}
// StackTraceElement stackTraceElement = e.getStackTrace()[e.getStackTrace().length-2];
// info = stackTraceElement.getClassName() + stackTraceElement.getLineNumber() + e.toString();
LogUtil.evidencelog(sqlSession, (evidenceSn != null ? evidenceSn : genSn).toString(), "存证接口", "存证失败,证据编号:" + (evidenceSn != null ? evidenceSn : genSn).toString() + ", 失败原因:" + e.toString());
result.put("status", -5);
result.put("message", "系统服务错误,请联系管理员");
return result;
} finally {
result.remove("saveFactor");
result.remove("basicInformation");
}
return result;
}
use of com.itrus.portal.db.EvidenceBasicInformation in project portal by ixinportal.
the class HisCertificateController method preview.
/**
* 预览出证信息
*
* @param serialnumber
* @param type
* @param uiModel
* @return
*/
@RequestMapping(value = "/outhis/{serialnumber}", produces = "text/html")
public String preview(@PathVariable("serialnumber") String serialnumber, Model uiModel) {
// 得到证据基本信息表
List<EvidenceBasicInformation> blist = new ArrayList<EvidenceBasicInformation>();
// 得到企业平台信息
Map<Long, EvidenceCompaniesSubmit> companiesSubmit = new HashMap<Long, EvidenceCompaniesSubmit>();
// 得到天威企业信息
Map<Long, List<RealNameRecord>> realnameRecor = new HashMap<Long, List<RealNameRecord>>();
// 得到天威个人信息
Map<Long, PersonalName> personalName = new HashMap<Long, PersonalName>();
// 得到个人平台信息
Map<Long, EvidenceIndividual> denceid = new HashMap<Long, EvidenceIndividual>();
// 得到得到身份意愿信息
Map<Long, EvidenceDesireIdentify> mdesire = new HashMap<Long, EvidenceDesireIdentify>();
// 得到事件内容信息
Map<Long, EvidenceEventContent> eventcontent = new HashMap<Long, EvidenceEventContent>();
// 得到时间对象
Map<Long, List<EvidenceTrustedIdentity>> trusid = new HashMap<Long, List<EvidenceTrustedIdentity>>();
// 得到身份标识信息
Map<Long, List<EvidenceTrustedIdentity>> trusted = new HashMap<Long, List<EvidenceTrustedIdentity>>();
// 得到事件时间信息
Map<Long, List<EvidenceEventTime>> enenttime = new HashMap<Long, List<EvidenceEventTime>>();
// 得到事件行为认证信息
Map<Long, List<EvidenceEventBehavior>> enenbehavior = new HashMap<Long, List<EvidenceEventBehavior>>();
// 得到事件意愿认证信息
Map<Long, List<EvidenceEventDesire>> evendesire = new HashMap<Long, List<EvidenceEventDesire>>();
// 得到平台提交信息代表人
Map<Long, EvidenceRepresentative> erepresetative = new HashMap<Long, EvidenceRepresentative>();
// 得到平台提交信息代理人
Map<Long, EvidenceTheAgent> etheagent = new HashMap<Long, EvidenceTheAgent>();
// 得到营业执照
Map<Long, Licenseinformation> licensein = new HashMap<Long, Licenseinformation>();
// 得到企业银行信息
Map<Long, Enterprisebank> enterpris = new HashMap<Long, Enterprisebank>();
// 得到组织机构代码
Map<Long, Organization> organiza = new HashMap<Long, Organization>();
// 得到法定代表人信息
Map<Long, Corporateinformation> corporat = new HashMap<Long, Corporateinformation>();
// 得到代理人信息
Map<Long, Agentinformation> agemtom = new HashMap<Long, Agentinformation>();
// 得到银行三四要素信息
Map<Long, Bankcardelements> bankcardele = new HashMap<Long, Bankcardelements>();
// 证据基本信息,放入多个基本信息
List<EvidenceBasicInformation> basicinfos = new ArrayList<EvidenceBasicInformation>();
// 得到出证信息
EvidenceHisCertificateExample hiscer = new EvidenceHisCertificateExample();
EvidenceHisCertificateExample.Criteria tificate = hiscer.createCriteria();
tificate.andSerialnumberEqualTo(serialnumber);
EvidenceHisCertificate hisCertificate = sqlSession.selectOne("com.itrus.portal.db.EvidenceHisCertificateMapper.selectByExample", hiscer);
// 出征流水号
contractNumber = hisCertificate.getSerialnumber();
// 得到出证存证中间表
EvidenceHisRelationshipExample hisrelation = new EvidenceHisRelationshipExample();
EvidenceHisRelationshipExample.Criteria shipEx = hisrelation.createCriteria();
shipEx.andHisCertificateEqualTo(hisCertificate.getId());
List<EvidenceHisRelationship> hisrelationship = sqlSession.selectList("com.itrus.portal.db.EvidenceHisRelationshipMapper.selectByExample", hisrelation);
for (EvidenceHisRelationship h : hisrelationship) {
// 得到基本信息表
EvidenceBasicInformation basic = sqlSession.selectOne("com.itrus.portal.db.EvidenceBasicInformationMapper.selectByPrimaryKey", h.getBasicInformation());
basicinfos.add(basic);
// 得到身份意愿信息
EvidenceDesireIdentifyExample desireIdentify = new EvidenceDesireIdentifyExample();
EvidenceDesireIdentifyExample.Criteria desireExample = desireIdentify.createCriteria();
desireExample.andEvidenceSnEqualTo(basic.getEvidenceSn());
EvidenceDesireIdentify desire = sqlSession.selectOne("com.itrus.portal.db.EvidenceDesireIdentifyMapper.selectByExample", desireIdentify);
mdesire.put(basic.getId(), desire);
// 得到身份信息表
EvidenceRealNameExample realnameE = new EvidenceRealNameExample();
EvidenceRealNameExample.Criteria realnameEx = realnameE.createCriteria();
realnameEx.andBasicInformationEqualTo(basic.getId());
EvidenceRealName erealname = sqlSession.selectOne("com.itrus.portal.db.EvidenceRealNameMapper.selectByExample", realnameE);
if (erealname != null) {
// 判断身份信息是否为空
if (!"1".equals(erealname.getEventVerifierType())) {
// 判断平台认证
if ("1".equals(erealname.getType())) {
// 判断平台企业认证
EvidenceCompaniesSubmit companiesSubmit1 = sqlSession.selectOne("com.itrus.portal.db.EvidenceCompaniesSubmitMapper.selectByPrimaryKey", erealname.getCompaniesSubmit());
companiesSubmit.put(basic.getId(), companiesSubmit1);
// 得到法定代表人
EvidenceRepresentative representative = sqlSession.selectOne("com.itrus.portal.db.EvidenceRepresentativeMapper.selectByPrimaryKey", companiesSubmit1.getRepresentative());
erepresetative.put(basic.getId(), representative);
// 得到代理人
EvidenceTheAgent theAgen = sqlSession.selectOne("com.itrus.portal.db.EvidenceTheAgentMapper.selectByPrimaryKey", companiesSubmit1.getTheAgent());
etheagent.put(basic.getId(), theAgen);
uiModel.addAttribute("companiesSubmit", companiesSubmit);
uiModel.addAttribute("realname", companiesSubmit);
} else {
// 平台个人认证
EvidenceIndividual dic = sqlSession.selectOne("com.itrus.portal.db.EvidenceIndividualMapper.selectByPrimaryKey", erealname.getIndividual());
denceid.put(basic.getId(), dic);
uiModel.addAttribute("denceid", denceid);
uiModel.addAttribute("realname", denceid);
}
} else {
// 天威认证
if ("1".equals(erealname.getType())) {
// 天威企业认证
String serialnamber = erealname.getSerialnumber();
String[] namber = serialnamber.split(",");
// List<RealNameRecord> listReal = new
// ArrayList<RealNameRecord>();
List<String> listString = new ArrayList<String>();
for (int i = 0; i < namber.length; i++) {
listString.add(namber[i]);
}
RealNameRecordExample realname = new RealNameRecordExample();
RealNameRecordExample.Criteria recor = realname.createCriteria();
// recor.andSerialnumberEqualTo(erealname.getSerialnumber());
recor.andSerialnumberIn(listString);
List<RealNameRecord> realnameRecor1 = sqlSession.selectList("com.itrus.portal.db.RealNameRecordMapper.selectByExample", realname);
realnameRecor.put(basic.getId(), realnameRecor1);
for (RealNameRecord real : realnameRecor1) {
// 得到营业执照
if (real.getLicenseinformation() != null) {
Licenseinformation information = sqlSession.selectOne("com.itrus.portal.db.LicenseinformationMapper.selectByPrimaryKey", real.getLicenseinformation());
licensein.put(basic.getId(), information);
}
// 得到企业银行信息
if (real.getEnterprisebank() != null) {
Enterprisebank enterprise = sqlSession.selectOne("com.itrus.portal.db.EnterprisebankMapper.selectByPrimaryKey", real.getEnterprisebank());
enterpris.put(basic.getId(), enterprise);
}
// 得到组织机构代码信息
if (real.getOrganization() != null) {
Organization organization = sqlSession.selectOne("com.itrus.portal.db.OrganizationMapper.selectByPrimaryKey", real.getOrganization());
organiza.put(basic.getId(), organization);
}
// 得到法定代表人信息
if (real.getCorporateinformation() != null) {
Corporateinformation enterprise = sqlSession.selectOne("com.itrus.portal.db.CorporateinformationMapper.selectByPrimaryKey", real.getCorporateinformation());
corporat.put(basic.getId(), enterprise);
}
// 得到代理人信息
if (real.getAgentinformation() != null) {
Agentinformation enterprise = sqlSession.selectOne("com.itrus.portal.db.AgentinformationMapper.selectByPrimaryKey", real.getAgentinformation());
agemtom.put(basic.getId(), enterprise);
}
}
uiModel.addAttribute("realname", realnameRecor);
} else {
// 天威个人认证
PersonalNameExample personal = new PersonalNameExample();
PersonalNameExample.Criteria personalname = personal.createCriteria();
personalname.andSerialnumberEqualTo(erealname.getSerialnumber());
PersonalName personalName1 = sqlSession.selectOne("com.itrus.portal.db.PersonalNameMapper.selectByExample", personal);
personalName.put(basic.getId(), personalName1);
// 得到银行三四要素信息
Bankcardelements bank = sqlSession.selectOne("com.itrus.portal.db.BankcardelementsMapper.selectByPrimaryKey", personalName1.getBankcardelements());
bankcardele.put(basic.getId(), bank);
uiModel.addAttribute("personalName", personalName);
uiModel.addAttribute("realname", personalName);
}
}
}
// 事件内容
EvidenceEventContentExample evencontent = new EvidenceEventContentExample();
EvidenceEventContentExample.Criteria countent = evencontent.createCriteria();
// countent.andBasicInformationEqualTo(basic.getEvidenceSn());
countent.andEvidenceSnEqualTo(basic.getEvidenceSn());
List<EvidenceEventContent> mevencontent = sqlSession.selectList("com.itrus.portal.db.EvidenceEventContentMapper.selectByExample", evencontent);
eventcontent.put(basic.getId(), mevencontent.get(0));
// 得到身份可信标识
EvidenceTrustedIdentityExample trusten = new EvidenceTrustedIdentityExample();
EvidenceTrustedIdentityExample.Criteria identityex = trusten.createCriteria();
identityex.andBasicInformationEqualTo(basic.getEvidenceSn());
identityex.andEventContentIsNull();
List<EvidenceTrustedIdentity> trustedidentity = sqlSession.selectList("com.itrus.portal.db.EvidenceTrustedIdentityMapper.selectByExample", trusten);
trusted.put(basic.getId(), trustedidentity);
// 事件对象认证
EvidenceTrustedIdentityExample trustenid = new EvidenceTrustedIdentityExample();
EvidenceTrustedIdentityExample.Criteria identitye = trustenid.createCriteria();
identitye.andEventContentEqualTo(mevencontent.get(0).getIdCode());
List<EvidenceTrustedIdentity> trustedidentit = sqlSession.selectList("com.itrus.portal.db.EvidenceTrustedIdentityMapper.selectByExample", trustenid);
trusid.put(basic.getId(), trustedidentit);
// 事件时间认证
EvidenceEventTimeExample eventime = new EvidenceEventTimeExample();
EvidenceEventTimeExample.Criteria eventimeEx = eventime.createCriteria();
eventimeEx.andEventContentEqualTo(mevencontent.get(0).getIdCode());
List<EvidenceEventTime> meventime = sqlSession.selectList("com.itrus.portal.db.EvidenceEventTimeMapper.selectByExample", eventime);
enenttime.put(basic.getId(), meventime);
// 事件行为认证
EvidenceEventBehaviorExample eventbehaciorEx = new EvidenceEventBehaviorExample();
EvidenceEventBehaviorExample.Criteria eventbe = eventbehaciorEx.createCriteria();
eventbe.andEventContentEqualTo(mevencontent.get(0).getIdCode());
List<EvidenceEventBehavior> eventbehacior = sqlSession.selectList("com.itrus.portal.db.EvidenceEventBehaviorMapper.selectByExample", eventbehaciorEx);
enenbehavior.put(basic.getId(), eventbehacior);
// 事件意愿认证
EvidenceEventDesireExample desireEx = new EvidenceEventDesireExample();
EvidenceEventDesireExample.Criteria eventdesire = desireEx.createCriteria();
// eventdesire.andMainInformationEqualTo(basic.getId());
eventdesire.andEventContenteEqualTo(mevencontent.get(0).getIdCode());
List<EvidenceEventDesire> meventdesire = sqlSession.selectList("com.itrus.portal.db.EvidenceEventDesireMapper.selectByExample", desireEx);
evendesire.put(basic.getId(), meventdesire);
blist.add(basic);
// 判断图片是否存在
if (mevencontent.get(0).getIsimg() == null) {
// 得到证据附件表,用于获取信息
EvidenceEnclosureExample envlosureE = new EvidenceEnclosureExample();
EvidenceEnclosureExample.Criteria envlosureEx = envlosureE.createCriteria();
envlosureEx.andEvidenceSnEqualTo(basic.getEvidenceSn());
envlosureEx.andPdfTypeEqualTo("2");
EvidenceEnclosure envlosure = sqlSession.selectOne("com.itrus.portal.db.EvidenceEnclosureMapper.selectByExample", envlosureE);
// 判断是否为用户上传pdf
if (envlosure != null) {
String urlFile = systemConfigService.getpdfurl() + File.separator + envlosure.getBucketName() + File.separator + envlosure.getEvidenceSn();
File filePathStr = new File(urlFile, envlosure.getObjectName());
int pdfToPng = 0;
if (filePathStr != null && filePathStr.getPath() != null) {
try {
// 调用生成图片方法生成图片
pdfToPng = Pdf.pdf2png(filePathStr.getPath());
} catch (Exception e) {
e.printStackTrace();
}
}
// 判断生成图片是否成功
if (pdfToPng > 0) {
// 修改内容表信息,表示生成图片
log.error("pdfToPng=" + pdfToPng);
mevencontent.get(0).setIsimg(1);
mevencontent.get(0).setImgCount(pdfToPng);
sqlSession.update("com.itrus.portal.db.EvidenceEventContentMapper.updateByPrimaryKey", mevencontent);
String oper = "原文图片生成成功";
String info = "图片地址:" + urlFile;
LogUtil.evidencelog(sqlSession, null, oper, info);
} else {
String oper = "原文图片生成失败";
String info = "失败原因:" + systemConfigService.getpdfurl() + File.separator + envlosure.getBucketName();
LogUtil.evidencelog(sqlSession, null, oper, info);
}
}
}
}
uiModel.addAttribute("basicinfos", basicinfos);
// 平台代表人
uiModel.addAttribute("erepresetative", erepresetative);
// 平台代理人
uiModel.addAttribute("etheagent", etheagent);
// 营业执照信息
uiModel.addAttribute("licensein", licensein);
// 企业银行信息
uiModel.addAttribute("enterpris", enterpris);
// 住址机构代码
uiModel.addAttribute("organiza", organiza);
// 法定代表人
uiModel.addAttribute("corporat", corporat);
// 法定代理人
uiModel.addAttribute("agemtom", agemtom);
// 银行卡三四要素
uiModel.addAttribute("bankcardele", bankcardele);
// 得到得到身份意愿信息
uiModel.addAttribute("mdesire", mdesire);
// 得到事件时间信息
uiModel.addAttribute("enenttime", enenttime);
// 得到事件行为认证信息
uiModel.addAttribute("enenbehavior", enenbehavior);
// 得到时间对象
uiModel.addAttribute("trusid", trusid);
// 得到身份标识信息
uiModel.addAttribute("trusted", trusted);
// 得到证据基本信息表
uiModel.addAttribute("blist", blist);
// 得到事件内容信息
uiModel.addAttribute("eventcontent", eventcontent);
// 得到出证信息
uiModel.addAttribute("hisCertificate", hisCertificate);
// 出证时间
uiModel.addAttribute("datetime", new Date());
return "reporttemplate/certificationReport";
}
use of com.itrus.portal.db.EvidenceBasicInformation in project portal by ixinportal.
the class HisCertificateController method show.
/**
* 查看详情
*
* @param id
* @param type
* @param uiModel
* @return
*/
@RequestMapping(value = "/{id}/{type}", produces = "text/html")
public String show(@PathVariable("id") Long id, @PathVariable("type") int type, Model uiModel) {
EvidenceHisCertificate hisCertificate = hiscertificate.selectById(id);
// 出征流水号
contractNumber = hisCertificate.getSerialnumber();
// 得到服务编码
AppService appservice = appService.selectById(hisCertificate.getHisAppService());
// 得到出证服务配置
EvidenceOutServiceConfigExample saveService = new EvidenceOutServiceConfigExample();
EvidenceOutServiceConfigExample.Criteria saveServiceEx = saveService.createCriteria();
saveServiceEx.andAppServiceEqualTo(appservice.getId());
EvidenceOutServiceConfig outService = sqlSession.selectOne("com.itrus.portal.db.EvidenceOutServiceConfigMapper.selectByExample", saveService);
// 得到出证模板信息
EvidenceOutTemplate outtemp = sqlSession.selectOne("com.itrus.portal.db.EvidenceOutTemplateMapper.selectByPrimaryKey", outService.getSaveRetTemplate());
uiModel.addAttribute("hisCertificate", hisCertificate);
uiModel.addAttribute("outtemp", outtemp);
// 获取证据附件表
EvidenceEnclosureExample envlosureE = new EvidenceEnclosureExample();
EvidenceEnclosureExample.Criteria envlosureEx = envlosureE.createCriteria();
envlosureEx.andSerialnumberEqualTo(hisCertificate.getSerialnumber());
envlosureEx.andPdfTypeEqualTo("4");
EvidenceEnclosure envlosure = sqlSession.selectOne("com.itrus.portal.db.EvidenceEnclosureMapper.selectByExample", envlosureE);
uiModel.addAttribute("envlosure", envlosure);
Map<Long, List<EvidenceMainInformation>> minfo = new HashMap<Long, List<EvidenceMainInformation>>();
// Map<Long, List<EvidenceBasicInformation>> mbasi = new HashMap<Long,
// List<EvidenceBasicInformation>>();
List<EvidenceBasicInformation> blists = new ArrayList<EvidenceBasicInformation>();
// 得到出证关联表信息
EvidenceHisRelationshipExample relation = new EvidenceHisRelationshipExample();
EvidenceHisRelationshipExample.Criteria hisreation = relation.createCriteria();
hisreation.andHisCertificateEqualTo(hisCertificate.getId());
List<EvidenceHisRelationship> hisRelation = sqlSession.selectList("com.itrus.portal.db.EvidenceHisRelationshipMapper.selectByExample", relation);
for (int j = 0; j < hisRelation.size(); j++) {
List<EvidenceMainInformation> mlist = new ArrayList<EvidenceMainInformation>();
// 得到证据基本信息
EvidenceBasicInformation basic = sqlSession.selectOne("com.itrus.portal.db.EvidenceBasicInformationMapper.selectByPrimaryKey", hisRelation.get(j).getBasicInformation());
blists.add(basic);
// 得到证据身份主题关联信息
EvidenceSubjectIdentityExample subjectExample = new EvidenceSubjectIdentityExample();
EvidenceSubjectIdentityExample.Criteria identity = subjectExample.createCriteria();
identity.andBasicInformationEqualTo(basic.getEvidenceSn());
List<EvidenceSubjectIdentity> subjectIdentity = sqlSession.selectList("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectExample);
for (int g = 0; g < subjectIdentity.size(); g++) {
// 得到主题身份信息
EvidenceMainInformation mainInfo = sqlSession.selectOne("com.itrus.portal.db.EvidenceMainInformationMapper.selectByPrimaryKey", subjectIdentity.get(g).getMainInformation());
mlist.add(mainInfo);
}
minfo.put(basic.getId(), mlist);
}
uiModel.addAttribute("mainInfo", minfo);
uiModel.addAttribute("blists", blists);
if (type == 1) {
// 待出证
return "hiscertificate/show";
} else if (type == 2) {
// 已出证
return "hiscertificate/show1";
}
return null;
}
use of com.itrus.portal.db.EvidenceBasicInformation in project portal by ixinportal.
the class HisCertificateController method list.
@RequestMapping(produces = "text/html")
public // 待出证
String list(@RequestParam(value = "queryDate1", required = false) Date queryDate1, @RequestParam(value = "queryDate2", required = false) Date queryDate2, @RequestParam(value = "evidenceSn", required = false) String evidenceSn, @RequestParam(value = "serialnumber", required = false) String serialnumber, @RequestParam(value = "serviceRequestPlatform", required = false) String serviceRequestPlatform, @RequestParam(value = "hisApplicant", required = false) String hisApplicant, @RequestParam(value = "subjectName", required = false) String subjectName, @RequestParam(value = "identification", required = false) String identification, @RequestParam(value = "hisway", required = false) String hisway, // 返回页面
@RequestParam(value = "status", required = false) String status, @RequestParam(value = "page", required = false) Integer page, @RequestParam(value = "size", required = false) Integer size, // 已出证
@RequestParam(value = "queryDate3", required = false) Date queryDate3, @RequestParam(value = "queryDate4", required = false) Date queryDate4, @RequestParam(value = "queryDate5", required = false) Date queryDate5, @RequestParam(value = "queryDate6", required = false) Date queryDate6, @RequestParam(value = "evidenceSn1", required = false) String evidenceSn1, @RequestParam(value = "serialnumber1", required = false) String serialnumber1, @RequestParam(value = "serviceRequestPlatform1", required = false) String serviceRequestPlatform1, @RequestParam(value = "hisApplicant1", required = false) String hisApplicant1, @RequestParam(value = "subjectName1", required = false) String subjectName1, @RequestParam(value = "hisState", required = false) String hisState, @RequestParam(value = "hisway1", required = false) String hisway1, @RequestParam(value = "page2", required = false) Integer page2, @RequestParam(value = "size2", required = false) Integer size2, Model uiModel) {
if (queryDate1 == null && queryDate2 == null) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, 1);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
calendar.add(Calendar.MILLISECOND, -1);
queryDate2 = calendar.getTime();
calendar.add(Calendar.MILLISECOND, 1);
calendar.add(Calendar.MONTH, -1);
queryDate1 = calendar.getTime();
}
if (queryDate3 == null && queryDate4 == null) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, 1);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
calendar.add(Calendar.MILLISECOND, -1);
queryDate4 = calendar.getTime();
calendar.add(Calendar.MILLISECOND, 1);
calendar.add(Calendar.MONTH, -1);
queryDate3 = calendar.getTime();
}
if (queryDate5 == null && queryDate6 == null) {
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, 1);
calendar.set(Calendar.HOUR_OF_DAY, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
calendar.add(Calendar.MILLISECOND, -1);
queryDate6 = calendar.getTime();
calendar.add(Calendar.MILLISECOND, 1);
calendar.add(Calendar.MONTH, -1);
queryDate5 = calendar.getTime();
}
// 待出证记录
Map param = new HashMap();
if (page == null || page < 1)
page = 1;
if (size == null || size < 1)
size = 10;
Integer offset = size * (page - 1);
param.put("offset", offset);
param.put("limit", size);
param.put("queryDate1", queryDate1);
param.put("queryDate2", queryDate2);
if (StringUtils.isNotEmpty(evidenceSn)) {
param.put("evidenceSn", "%" + evidenceSn + "%");
}
if (StringUtils.isNotEmpty(serialnumber)) {
param.put("serialnumber", "%" + serialnumber + "%");
}
if (StringUtils.isNotEmpty(serviceRequestPlatform)) {
param.put("serviceRequestPlatform", "%" + serviceRequestPlatform + "%");
}
if (StringUtils.isNotEmpty(hisApplicant)) {
param.put("hisApplicant", "%" + hisApplicant + "%");
}
if (StringUtils.isNotEmpty(subjectName)) {
param.put("subjectName", "%" + subjectName + "%");
}
if (StringUtils.isNotEmpty(identification)) {
param.put("identification", "%" + identification + "%");
}
if (StringUtils.isNotEmpty(hisway)) {
param.put("hisway", hisway);
}
// else{
// //String hisw = "2,3";
// param.put("hisway", "2,3");
// }
// 得到待出证信息
List<Map<String, Object>> list = hiscertificate.selectHisCertificateListEnt(param);
int count = hiscertificate.selectHisCertificateCountEnt(param);
Map<Long, List<EvidenceMainInformation>> minfo = new HashMap<Long, List<EvidenceMainInformation>>();
Map<Long, List<EvidenceBasicInformation>> mbasi = new HashMap<Long, List<EvidenceBasicInformation>>();
for (int i = 0; i < list.size(); i++) {
// 得到出证关联表信息
long id = Long.parseLong(list.get(i).get("id").toString());
EvidenceHisRelationshipExample relation = new EvidenceHisRelationshipExample();
EvidenceHisRelationshipExample.Criteria hisreation = relation.createCriteria();
hisreation.andHisCertificateEqualTo(id);
List<EvidenceHisRelationship> hisRelation = sqlSession.selectList("com.itrus.portal.db.EvidenceHisRelationshipMapper.selectByExample", relation);
List<EvidenceBasicInformation> blist = new ArrayList<EvidenceBasicInformation>();
List<EvidenceMainInformation> lists = new ArrayList<EvidenceMainInformation>();
for (int j = 0; j < hisRelation.size(); j++) {
// 得到证据基本信息
EvidenceBasicInformation basic = sqlSession.selectOne("com.itrus.portal.db.EvidenceBasicInformationMapper.selectByPrimaryKey", hisRelation.get(j).getBasicInformation());
blist.add(basic);
// 得到证据身份主题关联信息
EvidenceSubjectIdentityExample subjectExample = new EvidenceSubjectIdentityExample();
EvidenceSubjectIdentityExample.Criteria identity = subjectExample.createCriteria();
identity.andBasicInformationEqualTo(basic.getEvidenceSn());
List<EvidenceSubjectIdentity> subjectIdentity = sqlSession.selectList("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectExample);
for (int g = 0; g < subjectIdentity.size(); g++) {
// 得到主题身份信息
EvidenceMainInformation mainInfo = sqlSession.selectOne("com.itrus.portal.db.EvidenceMainInformationMapper.selectByPrimaryKey", subjectIdentity.get(g).getMainInformation());
lists.add(mainInfo);
}
}
minfo.put(id, lists);
mbasi.put(id, blist);
}
uiModel.addAttribute("pages", (count + size - 1) / size);
if (page > 1 && size * (page - 1) >= count) {
page = (count + size - 1) / size;
}
uiModel.addAttribute("page", page);
uiModel.addAttribute("size", size);
uiModel.addAttribute("count", count);
uiModel.addAttribute("list", list);
uiModel.addAttribute("mainInfo", minfo);
uiModel.addAttribute("blist", mbasi);
// 已出证
Map param1 = new HashMap();
// page,size
if (page2 == null || page2 < 1)
page2 = 1;
if (size2 == null || size2 < 1)
size2 = 10;
// query data
Integer offset2 = size2 * (page2 - 1);
param1.put("offset", offset2);
param1.put("limit", size2);
param1.put("queryDate3", queryDate3);
param1.put("queryDate4", queryDate4);
param1.put("queryDate5", queryDate5);
param1.put("queryDate6", queryDate6);
if (StringUtils.isNotEmpty(evidenceSn1)) {
param1.put("evidenceSn", "%" + evidenceSn1 + "%");
}
if (StringUtils.isNotEmpty(serialnumber1)) {
param1.put("serialnumber", "%" + serialnumber1 + "%");
}
if (StringUtils.isNotEmpty(serviceRequestPlatform1)) {
param1.put("serviceRequestPlatform", "%" + serviceRequestPlatform1 + "%");
}
if (StringUtils.isNotEmpty(hisApplicant1)) {
param1.put("hisApplicant", "%" + hisApplicant1 + "%");
}
if (StringUtils.isNotEmpty(subjectName1)) {
param1.put("subjectName", "%" + subjectName1 + "%");
}
if (StringUtils.isNotEmpty(hisState) && !"-1".equals(hisState)) {
param1.put("hisState", hisState);
}
if (StringUtils.isNotEmpty(hisway1) && !"0".equals(hisway1)) {
param1.put("hisway", hisway1);
}
List<Map<String, Object>> hlist = hiscertificate.selectHisCertificateEnt(param1);
int count1 = hiscertificate.selectHisCertificateSizeEnt(param1);
Map<Long, List<EvidenceMainInformation>> minfor = new HashMap<Long, List<EvidenceMainInformation>>();
Map<Long, List<EvidenceBasicInformation>> mbasic = new HashMap<Long, List<EvidenceBasicInformation>>();
for (int i = 0; i < hlist.size(); i++) {
// 得到出证关联表信息
long id = Long.parseLong(hlist.get(i).get("id").toString());
EvidenceHisRelationshipExample relation = new EvidenceHisRelationshipExample();
EvidenceHisRelationshipExample.Criteria hisreation = relation.createCriteria();
hisreation.andHisCertificateEqualTo(id);
List<EvidenceHisRelationship> hisRelation = sqlSession.selectList("com.itrus.portal.db.EvidenceHisRelationshipMapper.selectByExample", relation);
List<EvidenceMainInformation> mlist = new ArrayList<EvidenceMainInformation>();
List<EvidenceBasicInformation> blists = new ArrayList<EvidenceBasicInformation>();
for (int j = 0; j < hisRelation.size(); j++) {
// 得到证据基本信息
EvidenceBasicInformation basic = sqlSession.selectOne("com.itrus.portal.db.EvidenceBasicInformationMapper.selectByPrimaryKey", hisRelation.get(j).getBasicInformation());
blists.add(basic);
// 得到证据身份主题关联信息
EvidenceSubjectIdentityExample subjectExample = new EvidenceSubjectIdentityExample();
EvidenceSubjectIdentityExample.Criteria identity = subjectExample.createCriteria();
identity.andBasicInformationEqualTo(basic.getEvidenceSn());
List<EvidenceSubjectIdentity> subjectIdentity = sqlSession.selectList("com.itrus.portal.db.EvidenceSubjectIdentityMapper.selectByExample", subjectExample);
for (int g = 0; g < subjectIdentity.size(); g++) {
// 得到主题身份信息
EvidenceMainInformation mainInfo = sqlSession.selectOne("com.itrus.portal.db.EvidenceMainInformationMapper.selectByPrimaryKey", subjectIdentity.get(g).getMainInformation());
mlist.add(mainInfo);
}
}
minfor.put(id, mlist);
mbasic.put(id, blists);
}
uiModel.addAttribute("pages2", (count1 + size2 - 1) / size2);
// page, size
if (page2 > 1 && size2 * (page2 - 1) >= count1) {
page2 = (count1 + size2 - 1) / size2;
}
List<EvidenceHisCertificate> his = hiscertificate.selecthisway();
uiModel.addAttribute("his", his);
uiModel.addAttribute("page2", page2);
uiModel.addAttribute("size2", size2);
uiModel.addAttribute("count2", count1);
uiModel.addAttribute("hlist", hlist);
uiModel.addAttribute("ainInfo", minfor);
uiModel.addAttribute("blists", mbasic);
uiModel.addAttribute("status", status);
uiModel.addAttribute("queryDate1", queryDate1);
uiModel.addAttribute("queryDate2", queryDate2);
uiModel.addAttribute("queryDate3", queryDate3);
uiModel.addAttribute("queryDate4", queryDate4);
uiModel.addAttribute("queryDate5", queryDate5);
uiModel.addAttribute("queryDate6", queryDate6);
uiModel.addAttribute("evidenceSn", evidenceSn);
uiModel.addAttribute("serialnumber", serialnumber);
uiModel.addAttribute("serviceRequestPlatform", serviceRequestPlatform);
uiModel.addAttribute("hisApplicant", hisApplicant);
uiModel.addAttribute("subjectName", subjectName);
uiModel.addAttribute("identification", identification);
uiModel.addAttribute("hisway2", hisway);
uiModel.addAttribute("serialnumber1", serialnumber1);
uiModel.addAttribute("serviceRequestPlatform1", serviceRequestPlatform1);
uiModel.addAttribute("hisApplicant", hisApplicant1);
uiModel.addAttribute("subjectName1", subjectName1);
uiModel.addAttribute("hisState", hisState);
uiModel.addAttribute("hisway3", hisway1);
uiModel.addAttribute("evidenceSn1", evidenceSn1);
return "hiscertificate/list";
}
Aggregations