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
0
Merge Requests
0
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
0e02f609
Commit
0e02f609
authored
Jun 30, 2025
by
alex yao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 合同对比添加配置选项
parent
d9e06f2d
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
75 additions
and
44 deletions
+75
-44
StartTextDiffDto.java
src/main/java/cn/com/poc/covenant/dto/StartTextDiffDto.java
+40
-0
TextDiffRest.java
src/main/java/cn/com/poc/covenant/rest/TextDiffRest.java
+4
-3
TextDiffRestImpl.java
.../java/cn/com/poc/covenant/rest/impl/TextDiffRestImpl.java
+9
-5
BaiduTextDiffResponse.java
...resource/baidu/entity/response/BaiduTextDiffResponse.java
+7
-7
BaiduTextDiffService.java
...irdparty/resource/baidu/service/BaiduTextDiffService.java
+3
-2
BaiduTextDiffServiceImpl.java
...resource/baidu/service/impl/BaiduTextDiffServiceImpl.java
+12
-27
No files found.
src/main/java/cn/com/poc/covenant/dto/StartTextDiffDto.java
0 → 100644
View file @
0e02f609
package
cn
.
com
.
poc
.
covenant
.
dto
;
import
cn.com.poc.thirdparty.resource.baidu.entity.response.BaiduTextDiffResponse
;
/**
* @author alex.yao
* @date 2025/6/30
*/
public
class
StartTextDiffDto
{
private
String
baseFileURL
;
private
String
compareFileURL
;
private
BaiduTextDiffResponse
.
Param
param
;
public
String
getBaseFileURL
()
{
return
baseFileURL
;
}
public
void
setBaseFileURL
(
String
baseFileURL
)
{
this
.
baseFileURL
=
baseFileURL
;
}
public
String
getCompareFileURL
()
{
return
compareFileURL
;
}
public
void
setCompareFileURL
(
String
compareFileURL
)
{
this
.
compareFileURL
=
compareFileURL
;
}
public
BaiduTextDiffResponse
.
Param
getParam
()
{
return
param
;
}
public
void
setParam
(
BaiduTextDiffResponse
.
Param
param
)
{
this
.
param
=
param
;
}
}
src/main/java/cn/com/poc/covenant/rest/TextDiffRest.java
View file @
0e02f609
package
cn
.
com
.
poc
.
covenant
.
rest
;
package
cn
.
com
.
poc
.
covenant
.
rest
;
import
cn.com.poc.covenant.dto.StartTextDiffDto
;
import
cn.com.yict.framemax.core.rest.BaseRest
;
import
cn.com.yict.framemax.core.rest.BaseRest
;
import
cn.com.yict.framemax.web.permission.Access
;
import
cn.com.yict.framemax.web.permission.Access
;
import
cn.com.yict.framemax.web.permission.Permission
;
import
cn.com.yict.framemax.web.permission.Permission
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.bind.annotation.RequestParam
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
...
@@ -28,11 +30,10 @@ public interface TextDiffRest extends BaseRest {
...
@@ -28,11 +30,10 @@ public interface TextDiffRest extends BaseRest {
/**
/**
* 文本对比
* 文本对比
*
*
* @param baseFileUrl 主版文件URL
* @param startTextDiffDto 对比参数
* @param compareFileUrl 副版文件URL
* @return 任务ID
* @return 任务ID
*/
*/
String
textDiffByUrl
(
@Request
Param
String
baseFileUrl
,
@RequestParam
String
compareFileUrl
);
String
textDiffByUrl
(
@Request
Body
StartTextDiffDto
startTextDiffDto
);
/**
/**
...
...
src/main/java/cn/com/poc/covenant/rest/impl/TextDiffRestImpl.java
View file @
0e02f609
...
@@ -3,6 +3,7 @@ package cn.com.poc.covenant.rest.impl;
...
@@ -3,6 +3,7 @@ package cn.com.poc.covenant.rest.impl;
import
cn.com.poc.common.utils.Assert
;
import
cn.com.poc.common.utils.Assert
;
import
cn.com.poc.common.utils.BlContext
;
import
cn.com.poc.common.utils.BlContext
;
import
cn.com.poc.common.utils.FileUtils
;
import
cn.com.poc.common.utils.FileUtils
;
import
cn.com.poc.covenant.dto.StartTextDiffDto
;
import
cn.com.poc.covenant.rest.TextDiffRest
;
import
cn.com.poc.covenant.rest.TextDiffRest
;
import
cn.com.poc.support.security.oauth.entity.UserBaseEntity
;
import
cn.com.poc.support.security.oauth.entity.UserBaseEntity
;
import
cn.com.poc.thirdparty.resource.baidu.entity.response.text_diff.BaiduTextDiffQueryResult
;
import
cn.com.poc.thirdparty.resource.baidu.entity.response.text_diff.BaiduTextDiffQueryResult
;
...
@@ -31,20 +32,23 @@ public class TextDiffRestImpl implements TextDiffRest {
...
@@ -31,20 +32,23 @@ public class TextDiffRestImpl implements TextDiffRest {
if
(
userBaseEntity
!=
null
)
{
if
(
userBaseEntity
!=
null
)
{
throw
new
BusinessException
(
"用户未登录"
);
throw
new
BusinessException
(
"用户未登录"
);
}
}
return
baiduTextDiffService
.
textDiff
(
baseFile
,
compareFile
,
null
,
userBaseEntity
.
getUserId
());
return
baiduTextDiffService
.
textDiff
(
FileUtils
.
multipartFileToFile
(
baseFile
),
FileUtils
.
multipartFileToFile
(
compareFile
)
,
null
,
userBaseEntity
.
getUserId
());
}
}
@Override
@Override
public
String
textDiffByUrl
(
String
baseFileUrl
,
String
compareFileUrl
)
{
public
String
textDiffByUrl
(
StartTextDiffDto
startTextDiffDto
)
{
Assert
.
notNull
(
baseFileUrl
,
"Base file cannot be null"
);
Assert
.
notNull
(
startTextDiffDto
,
"Start text diff DTO cannot be null"
);
Assert
.
notNull
(
compareFileUrl
,
"Compare file cannot be null"
);
Assert
.
notNull
(
startTextDiffDto
.
getBaseFileURL
(),
"Base file cannot be null"
);
Assert
.
notNull
(
startTextDiffDto
.
getCompareFileURL
(),
"Compare file cannot be null"
);
Assert
.
notNull
(
startTextDiffDto
.
getParam
(),
"Param cannot be null"
);
UserBaseEntity
userBaseEntity
=
BlContext
.
getCurrentUserNotException
();
UserBaseEntity
userBaseEntity
=
BlContext
.
getCurrentUserNotException
();
if
(
userBaseEntity
!=
null
)
{
if
(
userBaseEntity
!=
null
)
{
throw
new
BusinessException
(
"用户未登录"
);
throw
new
BusinessException
(
"用户未登录"
);
}
}
return
baiduTextDiffService
.
textDiff
(
baseFileUrl
,
compareFileUrl
,
null
,
userBaseEntity
.
getUserId
());
return
baiduTextDiffService
.
textDiff
(
startTextDiffDto
.
getBaseFileURL
(),
startTextDiffDto
.
getCompareFileURL
(),
startTextDiffDto
.
getParam
()
,
userBaseEntity
.
getUserId
());
}
}
@Override
@Override
public
String
getRenderUrl
(
String
taskId
)
{
public
String
getRenderUrl
(
String
taskId
)
{
Assert
.
notBlank
(
taskId
,
"Task ID cannot be blank"
);
Assert
.
notBlank
(
taskId
,
"Task ID cannot be blank"
);
...
...
src/main/java/cn/com/poc/thirdparty/resource/baidu/entity/response/BaiduTextDiffResponse.java
View file @
0e02f609
...
@@ -18,7 +18,7 @@ public class BaiduTextDiffResponse {
...
@@ -18,7 +18,7 @@ public class BaiduTextDiffResponse {
* 支持的文件大小:仅支持上传一篇文件,文件大小不超过10M。图像最短边至少15px,最长边最大4096px
* 支持的文件大小:仅支持上传一篇文件,文件大小不超过10M。图像最短边至少15px,最长边最大4096px
* 优先级: baseFile > baseFileURL,当baseFile字段存在时,baseFileURL字段失效
* 优先级: baseFile > baseFileURL,当baseFile字段存在时,baseFileURL字段失效
*/
*/
private
Multipart
File
baseFile
;
private
File
baseFile
;
/**
/**
* 文件数据,副版比对文档
* 文件数据,副版比对文档
...
@@ -28,7 +28,7 @@ public class BaiduTextDiffResponse {
...
@@ -28,7 +28,7 @@ public class BaiduTextDiffResponse {
* 支持的文件大小:仅支持上传一篇文件,文件大小不超过10M。图像最短边至少15px,最长边最大4096px
* 支持的文件大小:仅支持上传一篇文件,文件大小不超过10M。图像最短边至少15px,最长边最大4096px
* 优先级: compareFile > compareFileURL,当compareFile字段存在时,compareFileURL字段失效
* 优先级: compareFile > compareFileURL,当compareFile字段存在时,compareFileURL字段失效
*/
*/
private
Multipart
File
compareFile
;
private
File
compareFile
;
private
String
baseFileURL
;
private
String
baseFileURL
;
...
@@ -39,19 +39,19 @@ public class BaiduTextDiffResponse {
...
@@ -39,19 +39,19 @@ public class BaiduTextDiffResponse {
*/
*/
private
Param
param
;
private
Param
param
;
public
Multipart
File
getBaseFile
()
{
public
File
getBaseFile
()
{
return
baseFile
;
return
baseFile
;
}
}
public
void
setBaseFile
(
Multipart
File
baseFile
)
{
public
void
setBaseFile
(
File
baseFile
)
{
this
.
baseFile
=
baseFile
;
this
.
baseFile
=
baseFile
;
}
}
public
Multipart
File
getCompareFile
()
{
public
File
getCompareFile
()
{
return
compareFile
;
return
compareFile
;
}
}
public
void
setCompareFile
(
Multipart
File
compareFile
)
{
public
void
setCompareFile
(
File
compareFile
)
{
this
.
compareFile
=
compareFile
;
this
.
compareFile
=
compareFile
;
}
}
...
@@ -84,7 +84,7 @@ public class BaiduTextDiffResponse {
...
@@ -84,7 +84,7 @@ public class BaiduTextDiffResponse {
* fullWidthHalfWidthRecognition 否 bool true/false 是否识别中英文符号差异。默认为false
* fullWidthHalfWidthRecognition 否 bool true/false 是否识别中英文符号差异。默认为false
* fontFamilyRecognition 否 bool true/false 是否识别字体差异。默认为false
* fontFamilyRecognition 否 bool true/false 是否识别字体差异。默认为false
* fontSizeRecognition 否 bool true/false 是否识别字号差异。默认为false
* fontSizeRecognition 否 bool true/false 是否识别字号差异。默认为false
* handWritingRecognition
* handWritingRecognition
否 bool true/false 是否识别手写体信息。默认为false
*/
*/
public
static
class
Param
{
public
static
class
Param
{
private
Boolean
sealRecognition
;
private
Boolean
sealRecognition
;
...
...
src/main/java/cn/com/poc/thirdparty/resource/baidu/service/BaiduTextDiffService.java
View file @
0e02f609
...
@@ -3,6 +3,8 @@ package cn.com.poc.thirdparty.resource.baidu.service;
...
@@ -3,6 +3,8 @@ package cn.com.poc.thirdparty.resource.baidu.service;
import
cn.com.poc.thirdparty.resource.baidu.entity.response.BaiduTextDiffResponse
;
import
cn.com.poc.thirdparty.resource.baidu.entity.response.BaiduTextDiffResponse
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.File
;
/**
/**
* @author alex.yao
* @author alex.yao
* @date 2025/6/25
* @date 2025/6/25
...
@@ -17,7 +19,7 @@ public interface BaiduTextDiffService {
...
@@ -17,7 +19,7 @@ public interface BaiduTextDiffService {
* @param param 参数
* @param param 参数
* @return taskId - 任务ID
* @return taskId - 任务ID
*/
*/
String
textDiff
(
MultipartFile
baseFile
,
Multipart
File
compareFile
,
BaiduTextDiffResponse
.
Param
param
,
Long
userId
);
String
textDiff
(
File
baseFile
,
File
compareFile
,
BaiduTextDiffResponse
.
Param
param
,
Long
userId
);
/**
/**
* 文档比对任务创建接口
* 文档比对任务创建接口
...
@@ -27,7 +29,6 @@ public interface BaiduTextDiffService {
...
@@ -27,7 +29,6 @@ public interface BaiduTextDiffService {
* @param param 参数
* @param param 参数
* @return taskId - 任务ID
* @return taskId - 任务ID
*/
*/
@Deprecated
String
textDiff
(
String
baseFileUrl
,
String
compareFileUrl
,
BaiduTextDiffResponse
.
Param
param
,
Long
userId
);
String
textDiff
(
String
baseFileUrl
,
String
compareFileUrl
,
BaiduTextDiffResponse
.
Param
param
,
Long
userId
);
/**
/**
...
...
src/main/java/cn/com/poc/thirdparty/resource/baidu/service/impl/BaiduTextDiffServiceImpl.java
View file @
0e02f609
package
cn
.
com
.
poc
.
thirdparty
.
resource
.
baidu
.
service
.
impl
;
package
cn
.
com
.
poc
.
thirdparty
.
resource
.
baidu
.
service
.
impl
;
import
cn.com.poc.common.constant.CommonConstant
;
import
cn.com.poc.common.constant.CommonConstant
;
import
cn.com.poc.common.entity.media.MediaType
;
import
cn.com.poc.common.service.BizFileUploadRecordService
;
import
cn.com.poc.common.service.BizFileUploadRecordService
;
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.StringUtils
;
import
cn.com.poc.covenant.constants.ContractConstants
;
import
cn.com.poc.covenant.constants.ContractConstants
;
import
cn.com.poc.covenant.model.BizExtractionReviewTaskModel
;
import
cn.com.poc.covenant.model.BizExtractionReviewTaskModel
;
...
@@ -14,6 +17,7 @@ import cn.com.poc.thirdparty.resource.baidu.service.BaiduTextDiffService;
...
@@ -14,6 +17,7 @@ import cn.com.poc.thirdparty.resource.baidu.service.BaiduTextDiffService;
import
cn.com.poc.thirdparty.resource.baidu.service.BaiduTokenService
;
import
cn.com.poc.thirdparty.resource.baidu.service.BaiduTokenService
;
import
cn.com.yict.framemax.core.exception.BusinessException
;
import
cn.com.yict.framemax.core.exception.BusinessException
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.fileupload.disk.DiskFileItemFactory
;
import
org.slf4j.Logger
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.beans.factory.annotation.Value
;
...
@@ -21,6 +25,7 @@ import org.springframework.stereotype.Service;
...
@@ -21,6 +25,7 @@ import org.springframework.stereotype.Service;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.io.File
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -45,14 +50,12 @@ public class BaiduTextDiffServiceImpl implements BaiduTextDiffService {
...
@@ -45,14 +50,12 @@ public class BaiduTextDiffServiceImpl implements BaiduTextDiffService {
@Resource
@Resource
private
BaiduTokenService
baiduTokenService
;
private
BaiduTokenService
baiduTokenService
;
@Resource
private
BizFileUploadRecordService
bizFileUploadRecordService
;
@Resource
@Resource
private
BizExtractionReviewTaskService
bizExtractionReviewTaskService
;
private
BizExtractionReviewTaskService
bizExtractionReviewTaskService
;
@Override
@Override
public
String
textDiff
(
MultipartFile
baseFile
,
MultipartFile
compareFile
,
BaiduTextDiffResponse
.
Param
param
,
Long
userId
)
{
public
String
textDiff
(
File
baseFile
,
File
compareFile
,
BaiduTextDiffResponse
.
Param
param
,
Long
userId
)
{
BaiduTextDiffResponse
baiduTextDiffResponse
=
new
BaiduTextDiffResponse
();
BaiduTextDiffResponse
baiduTextDiffResponse
=
new
BaiduTextDiffResponse
();
baiduTextDiffResponse
.
setBaseFile
(
baseFile
);
baiduTextDiffResponse
.
setBaseFile
(
baseFile
);
baiduTextDiffResponse
.
setCompareFile
(
compareFile
);
baiduTextDiffResponse
.
setCompareFile
(
compareFile
);
...
@@ -63,7 +66,7 @@ public class BaiduTextDiffServiceImpl implements BaiduTextDiffService {
...
@@ -63,7 +66,7 @@ public class BaiduTextDiffServiceImpl implements BaiduTextDiffService {
bizExtractionReviewTaskModel
.
setTaskId
(
taskId
);
bizExtractionReviewTaskModel
.
setTaskId
(
taskId
);
bizExtractionReviewTaskModel
.
setFileUrl
(
null
);
bizExtractionReviewTaskModel
.
setFileUrl
(
null
);
bizExtractionReviewTaskModel
.
setUserId
(
userId
);
bizExtractionReviewTaskModel
.
setUserId
(
userId
);
bizExtractionReviewTaskModel
.
setFileName
(
baseFile
.
get
OriginalFilen
ame
());
bizExtractionReviewTaskModel
.
setFileName
(
baseFile
.
get
N
ame
());
bizExtractionReviewTaskModel
.
setActionType
(
ContractConstants
.
ActionType
.
textdiff
);
bizExtractionReviewTaskModel
.
setActionType
(
ContractConstants
.
ActionType
.
textdiff
);
bizExtractionReviewTaskModel
.
setReviewStatus
(
"RUN"
);
bizExtractionReviewTaskModel
.
setReviewStatus
(
"RUN"
);
bizExtractionReviewTaskModel
.
setContractType
(
ContractConstants
.
ContractType
.
contractTextdiff
);
bizExtractionReviewTaskModel
.
setContractType
(
ContractConstants
.
ContractType
.
contractTextdiff
);
...
@@ -77,28 +80,9 @@ public class BaiduTextDiffServiceImpl implements BaiduTextDiffService {
...
@@ -77,28 +80,9 @@ public class BaiduTextDiffServiceImpl implements BaiduTextDiffService {
@Override
@Override
public
String
textDiff
(
String
baseFileUrl
,
String
compareFileUrl
,
BaiduTextDiffResponse
.
Param
param
,
Long
userId
)
{
public
String
textDiff
(
String
baseFileUrl
,
String
compareFileUrl
,
BaiduTextDiffResponse
.
Param
param
,
Long
userId
)
{
BaiduTextDiffResponse
baiduTextDiffResponse
=
new
BaiduTextDiffResponse
();
File
baseFile
=
DocumentLoad
.
downloadURLDocument
(
baseFileUrl
);
baiduTextDiffResponse
.
setBaseFileURL
(
baseFileUrl
);
File
compareFile
=
DocumentLoad
.
downloadURLDocument
(
compareFileUrl
);
baiduTextDiffResponse
.
setCompareFileURL
(
compareFileUrl
);
return
textDiff
(
baseFile
,
compareFile
,
param
,
userId
);
baiduTextDiffResponse
.
setParam
(
param
);
String
taskId
=
createTextDiffTask
(
baiduTextDiffResponse
,
baiduTokenService
.
getToken
(
clientId
,
clientSecret
));
try
{
BizExtractionReviewTaskModel
bizExtractionReviewTaskModel
=
new
BizExtractionReviewTaskModel
();
bizExtractionReviewTaskModel
.
setTaskId
(
taskId
);
bizExtractionReviewTaskModel
.
setFileUrl
(
baseFileUrl
);
bizExtractionReviewTaskModel
.
setUserId
(
userId
);
bizExtractionReviewTaskModel
.
setFileName
(
bizFileUploadRecordService
.
getFileNameByFileUrl
(
baseFileUrl
));
bizExtractionReviewTaskModel
.
setActionType
(
ContractConstants
.
ActionType
.
textdiff
);
bizExtractionReviewTaskModel
.
setReviewStatus
(
"RUN"
);
bizExtractionReviewTaskModel
.
setContractType
(
ContractConstants
.
ContractType
.
contractTextdiff
);
bizExtractionReviewTaskService
.
save
(
bizExtractionReviewTaskModel
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"保存任务失败"
,
e
);
throw
new
BusinessException
(
"保存任务失败"
);
}
return
taskId
;
}
}
private
String
createTextDiffTask
(
BaiduTextDiffResponse
baiduTextDiffResponse
,
String
token
)
{
private
String
createTextDiffTask
(
BaiduTextDiffResponse
baiduTextDiffResponse
,
String
token
)
{
...
@@ -160,4 +144,5 @@ public class BaiduTextDiffServiceImpl implements BaiduTextDiffService {
...
@@ -160,4 +144,5 @@ public class BaiduTextDiffServiceImpl implements BaiduTextDiffService {
baseUrl
=
baseUrl
.
replace
(
"{taskId}"
,
taskId
).
replace
(
"{access_token}"
,
token
);
baseUrl
=
baseUrl
.
replace
(
"{taskId}"
,
taskId
).
replace
(
"{access_token}"
,
token
);
return
baseUrl
;
return
baseUrl
;
}
}
}
}
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