处理更新基线信息逻辑
This commit is contained in:
+69
-64
@@ -523,73 +523,77 @@ public class OnlyOfficeController {
|
|||||||
Date now = new Date();
|
Date now = new Date();
|
||||||
logger.info("更新基线信息开始==========================================");
|
logger.info("更新基线信息开始==========================================");
|
||||||
logger.info("时间:" + DateUtils.date2Str(now,DateUtils.time_sdf.get()));
|
logger.info("时间:" + DateUtils.date2Str(now,DateUtils.time_sdf.get()));
|
||||||
OnlineFileLog createTimeLatestOnlineFileLog = this.getCreateTimeLatestOnlineFileLog(fileId,now);
|
// 查询总次数,如果查了超过10次还没有查出来,则终止本次更新.
|
||||||
createTimeLatestOnlineFileLog.setJxFileName(jxFileName);
|
int queryCount = 0;
|
||||||
createTimeLatestOnlineFileLog.setDataType(dataType);
|
OnlineFileLog createTimeLatestOnlineFileLog = this.getCreateTimeLatestOnlineFileLog(fileId,now,queryCount);
|
||||||
|
if (null != createTimeLatestOnlineFileLog) {
|
||||||
|
createTimeLatestOnlineFileLog.setJxFileName(jxFileName);
|
||||||
|
createTimeLatestOnlineFileLog.setDataType(dataType);
|
||||||
|
|
||||||
logger.info("更新基线信息结束==========================================");
|
logger.info("更新基线信息结束==========================================");
|
||||||
|
|
||||||
logger.info("推送保存基线版本文件信息开始==========================================");
|
logger.info("推送保存基线版本文件信息开始==========================================");
|
||||||
try {
|
try {
|
||||||
// 推送保存基线版本文件信息
|
// 推送保存基线版本文件信息
|
||||||
RestTemplate restTemplate = new RestTemplate();
|
RestTemplate restTemplate = new RestTemplate();
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.setContentType(MediaType.APPLICATION_JSON);
|
headers.setContentType(MediaType.APPLICATION_JSON);
|
||||||
|
|
||||||
// 创建MultiValueMap对象,用于存储请求参数
|
// 创建MultiValueMap对象,用于存储请求参数
|
||||||
MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
|
MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();
|
||||||
params.add("fileId", createTimeLatestOnlineFileLog.getHisId()); // 每一次草稿的id(第一次发起文档编辑时的id)
|
params.add("fileId", createTimeLatestOnlineFileLog.getHisId()); // 每一次草稿的id(第一次发起文档编辑时的id)
|
||||||
params.add("docId", createTimeLatestOnlineFileLog.getId()); // 基线文档主键id
|
params.add("docId", createTimeLatestOnlineFileLog.getId()); // 基线文档主键id
|
||||||
|
|
||||||
// 使用HttpEntity对象包装请求体和请求头
|
// 使用HttpEntity对象包装请求体和请求头
|
||||||
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
|
HttpEntity<MultiValueMap<String, Object>> requestEntity = new HttpEntity<>(params, headers);
|
||||||
|
|
||||||
// 发送POST请求并获取响应
|
// 发送POST请求并获取响应
|
||||||
ResponseEntity<String> responseEntity = restTemplate.postForEntity(bydSaveBaseLineDocIdUrl, requestEntity, String.class);
|
ResponseEntity<String> responseEntity = restTemplate.postForEntity(bydSaveBaseLineDocIdUrl, requestEntity, String.class);
|
||||||
String body = responseEntity.getBody();
|
String body = responseEntity.getBody();
|
||||||
logger.info("推送保存基线版本文件信息结果:" + body);
|
logger.info("推送保存基线版本文件信息结果:" + body);
|
||||||
}catch (Exception ex){
|
}catch (Exception ex){
|
||||||
ex.printStackTrace();
|
ex.printStackTrace();
|
||||||
logger.error("推送保存基线版本文件信息失败:" + ex.getMessage());
|
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();
|
return Result.OK();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -597,7 +601,7 @@ public class OnlyOfficeController {
|
|||||||
* 获取在线编辑文件保存历史,更新基线信息使用。
|
* 获取在线编辑文件保存历史,更新基线信息使用。
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public OnlineFileLog getCreateTimeLatestOnlineFileLog(String fileId,Date now){
|
public OnlineFileLog getCreateTimeLatestOnlineFileLog(String fileId,Date now,int queryCount){
|
||||||
QueryWrapper<OnlineFileLog> ofLogQueryWrap = new QueryWrapper<>();
|
QueryWrapper<OnlineFileLog> ofLogQueryWrap = new QueryWrapper<>();
|
||||||
ofLogQueryWrap.lambda().eq(OnlineFileLog::getHisId,fileId);
|
ofLogQueryWrap.lambda().eq(OnlineFileLog::getHisId,fileId);
|
||||||
ofLogQueryWrap.lambda().ge(OnlineFileLog::getCreateTime,now);
|
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 {
|
try {
|
||||||
Thread.sleep(10000);
|
Thread.sleep(10000);
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
result = this.getCreateTimeLatestOnlineFileLog(fileId,now);
|
result = this.getCreateTimeLatestOnlineFileLog(fileId,now,queryCount);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user