Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
yd-oss
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
xingmin
yd-oss
Commits
1aa611bd
Commit
1aa611bd
authored
Oct 13, 2025
by
zhangxingmin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
push
parent
d92dcb7f
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
51 additions
and
18 deletions
+51
-18
yd-oss-api/src/main/java/com/yd/oss/api/controller/ApiExcelController.java
+2
-1
yd-oss-api/src/main/java/com/yd/oss/api/service/ApiExcelService.java
+2
-1
yd-oss-api/src/main/java/com/yd/oss/api/service/impl/ApiExcelServiceImpl.java
+6
-4
yd-oss-feign/pom.xml
+5
-0
yd-oss-feign/src/main/java/com/yd/oss/feign/client/ApiExcelFeignClient.java
+2
-1
yd-oss-feign/src/main/java/com/yd/oss/feign/fallback/ApiExcelFeignFallbackFactory.java
+2
-1
yd-oss-service/src/main/java/com/yd/oss/service/utils/PdfUtil.java
+32
-10
No files found.
yd-oss-api/src/main/java/com/yd/oss/api/controller/ApiExcelController.java
View file @
1aa611bd
...
@@ -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
);
}
}
...
...
yd-oss-api/src/main/java/com/yd/oss/api/service/ApiExcelService.java
View file @
1aa611bd
...
@@ -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
);
...
...
yd-oss-api/src/main/java/com/yd/oss/api/service/impl/ApiExcelServiceImpl.java
View file @
1aa611bd
...
@@ -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
<?>[
s
heetClassName
s
.
length
];
Class
<?>[]
sheetClasses
=
new
Class
<?>[
s
tring
s
.
length
];
for
(
int
i
=
0
;
i
<
s
heetClassName
s
.
length
;
i
++)
{
for
(
int
i
=
0
;
i
<
s
tring
s
.
length
;
i
++)
{
sheetClasses
[
i
]
=
Class
.
forName
(
s
heetClassName
s
[
i
]);
sheetClasses
[
i
]
=
Class
.
forName
(
s
tring
s
[
i
]);
}
}
// 解析Excel
// 解析Excel
...
...
yd-oss-feign/pom.xml
View file @
1aa611bd
...
@@ -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>
yd-oss-feign/src/main/java/com/yd/oss/feign/client/ApiExcelFeignClient.java
View file @
1aa611bd
...
@@ -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
,
@RequestPar
t
(
"sheetClassNames"
)
String
[]
sheetClassNames
);
@RequestPar
am
(
value
=
"sheetClassNames"
,
required
=
false
)
String
sheetClassNames
);
/**
/**
* 导出excel(通用)
* 导出excel(通用)
...
...
yd-oss-feign/src/main/java/com/yd/oss/feign/fallback/ApiExcelFeignFallbackFactory.java
View file @
1aa611bd
...
@@ -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
;
...
...
yd-oss-service/src/main/java/com/yd/oss/service/utils/PdfUtil.java
View file @
1aa611bd
...
@@ -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
);
}
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment