fix: 企标修改流程文件转换错误

This commit is contained in:
2024-04-25 18:03:06 +08:00
parent 90b532fe9d
commit edb4e5bd75
2 changed files with 9 additions and 7 deletions
@@ -406,7 +406,7 @@ public class BusProcessModelHisServiceImpl extends ServiceImpl<BusProcessModelHi
ossFileService.updateById(replaceFile);
// 将文件扩展名去掉
String fileTitleName = fileName.substring(0, fileName.lastIndexOf("."));
onlineOfficePdfUtil.convertAndSavePdfFile(fileTitleName, ossFile.getId(), his.getEditFilePath());
onlineOfficePdfUtil.convertAndSavePdfFile(fileTitleName, replaceFile.getId(), his.getEditFilePath());
}
}
@@ -32,6 +32,7 @@ import javax.annotation.Resource;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
/**
* @author: Mzaxd
@@ -59,15 +60,16 @@ public class OnlyOfficePdfUtil {
private static final int TIMEOUT = 60000; // 通用超时设置
@SneakyThrows
public void convertAndSavePdfFile(String fileName, String key, String onlineFilePath) {
log.info("转换的请求参数:onlyOfficeUrl:{}, filePdfName:{}, key:{}, onlineFilePath:{}", onlyOfficeUrl, fileName, key, onlineFilePath);
public void convertAndSavePdfFile(String fileName, String originFileId, String onlineFilePath) {
String key = UUID.randomUUID().toString();
log.info("转换的请求参数:onlyOfficeUrl:{}, filePdfName:{}, key:{}, originFileId:{}, onlineFilePath:{}", onlyOfficeUrl, fileName, key, originFileId, onlineFilePath);
// 获取onlyOffice转换后文件的url
String fileUrl = convertFile(fileName, key, onlineFilePath);
log.info("文件转换后PDF的URL: {}", fileUrl);
try (CloseableHttpClient httpClient = HttpClientBuilder.create().build()) {
// 根据url获取转换后的文件
fetchAndSaveFile(httpClient, fileName, fileUrl, key);
fetchAndSaveFile(httpClient, fileName, fileUrl, originFileId);
} // 自动关闭httpClient
}
@@ -109,7 +111,7 @@ public class OnlyOfficePdfUtil {
}
@SneakyThrows
private void fetchAndSaveFile(CloseableHttpClient httpClient, String fileName, String fileUrl, String key) {
private void fetchAndSaveFile(CloseableHttpClient httpClient, String fileName, String fileUrl, String originFileId) {
String pdfFileName = fileName + ".pdf";
HttpGet get = new HttpGet(fileUrl);
try (CloseableHttpResponse response = httpClient.execute(get)) {
@@ -125,7 +127,7 @@ public class OnlyOfficePdfUtil {
if (oConvertUtils.isNotEmpty(savePath)) {
// 如果有的话,删除原来的pdf版本
LambdaQueryWrapper<OSSFile> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(OSSFile::getBindId, key);
lambdaQueryWrapper.eq(OSSFile::getBindId, originFileId);
ossFileService.remove(lambdaQueryWrapper);
// 上传成功 进行数据库存储
@@ -133,7 +135,7 @@ public class OnlyOfficePdfUtil {
// 文件名
ossFile.setFileName(pdfFileName);
ossFile.setUrl(savePath);
ossFile.setBindId(key);
ossFile.setBindId(originFileId);
ossFileService.save(ossFile);
}
}