Commit 1aa611bd by zhangxingmin

push

parent d92dcb7f
...@@ -5,6 +5,7 @@ import com.yd.oss.api.service.ApiExcelService; ...@@ -5,6 +5,7 @@ import com.yd.oss.api.service.ApiExcelService;
import com.yd.oss.feign.client.ApiExcelFeignClient; import com.yd.oss.feign.client.ApiExcelFeignClient;
import com.yd.oss.feign.dto.ExportResult; import com.yd.oss.feign.dto.ExportResult;
import com.yd.oss.feign.request.ApiExportRequest; import com.yd.oss.feign.request.ApiExportRequest;
import com.yd.oss.feign.request.ApiOssExcelParseRequest;
import com.yd.oss.feign.request.ApiOssExportAppointmentExcelRequest; import com.yd.oss.feign.request.ApiOssExportAppointmentExcelRequest;
import com.yd.oss.feign.response.ApiOssExcelParseResponse; import com.yd.oss.feign.response.ApiOssExcelParseResponse;
import com.yd.oss.feign.response.ApiOssExportAppointmentExcelResponse; import com.yd.oss.feign.response.ApiOssExportAppointmentExcelResponse;
...@@ -46,7 +47,7 @@ public class ApiExcelController implements ApiExcelFeignClient { ...@@ -46,7 +47,7 @@ public class ApiExcelController implements ApiExcelFeignClient {
* @return * @return
*/ */
@Override @Override
public Result<ApiOssExcelParseResponse> parse(MultipartFile file, String[] sheetClassNames) { public Result<ApiOssExcelParseResponse> parse(MultipartFile file, String sheetClassNames) {
return apiExcelService.parse(file,sheetClassNames); return apiExcelService.parse(file,sheetClassNames);
} }
......
...@@ -3,6 +3,7 @@ package com.yd.oss.api.service; ...@@ -3,6 +3,7 @@ package com.yd.oss.api.service;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.oss.feign.dto.ExportParam; import com.yd.oss.feign.dto.ExportParam;
import com.yd.oss.feign.dto.ExportResult; import com.yd.oss.feign.dto.ExportResult;
import com.yd.oss.feign.request.ApiOssExcelParseRequest;
import com.yd.oss.feign.request.ApiOssExportAppointmentExcelRequest; import com.yd.oss.feign.request.ApiOssExportAppointmentExcelRequest;
import com.yd.oss.feign.response.ApiOssExcelParseResponse; import com.yd.oss.feign.response.ApiOssExcelParseResponse;
import com.yd.oss.feign.response.ApiOssExportAppointmentExcelResponse; import com.yd.oss.feign.response.ApiOssExportAppointmentExcelResponse;
...@@ -15,7 +16,7 @@ public interface ApiExcelService { ...@@ -15,7 +16,7 @@ public interface ApiExcelService {
Result<ApiOssExportAppointmentExcelResponse> exportAppointment(ApiOssExportAppointmentExcelRequest request); Result<ApiOssExportAppointmentExcelResponse> exportAppointment(ApiOssExportAppointmentExcelRequest request);
Result<ApiOssExcelParseResponse> parse(MultipartFile file, String[] sheetClassNames); Result<ApiOssExcelParseResponse> parse(MultipartFile file, String sheetClassNames);
Result<ExportResult> export(List<?> dataList, ExportParam exportParam, Class<?> entityClass); Result<ExportResult> export(List<?> dataList, ExportParam exportParam, Class<?> entityClass);
......
...@@ -3,6 +3,7 @@ package com.yd.oss.api.service.impl; ...@@ -3,6 +3,7 @@ package com.yd.oss.api.service.impl;
import com.yd.common.exception.BusinessException; import com.yd.common.exception.BusinessException;
import com.yd.common.result.Result; import com.yd.common.result.Result;
import com.yd.oss.api.service.ApiExcelService; import com.yd.oss.api.service.ApiExcelService;
import com.yd.oss.feign.request.ApiOssExcelParseRequest;
import com.yd.oss.feign.request.ApiOssExportAppointmentExcelRequest; import com.yd.oss.feign.request.ApiOssExportAppointmentExcelRequest;
import com.yd.oss.feign.response.ApiOssExcelParseResponse; import com.yd.oss.feign.response.ApiOssExcelParseResponse;
import com.yd.oss.feign.response.ApiOssExportAppointmentExcelResponse; import com.yd.oss.feign.response.ApiOssExportAppointmentExcelResponse;
...@@ -63,13 +64,14 @@ public class ApiExcelServiceImpl implements ApiExcelService { ...@@ -63,13 +64,14 @@ public class ApiExcelServiceImpl implements ApiExcelService {
*/ */
@Override @Override
public Result<ApiOssExcelParseResponse> parse(MultipartFile file, public Result<ApiOssExcelParseResponse> parse(MultipartFile file,
String[] sheetClassNames) { String sheetClassNames) {
ApiOssExcelParseResponse response = new ApiOssExcelParseResponse(); ApiOssExcelParseResponse response = new ApiOssExcelParseResponse();
try { try {
String[] strings = sheetClassNames.split(",");
// 将类名字符串转换为Class对象 // 将类名字符串转换为Class对象
Class<?>[] sheetClasses = new Class<?>[sheetClassNames.length]; Class<?>[] sheetClasses = new Class<?>[strings.length];
for (int i = 0; i < sheetClassNames.length; i++) { for (int i = 0; i < strings.length; i++) {
sheetClasses[i] = Class.forName(sheetClassNames[i]); sheetClasses[i] = Class.forName(strings[i]);
} }
// 解析Excel // 解析Excel
......
...@@ -26,5 +26,10 @@ ...@@ -26,5 +26,10 @@
<groupId>com.fasterxml.jackson.core</groupId> <groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId> <artifactId>jackson-annotations</artifactId>
</dependency> </dependency>
<dependency>
<groupId>com.yd</groupId>
<artifactId>yd-csf-feign</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies> </dependencies>
</project> </project>
...@@ -4,6 +4,7 @@ import com.yd.common.result.Result; ...@@ -4,6 +4,7 @@ import com.yd.common.result.Result;
import com.yd.oss.feign.dto.ExportResult; import com.yd.oss.feign.dto.ExportResult;
import com.yd.oss.feign.fallback.ApiExcelFeignFallbackFactory; import com.yd.oss.feign.fallback.ApiExcelFeignFallbackFactory;
import com.yd.oss.feign.request.ApiExportRequest; import com.yd.oss.feign.request.ApiExportRequest;
import com.yd.oss.feign.request.ApiOssExcelParseRequest;
import com.yd.oss.feign.request.ApiOssExportAppointmentExcelRequest; import com.yd.oss.feign.request.ApiOssExportAppointmentExcelRequest;
import com.yd.oss.feign.response.ApiOssExcelParseResponse; import com.yd.oss.feign.response.ApiOssExcelParseResponse;
import com.yd.oss.feign.response.ApiOssExportAppointmentExcelResponse; import com.yd.oss.feign.response.ApiOssExportAppointmentExcelResponse;
...@@ -39,7 +40,7 @@ public interface ApiExcelFeignClient { ...@@ -39,7 +40,7 @@ public interface ApiExcelFeignClient {
*/ */
@PostMapping(value = "/parse-excel", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @PostMapping(value = "/parse-excel", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
Result<ApiOssExcelParseResponse> parse(@RequestPart("file") MultipartFile file, Result<ApiOssExcelParseResponse> parse(@RequestPart("file") MultipartFile file,
@RequestPart("sheetClassNames") String[] sheetClassNames); @RequestParam(value = "sheetClassNames", required = false) String sheetClassNames);
/** /**
* 导出excel(通用) * 导出excel(通用)
......
...@@ -29,10 +29,11 @@ public class ApiExcelFeignFallbackFactory implements FallbackFactory<ApiExcelFei ...@@ -29,10 +29,11 @@ public class ApiExcelFeignFallbackFactory implements FallbackFactory<ApiExcelFei
} }
@Override @Override
public Result<ApiOssExcelParseResponse> parse(MultipartFile file, String[] sheetClassNames) { public Result<ApiOssExcelParseResponse> parse(MultipartFile file, String sheetClassNames) {
return null; return null;
} }
@Override @Override
public Result<ExportResult> export(ApiExportRequest request) { public Result<ExportResult> export(ApiExportRequest request) {
return null; return null;
......
...@@ -32,18 +32,40 @@ public class PdfUtil { ...@@ -32,18 +32,40 @@ public class PdfUtil {
* @param wordFile word源文件 * @param wordFile word源文件
*/ */
public static void linuxWordToPdf(File pdfFile, File wordFile) { public static void linuxWordToPdf(File pdfFile, File wordFile) {
// 获取word文件的绝对路径 String sourcePath = wordFile.getAbsolutePath();
String sourcePath = wordFile.getAbsolutePath();// 获取pdf文件存放文件夹的绝对路径
String outDir = pdfFile.getAbsolutePath().substring(0, pdfFile.getAbsolutePath().lastIndexOf(File.separator)); String outDir = pdfFile.getAbsolutePath().substring(0, pdfFile.getAbsolutePath().lastIndexOf(File.separator));
// 构建LibreOffice的命令行工具命令 // 使用绝对路径尝试不同的命令
String command = "libreoffice --invisible --convert-to pdf --outdir " + outDir + " " + sourcePath; String[] commands = {
log.info(command); "/usr/bin/libreoffice --invisible --convert-to pdf --outdir " + outDir + " " + sourcePath,
// 执行转换命令 "/usr/bin/soffice --invisible --convert-to pdf --outdir " + outDir + " " + sourcePath,
try { "/usr/lib64/libreoffice/program/soffice --invisible --convert-to pdf --outdir " + outDir + " " + sourcePath
executeLinuxCmd(command); };
} catch (Exception e) {
log.error("linuxWordToPdf linux环境word转换为pdf时出现异常:", e); boolean success = false;
Exception lastException = null;
for (String command : commands) {
try {
log.info("尝试命令: " + command);
executeLinuxCmd(command);
// 检查PDF文件是否生成
if (pdfFile.exists() && pdfFile.length() > 0) {
log.info("PDF转换成功,使用命令: " + command);
success = true;
break;
} else {
log.warn("命令执行成功但未生成PDF文件: " + command);
}
} catch (Exception e) {
lastException = e;
log.warn("命令执行失败: " + command + ", 错误: " + e.getMessage());
}
}
if (!success) {
throw new RuntimeException("所有LibreOffice转换命令都失败了", lastException);
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment