Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
P
poc-api
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
poc
poc-api
Commits
8e3164ec
Commit
8e3164ec
authored
Jan 12, 2026
by
alex yao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(ai): 添加Markdown转Word功能
parent
3caad275
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
160 additions
and
1 deletion
+160
-1
MD2WordService.java
...irdparty/resource/demand/ai/aggregate/MD2WordService.java
+19
-0
Md2WordServiceImpl.java
...resource/demand/ai/aggregate/impl/Md2WordServiceImpl.java
+40
-0
Md2WordResponse.java
...ty/resource/demand/ai/entity/md2word/Md2WordResponse.java
+29
-0
Md2WordResult.java
...arty/resource/demand/ai/entity/md2word/Md2WordResult.java
+20
-0
DgtoolsApiRoute.java
.../thirdparty/resource/demand/ai/route/DgtoolsApiRoute.java
+5
-0
ChainServiceTest.java
...irdparty/resource/demand/ai/service/ChainServiceTest.java
+14
-0
FileUtilsTest.java
src/test/java/cn/com/poc/utils/FileUtilsTest.java
+33
-1
No files found.
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/aggregate/MD2WordService.java
0 → 100644
View file @
8e3164ec
package
cn
.
com
.
poc
.
thirdparty
.
resource
.
demand
.
ai
.
aggregate
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.md2word.Md2WordResponse
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.md2word.Md2WordResult
;
/**
* @author alex.yao
* @date 2025/7/28
*/
public
interface
MD2WordService
{
/**
* markdown转word
*
* @param response
* @return
*/
Md2WordResult
md2Word
(
Md2WordResponse
response
);
}
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/aggregate/impl/Md2WordServiceImpl.java
0 → 100644
View file @
8e3164ec
package
cn
.
com
.
poc
.
thirdparty
.
resource
.
demand
.
ai
.
aggregate
.
impl
;
import
javax.annotation.Resource
;
import
java.util.ArrayList
;
import
java.util.List
;
import
cn.com.poc.thirdparty.resource.demand.ai.aggregate.MD2WordService
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.md2word.Md2WordResponse
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.md2word.Md2WordResult
;
import
cn.com.poc.thirdparty.resource.demand.ai.route.DgtoolsApiRoute
;
import
cn.com.poc.thirdparty.resource.demand.dgTools.DgtoolsAbstractHttpClient
;
import
cn.com.poc.thirdparty.resource.demand.member.service.DemandAuthService
;
import
org.apache.http.Header
;
import
org.apache.http.message.BasicHeader
;
import
org.springframework.stereotype.Service
;
/**
* @author alex.yao
* @date 2025/7/28
*/
@Service
public
class
Md2WordServiceImpl
implements
MD2WordService
{
@Resource
private
DgtoolsAbstractHttpClient
dgToolsAbstractHttpClient
;
@Resource
private
DemandAuthService
demandAuthService
;
@Override
public
Md2WordResult
md2Word
(
Md2WordResponse
response
)
{
String
url
=
DgtoolsApiRoute
.
DgtoolsAI
.
MD_2_WORD_FILE
;
List
<
Header
>
headers
=
new
ArrayList
<
Header
>()
{{
add
(
DgtoolsApiRoute
.
JSON_HEADER
);
add
(
DgtoolsApiRoute
.
AI_HEADER
);
add
(
new
BasicHeader
(
DgtoolsApiRoute
.
HEADER_X_PLATFORM_AUTHORIZATION
,
demandAuthService
.
getToken
()));
}};
return
dgToolsAbstractHttpClient
.
doRequest
(
url
,
response
,
headers
);
}
}
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/entity/md2word/Md2WordResponse.java
0 → 100644
View file @
8e3164ec
package
cn
.
com
.
poc
.
thirdparty
.
resource
.
demand
.
ai
.
entity
.
md2word
;
import
java.io.Serializable
;
import
cn.com.poc.thirdparty.resource.demand.dgTools.request.AbstractRequest
;
/**
* @author alex.yao
* @date 2025/7/28
*/
public
class
Md2WordResponse
extends
AbstractRequest
<
Md2WordResult
>
implements
Serializable
{
private
String
filePath
;
public
String
getFilePath
()
{
return
filePath
;
}
public
void
setFilePath
(
String
filePath
)
{
this
.
filePath
=
filePath
;
}
@Override
public
String
getMethod
()
throws
Exception
{
return
null
;
}
}
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/entity/md2word/Md2WordResult.java
0 → 100644
View file @
8e3164ec
package
cn
.
com
.
poc
.
thirdparty
.
resource
.
demand
.
ai
.
entity
.
md2word
;
import
cn.com.poc.thirdparty.resource.demand.dgTools.result.AbstractResult
;
/**
* @author alex.yao
* @date 2025/7/28
*/
public
class
Md2WordResult
extends
AbstractResult
{
private
String
filePath
;
public
String
getFilePath
()
{
return
filePath
;
}
public
void
setFilePath
(
String
filePath
)
{
this
.
filePath
=
filePath
;
}
}
src/main/java/cn/com/poc/thirdparty/resource/demand/ai/route/DgtoolsApiRoute.java
View file @
8e3164ec
...
...
@@ -301,6 +301,11 @@ public interface DgtoolsApiRoute {
* 法律卷宗文件导出
*/
String
LEGAL_FILE
=
"largeModelRest/legalFile.json"
;
/**
* Markdown转Word
*/
String
MD_2_WORD_FILE
=
"largeModelRest/md2WordFile.json"
;
}
interface
ClickHouse
{
...
...
src/test/java/cn/com/poc/thirdparty/resource/demand/ai/service/ChainServiceTest.java
View file @
8e3164ec
package
cn
.
com
.
poc
.
thirdparty
.
resource
.
demand
.
ai
.
service
;
import
cn.com.poc.common.utils.JsonUtils
;
import
cn.com.poc.thirdparty.resource.demand.ai.aggregate.MD2WordService
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.csvchain.CSVChainResponse
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.csvchain.CSVChainResult
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.dbchain.DBChainResponse
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.dbchain.DBChainResult
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.md2word.Md2WordResponse
;
import
cn.com.poc.thirdparty.resource.demand.ai.entity.md2word.Md2WordResult
;
import
cn.com.poc.thirdparty.service.ChainService
;
import
cn.com.yict.framemax.core.spring.SingleContextInitializer
;
import
com.alibaba.fastjson.JSONObject
;
...
...
@@ -28,6 +31,17 @@ public class ChainServiceTest {
@Resource
private
ChainService
chainService
;
@Resource
private
MD2WordService
md2WordService
;
@Test
public
void
test_md2Word
()
{
Md2WordResponse
response
=
new
Md2WordResponse
();
response
.
setFilePath
(
"https://gsst-poe-sit.gz.bcebos.com/v1/software-copyright/%E6%8A%80%E6%9C%AF%E6%9E%B6%E6%9E%84.md"
);
Md2WordResult
md2WordResult
=
md2WordService
.
md2Word
(
response
);
System
.
out
.
println
(
md2WordResult
.
getFilePath
());
}
@Test
public
void
test_dbChain
()
{
...
...
src/test/java/cn/com/poc/utils/FileUtilsTest.java
View file @
8e3164ec
package
cn
.
com
.
poc
.
utils
;
import
cn.com.poc.ai_software_copyright.contant.AiSoftWareCopyRightRedisKey
;
import
cn.com.poc.common.service.BosConfigService
;
import
cn.com.poc.common.service.RedisService
;
import
cn.com.poc.common.utils.DocumentLoad
;
import
cn.com.poc.common.utils.FileUtils
;
import
cn.com.poc.common.utils.StringUtils
;
import
cn.com.poc.common.utils.UUIDTool
;
import
cn.com.yict.framemax.core.spring.SingleContextInitializer
;
import
cn.hutool.core.io.FileUtil
;
import
cn.hutool.crypto.digest.MD5
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
org.apache.pdfbox.pdmodel.PDDocument
;
import
org.apache.pdfbox.text.PDFTextStripper
;
import
org.junit.Test
;
...
...
@@ -29,6 +34,32 @@ public class FileUtilsTest {
@Resource
private
BosConfigService
bosConfigService
;
@Resource
private
RedisService
redisService
;
@Test
public
void
test_md
()
throws
IOException
{
String
result
=
redisService
.
get
(
AiSoftWareCopyRightRedisKey
.
CALL_BACK
+
"10:source_code"
).
toString
();
JSONObject
jsonObject
=
JSONObject
.
parseObject
(
result
.
toString
());
JSONArray
jsonArray
=
jsonObject
.
getJSONArray
(
"result"
);
System
.
out
.
println
(
jsonArray
.
toString
());
StringBuilder
stringBuilder
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
jsonArray
.
size
();
i
++)
{
String
content
=
jsonArray
.
getString
(
i
);
stringBuilder
.
append
(
content
);
}
File
file
=
new
File
(
"C:\\Users\\52747\\Desktop\\source_code.md"
);
FileOutputStream
fileOutputStream
=
new
FileOutputStream
(
file
);
fileOutputStream
.
write
(
stringBuilder
.
toString
().
getBytes
());
fileOutputStream
.
flush
();
fileOutputStream
.
close
();
}
@Test
public
void
test_wordConvertPDF
()
throws
Exception
{
String
content
=
"hello world"
;
...
...
@@ -88,7 +119,8 @@ public class FileUtilsTest {
@Test
public
void
test_pdf
()
{
File
file
=
new
File
(
"D:\\项目\\【W-001】万讯\\【001】香港机场\\Sample Data_2025-10-17\\Sample Document\\WP Data\\WP057940\\1. Work Method Statement - 1.BCJV-3408-Z-00685C Method Statement for Installation of VDC Works(A.pdf"
);
File
file
=
new
File
(
"D:\\项目\\【W-001】万讯\\【001】香港机场\\Sample Data_2025-10-17\\Sample Document\\WP Data\\WP057940\\1. Work Method Statement - 1.BCJV-3408-Z-00685C Method Statement for Installation of VDC Works(A.pdf"
);
String
pdfResult
=
DocumentLoad
.
documentToText
(
file
);
System
.
out
.
println
(
pdfResult
);
}
...
...
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