From 129bb0af3a948ffc6d47b12dc574ae7d922a2cf7 Mon Sep 17 00:00:00 2001 From: wangzhijiang <1358525938@qq.com> Date: Tue, 12 Mar 2024 09:39:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=84=E7=90=86=E6=9B=B4=E6=96=B0=E5=9F=BA?= =?UTF-8?q?=E7=BA=BF=E4=BF=A1=E6=81=AF=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/OnlyOfficeController.java | 133 +++++++++--------- 1 file changed, 69 insertions(+), 64 deletions(-) diff --git a/byd-structuredplugins-serve/laws-modules/src/main/java/com/jero/modules/onlyoffice/controller/OnlyOfficeController.java b/byd-structuredplugins-serve/laws-modules/src/main/java/com/jero/modules/onlyoffice/controller/OnlyOfficeController.java index dac6574..ece99f1 100644 --- a/byd-structuredplugins-serve/laws-modules/src/main/java/com/jero/modules/onlyoffice/controller/OnlyOfficeController.java +++ b/byd-structuredplugins-serve/laws-modules/src/main/java/com/jero/modules/onlyoffice/controller/OnlyOfficeController.java @@ -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 params = new LinkedMultiValueMap<>(); - params.add("fileId", createTimeLatestOnlineFileLog.getHisId()); // 每一次草稿的id(第一次发起文档编辑时的id) - params.add("docId", createTimeLatestOnlineFileLog.getId()); // 基线文档主键id + // 创建MultiValueMap对象,用于存储请求参数 + MultiValueMap params = new LinkedMultiValueMap<>(); + params.add("fileId", createTimeLatestOnlineFileLog.getHisId()); // 每一次草稿的id(第一次发起文档编辑时的id) + params.add("docId", createTimeLatestOnlineFileLog.getId()); // 基线文档主键id - // 使用HttpEntity对象包装请求体和请求头 - HttpEntity> requestEntity = new HttpEntity<>(params, headers); + // 使用HttpEntity对象包装请求体和请求头 + HttpEntity> requestEntity = new HttpEntity<>(params, headers); - // 发送POST请求并获取响应 - ResponseEntity 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 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 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> requestEntity2 = new HttpEntity<>(params2, headers2); + + // 发送POST请求并获取响应 + ResponseEntity 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 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> requestEntity2 = new HttpEntity<>(params2, headers2); - - // 发送POST请求并获取响应 - ResponseEntity 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 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; }