处理更新基线信息逻辑

This commit is contained in:
wangzhijiang
2024-03-12 09:39:53 +08:00
parent 6c553affd6
commit 129bb0af3a
@@ -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;
} }