226 lines
13 KiB
Java
226 lines
13 KiB
Java
package com.ruoyi.wisdomarbitrate.utils;
|
|||
|
|
|
||
|
|
import com.alibaba.fastjson.JSONObject;
|
||
|
|
import com.google.gson.Gson;
|
||
|
|
import com.google.gson.JsonArray;
|
||
|
|
import com.google.gson.JsonObject;
|
||
|
|
import com.ruoyi.common.constant.FileTransformation;
|
||
|
|
import com.ruoyi.common.core.domain.entity.EsignHttpResponse;
|
||
|
|
import com.ruoyi.common.exception.EsignDemoException;
|
||
|
|
import com.ruoyi.wisdomarbitrate.domain.dto.dept.DeptIdentify;
|
||
|
|
import com.ruoyi.wisdomarbitrate.domain.dto.dept.SealManage;
|
||
|
|
import com.ruoyi.wisdomarbitrate.domain.entity.mscase.MsCaseAttach;
|
||
|
|
import com.ruoyi.wisdomarbitrate.mapper.dept.DeptIdentifyMapper;
|
||
|
|
import com.ruoyi.wisdomarbitrate.mapper.dept.SealManageMapper;
|
||
|
|
import com.ruoyi.wisdomarbitrate.mapper.mscase.MsCaseAttachMapper;
|
||
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
||
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
||
|
|
import org.springframework.stereotype.Component;
|
||
|
|
import org.springframework.transaction.annotation.Transactional;
|
||
|
|
|
||
|
|
import java.io.File;
|
||
|
|
import java.io.IOException;
|
||
|
|
import java.time.LocalDate;
|
||
|
|
import java.util.List;
|
||
|
|
import java.util.UUID;
|
||
|
|
|
||
|
|
@Component
|
||
|
|
public class FixSelectFlowDetailUtils {
|
||
|
|
@Autowired
|
||
|
|
private MsCaseAttachMapper caseAttachMapper;
|
||
|
|
@Autowired
|
||
|
|
private DeptIdentifyMapper deptIdentifyMapper;
|
||
|
|
@Autowired
|
||
|
|
private SealManageMapper sealManageMapper;
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 定时查询企业认证状态
|
||
|
|
*
|
||
|
|
* @throws Exception
|
||
|
|
*/
|
||
|
|
@Scheduled(cron = "*/30 * * * * *")
|
||
|
|
@Transactional
|
||
|
|
public void fixExecuteSelectDeptIndentifyUtils() throws Exception {
|
||
|
|
Gson gson = new Gson();
|
||
|
|
DeptIdentify deptIdentify = new DeptIdentify();
|
||
|
|
List<DeptIdentify> deptIdentifysnew = deptIdentifyMapper.selectDeptIdentify(deptIdentify);
|
||
|
|
if (deptIdentifysnew != null && deptIdentifysnew.size() > 0) {
|
||
|
|
for (int i = 0; i < deptIdentifysnew.size(); i++) {
|
||
|
|
DeptIdentify deptIdentify1 = deptIdentifysnew.get(i);
|
||
|
|
Integer identifyStatus = deptIdentify1.getIdentifyStatus();
|
||
|
|
if (identifyStatus!=1){
|
||
|
|
String authFlowId = deptIdentify1.getAuthFlowId();
|
||
|
|
if (authFlowId != null) {
|
||
|
|
EsignHttpResponse identifyInfo = SignAward.getDeptIdentifyInfo(deptIdentify1);
|
||
|
|
JsonObject identifyInfoJsonObject = gson.fromJson(identifyInfo.getBody(), JsonObject.class);
|
||
|
|
int code = identifyInfoJsonObject.get("code").getAsInt();
|
||
|
|
if (code == 0) {
|
||
|
|
JsonObject identifyInfoData = identifyInfoJsonObject.getAsJsonObject("data");
|
||
|
|
int realnameStatus = identifyInfoData.get("realnameStatus").getAsInt();
|
||
|
|
if (realnameStatus == 1) {
|
||
|
|
String orgId = identifyInfoData.get("orgId").getAsString();
|
||
|
|
//查询企业内部印章
|
||
|
|
EsignHttpResponse response = SignAward.deptIdentifySealList(orgId);
|
||
|
|
JsonObject jsonObject = gson.fromJson(response.getBody(), JsonObject.class);
|
||
|
|
int code1 = jsonObject.get("code").getAsInt();
|
||
|
|
if (code1 == 0) {
|
||
|
|
JsonObject data = jsonObject.getAsJsonObject("data");
|
||
|
|
JsonArray seals = data.get("seals").getAsJsonArray();
|
||
|
|
if (seals.size() > 0) {
|
||
|
|
for (int j = 0; j < seals.size(); j++) {
|
||
|
|
//保存印章信息到数据库
|
||
|
|
JsonObject asJsonObject = seals.get(j).getAsJsonObject();
|
||
|
|
SealManage sealManage = new SealManage();
|
||
|
|
String sealName = asJsonObject.get("sealName").toString();
|
||
|
|
String sealId = asJsonObject.get("sealId").toString();
|
||
|
|
String url = asJsonObject.get("sealImageDownloadUrl").toString();
|
||
|
|
LocalDate now = LocalDate.now();
|
||
|
|
String year = Integer.toString(now.getYear());
|
||
|
|
String month = String.format("%02d", now.getMonthValue());
|
||
|
|
String day = String.format("%02d", now.getDayOfMonth());
|
||
|
|
String saveFolderPath = "/home/ruoyi/uploadPath/upload/" + year + "/" + month + "/" + day;
|
||
|
|
String fileName = UUID.randomUUID().toString().replace("-", "") + ".jpg";
|
||
|
|
String saveName = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName;
|
||
|
|
String savePath = "/home/ruoyi/uploadPath/upload/";
|
||
|
|
// 创建日期目录
|
||
|
|
File saveFolder = new File(saveFolderPath);
|
||
|
|
if (!saveFolder.exists()) {
|
||
|
|
saveFolder.mkdirs();
|
||
|
|
}
|
||
|
|
String resultFilePath = saveFolderPath + "/" + fileName;
|
||
|
|
File resultFilePathFile = new File(resultFilePath);
|
||
|
|
if (!resultFilePathFile.exists()) {
|
||
|
|
resultFilePathFile.createNewFile();
|
||
|
|
}
|
||
|
|
String fileDownloadUrlnew = url.substring(1, url.length() - 1);
|
||
|
|
boolean downLoadFile = FileTransformation.downLoadFileByUrl(fileDownloadUrlnew, resultFilePath);
|
||
|
|
if (downLoadFile) {
|
||
|
|
MsCaseAttach caseAttach = new MsCaseAttach();
|
||
|
|
caseAttach.setAnnexType(10); //10代表印章图片
|
||
|
|
caseAttach.setAnnexPath(savePath);
|
||
|
|
caseAttach.setAnnexName(saveName);
|
||
|
|
int i1 = caseAttachMapper.save(caseAttach);
|
||
|
|
if (i1 > 0) {
|
||
|
|
//将印章信息保存到公章管理表里
|
||
|
|
String sealName1 = sealName.substring(1, sealName.length() - 1);
|
||
|
|
String sealId1 = sealId.substring(1, sealId.length() - 1);
|
||
|
|
Long annexId1 = caseAttach.getAnnexId();
|
||
|
|
sealManage.setAnnexId(annexId1);
|
||
|
|
sealManage.setSealId(sealId1);
|
||
|
|
sealManage.setSealName(sealName1);
|
||
|
|
sealManage.setIdentifyId(deptIdentify1.getId());
|
||
|
|
sealManage.setSealStatus(1);
|
||
|
|
sealManage.setIsUse(1);
|
||
|
|
sealManageMapper.insertSealManage(sealManage);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
//将orgId保存到数据库里
|
||
|
|
deptIdentify1.setOrgId(orgId);
|
||
|
|
deptIdentify1.setIdentifyStatus(1);
|
||
|
|
deptIdentify1.setIsUse(0); //默认机构为未启用
|
||
|
|
int row = deptIdentifyMapper.updateDeptIdentify(deptIdentify1);
|
||
|
|
}
|
||
|
|
}else {
|
||
|
|
deptIdentify1.setIdentifyStatus(2);
|
||
|
|
deptIdentifyMapper.updateDeptIdentify(deptIdentify1);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 定时查询印章审核状态
|
||
|
|
*/
|
||
|
|
@Scheduled(cron = "0/30 * * * * ?")
|
||
|
|
@Transactional
|
||
|
|
public void searchForInstitutionalSeal() {
|
||
|
|
try {
|
||
|
|
SealManage sealManage = new SealManage();
|
||
|
|
sealManage.setSealStatus(0);
|
||
|
|
List<SealManage> sealManageList = sealManageMapper.selectSealList(sealManage);
|
||
|
|
if (sealManageList != null && sealManageList.size() > 0) {
|
||
|
|
for (SealManage sealManage1 : sealManageList) {
|
||
|
|
//查询企业内部印章
|
||
|
|
Long annexId = sealManage1.getAnnexId();
|
||
|
|
String sealId = sealManage1.getSealId();
|
||
|
|
DeptIdentify deptIdentify = new DeptIdentify();
|
||
|
|
deptIdentify.setId(sealManage1.getIdentifyId());
|
||
|
|
List<DeptIdentify> deptIdentifies = deptIdentifyMapper.selectDeptIdentify(deptIdentify);
|
||
|
|
if (deptIdentifies != null && deptIdentifies.size() > 0) {
|
||
|
|
DeptIdentify deptIdentify1 = deptIdentifies.get(0);
|
||
|
|
String orgId = deptIdentify1.getOrgId();
|
||
|
|
if (orgId == null) {
|
||
|
|
continue;
|
||
|
|
}
|
||
|
|
if (annexId == null) {
|
||
|
|
//说明之前没有下载过
|
||
|
|
EsignHttpResponse response = SignAward.getOrgSeal(orgId, sealId);
|
||
|
|
JSONObject jsonObject = JSONObject.parseObject(response.getBody());
|
||
|
|
int code = jsonObject.getIntValue("code");
|
||
|
|
if (code == 0) {
|
||
|
|
JSONObject data = jsonObject.getJSONObject("data");
|
||
|
|
int sealStatus = data.getIntValue("sealStatus");
|
||
|
|
if (sealStatus == 1) {//印章状态 1已启用,2待审核,3审核不通过,4 挂起
|
||
|
|
//已启用证明审核通过,下载到数据库
|
||
|
|
String sealImageDownloadUrl = data.getString("sealImageDownloadUrl");
|
||
|
|
LocalDate now = LocalDate.now();
|
||
|
|
String year = Integer.toString(now.getYear());
|
||
|
|
String month = String.format("%02d", now.getMonthValue());
|
||
|
|
String day = String.format("%02d", now.getDayOfMonth());
|
||
|
|
String saveFolderPath = "/home/ruoyi/uploadPath/upload/" + year + "/" + month + "/" + day;
|
||
|
|
String fileName = UUID.randomUUID().toString().replace("-", "") + ".jpg";
|
||
|
|
String saveName = "/profile/upload/" + year + "/" + month + "/" + day + "/" + fileName;
|
||
|
|
String savePath = "/home/ruoyi/uploadPath/upload/";
|
||
|
|
// 创建日期目录
|
||
|
|
File saveFolder = new File(saveFolderPath);
|
||
|
|
if (!saveFolder.exists()) {
|
||
|
|
saveFolder.mkdirs();
|
||
|
|
}
|
||
|
|
String resultFilePath = saveFolderPath + "/" + fileName;
|
||
|
|
File resultFilePathFile = new File(resultFilePath);
|
||
|
|
if (!resultFilePathFile.exists()) {
|
||
|
|
resultFilePathFile.createNewFile();
|
||
|
|
}
|
||
|
|
boolean downLoadFile = FileTransformation.downLoadFileByUrl(sealImageDownloadUrl, resultFilePath);
|
||
|
|
if (downLoadFile) {
|
||
|
|
MsCaseAttach caseAttach = new MsCaseAttach();
|
||
|
|
caseAttach.setAnnexType(10); //10代表印章图片
|
||
|
|
caseAttach.setAnnexPath(savePath);
|
||
|
|
caseAttach.setAnnexName(saveName);
|
||
|
|
int i1 = caseAttachMapper.save(caseAttach);
|
||
|
|
if (i1 > 0) {
|
||
|
|
//将附件id保存到公章管理表里
|
||
|
|
Long annexId1 = caseAttach.getAnnexId();
|
||
|
|
sealManage1.setAnnexId(annexId1);
|
||
|
|
sealManage1.setSealStatus(1);
|
||
|
|
sealManage1.setIsUse(0);
|
||
|
|
sealManageMapper.updateSealManage(sealManage1);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
}
|
||
|
|
} catch (EsignDemoException e) {
|
||
|
|
e.printStackTrace();
|
||
|
|
} catch (IOException e) {
|
||
|
|
e.printStackTrace();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
}
|
||
|
|
|
||
|
|
|