处理更新基线信息逻辑
This commit is contained in:
+69
-64
@@ -523,73 +523,77 @@ public class OnlyOfficeController {
|
||||
Date now = new Date();
|
||||
logger.info("更新基线信息开始==========================================");
|
||||
logger.info("时间:" + DateUtils.date2Str(now,DateUtils.time_sdf.get()));
|
||||
OnlineFileLog createTimeLatestOnlineFileLog = this.getCreateTimeLatestOnlineFileLog(fileId,now);
|
||||
createTimeLatestOnlineFileLog.setJxFileName(jxFileName);
|
||||
createTimeLatestOnlineFileLog.setDataType(dataType);
|
||||
// 查询总次数,如果查了超过10次还没有查出来,则终止本次更新.
|
||||
int queryCount = 0;
|
||||
OnlineFileLog createTimeLatestOnlineFileLog = this.getCreateTimeLatestOnlineFileLog(fileId,now,queryCount);
|
||||
if (null != createTimeLatestOnlineFileLog) {
|
||||
createTimeLatestOnlineFileLog.setJxFileName(jxFileName);
|
||||
createTimeLatestOnlineFileLog.setDataType(dataType);
|
||||
|
||||
logger.info("更新基线信息结束==========================================");
|
||||
logger.info("更新基线信息结束==========================================");
|
||||
|
||||
logger.info("推送保存基线版本文件信息开始==========================================");
|
||||
try {
|
||||
// 推送保存基线版本文件信息
|
||||
RestTemplate restTemplate = new RestTemplate();
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||
logger.info("推送保存基线版本文件信息开始==========================================");
|
||||
try {
|
||||
// 推送保存基线版本文件信息
|
||||
RestTemplate restTemplate = new RestTemplate();
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||
|
||||
// 创建MultiValueMap对象,用于存储请求参数
|
||||
MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
|
||||
params.add("fileId", createTimeLatestOnlineFileLog.getHisId()); // 每一次草稿的id(第一次发起文档编辑时的id)
|
||||
params.add("docId", createTimeLatestOnlineFileLog.getId()); // 基线文档主键id
|
||||
// 创建MultiValueMap对象,用于存储请求参数
|
||||
MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
|
||||
params.add("fileId", createTimeLatestOnlineFileLog.getHisId()); // 每一次草稿的id(第一次发起文档编辑时的id)
|
||||
params.add("docId", createTimeLatestOnlineFileLog.getId()); // 基线文档主键id
|
||||
|
||||
// 使用HttpEntity对象包装请求体和请求头
|
||||
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
|
||||
// 使用HttpEntity对象包装请求体和请求头
|
||||
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
|
||||
|
||||
// 发送POST请求并获取响应
|
||||
ResponseEntity<String> responseEntity = restTemplate.postForEntity(bydSaveBaseLineDocIdUrl, requestEntity, String.class);
|
||||
String body = responseEntity.getBody();
|
||||
logger.info("推送保存基线版本文件信息结果:" + body);
|
||||
}catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
logger.error("推送保存基线版本文件信息失败:" + ex.getMessage());
|
||||
// 发送POST请求并获取响应
|
||||
ResponseEntity<String> responseEntity = restTemplate.postForEntity(bydSaveBaseLineDocIdUrl, requestEntity, String.class);
|
||||
String body = responseEntity.getBody();
|
||||
logger.info("推送保存基线版本文件信息结果:" + body);
|
||||
}catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
logger.error("推送保存基线版本文件信息失败:" + ex.getMessage());
|
||||
}
|
||||
logger.info("推送保存基线版本文件信息结束==========================================");
|
||||
|
||||
|
||||
// 将这个文件上传至比亚迪文件系统.并将该接口返回的data中的文件id,更新到该条数据中.
|
||||
logger.info("基线版本文件上传接口开始==========================================");
|
||||
try {
|
||||
RestTemplate restTemplate2 = new RestTemplate();
|
||||
|
||||
HttpHeaders headers2 = new HttpHeaders();
|
||||
headers2.setContentType(MediaType.MULTIPART_FORM_DATA);
|
||||
|
||||
// 创建MultiValueMap对象,用于存储请求参数
|
||||
MultiValueMap<String, Object> params2 = new LinkedMultiValueMap<>();
|
||||
|
||||
// 将文件转换为FileSystemResource对象,并将其添加到MultiValueMap中
|
||||
String attFileId = createTimeLatestOnlineFileLog.getAttFileId();
|
||||
OSSFile ossFile = ossFileService.getById(attFileId);
|
||||
File file = new File(filePath + ossFile.getUrl());
|
||||
FileSystemResource fileResource = new FileSystemResource(file);
|
||||
params2.add("file", fileResource);
|
||||
|
||||
// 使用HttpEntity对象包装请求体和请求头
|
||||
HttpEntity<MultiValueMap<String, Object>> requestEntity2 = new HttpEntity<>(params2, headers2);
|
||||
|
||||
// 发送POST请求并获取响应
|
||||
ResponseEntity<String> responseEntity2 = restTemplate2.postForEntity(bydUploadFileUrl, requestEntity2, String.class);
|
||||
String body2 = responseEntity2.getBody();
|
||||
JSONObject jsonObject2 = JSONObject.parseObject(body2);
|
||||
String data = jsonObject2.getString("data");
|
||||
createTimeLatestOnlineFileLog.setBydJxFileId(data);
|
||||
logger.info("基线版本文件上传接口结果:" + body2);
|
||||
}catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
logger.error("基线版本文件上传失败:" + ex.getMessage());
|
||||
}
|
||||
logger.info("基线版本文件上传接口结束==========================================");
|
||||
|
||||
this.onlineFileLogDao.updateById(createTimeLatestOnlineFileLog);
|
||||
}
|
||||
logger.info("推送保存基线版本文件信息结束==========================================");
|
||||
|
||||
|
||||
// 将这个文件上传至比亚迪文件系统.并将该接口返回的data中的文件id,更新到该条数据中.
|
||||
logger.info("基线版本文件上传接口开始==========================================");
|
||||
try {
|
||||
RestTemplate restTemplate2 = new RestTemplate();
|
||||
|
||||
HttpHeaders headers2 = new HttpHeaders();
|
||||
headers2.setContentType(MediaType.MULTIPART_FORM_DATA);
|
||||
|
||||
// 创建MultiValueMap对象,用于存储请求参数
|
||||
MultiValueMap<String, Object> params2 = new LinkedMultiValueMap<>();
|
||||
|
||||
// 将文件转换为FileSystemResource对象,并将其添加到MultiValueMap中
|
||||
String attFileId = createTimeLatestOnlineFileLog.getAttFileId();
|
||||
OSSFile ossFile = ossFileService.getById(attFileId);
|
||||
File file = new File(filePath + ossFile.getUrl());
|
||||
FileSystemResource fileResource = new FileSystemResource(file);
|
||||
params2.add("file", fileResource);
|
||||
|
||||
// 使用HttpEntity对象包装请求体和请求头
|
||||
HttpEntity<MultiValueMap<String, Object>> requestEntity2 = new HttpEntity<>(params2, headers2);
|
||||
|
||||
// 发送POST请求并获取响应
|
||||
ResponseEntity<String> responseEntity2 = restTemplate2.postForEntity(bydUploadFileUrl, requestEntity2, String.class);
|
||||
String body2 = responseEntity2.getBody();
|
||||
JSONObject jsonObject2 = JSONObject.parseObject(body2);
|
||||
String data = jsonObject2.getString("data");
|
||||
createTimeLatestOnlineFileLog.setBydJxFileId(data);
|
||||
logger.info("基线版本文件上传接口结果:" + body2);
|
||||
}catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
logger.error("基线版本文件上传失败:" + ex.getMessage());
|
||||
}
|
||||
logger.info("基线版本文件上传接口结束==========================================");
|
||||
|
||||
this.onlineFileLogDao.updateById(createTimeLatestOnlineFileLog);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@@ -597,7 +601,7 @@ public class OnlyOfficeController {
|
||||
* 获取在线编辑文件保存历史,更新基线信息使用。
|
||||
* @return
|
||||
*/
|
||||
public OnlineFileLog getCreateTimeLatestOnlineFileLog(String fileId,Date now){
|
||||
public OnlineFileLog getCreateTimeLatestOnlineFileLog(String fileId,Date now,int queryCount){
|
||||
QueryWrapper<OnlineFileLog> ofLogQueryWrap = new QueryWrapper<>();
|
||||
ofLogQueryWrap.lambda().eq(OnlineFileLog::getHisId,fileId);
|
||||
ofLogQueryWrap.lambda().ge(OnlineFileLog::getCreateTime,now);
|
||||
@@ -631,13 +635,14 @@ public class OnlyOfficeController {
|
||||
// }
|
||||
// }
|
||||
|
||||
if (ObjectUtils.isEmpty(result)){
|
||||
if (ObjectUtils.isEmpty(result) && queryCount < 10){
|
||||
queryCount ++;
|
||||
try {
|
||||
Thread.sleep(10000);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
result = this.getCreateTimeLatestOnlineFileLog(fileId,now);
|
||||
result = this.getCreateTimeLatestOnlineFileLog(fileId,now,queryCount);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user