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
da5a7be2
Commit
da5a7be2
authored
Jun 26, 2025
by
alex yao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 新增合同对比接口
parent
85628679
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
311 additions
and
174 deletions
+311
-174
ContractConstants.java
...java/cn/com/poc/covenant/constants/ContractConstants.java
+1
-0
BizExtractionReviewTaskModel.java
.../com/poc/covenant/model/BizExtractionReviewTaskModel.java
+176
-145
TextDiffRest.java
src/main/java/cn/com/poc/covenant/rest/TextDiffRest.java
+2
-2
TextDiffRestImpl.java
.../java/cn/com/poc/covenant/rest/impl/TextDiffRestImpl.java
+15
-5
ExtractionReviewScheduler.java
...com/poc/covenant/scheduler/ExtractionReviewScheduler.java
+29
-1
BaiduTextDiffService.java
...irdparty/resource/baidu/service/BaiduTextDiffService.java
+5
-7
BaiduTextDiffServiceImpl.java
...resource/baidu/service/impl/BaiduTextDiffServiceImpl.java
+83
-14
No files found.
src/main/java/cn/com/poc/covenant/constants/ContractConstants.java
View file @
da5a7be2
...
...
@@ -16,6 +16,7 @@ public interface ContractConstants {
public
interface
ContractType
{
final
static
String
contractExtract
=
"ContractExtract"
;
//审查
final
static
String
contractReview
=
"ContractReview"
;
//对比
final
static
String
contractTextdiff
=
"ContractTextdiff"
;
//对比
}
...
...
src/main/java/cn/com/poc/covenant/model/BizExtractionReviewTaskModel.java
View file @
da5a7be2
...
...
@@ -18,79 +18,100 @@ import java.io.Serializable;
public
class
BizExtractionReviewTaskModel
extends
BaseModelClass
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
id
*
*/
/**
* id
*/
private
Integer
id
;
@Column
(
name
=
"id"
,
length
=
10
)
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
AUTO
)
public
Integer
getId
(){
@Column
(
name
=
"id"
,
length
=
10
)
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
AUTO
)
public
Integer
getId
()
{
return
this
.
id
;
}
public
void
setId
(
Integer
id
){
public
void
setId
(
Integer
id
)
{
this
.
id
=
id
;
super
.
addValidField
(
"id"
);
}
/** task_id
*审查任务
*/
/**
* task_id
* 审查任务
*/
private
String
taskId
;
@Column
(
name
=
"task_id"
,
length
=
100
)
public
String
getTaskId
(){
@Column
(
name
=
"task_id"
,
length
=
100
)
public
String
getTaskId
()
{
return
this
.
taskId
;
}
public
void
setTaskId
(
String
taskId
){
public
void
setTaskId
(
String
taskId
)
{
this
.
taskId
=
taskId
;
super
.
addValidField
(
"taskId"
);
}
/** file_url
*文件地址
*/
/**
* user_id
* 用户ID
*/
private
Long
userId
;
@Column
(
name
=
"user_id"
)
public
Long
getUserId
()
{
return
userId
;
}
public
void
setUserId
(
Long
userId
)
{
this
.
userId
=
userId
;
super
.
addValidField
(
"userId"
);
}
/**
* file_url
* 文件地址
*/
private
String
fileUrl
;
@Column
(
name
=
"file_url"
,
length
=
120
)
public
String
getFileUrl
(){
@Column
(
name
=
"file_url"
,
length
=
120
)
public
String
getFileUrl
()
{
return
this
.
fileUrl
;
}
public
void
setFileUrl
(
String
fileUrl
){
public
void
setFileUrl
(
String
fileUrl
)
{
this
.
fileUrl
=
fileUrl
;
super
.
addValidField
(
"fileUrl"
);
}
/** file_name
*文件名
*/
/**
* file_name
* 文件名
*/
private
String
fileName
;
@Column
(
name
=
"file_name"
,
length
=
100
)
public
String
getFileName
(){
@Column
(
name
=
"file_name"
,
length
=
100
)
public
String
getFileName
()
{
return
this
.
fileName
;
}
public
void
setFileName
(
String
fileName
){
public
void
setFileName
(
String
fileName
)
{
this
.
fileName
=
fileName
;
super
.
addValidField
(
"fileName"
);
}
/** actionType
*执行动作(审查,提取,对比)
*/
/**
* actionType
* 执行动作(审查,提取,对比)
*/
private
String
actionType
;
@Column
(
name
=
"action_type"
,
length
=
100
)
@Column
(
name
=
"action_type"
,
length
=
100
)
public
String
getActionType
()
{
return
actionType
;
}
...
...
@@ -101,165 +122,175 @@ public class BizExtractionReviewTaskModel extends BaseModelClass implements Seri
}
/** review_status
*审核状态 RUN-审核中 END-已完成 FAIL-审核失败
*/
/**
* review_status
* 审核状态 RUN-审核中 END-已完成 FAIL-审核失败
*/
private
String
reviewStatus
;
@Column
(
name
=
"review_status"
,
length
=
10
)
public
String
getReviewStatus
(){
@Column
(
name
=
"review_status"
,
length
=
10
)
public
String
getReviewStatus
()
{
return
this
.
reviewStatus
;
}
public
void
setReviewStatus
(
String
reviewStatus
){
public
void
setReviewStatus
(
String
reviewStatus
)
{
this
.
reviewStatus
=
reviewStatus
;
super
.
addValidField
(
"reviewStatus"
);
}
/** review_error_msg
*审核异常消息
*/
/**
* review_error_msg
* 审核异常消息
*/
private
String
reviewErrorMsg
;
@Column
(
name
=
"review_error_msg"
,
length
=
300
)
public
String
getReviewErrorMsg
(){
@Column
(
name
=
"review_error_msg"
,
length
=
300
)
public
String
getReviewErrorMsg
()
{
return
this
.
reviewErrorMsg
;
}
public
void
setReviewErrorMsg
(
String
reviewErrorMsg
){
public
void
setReviewErrorMsg
(
String
reviewErrorMsg
)
{
this
.
reviewErrorMsg
=
reviewErrorMsg
;
super
.
addValidField
(
"reviewErrorMsg"
);
}
/** text_in_task_id
*textIn的task_id
*/
/**
* text_in_task_id
* textIn的task_id
*/
private
String
textInTaskId
;
@Column
(
name
=
"text_in_task_id"
,
length
=
120
)
public
String
getTextInTaskId
(){
@Column
(
name
=
"text_in_task_id"
,
length
=
120
)
public
String
getTextInTaskId
()
{
return
this
.
textInTaskId
;
}
public
void
setTextInTaskId
(
String
textInTaskId
){
public
void
setTextInTaskId
(
String
textInTaskId
)
{
this
.
textInTaskId
=
textInTaskId
;
super
.
addValidField
(
"textInTaskId"
);
}
/** contract_type
*合同类型
*/
/**
* contract_type
* 合同类型
*/
private
String
contractType
;
@Column
(
name
=
"contract_type"
,
length
=
100
)
public
String
getContractType
(){
@Column
(
name
=
"contract_type"
,
length
=
100
)
public
String
getContractType
()
{
return
this
.
contractType
;
}
public
void
setContractType
(
String
contractType
){
public
void
setContractType
(
String
contractType
)
{
this
.
contractType
=
contractType
;
super
.
addValidField
(
"contractType"
);
}
/** is_deleted
*是否删除 1、Y 是 2、N 否
*/
/**
* is_deleted
* 是否删除 1、Y 是 2、N 否
*/
private
String
isDeleted
;
@Column
(
name
=
"is_deleted"
,
length
=
1
)
public
String
getIsDeleted
(){
@Column
(
name
=
"is_deleted"
,
length
=
1
)
public
String
getIsDeleted
()
{
return
this
.
isDeleted
;
}
public
void
setIsDeleted
(
String
isDeleted
){
public
void
setIsDeleted
(
String
isDeleted
)
{
this
.
isDeleted
=
isDeleted
;
super
.
addValidField
(
"isDeleted"
);
}
/** CREATOR
*创建人
*/
/**
* CREATOR
* 创建人
*/
private
String
creator
;
@Column
(
name
=
"CREATOR"
,
length
=
225
)
public
String
getCreator
(){
@Column
(
name
=
"CREATOR"
,
length
=
225
)
public
String
getCreator
()
{
return
this
.
creator
;
}
public
void
setCreator
(
String
creator
){
public
void
setCreator
(
String
creator
)
{
this
.
creator
=
creator
;
super
.
addValidField
(
"creator"
);
}
/** CREATED_TIME
*创建时间
*/
/**
* CREATED_TIME
* 创建时间
*/
private
java
.
util
.
Date
createdTime
;
@Column
(
name
=
"CREATED_TIME"
,
length
=
19
)
public
java
.
util
.
Date
getCreatedTime
(){
@Column
(
name
=
"CREATED_TIME"
,
length
=
19
)
public
java
.
util
.
Date
getCreatedTime
()
{
return
this
.
createdTime
;
}
public
void
setCreatedTime
(
java
.
util
.
Date
createdTime
){
public
void
setCreatedTime
(
java
.
util
.
Date
createdTime
)
{
this
.
createdTime
=
createdTime
;
super
.
addValidField
(
"createdTime"
);
}
/** MODIFIER
*修改人
*/
/**
* MODIFIER
* 修改人
*/
private
String
modifier
;
@Column
(
name
=
"MODIFIER"
,
length
=
225
)
public
String
getModifier
(){
@Column
(
name
=
"MODIFIER"
,
length
=
225
)
public
String
getModifier
()
{
return
this
.
modifier
;
}
public
void
setModifier
(
String
modifier
){
public
void
setModifier
(
String
modifier
)
{
this
.
modifier
=
modifier
;
super
.
addValidField
(
"modifier"
);
}
/** MODIFIED_TIME
*修改时间
*/
/**
* MODIFIED_TIME
* 修改时间
*/
private
java
.
util
.
Date
modifiedTime
;
@Column
(
name
=
"MODIFIED_TIME"
,
length
=
19
)
public
java
.
util
.
Date
getModifiedTime
(){
@Column
(
name
=
"MODIFIED_TIME"
,
length
=
19
)
public
java
.
util
.
Date
getModifiedTime
()
{
return
this
.
modifiedTime
;
}
public
void
setModifiedTime
(
java
.
util
.
Date
modifiedTime
){
public
void
setModifiedTime
(
java
.
util
.
Date
modifiedTime
)
{
this
.
modifiedTime
=
modifiedTime
;
super
.
addValidField
(
"modifiedTime"
);
}
/** SYS_VERSION
*乐观锁,版本号
*/
/**
* SYS_VERSION
* 乐观锁,版本号
*/
private
Integer
sysVersion
;
@Column
(
name
=
"SYS_VERSION"
,
length
=
10
)
@Version
public
Integer
getSysVersion
(){
@Column
(
name
=
"SYS_VERSION"
,
length
=
10
)
@Version
public
Integer
getSysVersion
()
{
return
this
.
sysVersion
;
}
public
void
setSysVersion
(
Integer
sysVersion
){
public
void
setSysVersion
(
Integer
sysVersion
)
{
this
.
sysVersion
=
sysVersion
;
super
.
addValidField
(
"sysVersion"
);
}
}
\ No newline at end of file
src/main/java/cn/com/poc/covenant/rest/TextDiffRest.java
View file @
da5a7be2
...
...
@@ -12,7 +12,7 @@ import org.springframework.web.multipart.MultipartFile;
* @author alex.yao
* @date 2025/6/25
*/
@Permission
(
Access
.
Anonymous
)
@Permission
(
Access
.
Safety
)
public
interface
TextDiffRest
extends
BaseRest
{
/**
...
...
@@ -46,7 +46,7 @@ public interface TextDiffRest extends BaseRest {
/**
* 查询任务状态
*/
String
queryTextDiffTask
(
@RequestParam
String
taskId
);
String
queryTextDiffTask
(
@RequestParam
String
taskId
)
throws
Exception
;
}
src/main/java/cn/com/poc/covenant/rest/impl/TextDiffRestImpl.java
View file @
da5a7be2
package
cn
.
com
.
poc
.
covenant
.
rest
.
impl
;
import
cn.com.poc.common.utils.Assert
;
import
cn.com.poc.common.utils.BlContext
;
import
cn.com.poc.common.utils.FileUtils
;
import
cn.com.poc.covenant.rest.TextDiffRest
;
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.service.BaiduTextDiffService
;
import
cn.com.yict.framemax.core.exception.BusinessException
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.multipart.MultipartFile
;
...
...
@@ -24,14 +27,22 @@ public class TextDiffRestImpl implements TextDiffRest {
public
String
textDiff
(
MultipartFile
baseFile
,
MultipartFile
compareFile
)
{
Assert
.
notNull
(
baseFile
,
"Base file cannot be null"
);
Assert
.
notNull
(
compareFile
,
"Compare file cannot be null"
);
return
baiduTextDiffService
.
textDiff
(
baseFile
,
compareFile
,
null
);
UserBaseEntity
userBaseEntity
=
BlContext
.
getCurrentUserNotException
();
if
(
userBaseEntity
!=
null
)
{
throw
new
BusinessException
(
"用户未登录"
);
}
return
baiduTextDiffService
.
textDiff
(
baseFile
,
compareFile
,
null
,
userBaseEntity
.
getUserId
());
}
@Override
public
String
textDiffByUrl
(
String
baseFileUrl
,
String
compareFileUrl
)
{
Assert
.
notNull
(
baseFileUrl
,
"Base file cannot be null"
);
Assert
.
notNull
(
compareFileUrl
,
"Compare file cannot be null"
);
return
baiduTextDiffService
.
textDiff
(
baseFileUrl
,
compareFileUrl
,
null
);
UserBaseEntity
userBaseEntity
=
BlContext
.
getCurrentUserNotException
();
if
(
userBaseEntity
!=
null
)
{
throw
new
BusinessException
(
"用户未登录"
);
}
return
baiduTextDiffService
.
textDiff
(
baseFileUrl
,
compareFileUrl
,
null
,
userBaseEntity
.
getUserId
());
}
@Override
...
...
@@ -41,9 +52,8 @@ public class TextDiffRestImpl implements TextDiffRest {
}
@Override
public
String
queryTextDiffTask
(
String
taskId
)
{
public
String
queryTextDiffTask
(
String
taskId
)
throws
Exception
{
Assert
.
notBlank
(
taskId
,
"Task ID cannot be blank"
);
BaiduTextDiffQueryResult
baiduTextDiffQueryResult
=
baiduTextDiffService
.
queryTextDiffTask
(
taskId
);
return
baiduTextDiffQueryResult
.
getResult
().
getStatus
();
return
baiduTextDiffService
.
queryTextDiffTask
(
taskId
);
}
}
src/main/java/cn/com/poc/covenant/scheduler/ExtractionReviewScheduler.java
View file @
da5a7be2
package
cn
.
com
.
poc
.
covenant
.
scheduler
;
import
cn.com.poc.common.constant.CommonConstant
;
import
cn.com.poc.common.utils.StringUtils
;
import
cn.com.poc.covenant.constants.ContractConstants
;
import
cn.com.poc.covenant.model.BizExtractionReviewTaskModel
;
import
cn.com.poc.covenant.service.BizExtractionReviewTaskService
;
import
cn.com.poc.thirdparty.resource.baidu.api.BaiduTokenAPI
;
import
cn.com.poc.thirdparty.resource.baidu.api.TextReviewApi
;
import
cn.com.poc.thirdparty.resource.baidu.entity.response.TextReviewResultQueryResponse
;
import
cn.com.poc.thirdparty.resource.baidu.entity.response.text_diff.BaiduTextDiffQueryResult
;
import
cn.com.poc.thirdparty.resource.baidu.service.BaiduTextDiffService
;
import
cn.com.poc.thirdparty.resource.text_in.api.TextInClient
;
import
cn.com.poc.thirdparty.resource.text_in.entity.extraction.entity.ExtractionResult
;
import
cn.com.yict.framemax.frame.service.FmxParamConfigService
;
...
...
@@ -35,6 +38,9 @@ public class ExtractionReviewScheduler {
@Resource
private
BaiduTokenAPI
baiduTokenAPI
;
@Resource
private
BaiduTextDiffService
baiduTextDiffService
;
@Scheduled
(
cron
=
"0 0/1 * * * ?"
)
public
void
extraction
()
throws
Exception
{
// 执行任务
...
...
@@ -70,7 +76,7 @@ public class ExtractionReviewScheduler {
bizExtractionReviewTaskModel
.
setActionType
(
ContractConstants
.
ActionType
.
textreview
);
bizExtractionReviewTaskModel
.
setIsDeleted
(
CommonConstant
.
IsDeleted
.
N
);
List
<
BizExtractionReviewTaskModel
>
models
=
bizExtractionReviewTaskService
.
findByExample
(
bizExtractionReviewTaskModel
,
null
);
if
(
CollectionUtils
.
isNotEmpty
(
models
))
{
if
(
CollectionUtils
.
isNotEmpty
(
models
))
{
String
clientId
=
fmxConfigService
.
getParam
(
"baidu.textmind.clientId"
);
String
clientSecret
=
fmxConfigService
.
getParam
(
"baidu.textmind.clientSecret"
);
...
...
@@ -93,4 +99,26 @@ public class ExtractionReviewScheduler {
bizExtractionReviewTaskService
.
saveAll
(
models
);
}
}
/**
* 文本对比任务查询
* pending:排队中;processing:运行中;success:成功;failed:失败
*
* @throws Exception
*/
@Scheduled
(
cron
=
"0 0/1 * * * ?"
)
public
void
textDiffTaskQuery
()
throws
Exception
{
// 执行任务
BizExtractionReviewTaskModel
bizExtractionReviewTaskModel
=
new
BizExtractionReviewTaskModel
();
bizExtractionReviewTaskModel
.
setReviewStatus
(
"RUN"
);
bizExtractionReviewTaskModel
.
setActionType
(
ContractConstants
.
ActionType
.
textdiff
);
bizExtractionReviewTaskModel
.
setIsDeleted
(
CommonConstant
.
IsDeleted
.
N
);
List
<
BizExtractionReviewTaskModel
>
models
=
bizExtractionReviewTaskService
.
findByExample
(
bizExtractionReviewTaskModel
,
null
);
if
(
CollectionUtils
.
isNotEmpty
(
models
))
{
for
(
BizExtractionReviewTaskModel
model
:
models
)
{
baiduTextDiffService
.
queryTextDiffTask
(
model
.
getTaskId
());
}
}
}
}
src/main/java/cn/com/poc/thirdparty/resource/baidu/service/BaiduTextDiffService.java
View file @
da5a7be2
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.text_diff.BaiduTextDiffQueryResult
;
import
org.springframework.web.multipart.MultipartFile
;
import
java.io.File
;
/**
* @author alex.yao
* @date 2025/6/25
...
...
@@ -20,7 +17,7 @@ public interface BaiduTextDiffService {
* @param param 参数
* @return taskId - 任务ID
*/
String
textDiff
(
MultipartFile
baseFile
,
MultipartFile
compareFile
,
BaiduTextDiffResponse
.
Param
param
);
String
textDiff
(
MultipartFile
baseFile
,
MultipartFile
compareFile
,
BaiduTextDiffResponse
.
Param
param
,
Long
userId
);
/**
* 文档比对任务创建接口
...
...
@@ -30,15 +27,16 @@ public interface BaiduTextDiffService {
* @param param 参数
* @return taskId - 任务ID
*/
String
textDiff
(
String
baseFileUrl
,
String
compareFileUrl
,
BaiduTextDiffResponse
.
Param
param
);
@Deprecated
String
textDiff
(
String
baseFileUrl
,
String
compareFileUrl
,
BaiduTextDiffResponse
.
Param
param
,
Long
userId
);
/**
* 查询文档比对任务结果
*
* @param taskId 任务ID
* @return
BaiduTextDiffQueryResult - 文档比对任务结果对象
* @return
文档比对任务结果
*/
BaiduTextDiffQueryResult
queryTextDiffTask
(
String
taskId
)
;
String
queryTextDiffTask
(
String
taskId
)
throws
Exception
;
/**
* 获取前端SDK渲染
...
...
src/main/java/cn/com/poc/thirdparty/resource/baidu/service/impl/BaiduTextDiffServiceImpl.java
View file @
da5a7be2
package
cn
.
com
.
poc
.
thirdparty
.
resource
.
baidu
.
service
.
impl
;
import
cn.com.poc.common.constant.CommonConstant
;
import
cn.com.poc.common.service.BizFileUploadRecordService
;
import
cn.com.poc.common.utils.StringUtils
;
import
cn.com.poc.covenant.constants.ContractConstants
;
import
cn.com.poc.covenant.model.BizExtractionReviewTaskModel
;
import
cn.com.poc.covenant.service.BizExtractionReviewTaskService
;
import
cn.com.poc.thirdparty.resource.baidu.api.BaiduTextDiffApi
;
import
cn.com.poc.thirdparty.resource.baidu.entity.response.BaiduTextDiffResponse
;
import
cn.com.poc.thirdparty.resource.baidu.entity.response.text_diff.BaiduTextDiffQueryResult
;
...
...
@@ -8,6 +13,7 @@ import cn.com.poc.thirdparty.resource.baidu.entity.result.BaiduTextDiffResult;
import
cn.com.poc.thirdparty.resource.baidu.service.BaiduTextDiffService
;
import
cn.com.poc.thirdparty.resource.baidu.service.BaiduTokenService
;
import
cn.com.yict.framemax.core.exception.BusinessException
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Value
;
...
...
@@ -15,6 +21,7 @@ import org.springframework.stereotype.Service;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.annotation.Resource
;
import
java.util.List
;
/**
* @author alex.yao
...
...
@@ -38,22 +45,60 @@ public class BaiduTextDiffServiceImpl implements BaiduTextDiffService {
@Resource
private
BaiduTokenService
baiduTokenService
;
@Resource
private
BizFileUploadRecordService
bizFileUploadRecordService
;
@Resource
private
BizExtractionReviewTaskService
bizExtractionReviewTaskService
;
@Override
public
String
textDiff
(
MultipartFile
baseFile
,
MultipartFile
compareFile
,
BaiduTextDiffResponse
.
Param
param
)
{
public
String
textDiff
(
MultipartFile
baseFile
,
MultipartFile
compareFile
,
BaiduTextDiffResponse
.
Param
param
,
Long
userId
)
{
BaiduTextDiffResponse
baiduTextDiffResponse
=
new
BaiduTextDiffResponse
();
baiduTextDiffResponse
.
setBaseFile
(
baseFile
);
baiduTextDiffResponse
.
setCompareFile
(
compareFile
);
baiduTextDiffResponse
.
setParam
(
param
);
return
createTextDiffTask
(
baiduTextDiffResponse
,
baiduTokenService
.
getToken
(
clientId
,
clientSecret
));
try
{
String
taskId
=
createTextDiffTask
(
baiduTextDiffResponse
,
baiduTokenService
.
getToken
(
clientId
,
clientSecret
));
BizExtractionReviewTaskModel
bizExtractionReviewTaskModel
=
new
BizExtractionReviewTaskModel
();
bizExtractionReviewTaskModel
.
setTaskId
(
taskId
);
bizExtractionReviewTaskModel
.
setFileUrl
(
null
);
bizExtractionReviewTaskModel
.
setUserId
(
userId
);
bizExtractionReviewTaskModel
.
setFileName
(
baseFile
.
getOriginalFilename
());
bizExtractionReviewTaskModel
.
setActionType
(
ContractConstants
.
ActionType
.
textdiff
);
bizExtractionReviewTaskModel
.
setReviewStatus
(
"RUN"
);
bizExtractionReviewTaskModel
.
setContractType
(
ContractConstants
.
ContractType
.
contractTextdiff
);
bizExtractionReviewTaskService
.
save
(
bizExtractionReviewTaskModel
);
return
taskId
;
}
catch
(
Exception
e
)
{
logger
.
error
(
"保存任务失败"
,
e
);
throw
new
BusinessException
(
"保存任务失败"
);
}
}
@Override
public
String
textDiff
(
String
baseFileUrl
,
String
compareFileUrl
,
BaiduTextDiffResponse
.
Param
param
)
{
public
String
textDiff
(
String
baseFileUrl
,
String
compareFileUrl
,
BaiduTextDiffResponse
.
Param
param
,
Long
userId
)
{
BaiduTextDiffResponse
baiduTextDiffResponse
=
new
BaiduTextDiffResponse
();
baiduTextDiffResponse
.
setBaseFileURL
(
baseFileUrl
);
baiduTextDiffResponse
.
setCompareFileURL
(
compareFileUrl
);
baiduTextDiffResponse
.
setParam
(
param
);
return
createTextDiffTask
(
baiduTextDiffResponse
,
baiduTokenService
.
getToken
(
clientId
,
clientSecret
));
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
)
{
...
...
@@ -70,18 +115,42 @@ public class BaiduTextDiffServiceImpl implements BaiduTextDiffService {
}
@Override
public
BaiduTextDiffQueryResult
queryTextDiffTask
(
String
taskId
)
{
String
token
=
baiduTokenService
.
getToken
(
clientId
,
clientSecret
);
BaiduTextDiffQueryResult
baiduTextDiffQueryResult
=
baiduTextDiffApi
.
queryTask
(
taskId
,
token
);
if
(
baiduTextDiffQueryResult
==
null
||
!
baiduTextDiffQueryResult
.
getError_code
().
equals
(
0
))
{
if
(
baiduTextDiffQueryResult
!=
null
&&
baiduTextDiffQueryResult
.
getError_code
()
!=
null
&&
StringUtils
.
isNotBlank
(
baiduTextDiffQueryResult
.
getError_msg
()))
{
logger
.
error
(
"查询文档对比任务,错误码:{},错误信息:{}"
,
baiduTextDiffQueryResult
.
getError_code
(),
baiduTextDiffQueryResult
.
getError_msg
());
public
String
queryTextDiffTask
(
String
taskId
)
throws
Exception
{
BizExtractionReviewTaskModel
bizExtractionReviewTaskModel
=
new
BizExtractionReviewTaskModel
();
bizExtractionReviewTaskModel
.
setTaskId
(
taskId
);
bizExtractionReviewTaskModel
.
setActionType
(
ContractConstants
.
ActionType
.
textdiff
);
bizExtractionReviewTaskModel
.
setIsDeleted
(
CommonConstant
.
IsDeleted
.
N
);
List
<
BizExtractionReviewTaskModel
>
models
=
bizExtractionReviewTaskService
.
findByExample
(
bizExtractionReviewTaskModel
,
null
);
if
(
CollectionUtils
.
isEmpty
(
models
))
{
throw
new
BusinessException
(
"任务不存在"
);
}
BizExtractionReviewTaskModel
taskModel
=
models
.
get
(
0
);
String
status
=
StringUtils
.
EMPTY
;
if
(
"RUN"
.
equals
(
taskModel
.
getReviewStatus
()))
{
String
token
=
baiduTokenService
.
getToken
(
clientId
,
clientSecret
);
BaiduTextDiffQueryResult
baiduTextDiffQueryResult
=
baiduTextDiffApi
.
queryTask
(
taskId
,
token
);
if
(
baiduTextDiffQueryResult
==
null
||
!
baiduTextDiffQueryResult
.
getError_code
().
equals
(
0
))
{
if
(
baiduTextDiffQueryResult
!=
null
&&
baiduTextDiffQueryResult
.
getError_code
()
!=
null
&&
StringUtils
.
isNotBlank
(
baiduTextDiffQueryResult
.
getError_msg
()))
{
logger
.
error
(
"查询文档对比任务,错误码:{},错误信息:{}"
,
baiduTextDiffQueryResult
.
getError_code
(),
baiduTextDiffQueryResult
.
getError_msg
());
}
throw
new
BusinessException
(
"查询文档对比任务失败"
);
}
if
(
"success"
.
equals
(
baiduTextDiffQueryResult
.
getResult
().
getStatus
()))
{
taskModel
.
setReviewStatus
(
"END"
);
bizExtractionReviewTaskService
.
save
(
taskModel
);
status
=
"END"
;
}
else
if
(
"failed"
.
equals
(
baiduTextDiffQueryResult
.
getResult
().
getStatus
()))
{
taskModel
.
setReviewStatus
(
"FAIL"
);
bizExtractionReviewTaskService
.
save
(
taskModel
);
status
=
"FAIL"
;
}
else
{
status
=
"RUN"
;
}
throw
new
BusinessException
(
"查询文档对比任务失败"
);
}
return
baiduTextDiffQueryResult
;
return
status
;
}
@Override
...
...
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