Commit 76615edf by 黄明步

修改文件转换

parent c7a81612
...@@ -173,44 +173,48 @@ public class RetransmissionService { ...@@ -173,44 +173,48 @@ public class RetransmissionService {
String tempSaveDir = tempDir + File.separator + IdUtil.fastSimpleUUID() + "_" + System.currentTimeMillis(); String tempSaveDir = tempDir + File.separator + IdUtil.fastSimpleUUID() + "_" + System.currentTimeMillis();
FileUtil.mkdir(tempSaveDir); FileUtil.mkdir(tempSaveDir);
File tempFile = new File(tempSaveDir, Objects.requireNonNull(FileUtil.getName(file.getOriginalFilename()))); File tempFile = new File(tempSaveDir, Objects.requireNonNull(FileUtil.getName(file.getOriginalFilename())));
ServerInfo ocrServerAddress = getServerAddressByRequestCount();
try { try {
file.transferTo(tempFile); file.transferTo(tempFile);
} catch (IOException e) { paramMap.put("file", tempFile);
return OcrResult.error("异常!" + e); paramMap.put("createOfd", createOfd);
} if (ocrServerAddress == null) {
paramMap.put("file", tempFile); return OcrResult.error("OCR云平台未配置服务器信息");
paramMap.put("createOfd", createOfd); }
ServerInfo ocrServerAddress = getServerAddressByRequestCount();
if (ocrServerAddress == null) {
return OcrResult.error("OCR云平台未配置服务器信息");
}
addServerRequestCount(ocrServerAddress.getIp(), 1); addServerRequestCount(ocrServerAddress.getIp(), 1);
String ocrApi = "http://" + ocrServerAddress.getIp() + ":" + ocrServerAddress.getOcrPort(); String ocrApi = "http://" + ocrServerAddress.getIp() + ":" + ocrServerAddress.getOcrPort();
// 开始阶段,设置请求开始时间 // 开始阶段,设置请求开始时间
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
this.setRequestToRedis(1, startTime, null, null, ocrServerAddress, request); this.setRequestToRedis(1, startTime, null, null, ocrServerAddress, request);
String res = HttpRequest.post(ocrApi + "/ofs/api/sync/v1/" + code) String res = HttpRequest.post(ocrApi + "/ofs/api/sync/v1/" + code)
.header("Authorization", request.getHeader("Authorization")) .header("Authorization", request.getHeader("Authorization"))
.header("X-Timestamp", request.getHeader("X-Timestamp")) .header("X-Timestamp", request.getHeader("X-Timestamp"))
.header("X-Checksum", request.getHeader("X-Checksum")) .header("X-Checksum", request.getHeader("X-Checksum"))
.form(paramMap).execute().body(); .form(paramMap).execute().body();
// 记录请求结束时间 // 记录请求结束时间
long endTime = System.currentTimeMillis(); long endTime = System.currentTimeMillis();
if (StringUtils.isEmpty(res)) { if (StringUtils.isEmpty(res)) {
this.setRequestToRedis(2, startTime, endTime, null, ocrServerAddress, request); this.setRequestToRedis(2, startTime, endTime, null, ocrServerAddress, request);
return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date());
}
OcrResult result = JSONUtil.toBean(res, OcrResult.class);
this.setRequestToRedis(2, startTime, endTime, result, ocrServerAddress, request);
saveToAppAbilityRecordAll(result, request, ocrServerAddress.getIp(), fileId);
return result;
} catch (Exception e) {
log.error("OCR云平台接口异常", e);
return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date()); return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date());
} finally {
FileUtil.del(tempSaveDir);
if (ObjUtil.isNotNull(ocrServerAddress)) {
addServerRequestCount(ocrServerAddress.getIp(), -1);
}
} }
FileUtil.del(tempSaveDir);
OcrResult result = JSONUtil.toBean(res, OcrResult.class);
this.setRequestToRedis(2, startTime, endTime, result, ocrServerAddress, request);
saveToAppAbilityRecordAll(result, request, ocrServerAddress.getIp(), fileId);
addServerRequestCount(ocrServerAddress.getIp(), -1);
return result;
} }
public OcrResult commonRecognitionV2(String code, String fileId, MultipartFile file, Boolean createOfd, HttpServletRequest request) { public OcrResult commonRecognitionV2(String code, String fileId, MultipartFile file, Boolean createOfd, HttpServletRequest request) {
...@@ -219,44 +223,48 @@ public class RetransmissionService { ...@@ -219,44 +223,48 @@ public class RetransmissionService {
String tempSaveDir = tempDir + File.separator + IdUtil.fastSimpleUUID() + "_" + System.currentTimeMillis(); String tempSaveDir = tempDir + File.separator + IdUtil.fastSimpleUUID() + "_" + System.currentTimeMillis();
FileUtil.mkdir(tempSaveDir); FileUtil.mkdir(tempSaveDir);
File tempFile = new File(tempSaveDir, Objects.requireNonNull(FileUtil.getName(file.getOriginalFilename()))); File tempFile = new File(tempSaveDir, Objects.requireNonNull(FileUtil.getName(file.getOriginalFilename())));
ServerInfo ocrServerAddress = getServerAddressByRequestCount();
try { try {
file.transferTo(tempFile); file.transferTo(tempFile);
} catch (IOException e) { paramMap.put("file", tempFile);
return OcrResult.error("异常!" + e); paramMap.put("createOfd", createOfd);
} if (ocrServerAddress == null) {
paramMap.put("file", tempFile); return OcrResult.error("OCR云平台未配置服务器信息");
paramMap.put("createOfd", createOfd); }
ServerInfo ocrServerAddress = getServerAddressByRequestCount();
if (ocrServerAddress == null) {
return OcrResult.error("OCR云平台未配置服务器信息");
}
addServerRequestCount(ocrServerAddress.getIp(), 1); addServerRequestCount(ocrServerAddress.getIp(), 1);
String ocrApi = "http://" + ocrServerAddress.getIp() + ":" + ocrServerAddress.getOcrPort(); String ocrApi = "http://" + ocrServerAddress.getIp() + ":" + ocrServerAddress.getOcrPort();
// 开始阶段,设置请求开始时间 // 开始阶段,设置请求开始时间
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
this.setRequestToRedis(1, startTime, null, null, ocrServerAddress, request); this.setRequestToRedis(1, startTime, null, null, ocrServerAddress, request);
String res = HttpRequest.post(ocrApi + "/ofs/api/sync/v2/" + code) String res = HttpRequest.post(ocrApi + "/ofs/api/sync/v2/" + code)
.header("Authorization", request.getHeader("Authorization")) .header("Authorization", request.getHeader("Authorization"))
.header("X-Timestamp", request.getHeader("X-Timestamp")) .header("X-Timestamp", request.getHeader("X-Timestamp"))
.header("X-Checksum", request.getHeader("X-Checksum")) .header("X-Checksum", request.getHeader("X-Checksum"))
.form(paramMap).execute().body(); .form(paramMap).execute().body();
// 记录请求结束时间 // 记录请求结束时间
long endTime = System.currentTimeMillis(); long endTime = System.currentTimeMillis();
if (StringUtils.isEmpty(res)) { if (StringUtils.isEmpty(res)) {
this.setRequestToRedis(2, startTime, endTime, null, ocrServerAddress, request); this.setRequestToRedis(2, startTime, endTime, null, ocrServerAddress, request);
return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date());
}
OcrResult result = JSONUtil.toBean(res, OcrResult.class);
this.setRequestToRedis(2, startTime, endTime, result, ocrServerAddress, request);
saveToAppAbilityRecordAll(result, request, ocrServerAddress.getIp(), fileId);
return result;
} catch (Exception e) {
log.error("OCR云平台接口异常", e);
return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date()); return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date());
} finally {
FileUtil.del(tempSaveDir);
if (ObjUtil.isNotNull(ocrServerAddress)) {
addServerRequestCount(ocrServerAddress.getIp(), -1);
}
} }
FileUtil.del(tempSaveDir);
OcrResult result = JSONUtil.toBean(res, OcrResult.class);
this.setRequestToRedis(2, startTime, endTime, result, ocrServerAddress, request);
saveToAppAbilityRecordAll(result, request, ocrServerAddress.getIp(), fileId);
addServerRequestCount(ocrServerAddress.getIp(), -1);
return result;
} }
...@@ -332,7 +340,7 @@ public class RetransmissionService { ...@@ -332,7 +340,7 @@ public class RetransmissionService {
} }
} catch (Exception e) { } catch (Exception e) {
log.error("在处理ID为 {} 的PDF下载过程中发生异常", id, e); log.error("在处理ID为 {} 的PDF下载过程中发生异常", id, e);
returnError(response, 500, "OCR云平台接口异常"); // returnError(response, 500, "OCR云平台接口异常");
} }
} }
...@@ -405,7 +413,7 @@ public class RetransmissionService { ...@@ -405,7 +413,7 @@ public class RetransmissionService {
} }
} catch (Exception e) { } catch (Exception e) {
log.error("在处理ID为 {} 的PDF下载过程中发生异常", id, e); log.error("在处理ID为 {} 的PDF下载过程中发生异常", id, e);
returnError(response, 500, "OCR云平台接口异常"); // returnError(response, 500, "OCR云平台接口异常");
} }
} }
...@@ -415,43 +423,48 @@ public class RetransmissionService { ...@@ -415,43 +423,48 @@ public class RetransmissionService {
String tempSaveDir = tempDir + File.separator + IdUtil.fastSimpleUUID() + "_" + System.currentTimeMillis(); String tempSaveDir = tempDir + File.separator + IdUtil.fastSimpleUUID() + "_" + System.currentTimeMillis();
FileUtil.mkdir(tempSaveDir); FileUtil.mkdir(tempSaveDir);
File tempFile = new File(tempSaveDir, Objects.requireNonNull(FileUtil.getName(file.getOriginalFilename()))); File tempFile = new File(tempSaveDir, Objects.requireNonNull(FileUtil.getName(file.getOriginalFilename())));
ServerInfo ocrServerAddress = getServerAddressByRequestCount();
try { try {
file.transferTo(tempFile); file.transferTo(tempFile);
} catch (IOException e) {
return OcrResult.error("异常!" + e);
}
paramMap.put("file", tempFile);
ServerInfo ocrServerAddress = getServerAddressByRequestCount(); paramMap.put("file", tempFile);
if (ocrServerAddress == null) {
return OcrResult.error("OCR云平台未配置服务器信息");
}
addServerRequestCount(ocrServerAddress.getIp(), 1);
String ocrApi = "http://" + ocrServerAddress.getIp() + ":" + ocrServerAddress.getOcrPort();
// 设置开始时间 if (ocrServerAddress == null) {
long startTime = System.currentTimeMillis(); return OcrResult.error("OCR云平台未配置服务器信息");
this.setRequestToRedis(1, startTime, null, null, ocrServerAddress, request); }
addServerRequestCount(ocrServerAddress.getIp(), 1);
String ocrApi = "http://" + ocrServerAddress.getIp() + ":" + ocrServerAddress.getOcrPort();
String res = HttpRequest.post(ocrApi + "/ofs/api/sync/v1/ft/1001") // 设置开始时间
.header("Authorization", request.getHeader("Authorization")) long startTime = System.currentTimeMillis();
.header("X-Timestamp", request.getHeader("X-Timestamp")) this.setRequestToRedis(1, startTime, null, null, ocrServerAddress, request);
.header("X-Checksum", request.getHeader("X-Checksum"))
.form(paramMap).execute().body();
// 设置结束时间
long endTime = System.currentTimeMillis();
if (StringUtils.isEmpty(res)) { String res = HttpRequest.post(ocrApi + "/ofs/api/sync/v1/ft/1001")
this.setRequestToRedis(2, startTime, endTime, null, ocrServerAddress, request); .header("Authorization", request.getHeader("Authorization"))
.header("X-Timestamp", request.getHeader("X-Timestamp"))
.header("X-Checksum", request.getHeader("X-Checksum"))
.form(paramMap).execute().body();
// 设置结束时间
long endTime = System.currentTimeMillis();
if (StringUtils.isEmpty(res)) {
this.setRequestToRedis(2, startTime, endTime, null, ocrServerAddress, request);
return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date());
}
OcrResult result = JSONUtil.toBean(res, OcrResult.class);
this.setRequestToRedis(2, startTime, endTime, result, ocrServerAddress, request);
saveToAppAbilityRecordAll(result, request, ocrServerAddress.getIp(), fileId);
return result;
} catch (IOException e) {
log.error("OCR云平台接口异常", e);
return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date()); return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date());
} finally {
FileUtil.del(tempSaveDir);
if (ObjUtil.isNotNull(ocrServerAddress)) {
addServerRequestCount(ocrServerAddress.getIp(), -1);
}
} }
FileUtil.del(tempSaveDir);
OcrResult result = JSONUtil.toBean(res, OcrResult.class);
this.setRequestToRedis(2, startTime, endTime, result, ocrServerAddress, request);
saveToAppAbilityRecordAll(result, request, ocrServerAddress.getIp(), fileId);
addServerRequestCount(ocrServerAddress.getIp(), -1);
return result;
} }
public OcrResult fullTextRecognitionV2(String fileId, MultipartFile file, HttpServletRequest request) { public OcrResult fullTextRecognitionV2(String fileId, MultipartFile file, HttpServletRequest request) {
...@@ -460,43 +473,49 @@ public class RetransmissionService { ...@@ -460,43 +473,49 @@ public class RetransmissionService {
String tempSaveDir = tempDir + File.separator + IdUtil.fastSimpleUUID() + "_" + System.currentTimeMillis(); String tempSaveDir = tempDir + File.separator + IdUtil.fastSimpleUUID() + "_" + System.currentTimeMillis();
FileUtil.mkdir(tempSaveDir); FileUtil.mkdir(tempSaveDir);
File tempFile = new File(tempSaveDir, Objects.requireNonNull(FileUtil.getName(file.getOriginalFilename()))); File tempFile = new File(tempSaveDir, Objects.requireNonNull(FileUtil.getName(file.getOriginalFilename())));
ServerInfo ocrServerAddress = getServerAddressByRequestCount();
try { try {
file.transferTo(tempFile); file.transferTo(tempFile);
} catch (IOException e) {
return OcrResult.error("异常!" + e);
}
paramMap.put("file", tempFile);
ServerInfo ocrServerAddress = getServerAddressByRequestCount(); paramMap.put("file", tempFile);
if (ocrServerAddress == null) {
return OcrResult.error("OCR云平台未配置服务器信息");
}
addServerRequestCount(ocrServerAddress.getIp(), 1);
String ocrApi = "http://" + ocrServerAddress.getIp() + ":" + ocrServerAddress.getOcrPort();
// 设置开始时间 if (ocrServerAddress == null) {
long startTime = System.currentTimeMillis(); log.error("OCR云平台未配置服务器信息");
this.setRequestToRedis(1, startTime, null, null, ocrServerAddress, request); return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date());
}
addServerRequestCount(ocrServerAddress.getIp(), 1);
String ocrApi = "http://" + ocrServerAddress.getIp() + ":" + ocrServerAddress.getOcrPort();
String res = HttpRequest.post(ocrApi + "/ofs/api/sync/v2/ft/1001") // 设置开始时间
.header("Authorization", request.getHeader("Authorization")) long startTime = System.currentTimeMillis();
.header("X-Timestamp", request.getHeader("X-Timestamp")) this.setRequestToRedis(1, startTime, null, null, ocrServerAddress, request);
.header("X-Checksum", request.getHeader("X-Checksum"))
.form(paramMap).execute().body();
// 设置结束时间
long endTime = System.currentTimeMillis();
if (StringUtils.isEmpty(res)) { String res = HttpRequest.post(ocrApi + "/ofs/api/sync/v2/ft/1001")
this.setRequestToRedis(2, startTime, endTime, null, ocrServerAddress, request); .header("Authorization", request.getHeader("Authorization"))
.header("X-Timestamp", request.getHeader("X-Timestamp"))
.header("X-Checksum", request.getHeader("X-Checksum"))
.form(paramMap).execute().body();
// 设置结束时间
long endTime = System.currentTimeMillis();
if (StringUtils.isEmpty(res)) {
this.setRequestToRedis(2, startTime, endTime, null, ocrServerAddress, request);
return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date());
}
OcrResult result = JSONUtil.toBean(res, OcrResult.class);
this.setRequestToRedis(2, startTime, endTime, result, ocrServerAddress, request);
saveToAppAbilityRecordAll(result, request, ocrServerAddress.getIp(), fileId);
return result;
} catch (IOException e) {
log.error("OCR云平台接口异常", e);
return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date()); return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date());
} finally {
FileUtil.del(tempSaveDir);
if (ObjUtil.isNotNull(ocrServerAddress)) {
addServerRequestCount(ocrServerAddress.getIp(), -1);
}
} }
FileUtil.del(tempSaveDir);
OcrResult result = JSONUtil.toBean(res, OcrResult.class);
this.setRequestToRedis(2, startTime, endTime, result, ocrServerAddress, request);
saveToAppAbilityRecordAll(result, request, ocrServerAddress.getIp(), fileId);
addServerRequestCount(ocrServerAddress.getIp(), -1);
return result;
} }
public OcrResult cardRecognition(Integer code, String fileId, MultipartFile file, HttpServletRequest request) { public OcrResult cardRecognition(Integer code, String fileId, MultipartFile file, HttpServletRequest request) {
...@@ -505,42 +524,47 @@ public class RetransmissionService { ...@@ -505,42 +524,47 @@ public class RetransmissionService {
String tempSaveDir = tempDir + File.separator + IdUtil.fastSimpleUUID() + "_" + System.currentTimeMillis(); String tempSaveDir = tempDir + File.separator + IdUtil.fastSimpleUUID() + "_" + System.currentTimeMillis();
FileUtil.mkdir(tempSaveDir); FileUtil.mkdir(tempSaveDir);
File tempFile = new File(tempSaveDir, Objects.requireNonNull(FileUtil.getName(file.getOriginalFilename()))); File tempFile = new File(tempSaveDir, Objects.requireNonNull(FileUtil.getName(file.getOriginalFilename())));
ServerInfo ocrServerAddress = getServerAddressByRequestCount();
try { try {
file.transferTo(tempFile); file.transferTo(tempFile);
} catch (IOException e) { paramMap.put("file", tempFile);
return OcrResult.error("异常!" + e);
}
paramMap.put("file", tempFile);
ServerInfo ocrServerAddress = getServerAddressByRequestCount(); if (ocrServerAddress == null) {
if (ocrServerAddress == null) { log.error("OCR云平台未配置服务器信息");
return OcrResult.error("OCR云平台未配置服务器信息"); return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date());
} }
addServerRequestCount(ocrServerAddress.getIp(), 1); addServerRequestCount(ocrServerAddress.getIp(), 1);
String ocrApi = "http://" + ocrServerAddress.getIp() + ":" + ocrServerAddress.getOcrPort(); String ocrApi = "http://" + ocrServerAddress.getIp() + ":" + ocrServerAddress.getOcrPort();
// 设置开始时间 // 设置开始时间
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
this.setRequestToRedis(1, startTime, null, null, ocrServerAddress, request); this.setRequestToRedis(1, startTime, null, null, ocrServerAddress, request);
String res = HttpRequest.post(ocrApi + "/ofs/api/sync/v1/kv/" + code) String res = HttpRequest.post(ocrApi + "/ofs/api/sync/v1/kv/" + code)
.header("Authorization", request.getHeader("Authorization")) .header("Authorization", request.getHeader("Authorization"))
.header("X-Timestamp", request.getHeader("X-Timestamp")) .header("X-Timestamp", request.getHeader("X-Timestamp"))
.header("X-Checksum", request.getHeader("X-Checksum")) .header("X-Checksum", request.getHeader("X-Checksum"))
.form(paramMap).execute().body(); .form(paramMap).execute().body();
// 设置结束时间 // 设置结束时间
long endTime = System.currentTimeMillis(); long endTime = System.currentTimeMillis();
if (StringUtils.isEmpty(res)) { if (StringUtils.isEmpty(res)) {
this.setRequestToRedis(2, startTime, endTime, null, ocrServerAddress, request); this.setRequestToRedis(2, startTime, endTime, null, ocrServerAddress, request);
return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date());
}
OcrResult result = JSONUtil.toBean(res, OcrResult.class);
this.setRequestToRedis(2, startTime, endTime, result, ocrServerAddress, request);
saveToAppAbilityRecordAll(result, request, ocrServerAddress.getIp(), fileId);
return result;
} catch (IOException e) {
log.error("OCR云平台接口异常", e);
return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date()); return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date());
} finally {
FileUtil.del(tempSaveDir);
if (ObjUtil.isNotNull(ocrServerAddress)) {
addServerRequestCount(ocrServerAddress.getIp(), -1);
}
} }
FileUtil.del(tempSaveDir);
OcrResult result = JSONUtil.toBean(res, OcrResult.class);
this.setRequestToRedis(2, startTime, endTime, result, ocrServerAddress, request);
saveToAppAbilityRecordAll(result, request, ocrServerAddress.getIp(), fileId);
addServerRequestCount(ocrServerAddress.getIp(), -1);
return result;
} }
public OcrResult cardRecognitionBaseMinio(String id, String bucket, public OcrResult cardRecognitionBaseMinio(String id, String bucket,
...@@ -591,44 +615,49 @@ public class RetransmissionService { ...@@ -591,44 +615,49 @@ public class RetransmissionService {
String tempSaveDir = tempDir + File.separator + IdUtil.fastSimpleUUID() + "_" + System.currentTimeMillis(); String tempSaveDir = tempDir + File.separator + IdUtil.fastSimpleUUID() + "_" + System.currentTimeMillis();
FileUtil.mkdir(tempSaveDir); FileUtil.mkdir(tempSaveDir);
File tempFile = new File(tempSaveDir, Objects.requireNonNull(FileUtil.getName(file.getOriginalFilename()))); File tempFile = new File(tempSaveDir, Objects.requireNonNull(FileUtil.getName(file.getOriginalFilename())));
ServerInfo ocrServerAddress = getServerAddressByRequestCount();
try { try {
file.transferTo(tempFile); file.transferTo(tempFile);
} catch (IOException e) { paramMap.put("file", tempFile);
return OcrResult.error("异常!" + e);
}
paramMap.put("file", tempFile);
ServerInfo ocrServerAddress = getServerAddressByRequestCount(); if (ocrServerAddress == null) {
if (ocrServerAddress == null) { log.error("OCR云平台未配置服务器信息");
return OcrResult.error("OCR云平台未配置服务器信息"); return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date());
} }
addServerRequestCount(ocrServerAddress.getIp(), 1); addServerRequestCount(ocrServerAddress.getIp(), 1);
String ocrApi = "http://" + ocrServerAddress.getIp() + ":" + ocrServerAddress.getOcrPort(); String ocrApi = "http://" + ocrServerAddress.getIp() + ":" + ocrServerAddress.getOcrPort();
// 设置开始时间 // 设置开始时间
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
this.setRequestToRedis(1, startTime, null, null, ocrServerAddress, request); this.setRequestToRedis(1, startTime, null, null, ocrServerAddress, request);
String res = HttpRequest.post(ocrApi + "/ofs/api/sync/v1/6002") String res = HttpRequest.post(ocrApi + "/ofs/api/sync/v1/6002")
.header("Authorization", request.getHeader("Authorization")) .header("Authorization", request.getHeader("Authorization"))
.header("X-Timestamp", request.getHeader("X-Timestamp")) .header("X-Timestamp", request.getHeader("X-Timestamp"))
.header("X-Checksum", request.getHeader("X-Checksum")) .header("X-Checksum", request.getHeader("X-Checksum"))
.form(paramMap).execute().body(); .form(paramMap).execute().body();
// 设置结束时间 // 设置结束时间
long endTime = System.currentTimeMillis(); long endTime = System.currentTimeMillis();
if (StringUtils.isEmpty(res)) { if (StringUtils.isEmpty(res)) {
this.setRequestToRedis(2, startTime, endTime, null, ocrServerAddress, request); this.setRequestToRedis(2, startTime, endTime, null, ocrServerAddress, request);
return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date()); return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date());
} }
FileUtil.del(tempSaveDir);
OcrResult result = JSONUtil.toBean(res, OcrResult.class); OcrResult result = JSONUtil.toBean(res, OcrResult.class);
this.setRequestToRedis(2, startTime, endTime, result, ocrServerAddress, request); this.setRequestToRedis(2, startTime, endTime, result, ocrServerAddress, request);
saveToAppAbilityRecordAll(result, request, ocrServerAddress.getIp(), fileId); saveToAppAbilityRecordAll(result, request, ocrServerAddress.getIp(), fileId);
addServerRequestCount(ocrServerAddress.getIp(), -1); return result;
return result; } catch (Exception e) {
log.error("OCR云平台接口异常", e);
return new OcrResult("007500", "识别失败,请重试", null, DateUtil.date());
} finally {
FileUtil.del(tempSaveDir);
if (ObjUtil.isNotNull(ocrServerAddress)) {
addServerRequestCount(ocrServerAddress.getIp(), -1);
}
}
} }
public void fileConvert(String fileId, MultipartFile srcFile, String dstFileType, HttpServletRequest request, HttpServletResponse response) { public void fileConvert(String fileId, MultipartFile srcFile, String dstFileType, HttpServletRequest request, HttpServletResponse response) {
...@@ -638,20 +667,15 @@ public class RetransmissionService { ...@@ -638,20 +667,15 @@ public class RetransmissionService {
String tempSaveDir = tempDir + File.separator + IdUtil.fastSimpleUUID() + "_" + System.currentTimeMillis(); String tempSaveDir = tempDir + File.separator + IdUtil.fastSimpleUUID() + "_" + System.currentTimeMillis();
FileUtil.mkdir(tempSaveDir); FileUtil.mkdir(tempSaveDir);
File tempFile = new File(tempSaveDir, Objects.requireNonNull(FileUtil.getName(srcFile.getOriginalFilename()))); File tempFile = new File(tempSaveDir, Objects.requireNonNull(FileUtil.getName(srcFile.getOriginalFilename())));
ServerInfo ocrServerAddress = getServerAddressByRequestCount();
try { try {
srcFile.transferTo(tempFile); srcFile.transferTo(tempFile);
} catch (IOException e) { paramMap.put("srcFile", tempFile);
return;
} if (null == ocrServerAddress) {
paramMap.put("srcFile", srcFile); log.error("云平台未配置服务器信息");
try {
// ServerInfo ocrServerAddress = getOcrServerAddress();
ServerInfo ocrServerAddress = getServerAddressByRequestCount();
if (ocrServerAddress == null) {
returnError(response, 500, "OCR云平台未配置服务器信息");
return; return;
} }
// setActiveServer(ocrServerAddress.getIp());
addServerRequestCount(ocrServerAddress.getIp(), 1); addServerRequestCount(ocrServerAddress.getIp(), 1);
String ocrApi = "http://" + ocrServerAddress.getIp() + ":" + ocrServerAddress.getOcrPort(); String ocrApi = "http://" + ocrServerAddress.getIp() + ":" + ocrServerAddress.getOcrPort();
HttpResponse httpResponse = HttpRequest.post(ocrApi + "/ofs/api/file/convert") HttpResponse httpResponse = HttpRequest.post(ocrApi + "/ofs/api/file/convert")
...@@ -661,22 +685,19 @@ public class RetransmissionService { ...@@ -661,22 +685,19 @@ public class RetransmissionService {
.contentType(ContentType.MULTIPART.getValue()) .contentType(ContentType.MULTIPART.getValue())
.form(paramMap).execute(); .form(paramMap).execute();
Map<String, List<String>> headers = httpResponse.headers(); System.out.println(httpResponse.body());
if (!headers.isEmpty()) { byte[] bytes = httpResponse.bodyBytes();
// 遍历赋值header try (OutputStream outputStream = response.getOutputStream()) {
for (Map.Entry<String, List<String>> entry : headers.entrySet()) { outputStream.write(bytes);
response.setHeader(entry.getKey(), entry.getValue().get(0));
}
} }
FileUtil.del(tempSaveDir); } catch (Exception e) {
addServerRequestCount(ocrServerAddress.getIp(), -1);
// 赋值body
IoUtil.copy(httpResponse.bodyStream(), response.getOutputStream());
} catch (IOException e) {
log.error("OCR云平台接口异常", e); log.error("OCR云平台接口异常", e);
returnError(response, 500, "OCR云平台接口异常"); } finally {
FileUtil.del(tempSaveDir);
if (ObjUtil.isNotNull(ocrServerAddress)) {
addServerRequestCount(ocrServerAddress.getIp(), -1);
}
} }
} }
@Async("dataPersistThreadPoolTaskExecutor") @Async("dataPersistThreadPoolTaskExecutor")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment