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
0681cfb0
Commit
0681cfb0
authored
Oct 30, 2025
by
alex yao
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:MinerU Api
parent
3afdbbbe
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
37 changed files
with
3139 additions
and
0 deletions
+3139
-0
BizAiDataAuditRuleConvert.java
.../poc/ai_data_audit/convert/BizAiDataAuditRuleConvert.java
+81
-0
BizAiDataAuditRuleDto.java
...a/cn/com/poc/ai_data_audit/dto/BizAiDataAuditRuleDto.java
+166
-0
BizAiDataAuditRuleEntity.java
...om/poc/ai_data_audit/entity/BizAiDataAuditRuleEntity.java
+166
-0
BizAiDataAuditRuleModel.java
.../com/poc/ai_data_audit/model/BizAiDataAuditRuleModel.java
+241
-0
AiDataAuditRuleQuery.sql
...a/cn/com/poc/ai_data_audit/query/AiDataAuditRuleQuery.sql
+18
-0
AiDataAuditRuleQueryCondition.java
...oc/ai_data_audit/query/AiDataAuditRuleQueryCondition.java
+23
-0
AiDataAuditRuleQueryItem.java
...com/poc/ai_data_audit/query/AiDataAuditRuleQueryItem.java
+198
-0
BizAiDataAuditRuleRepository.java
...i_data_audit/repository/BizAiDataAuditRuleRepository.java
+6
-0
BizAiDataAuditRuleRest.java
...cn/com/poc/ai_data_audit/rest/BizAiDataAuditRuleRest.java
+24
-0
BizAiDataAuditRuleRestImpl.java
...c/ai_data_audit/rest/impl/BizAiDataAuditRuleRestImpl.java
+51
-0
BizAiDataAuditRuleService.java
.../poc/ai_data_audit/service/BizAiDataAuditRuleService.java
+27
-0
BizAiDataAuditRuleServiceImpl.java
...ata_audit/service/impl/BizAiDataAuditRuleServiceImpl.java
+126
-0
MD2Json.java
src/main/java/cn/com/poc/common/utils/MD2Json.java
+69
-0
AirportPDFPaperMessage.java
...ava/cn/com/poc/message/entity/AirportPDFPaperMessage.java
+36
-0
OCRMessage.java
src/main/java/cn/com/poc/message/entity/OCRMessage.java
+38
-0
OCRStatusMessage.java
...main/java/cn/com/poc/message/entity/OCRStatusMessage.java
+29
-0
AirportConsumerService.java
...va/cn/com/poc/message/service/AirportConsumerService.java
+20
-0
AirportProducerService.java
...va/cn/com/poc/message/service/AirportProducerService.java
+20
-0
OCRConsumerService.java
...n/java/cn/com/poc/message/service/OCRConsumerService.java
+18
-0
OCRProducerService.java
...n/java/cn/com/poc/message/service/OCRProducerService.java
+16
-0
AirportConsumerServiceImpl.java
.../poc/message/service/impl/AirportConsumerServiceImpl.java
+176
-0
AirportProducerServiceImpl.java
.../poc/message/service/impl/AirportProducerServiceImpl.java
+21
-0
OCRConsumerServiceImpl.java
.../com/poc/message/service/impl/OCRConsumerServiceImpl.java
+129
-0
OCRProducerServiceImpl.java
.../com/poc/message/service/impl/OCRProducerServiceImpl.java
+30
-0
AirportTopic.java
src/main/java/cn/com/poc/message/topic/AirportTopic.java
+12
-0
OCRTopic.java
src/main/java/cn/com/poc/message/topic/OCRTopic.java
+13
-0
BizFileOcrCacheConvert.java
...n/java/cn/com/poc/ocr/convert/BizFileOcrCacheConvert.java
+77
-0
BizFileOcrCacheDto.java
src/main/java/cn/com/poc/ocr/dto/BizFileOcrCacheDto.java
+154
-0
BizFileOcrCacheEntity.java
...ain/java/cn/com/poc/ocr/entity/BizFileOcrCacheEntity.java
+154
-0
BizFileOcrCacheModel.java
src/main/java/cn/com/poc/ocr/model/BizFileOcrCacheModel.java
+238
-0
BizFileOcrCacheRepository.java
.../cn/com/poc/ocr/repository/BizFileOcrCacheRepository.java
+6
-0
BizFileOcrCacheRest.java
src/main/java/cn/com/poc/ocr/rest/BizFileOcrCacheRest.java
+24
-0
BizFileOcrCacheRestImpl.java
...ava/cn/com/poc/ocr/rest/impl/BizFileOcrCacheRestImpl.java
+51
-0
OCRScheduler.java
src/main/java/cn/com/poc/ocr/scheduler/OCRScheduler.java
+63
-0
BizFileOcrCacheService.java
...n/java/cn/com/poc/ocr/service/BizFileOcrCacheService.java
+21
-0
BizFileOcrCacheServiceImpl.java
.../com/poc/ocr/service/impl/BizFileOcrCacheServiceImpl.java
+117
-0
UtilTest.java
src/test/java/cn/com/poc/common/UtilTest.java
+480
-0
No files found.
src/main/java/cn/com/poc/ai_data_audit/convert/BizAiDataAuditRuleConvert.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ai_data_audit
.
convert
;
import
cn.com.poc.ai_data_audit.model.BizAiDataAuditRuleModel
;
import
cn.com.poc.ai_data_audit.entity.BizAiDataAuditRuleEntity
;
import
cn.com.poc.ai_data_audit.dto.BizAiDataAuditRuleDto
;
public
class
BizAiDataAuditRuleConvert
{
public
static
BizAiDataAuditRuleEntity
modelToEntity
(
BizAiDataAuditRuleModel
model
){
BizAiDataAuditRuleEntity
entity
=
new
BizAiDataAuditRuleEntity
();
entity
.
setDataAuditRuleId
(
model
.
getDataAuditRuleId
());
entity
.
setDataAuditRuleType
(
model
.
getDataAuditRuleType
());
entity
.
setFirstFile
(
model
.
getFirstFile
());
entity
.
setFirstField
(
model
.
getFirstField
());
entity
.
setSecondFile
(
model
.
getSecondFile
());
entity
.
setSecondField
(
model
.
getSecondField
());
entity
.
setRuleDesc
(
model
.
getRuleDesc
());
entity
.
setIsDeleted
(
model
.
getIsDeleted
());
entity
.
setCreator
(
model
.
getCreator
());
entity
.
setCreatedTime
(
model
.
getCreatedTime
());
entity
.
setModifier
(
model
.
getModifier
());
entity
.
setModifiedTime
(
model
.
getModifiedTime
());
entity
.
setSysVersion
(
model
.
getSysVersion
());
return
entity
;
}
public
static
BizAiDataAuditRuleModel
entityToModel
(
BizAiDataAuditRuleEntity
entity
){
BizAiDataAuditRuleModel
model
=
new
BizAiDataAuditRuleModel
();
model
.
setDataAuditRuleId
(
entity
.
getDataAuditRuleId
());
model
.
setDataAuditRuleType
(
entity
.
getDataAuditRuleType
());
model
.
setFirstFile
(
entity
.
getFirstFile
());
model
.
setFirstField
(
entity
.
getFirstField
());
model
.
setSecondFile
(
entity
.
getSecondFile
());
model
.
setSecondField
(
entity
.
getSecondField
());
model
.
setRuleDesc
(
entity
.
getRuleDesc
());
model
.
setIsDeleted
(
entity
.
getIsDeleted
());
model
.
setCreator
(
entity
.
getCreator
());
model
.
setCreatedTime
(
entity
.
getCreatedTime
());
model
.
setModifier
(
entity
.
getModifier
());
model
.
setModifiedTime
(
entity
.
getModifiedTime
());
model
.
setSysVersion
(
entity
.
getSysVersion
());
return
model
;
}
public
static
BizAiDataAuditRuleDto
entityToDto
(
BizAiDataAuditRuleEntity
entity
){
BizAiDataAuditRuleDto
dto
=
new
BizAiDataAuditRuleDto
();
dto
.
setDataAuditRuleId
(
entity
.
getDataAuditRuleId
());
dto
.
setDataAuditRuleType
(
entity
.
getDataAuditRuleType
());
dto
.
setFirstFile
(
entity
.
getFirstFile
());
dto
.
setFirstField
(
entity
.
getFirstField
());
dto
.
setSecondFile
(
entity
.
getSecondFile
());
dto
.
setSecondField
(
entity
.
getSecondField
());
dto
.
setRuleDesc
(
entity
.
getRuleDesc
());
dto
.
setIsDeleted
(
entity
.
getIsDeleted
());
dto
.
setCreator
(
entity
.
getCreator
());
dto
.
setCreatedTime
(
entity
.
getCreatedTime
());
dto
.
setModifier
(
entity
.
getModifier
());
dto
.
setModifiedTime
(
entity
.
getModifiedTime
());
dto
.
setSysVersion
(
entity
.
getSysVersion
());
return
dto
;
}
public
static
BizAiDataAuditRuleEntity
dtoToEntity
(
BizAiDataAuditRuleDto
dto
){
BizAiDataAuditRuleEntity
entity
=
new
BizAiDataAuditRuleEntity
();
entity
.
setDataAuditRuleId
(
dto
.
getDataAuditRuleId
());
entity
.
setDataAuditRuleType
(
dto
.
getDataAuditRuleType
());
entity
.
setFirstFile
(
dto
.
getFirstFile
());
entity
.
setFirstField
(
dto
.
getFirstField
());
entity
.
setSecondFile
(
dto
.
getSecondFile
());
entity
.
setSecondField
(
dto
.
getSecondField
());
entity
.
setRuleDesc
(
dto
.
getRuleDesc
());
entity
.
setIsDeleted
(
dto
.
getIsDeleted
());
entity
.
setCreator
(
dto
.
getCreator
());
entity
.
setCreatedTime
(
dto
.
getCreatedTime
());
entity
.
setModifier
(
dto
.
getModifier
());
entity
.
setModifiedTime
(
dto
.
getModifiedTime
());
entity
.
setSysVersion
(
dto
.
getSysVersion
());
return
entity
;
}
}
\ No newline at end of file
src/main/java/cn/com/poc/ai_data_audit/dto/BizAiDataAuditRuleDto.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ai_data_audit
.
dto
;
public
class
BizAiDataAuditRuleDto
{
private
static
final
long
serialVersionUID
=
1L
;
/** data_audit_rule_id
*
*/
private
java
.
lang
.
Integer
dataAuditRuleId
;
public
java
.
lang
.
Integer
getDataAuditRuleId
(){
return
this
.
dataAuditRuleId
;
}
public
void
setDataAuditRuleId
(
java
.
lang
.
Integer
dataAuditRuleId
){
this
.
dataAuditRuleId
=
dataAuditRuleId
;
}
/** data_audit_rule_type
*类型:
字段对字段:c2c
字段对文件:f2c
文件对文件:f2f
*/
private
java
.
lang
.
String
dataAuditRuleType
;
public
java
.
lang
.
String
getDataAuditRuleType
(){
return
this
.
dataAuditRuleType
;
}
public
void
setDataAuditRuleType
(
java
.
lang
.
String
dataAuditRuleType
){
this
.
dataAuditRuleType
=
dataAuditRuleType
;
}
/** first_file
*第一个文件
*/
private
java
.
lang
.
Integer
firstFile
;
public
java
.
lang
.
Integer
getFirstFile
(){
return
this
.
firstFile
;
}
public
void
setFirstFile
(
java
.
lang
.
Integer
firstFile
){
this
.
firstFile
=
firstFile
;
}
/** first_field
*第一个字段
*/
private
java
.
lang
.
String
firstField
;
public
java
.
lang
.
String
getFirstField
(){
return
this
.
firstField
;
}
public
void
setFirstField
(
java
.
lang
.
String
firstField
){
this
.
firstField
=
firstField
;
}
/** second_file
*第二个文件
*/
private
java
.
lang
.
Integer
secondFile
;
public
java
.
lang
.
Integer
getSecondFile
(){
return
this
.
secondFile
;
}
public
void
setSecondFile
(
java
.
lang
.
Integer
secondFile
){
this
.
secondFile
=
secondFile
;
}
/** second_field
*第二个字段
*/
private
java
.
lang
.
String
secondField
;
public
java
.
lang
.
String
getSecondField
(){
return
this
.
secondField
;
}
public
void
setSecondField
(
java
.
lang
.
String
secondField
){
this
.
secondField
=
secondField
;
}
/** rule_desc
*规则描述
*/
private
java
.
lang
.
String
ruleDesc
;
public
java
.
lang
.
String
getRuleDesc
(){
return
this
.
ruleDesc
;
}
public
void
setRuleDesc
(
java
.
lang
.
String
ruleDesc
){
this
.
ruleDesc
=
ruleDesc
;
}
/** is_deleted
*是否删除 1、Y 是 2、N 否
*/
private
java
.
lang
.
String
isDeleted
;
public
java
.
lang
.
String
getIsDeleted
(){
return
this
.
isDeleted
;
}
public
void
setIsDeleted
(
java
.
lang
.
String
isDeleted
){
this
.
isDeleted
=
isDeleted
;
}
/** CREATOR
*创建人
*/
private
java
.
lang
.
String
creator
;
public
java
.
lang
.
String
getCreator
(){
return
this
.
creator
;
}
public
void
setCreator
(
java
.
lang
.
String
creator
){
this
.
creator
=
creator
;
}
/** CREATED_TIME
*创建时间
*/
private
java
.
util
.
Date
createdTime
;
public
java
.
util
.
Date
getCreatedTime
(){
return
this
.
createdTime
;
}
public
void
setCreatedTime
(
java
.
util
.
Date
createdTime
){
this
.
createdTime
=
createdTime
;
}
/** MODIFIER
*修改人
*/
private
java
.
lang
.
String
modifier
;
public
java
.
lang
.
String
getModifier
(){
return
this
.
modifier
;
}
public
void
setModifier
(
java
.
lang
.
String
modifier
){
this
.
modifier
=
modifier
;
}
/** MODIFIED_TIME
*修改时间
*/
private
java
.
util
.
Date
modifiedTime
;
public
java
.
util
.
Date
getModifiedTime
(){
return
this
.
modifiedTime
;
}
public
void
setModifiedTime
(
java
.
util
.
Date
modifiedTime
){
this
.
modifiedTime
=
modifiedTime
;
}
/** SYS_VERSION
*乐观锁,版本号
*/
private
java
.
lang
.
Integer
sysVersion
;
public
java
.
lang
.
Integer
getSysVersion
(){
return
this
.
sysVersion
;
}
public
void
setSysVersion
(
java
.
lang
.
Integer
sysVersion
){
this
.
sysVersion
=
sysVersion
;
}
}
\ No newline at end of file
src/main/java/cn/com/poc/ai_data_audit/entity/BizAiDataAuditRuleEntity.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ai_data_audit
.
entity
;
public
class
BizAiDataAuditRuleEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/** data_audit_rule_id
*
*/
private
java
.
lang
.
Integer
dataAuditRuleId
;
public
java
.
lang
.
Integer
getDataAuditRuleId
(){
return
this
.
dataAuditRuleId
;
}
public
void
setDataAuditRuleId
(
java
.
lang
.
Integer
dataAuditRuleId
){
this
.
dataAuditRuleId
=
dataAuditRuleId
;
}
/** data_audit_rule_type
*类型:
字段对字段:c2c
字段对文件:f2c
文件对文件:f2f
*/
private
java
.
lang
.
String
dataAuditRuleType
;
public
java
.
lang
.
String
getDataAuditRuleType
(){
return
this
.
dataAuditRuleType
;
}
public
void
setDataAuditRuleType
(
java
.
lang
.
String
dataAuditRuleType
){
this
.
dataAuditRuleType
=
dataAuditRuleType
;
}
/** first_file
*第一个文件
*/
private
java
.
lang
.
Integer
firstFile
;
public
java
.
lang
.
Integer
getFirstFile
(){
return
this
.
firstFile
;
}
public
void
setFirstFile
(
java
.
lang
.
Integer
firstFile
){
this
.
firstFile
=
firstFile
;
}
/** first_field
*第一个字段
*/
private
java
.
lang
.
String
firstField
;
public
java
.
lang
.
String
getFirstField
(){
return
this
.
firstField
;
}
public
void
setFirstField
(
java
.
lang
.
String
firstField
){
this
.
firstField
=
firstField
;
}
/** second_file
*第二个文件
*/
private
java
.
lang
.
Integer
secondFile
;
public
java
.
lang
.
Integer
getSecondFile
(){
return
this
.
secondFile
;
}
public
void
setSecondFile
(
java
.
lang
.
Integer
secondFile
){
this
.
secondFile
=
secondFile
;
}
/** second_field
*第二个字段
*/
private
java
.
lang
.
String
secondField
;
public
java
.
lang
.
String
getSecondField
(){
return
this
.
secondField
;
}
public
void
setSecondField
(
java
.
lang
.
String
secondField
){
this
.
secondField
=
secondField
;
}
/** rule_desc
*规则描述
*/
private
java
.
lang
.
String
ruleDesc
;
public
java
.
lang
.
String
getRuleDesc
(){
return
this
.
ruleDesc
;
}
public
void
setRuleDesc
(
java
.
lang
.
String
ruleDesc
){
this
.
ruleDesc
=
ruleDesc
;
}
/** is_deleted
*是否删除 1、Y 是 2、N 否
*/
private
java
.
lang
.
String
isDeleted
;
public
java
.
lang
.
String
getIsDeleted
(){
return
this
.
isDeleted
;
}
public
void
setIsDeleted
(
java
.
lang
.
String
isDeleted
){
this
.
isDeleted
=
isDeleted
;
}
/** CREATOR
*创建人
*/
private
java
.
lang
.
String
creator
;
public
java
.
lang
.
String
getCreator
(){
return
this
.
creator
;
}
public
void
setCreator
(
java
.
lang
.
String
creator
){
this
.
creator
=
creator
;
}
/** CREATED_TIME
*创建时间
*/
private
java
.
util
.
Date
createdTime
;
public
java
.
util
.
Date
getCreatedTime
(){
return
this
.
createdTime
;
}
public
void
setCreatedTime
(
java
.
util
.
Date
createdTime
){
this
.
createdTime
=
createdTime
;
}
/** MODIFIER
*修改人
*/
private
java
.
lang
.
String
modifier
;
public
java
.
lang
.
String
getModifier
(){
return
this
.
modifier
;
}
public
void
setModifier
(
java
.
lang
.
String
modifier
){
this
.
modifier
=
modifier
;
}
/** MODIFIED_TIME
*修改时间
*/
private
java
.
util
.
Date
modifiedTime
;
public
java
.
util
.
Date
getModifiedTime
(){
return
this
.
modifiedTime
;
}
public
void
setModifiedTime
(
java
.
util
.
Date
modifiedTime
){
this
.
modifiedTime
=
modifiedTime
;
}
/** SYS_VERSION
*乐观锁,版本号
*/
private
java
.
lang
.
Integer
sysVersion
;
public
java
.
lang
.
Integer
getSysVersion
(){
return
this
.
sysVersion
;
}
public
void
setSysVersion
(
java
.
lang
.
Integer
sysVersion
){
this
.
sysVersion
=
sysVersion
;
}
}
\ No newline at end of file
src/main/java/cn/com/poc/ai_data_audit/model/BizAiDataAuditRuleModel.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ai_data_audit
.
model
;
import
java.io.Serializable
;
import
cn.com.yict.framemax.data.model.BaseModelClass
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
import
javax.persistence.Id
;
import
org.hibernate.annotations.DynamicInsert
;
import
org.hibernate.annotations.DynamicUpdate
;
import
javax.persistence.Version
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GenerationType
;
/**
* Model class for biz_ai_data_audit_rule
*
*/
@Entity
@Table
(
name
=
"biz_ai_data_audit_rule"
)
@DynamicInsert
@DynamicUpdate
public
class
BizAiDataAuditRuleModel
extends
BaseModelClass
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/** data_audit_rule_id
*
*/
private
java
.
lang
.
Integer
dataAuditRuleId
;
@Column
(
name
=
"data_audit_rule_id"
,
length
=
10
)
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
AUTO
)
public
java
.
lang
.
Integer
getDataAuditRuleId
(){
return
this
.
dataAuditRuleId
;
}
public
void
setDataAuditRuleId
(
java
.
lang
.
Integer
dataAuditRuleId
){
this
.
dataAuditRuleId
=
dataAuditRuleId
;
super
.
addValidField
(
"dataAuditRuleId"
);
}
/** data_audit_rule_type
*类型:
字段对字段:c2c
字段对文件:f2c
文件对文件:f2f
*/
private
java
.
lang
.
String
dataAuditRuleType
;
@Column
(
name
=
"data_audit_rule_type"
,
length
=
255
)
public
java
.
lang
.
String
getDataAuditRuleType
(){
return
this
.
dataAuditRuleType
;
}
public
void
setDataAuditRuleType
(
java
.
lang
.
String
dataAuditRuleType
){
this
.
dataAuditRuleType
=
dataAuditRuleType
;
super
.
addValidField
(
"dataAuditRuleType"
);
}
/** first_file
*第一个文件
*/
private
java
.
lang
.
Integer
firstFile
;
@Column
(
name
=
"first_file"
,
length
=
10
)
public
java
.
lang
.
Integer
getFirstFile
(){
return
this
.
firstFile
;
}
public
void
setFirstFile
(
java
.
lang
.
Integer
firstFile
){
this
.
firstFile
=
firstFile
;
super
.
addValidField
(
"firstFile"
);
}
/** first_field
*第一个字段
*/
private
java
.
lang
.
String
firstField
;
@Column
(
name
=
"first_field"
,
length
=
255
)
public
java
.
lang
.
String
getFirstField
(){
return
this
.
firstField
;
}
public
void
setFirstField
(
java
.
lang
.
String
firstField
){
this
.
firstField
=
firstField
;
super
.
addValidField
(
"firstField"
);
}
/** second_file
*第二个文件
*/
private
java
.
lang
.
Integer
secondFile
;
@Column
(
name
=
"second_file"
,
length
=
10
)
public
java
.
lang
.
Integer
getSecondFile
(){
return
this
.
secondFile
;
}
public
void
setSecondFile
(
java
.
lang
.
Integer
secondFile
){
this
.
secondFile
=
secondFile
;
super
.
addValidField
(
"secondFile"
);
}
/** second_field
*第二个字段
*/
private
java
.
lang
.
String
secondField
;
@Column
(
name
=
"second_field"
,
length
=
1073741824
)
public
java
.
lang
.
String
getSecondField
(){
return
this
.
secondField
;
}
public
void
setSecondField
(
java
.
lang
.
String
secondField
){
this
.
secondField
=
secondField
;
super
.
addValidField
(
"secondField"
);
}
/** rule_desc
*规则描述
*/
private
java
.
lang
.
String
ruleDesc
;
@Column
(
name
=
"rule_desc"
,
length
=
255
)
public
java
.
lang
.
String
getRuleDesc
(){
return
this
.
ruleDesc
;
}
public
void
setRuleDesc
(
java
.
lang
.
String
ruleDesc
){
this
.
ruleDesc
=
ruleDesc
;
super
.
addValidField
(
"ruleDesc"
);
}
/** is_deleted
*是否删除 1、Y 是 2、N 否
*/
private
java
.
lang
.
String
isDeleted
;
@Column
(
name
=
"is_deleted"
,
length
=
1
)
public
java
.
lang
.
String
getIsDeleted
(){
return
this
.
isDeleted
;
}
public
void
setIsDeleted
(
java
.
lang
.
String
isDeleted
){
this
.
isDeleted
=
isDeleted
;
super
.
addValidField
(
"isDeleted"
);
}
/** CREATOR
*创建人
*/
private
java
.
lang
.
String
creator
;
@Column
(
name
=
"CREATOR"
,
length
=
225
)
public
java
.
lang
.
String
getCreator
(){
return
this
.
creator
;
}
public
void
setCreator
(
java
.
lang
.
String
creator
){
this
.
creator
=
creator
;
super
.
addValidField
(
"creator"
);
}
/** CREATED_TIME
*创建时间
*/
private
java
.
util
.
Date
createdTime
;
@Column
(
name
=
"CREATED_TIME"
,
length
=
19
)
public
java
.
util
.
Date
getCreatedTime
(){
return
this
.
createdTime
;
}
public
void
setCreatedTime
(
java
.
util
.
Date
createdTime
){
this
.
createdTime
=
createdTime
;
super
.
addValidField
(
"createdTime"
);
}
/** MODIFIER
*修改人
*/
private
java
.
lang
.
String
modifier
;
@Column
(
name
=
"MODIFIER"
,
length
=
225
)
public
java
.
lang
.
String
getModifier
(){
return
this
.
modifier
;
}
public
void
setModifier
(
java
.
lang
.
String
modifier
){
this
.
modifier
=
modifier
;
super
.
addValidField
(
"modifier"
);
}
/** MODIFIED_TIME
*修改时间
*/
private
java
.
util
.
Date
modifiedTime
;
@Column
(
name
=
"MODIFIED_TIME"
,
length
=
19
)
public
java
.
util
.
Date
getModifiedTime
(){
return
this
.
modifiedTime
;
}
public
void
setModifiedTime
(
java
.
util
.
Date
modifiedTime
){
this
.
modifiedTime
=
modifiedTime
;
super
.
addValidField
(
"modifiedTime"
);
}
/** SYS_VERSION
*乐观锁,版本号
*/
private
java
.
lang
.
Integer
sysVersion
;
@Column
(
name
=
"SYS_VERSION"
,
length
=
10
)
@Version
public
java
.
lang
.
Integer
getSysVersion
(){
return
this
.
sysVersion
;
}
public
void
setSysVersion
(
java
.
lang
.
Integer
sysVersion
){
this
.
sysVersion
=
sysVersion
;
super
.
addValidField
(
"sysVersion"
);
}
}
\ No newline at end of file
src/main/java/cn/com/poc/ai_data_audit/query/AiDataAuditRuleQuery.sql
0 → 100644
View file @
0681cfb0
select
data_audit_rule_id
,
data_audit_rule_type
,
first_file
,
first_field
,
second_file
,
second_field
,
rule_desc
,
is_deleted
,
CREATOR
,
CREATED_TIME
,
MODIFIER
,
MODIFIED_TIME
,
SYS_VERSION
from
biz_ai_data_audit_rule
where
is_deleted
=
'N'
<<
and
data_audit_rule_id
in
(:
ids
)
>>
\ No newline at end of file
src/main/java/cn/com/poc/ai_data_audit/query/AiDataAuditRuleQueryCondition.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ai_data_audit
.
query
;
import
java.io.Serializable
;
/**
* Query Condition class for AiDataAuditRuleQuery
*/
public
class
AiDataAuditRuleQueryCondition
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
private
java
.
lang
.
Long
[]
ids
;
public
java
.
lang
.
Long
[]
getIds
(){
return
this
.
ids
;
}
public
void
setIds
(
java
.
lang
.
Long
[]
ids
){
this
.
ids
=
ids
;
}
}
\ No newline at end of file
src/main/java/cn/com/poc/ai_data_audit/query/AiDataAuditRuleQueryItem.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ai_data_audit
.
query
;
import
java.io.Serializable
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
cn.com.yict.framemax.data.model.BaseItemClass
;
/**
* Query Item class for AiDataAuditRuleQuery
*/
@Entity
public
class
AiDataAuditRuleQueryItem
extends
BaseItemClass
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/** data_audit_rule_id
*data_audit_rule_id
*/
private
java
.
lang
.
Integer
dataAuditRuleId
;
@Column
(
name
=
"data_audit_rule_id"
)
public
java
.
lang
.
Integer
getDataAuditRuleId
(){
return
this
.
dataAuditRuleId
;
}
public
void
setDataAuditRuleId
(
java
.
lang
.
Integer
dataAuditRuleId
){
this
.
dataAuditRuleId
=
dataAuditRuleId
;
}
/** data_audit_rule_type
*data_audit_rule_type
*/
private
java
.
lang
.
String
dataAuditRuleType
;
@Column
(
name
=
"data_audit_rule_type"
)
public
java
.
lang
.
String
getDataAuditRuleType
(){
return
this
.
dataAuditRuleType
;
}
public
void
setDataAuditRuleType
(
java
.
lang
.
String
dataAuditRuleType
){
this
.
dataAuditRuleType
=
dataAuditRuleType
;
}
/** first_file
*first_file
*/
private
java
.
lang
.
Integer
firstFile
;
@Column
(
name
=
"first_file"
)
public
java
.
lang
.
Integer
getFirstFile
(){
return
this
.
firstFile
;
}
public
void
setFirstFile
(
java
.
lang
.
Integer
firstFile
){
this
.
firstFile
=
firstFile
;
}
/** first_field
*first_field
*/
private
java
.
lang
.
String
firstField
;
@Column
(
name
=
"first_field"
)
public
java
.
lang
.
String
getFirstField
(){
return
this
.
firstField
;
}
public
void
setFirstField
(
java
.
lang
.
String
firstField
){
this
.
firstField
=
firstField
;
}
/** second_file
*second_file
*/
private
java
.
lang
.
Integer
secondFile
;
@Column
(
name
=
"second_file"
)
public
java
.
lang
.
Integer
getSecondFile
(){
return
this
.
secondFile
;
}
public
void
setSecondFile
(
java
.
lang
.
Integer
secondFile
){
this
.
secondFile
=
secondFile
;
}
/** second_field
*second_field
*/
private
java
.
lang
.
String
secondField
;
@Column
(
name
=
"second_field"
)
public
java
.
lang
.
String
getSecondField
(){
return
this
.
secondField
;
}
public
void
setSecondField
(
java
.
lang
.
String
secondField
){
this
.
secondField
=
secondField
;
}
/** rule_desc
*rule_desc
*/
private
java
.
lang
.
String
ruleDesc
;
@Column
(
name
=
"rule_desc"
)
public
java
.
lang
.
String
getRuleDesc
(){
return
this
.
ruleDesc
;
}
public
void
setRuleDesc
(
java
.
lang
.
String
ruleDesc
){
this
.
ruleDesc
=
ruleDesc
;
}
/** is_deleted
*is_deleted
*/
private
java
.
lang
.
String
isDeleted
;
@Column
(
name
=
"is_deleted"
)
public
java
.
lang
.
String
getIsDeleted
(){
return
this
.
isDeleted
;
}
public
void
setIsDeleted
(
java
.
lang
.
String
isDeleted
){
this
.
isDeleted
=
isDeleted
;
}
/** CREATOR
*CREATOR
*/
private
java
.
lang
.
String
creator
;
@Column
(
name
=
"CREATOR"
)
public
java
.
lang
.
String
getCreator
(){
return
this
.
creator
;
}
public
void
setCreator
(
java
.
lang
.
String
creator
){
this
.
creator
=
creator
;
}
/** CREATED_TIME
*CREATED_TIME
*/
private
java
.
util
.
Date
createdTime
;
@Column
(
name
=
"CREATED_TIME"
)
public
java
.
util
.
Date
getCreatedTime
(){
return
this
.
createdTime
;
}
public
void
setCreatedTime
(
java
.
util
.
Date
createdTime
){
this
.
createdTime
=
createdTime
;
}
/** MODIFIER
*MODIFIER
*/
private
java
.
lang
.
String
modifier
;
@Column
(
name
=
"MODIFIER"
)
public
java
.
lang
.
String
getModifier
(){
return
this
.
modifier
;
}
public
void
setModifier
(
java
.
lang
.
String
modifier
){
this
.
modifier
=
modifier
;
}
/** MODIFIED_TIME
*MODIFIED_TIME
*/
private
java
.
util
.
Date
modifiedTime
;
@Column
(
name
=
"MODIFIED_TIME"
)
public
java
.
util
.
Date
getModifiedTime
(){
return
this
.
modifiedTime
;
}
public
void
setModifiedTime
(
java
.
util
.
Date
modifiedTime
){
this
.
modifiedTime
=
modifiedTime
;
}
/** SYS_VERSION
*SYS_VERSION
*/
private
java
.
lang
.
Integer
sysVersion
;
@Column
(
name
=
"SYS_VERSION"
)
public
java
.
lang
.
Integer
getSysVersion
(){
return
this
.
sysVersion
;
}
public
void
setSysVersion
(
java
.
lang
.
Integer
sysVersion
){
this
.
sysVersion
=
sysVersion
;
}
}
\ No newline at end of file
src/main/java/cn/com/poc/ai_data_audit/repository/BizAiDataAuditRuleRepository.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ai_data_audit
.
repository
;
import
cn.com.yict.framemax.data.repository.Repository
;
import
cn.com.poc.ai_data_audit.model.BizAiDataAuditRuleModel
;
public
interface
BizAiDataAuditRuleRepository
extends
Repository
<
BizAiDataAuditRuleModel
,
java
.
lang
.
Integer
>
{
}
\ No newline at end of file
src/main/java/cn/com/poc/ai_data_audit/rest/BizAiDataAuditRuleRest.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ai_data_audit
.
rest
;
import
cn.com.yict.framemax.core.rest.BaseRest
;
import
cn.com.poc.ai_data_audit.dto.BizAiDataAuditRuleDto
;
import
cn.com.yict.framemax.data.model.PagingInfo
;
import
java.util.Collection
;
import
java.util.List
;
import
cn.com.yict.framemax.web.permission.Access
;
import
cn.com.yict.framemax.web.permission.Permission
;
import
org.springframework.web.bind.annotation.RequestBody
;
public
interface
BizAiDataAuditRuleRest
extends
BaseRest
{
BizAiDataAuditRuleDto
getById
(
java
.
lang
.
Integer
id
)
throws
Exception
;
List
<
BizAiDataAuditRuleDto
>
getList
(
BizAiDataAuditRuleDto
example
,
PagingInfo
pagingInfo
)
throws
Exception
;
BizAiDataAuditRuleDto
save
(
BizAiDataAuditRuleDto
dto
)
throws
Exception
;
BizAiDataAuditRuleDto
update
(
BizAiDataAuditRuleDto
dto
)
throws
Exception
;
void
deletedById
(
java
.
lang
.
Integer
id
)
throws
Exception
;
}
\ No newline at end of file
src/main/java/cn/com/poc/ai_data_audit/rest/impl/BizAiDataAuditRuleRestImpl.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ai_data_audit
.
rest
.
impl
;
import
java.util.List
;
import
javax.annotation.Resource
;
import
org.springframework.stereotype.Component
;
import
cn.com.poc.ai_data_audit.rest.BizAiDataAuditRuleRest
;
import
cn.com.poc.ai_data_audit.service.BizAiDataAuditRuleService
;
import
cn.com.poc.ai_data_audit.dto.BizAiDataAuditRuleDto
;
import
cn.com.poc.ai_data_audit.entity.BizAiDataAuditRuleEntity
;
import
cn.com.yict.framemax.data.model.PagingInfo
;
import
cn.com.poc.ai_data_audit.convert.BizAiDataAuditRuleConvert
;
import
java.util.stream.Collectors
;
import
org.springframework.util.Assert
;
@Component
public
class
BizAiDataAuditRuleRestImpl
implements
BizAiDataAuditRuleRest
{
@Resource
private
BizAiDataAuditRuleService
service
;
public
BizAiDataAuditRuleDto
getById
(
java
.
lang
.
Integer
id
)
throws
Exception
{
Assert
.
notNull
(
id
);
return
BizAiDataAuditRuleConvert
.
entityToDto
(
service
.
get
(
id
));
}
public
List
<
BizAiDataAuditRuleDto
>
getList
(
BizAiDataAuditRuleDto
dto
,
PagingInfo
pagingInfo
)
throws
Exception
{
return
service
.
findByExample
(
BizAiDataAuditRuleConvert
.
dtoToEntity
(
dto
),
pagingInfo
)
.
stream
()
.
map
(
BizAiDataAuditRuleConvert:
:
entityToDto
)
.
collect
(
Collectors
.
toList
());
}
public
BizAiDataAuditRuleDto
save
(
BizAiDataAuditRuleDto
dto
)
throws
Exception
{
Assert
.
notNull
(
dto
);
BizAiDataAuditRuleEntity
entity
=
BizAiDataAuditRuleConvert
.
dtoToEntity
(
dto
);
return
BizAiDataAuditRuleConvert
.
entityToDto
(
service
.
save
(
entity
));
}
public
BizAiDataAuditRuleDto
update
(
BizAiDataAuditRuleDto
dto
)
throws
Exception
{
Assert
.
notNull
(
dto
);
BizAiDataAuditRuleEntity
entity
=
BizAiDataAuditRuleConvert
.
dtoToEntity
(
dto
);
return
BizAiDataAuditRuleConvert
.
entityToDto
(
service
.
update
(
entity
));
}
public
void
deletedById
(
java
.
lang
.
Integer
id
)
throws
Exception
{
Assert
.
notNull
(
id
);
service
.
deletedById
(
id
);
}
}
\ No newline at end of file
src/main/java/cn/com/poc/ai_data_audit/service/BizAiDataAuditRuleService.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ai_data_audit
.
service
;
import
cn.com.poc.ai_data_audit.query.AiDataAuditRuleQueryCondition
;
import
cn.com.poc.ai_data_audit.query.AiDataAuditRuleQueryItem
;
import
cn.com.yict.framemax.core.service.BaseService
;
import
cn.com.poc.ai_data_audit.entity.BizAiDataAuditRuleEntity
;
import
cn.com.yict.framemax.data.model.PagingInfo
;
import
java.util.Collection
;
import
java.util.List
;
public
interface
BizAiDataAuditRuleService
extends
BaseService
{
BizAiDataAuditRuleEntity
get
(
java
.
lang
.
Integer
id
)
throws
Exception
;
List
<
BizAiDataAuditRuleEntity
>
findByExample
(
BizAiDataAuditRuleEntity
example
,
PagingInfo
pagingInfo
)
throws
Exception
;
BizAiDataAuditRuleEntity
save
(
BizAiDataAuditRuleEntity
entity
)
throws
Exception
;
BizAiDataAuditRuleEntity
update
(
BizAiDataAuditRuleEntity
entity
)
throws
Exception
;
void
deletedById
(
java
.
lang
.
Integer
id
)
throws
Exception
;
List
<
AiDataAuditRuleQueryItem
>
aiDataAuditRuleQueryItemList
(
AiDataAuditRuleQueryCondition
condition
,
PagingInfo
pagingInfo
)
throws
Exception
;
}
\ No newline at end of file
src/main/java/cn/com/poc/ai_data_audit/service/impl/BizAiDataAuditRuleServiceImpl.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ai_data_audit
.
service
.
impl
;
import
cn.com.poc.ai_data_audit.query.AiDataAuditRuleQueryCondition
;
import
cn.com.poc.ai_data_audit.query.AiDataAuditRuleQueryItem
;
import
cn.com.yict.framemax.core.service.impl.BaseServiceImpl
;
import
cn.com.poc.ai_data_audit.service.BizAiDataAuditRuleService
;
import
cn.com.poc.ai_data_audit.model.BizAiDataAuditRuleModel
;
import
cn.com.poc.ai_data_audit.entity.BizAiDataAuditRuleEntity
;
import
cn.com.poc.ai_data_audit.convert.BizAiDataAuditRuleConvert
;
import
cn.com.poc.ai_data_audit.repository.BizAiDataAuditRuleRepository
;
import
cn.com.yict.framemax.data.model.PagingInfo
;
import
org.springframework.stereotype.Service
;
import
org.apache.commons.collections4.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.stream.Collectors
;
import
java.util.List
;
import
javax.annotation.Resource
;
import
org.springframework.util.Assert
;
@Service
public
class
BizAiDataAuditRuleServiceImpl
extends
BaseServiceImpl
implements
BizAiDataAuditRuleService
{
@Resource
private
BizAiDataAuditRuleRepository
repository
;
public
BizAiDataAuditRuleEntity
get
(
java
.
lang
.
Integer
id
)
throws
Exception
{
Assert
.
notNull
(
id
);
BizAiDataAuditRuleModel
model
=
this
.
repository
.
get
(
id
);
if
(
model
==
null
)
{
return
null
;
}
if
(
"Y"
.
equals
(
model
.
getIsDeleted
()))
{
return
null
;
}
return
BizAiDataAuditRuleConvert
.
modelToEntity
(
model
);
}
public
List
<
BizAiDataAuditRuleEntity
>
findByExample
(
BizAiDataAuditRuleEntity
example
,
PagingInfo
pagingInfo
)
throws
Exception
{
List
<
BizAiDataAuditRuleEntity
>
result
=
new
ArrayList
<
BizAiDataAuditRuleEntity
>();
BizAiDataAuditRuleModel
model
=
new
BizAiDataAuditRuleModel
();
if
(
example
!=
null
)
{
model
=
BizAiDataAuditRuleConvert
.
entityToModel
(
example
);
}
model
.
setIsDeleted
(
"N"
);
List
<
BizAiDataAuditRuleModel
>
models
=
this
.
repository
.
findByExample
(
model
,
pagingInfo
);
if
(
CollectionUtils
.
isNotEmpty
(
models
))
{
result
=
models
.
stream
().
map
(
BizAiDataAuditRuleConvert:
:
modelToEntity
).
collect
(
Collectors
.
toList
());
}
return
result
;
}
public
BizAiDataAuditRuleEntity
save
(
BizAiDataAuditRuleEntity
entity
)
throws
Exception
{
Assert
.
notNull
(
entity
);
entity
.
setDataAuditRuleId
(
null
);
entity
.
setIsDeleted
(
"N"
);
BizAiDataAuditRuleModel
model
=
BizAiDataAuditRuleConvert
.
entityToModel
(
entity
);
BizAiDataAuditRuleModel
saveModel
=
this
.
repository
.
save
(
model
);
return
BizAiDataAuditRuleConvert
.
modelToEntity
(
saveModel
);
}
public
BizAiDataAuditRuleEntity
update
(
BizAiDataAuditRuleEntity
entity
)
throws
Exception
{
Assert
.
notNull
(
entity
);
Assert
.
notNull
(
entity
.
getDataAuditRuleId
(),
"update pk can not be null"
);
BizAiDataAuditRuleModel
model
=
this
.
repository
.
get
(
entity
.
getDataAuditRuleId
());
if
(
entity
.
getDataAuditRuleType
()
!=
null
)
{
model
.
setDataAuditRuleType
(
entity
.
getDataAuditRuleType
());
}
if
(
entity
.
getFirstFile
()
!=
null
)
{
model
.
setFirstFile
(
entity
.
getFirstFile
());
}
if
(
entity
.
getFirstField
()
!=
null
)
{
model
.
setFirstField
(
entity
.
getFirstField
());
}
if
(
entity
.
getSecondFile
()
!=
null
)
{
model
.
setSecondFile
(
entity
.
getSecondFile
());
}
if
(
entity
.
getSecondField
()
!=
null
)
{
model
.
setSecondField
(
entity
.
getSecondField
());
}
if
(
entity
.
getRuleDesc
()
!=
null
)
{
model
.
setRuleDesc
(
entity
.
getRuleDesc
());
}
if
(
entity
.
getIsDeleted
()
!=
null
)
{
model
.
setIsDeleted
(
entity
.
getIsDeleted
());
}
if
(
entity
.
getCreator
()
!=
null
)
{
model
.
setCreator
(
entity
.
getCreator
());
}
if
(
entity
.
getCreatedTime
()
!=
null
)
{
model
.
setCreatedTime
(
entity
.
getCreatedTime
());
}
if
(
entity
.
getModifier
()
!=
null
)
{
model
.
setModifier
(
entity
.
getModifier
());
}
if
(
entity
.
getModifiedTime
()
!=
null
)
{
model
.
setModifiedTime
(
entity
.
getModifiedTime
());
}
if
(
entity
.
getSysVersion
()
!=
null
)
{
model
.
setSysVersion
(
entity
.
getSysVersion
());
}
BizAiDataAuditRuleModel
saveModel
=
this
.
repository
.
save
(
model
);
return
BizAiDataAuditRuleConvert
.
modelToEntity
(
saveModel
);
}
public
void
deletedById
(
java
.
lang
.
Integer
id
)
throws
Exception
{
Assert
.
notNull
(
id
);
BizAiDataAuditRuleModel
model
=
this
.
repository
.
get
(
id
);
if
(
model
!=
null
)
{
if
(
"N"
.
equals
(
model
.
getIsDeleted
()))
{
model
.
setIsDeleted
(
"Y"
);
this
.
repository
.
save
(
model
);
}
}
}
@Override
public
List
<
AiDataAuditRuleQueryItem
>
aiDataAuditRuleQueryItemList
(
AiDataAuditRuleQueryCondition
condition
,
PagingInfo
pagingInfo
)
throws
Exception
{
return
this
.
sqlDao
.
query
(
condition
,
AiDataAuditRuleQueryItem
.
class
,
pagingInfo
);
}
}
\ No newline at end of file
src/main/java/cn/com/poc/common/utils/MD2Json.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
common
.
utils
;
import
cn.com.gsst.dify_client.DifyClientFactory
;
import
cn.com.gsst.dify_client.DifyWorkflowClient
;
import
cn.com.gsst.dify_client.enums.FileTransferMethod
;
import
cn.com.gsst.dify_client.enums.FileType
;
import
cn.com.gsst.dify_client.enums.ResponseMode
;
import
cn.com.gsst.dify_client.model.file.FileInfo
;
import
cn.com.gsst.dify_client.model.workflow.WorkflowRunRequest
;
import
cn.com.gsst.dify_client.model.workflow.WorkflowRunResponse
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.util.ArrayList
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* MD表格/表单转 json
*
* @author alex.yao
* @date 2025/10/30
*/
public
class
MD2Json
{
private
static
String
DIFY_BASE_URL
=
"https://dify.gsstcloud.com/v1"
;
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
MD2Json
.
class
);
public
static
String
md2json
(
String
md
)
{
Map
<
String
,
Object
>
inputs
=
new
LinkedHashMap
<>();
inputs
.
put
(
"document"
,
md
);
List
<
FileInfo
>
files
=
new
ArrayList
<>();
files
.
add
(
FileInfo
.
builder
()
.
type
(
FileType
.
DOCUMENT
)
.
transferMethod
(
FileTransferMethod
.
REMOTE_URL
)
.
build
());
try
{
DifyWorkflowClient
workflowClient
=
DifyClientFactory
.
createWorkflowClient
(
DIFY_BASE_URL
,
"app-pYQciBixUQCmSpVTMDCMD0Uj"
);
WorkflowRunRequest
workflowRunRequest
=
new
WorkflowRunRequest
();
workflowRunRequest
.
setResponseMode
(
ResponseMode
.
BLOCKING
);
workflowRunRequest
.
setInputs
(
inputs
);
workflowRunRequest
.
setUser
(
"ModelLink"
);
WorkflowRunResponse
workflowRunResponse
=
workflowClient
.
runWorkflow
(
workflowRunRequest
);
Map
<
String
,
Object
>
outputs
=
workflowRunResponse
.
getData
().
getOutputs
();
if
(
outputs
.
containsKey
(
"text"
))
{
Object
text
=
outputs
.
get
(
"text"
);
JSONObject
jsonObject
=
JSON
.
parseObject
(
text
.
toString
());
if
(
jsonObject
.
containsKey
(
"paper"
)
&&
!
jsonObject
.
getBoolean
(
"paper"
))
{
logger
.
info
(
"------------ md to json could not paper -------------"
);
return
StringUtils
.
EMPTY
;
}
return
jsonObject
.
toJSONString
();
}
logger
.
error
(
"------------- md to json error , text is null -------------"
);
return
StringUtils
.
EMPTY
;
}
catch
(
Exception
e
)
{
logger
.
error
(
"------------- md to json error -------------"
,
e
);
return
StringUtils
.
EMPTY
;
}
}
}
src/main/java/cn/com/poc/message/entity/AirportPDFPaperMessage.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
message
.
entity
;
import
java.util.List
;
import
java.util.Map
;
/**
* 香港机场-PDF解析消息
*
* @author alex.yao
* @date 2025/10/30
*/
public
class
AirportPDFPaperMessage
{
// 1. 规则列表
private
List
<
Integer
>
ruleIdList
;
// 2. 文件映射
private
Map
<
String
,
String
>
fileMap
;
public
List
<
Integer
>
getRuleIdList
()
{
return
ruleIdList
;
}
public
void
setRuleIdList
(
List
<
Integer
>
ruleIdList
)
{
this
.
ruleIdList
=
ruleIdList
;
}
public
Map
<
String
,
String
>
getFileMap
()
{
return
fileMap
;
}
public
void
setFileMap
(
Map
<
String
,
String
>
fileMap
)
{
this
.
fileMap
=
fileMap
;
}
}
src/main/java/cn/com/poc/message/entity/OCRMessage.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
message
.
entity
;
/**
* @author alex.yao
* @date 2025/10/30
*/
public
class
OCRMessage
{
private
Long
id
;
private
String
fileURL
;
private
String
md5
;
public
Long
getId
()
{
return
id
;
}
public
void
setId
(
Long
id
)
{
this
.
id
=
id
;
}
public
String
getMd5
()
{
return
md5
;
}
public
void
setMd5
(
String
md5
)
{
this
.
md5
=
md5
;
}
public
String
getFileURL
()
{
return
fileURL
;
}
public
void
setFileURL
(
String
fileURL
)
{
this
.
fileURL
=
fileURL
;
}
}
src/main/java/cn/com/poc/message/entity/OCRStatusMessage.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
message
.
entity
;
/**
* @author alex.yao
* @date 2025/10/30
*/
public
class
OCRStatusMessage
{
private
Long
id
;
private
String
status
;
public
Long
getId
()
{
return
id
;
}
public
void
setId
(
Long
id
)
{
this
.
id
=
id
;
}
public
String
getStatus
()
{
return
status
;
}
public
void
setStatus
(
String
status
)
{
this
.
status
=
status
;
}
}
src/main/java/cn/com/poc/message/service/AirportConsumerService.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
message
.
service
;
import
cn.com.poc.message.entity.AirportPDFPaperMessage
;
import
cn.com.yict.framemax.core.service.BaseService
;
/**
* @author alex.yao
* @date 2025/10/30
*/
public
interface
AirportConsumerService
extends
BaseService
{
/**
* 推送PDF解析消息任务
*
* @param message
* @return
*/
void
pdfPaper
(
AirportPDFPaperMessage
message
)
throws
Exception
;
}
src/main/java/cn/com/poc/message/service/AirportProducerService.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
message
.
service
;
import
cn.com.poc.message.entity.AirportPDFPaperMessage
;
import
cn.com.yict.framemax.core.service.BaseService
;
/**
* @author alex.yao
* @date 2025/10/30
*/
public
interface
AirportProducerService
extends
BaseService
{
/**
* 推送PDF解析消息任务
*
* @param message
* @return
*/
AirportPDFPaperMessage
pdfPaper
(
AirportPDFPaperMessage
message
);
}
src/main/java/cn/com/poc/message/service/OCRConsumerService.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
message
.
service
;
import
cn.com.poc.message.entity.OCRMessage
;
import
cn.com.poc.message.entity.OCRStatusMessage
;
import
cn.com.yict.framemax.core.service.BaseService
;
/**
* @author alex.yao
* @date 2025/10/30
*/
public
interface
OCRConsumerService
extends
BaseService
{
void
OCR
(
OCRMessage
message
)
throws
Exception
;
void
updateStatus
(
OCRStatusMessage
message
)
throws
Exception
;
}
src/main/java/cn/com/poc/message/service/OCRProducerService.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
message
.
service
;
import
cn.com.poc.message.entity.OCRMessage
;
import
cn.com.poc.message.entity.OCRStatusMessage
;
import
cn.com.yict.framemax.core.service.BaseService
;
/**
* @author alex.yao
* @date 2025/10/30
*/
public
interface
OCRProducerService
extends
BaseService
{
OCRMessage
OCR
(
OCRMessage
message
);
OCRStatusMessage
updateStatus
(
OCRStatusMessage
message
);
}
src/main/java/cn/com/poc/message/service/impl/AirportConsumerServiceImpl.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
message
.
service
.
impl
;
import
cn.com.gsst.dify_client.DifyChatClient
;
import
cn.com.gsst.dify_client.DifyClientFactory
;
import
cn.com.gsst.dify_client.enums.ResponseMode
;
import
cn.com.gsst.dify_client.model.chat.ChatMessage
;
import
cn.com.gsst.dify_client.model.chat.ChatMessageResponse
;
import
cn.com.poc.ai_data_audit.entity.BizAiDataAuditFileEntity
;
import
cn.com.poc.ai_data_audit.query.AiDataAuditRuleQueryCondition
;
import
cn.com.poc.ai_data_audit.query.AiDataAuditRuleQueryItem
;
import
cn.com.poc.ai_data_audit.service.BizAiDataAuditFileService
;
import
cn.com.poc.ai_data_audit.service.BizAiDataAuditRuleService
;
import
cn.com.poc.common.utils.DocumentLoad
;
import
cn.com.poc.common.utils.StringUtils
;
import
cn.com.poc.equity.service.BizPointDeductionRulesService
;
import
cn.com.poc.message.entity.AirportPDFPaperMessage
;
import
cn.com.poc.message.service.AirportConsumerService
;
import
cn.com.poc.message.topic.AirportTopic
;
import
cn.com.poc.ocr.entity.BizFileOcrCacheEntity
;
import
cn.com.poc.ocr.service.BizFileOcrCacheService
;
import
cn.com.yict.framemax.core.exception.BusinessException
;
import
cn.com.yict.framemax.tumbleweed.client.annotation.Consumer
;
import
com.google.common.util.concurrent.ThreadFactoryBuilder
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.io.File
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.concurrent.CopyOnWriteArrayList
;
import
java.util.concurrent.CountDownLatch
;
import
java.util.concurrent.ThreadPoolExecutor
;
import
java.util.concurrent.TimeUnit
;
/**
* @author alex.yao
* @date 2025/10/30
*/
@Service
public
class
AirportConsumerServiceImpl
implements
AirportConsumerService
{
private
String
DIFY_BASE_URL
=
"https://dify.gsstcloud.com/v1"
;
private
ThreadPoolExecutor
executor
=
new
ThreadPoolExecutor
(
10
,
20
,
10L
,
TimeUnit
.
SECONDS
,
new
java
.
util
.
concurrent
.
ArrayBlockingQueue
<>(
5
),
new
ThreadFactoryBuilder
().
setNameFormat
(
"pdf-paper-%d"
).
build
(),
new
ThreadPoolExecutor
.
DiscardOldestPolicy
());
@Resource
private
BizFileOcrCacheService
bizFileOcrCacheService
;
@Resource
private
BizAiDataAuditFileService
bizAiDataAuditFileService
;
@Resource
private
BizAiDataAuditRuleService
bizAiDataAuditRuleService
;
@Override
@Consumer
(
topic
=
AirportTopic
.
AIRPORT_PDF_PAPER_TOPIC
)
public
void
pdfPaper
(
AirportPDFPaperMessage
message
)
throws
Exception
{
List
<
String
>
results
=
new
CopyOnWriteArrayList
<>();
List
<
Integer
>
ruleIdList
=
message
.
getRuleIdList
();
AiDataAuditRuleQueryCondition
aiDataAuditRuleQueryCondition
=
new
AiDataAuditRuleQueryCondition
();
aiDataAuditRuleQueryCondition
.
setIds
(
ruleIdList
.
toArray
(
new
Long
[
ruleIdList
.
size
()]));
List
<
AiDataAuditRuleQueryItem
>
aiDataAuditRuleQueryItems
=
bizAiDataAuditRuleService
.
aiDataAuditRuleQueryItemList
(
aiDataAuditRuleQueryCondition
,
null
);
CountDownLatch
countDownLatch
=
new
CountDownLatch
(
aiDataAuditRuleQueryItems
.
size
());
try
{
//
for
(
AiDataAuditRuleQueryItem
aiDataAuditRuleQueryItem
:
aiDataAuditRuleQueryItems
)
{
String
ruleType
=
aiDataAuditRuleQueryItem
.
getDataAuditRuleType
();
if
(
ruleType
.
equals
(
"c2c"
))
{
c2c
(
aiDataAuditRuleQueryItem
,
results
,
countDownLatch
);
}
else
if
(
ruleType
.
equals
(
"c2f"
))
{
c2f
(
aiDataAuditRuleQueryItem
,
results
,
countDownLatch
);
}
else
if
(
ruleType
.
equals
(
"f2f"
))
{
f2f
(
aiDataAuditRuleQueryItem
,
results
,
countDownLatch
);
}
else
{
countDownLatch
.
countDown
();
}
}
countDownLatch
.
await
();
}
catch
(
Exception
e
)
{
throw
new
BusinessException
(
e
.
getMessage
());
}
}
// 字段对字段
private
void
c2c
(
AiDataAuditRuleQueryItem
aiDataAuditRuleQueryItem
,
List
<
String
>
results
,
CountDownLatch
countDownLatch
)
{
executor
.
submit
(()
->
{
try
{
String
ruleDesc
=
aiDataAuditRuleQueryItem
.
getRuleDesc
();
// 规则描述
Integer
firstFile
=
aiDataAuditRuleQueryItem
.
getFirstFile
();
// 文件1
String
firstField
=
aiDataAuditRuleQueryItem
.
getFirstField
();
// 字段1
Integer
secondFile
=
aiDataAuditRuleQueryItem
.
getSecondFile
();
// 文件2
String
secondField
=
aiDataAuditRuleQueryItem
.
getSecondField
();
// 字段2
String
firstFileContent
=
StringUtils
.
EMPTY
;
String
secondFileContent
=
StringUtils
.
EMPTY
;
// 找到文件 并下载对应的md 或 json 文件
BizAiDataAuditFileEntity
firstAuditFileEntity
=
bizAiDataAuditFileService
.
get
(
firstFile
);
BizFileOcrCacheEntity
bizFileOcrCacheEntity
=
new
BizFileOcrCacheEntity
();
bizFileOcrCacheEntity
.
setMd5
(
firstAuditFileEntity
.
getMd5
());
List
<
BizFileOcrCacheEntity
>
firstocrCacheEntities
=
bizFileOcrCacheService
.
findByExample
(
bizFileOcrCacheEntity
,
null
);
BizFileOcrCacheEntity
firstFileOcrCacheEntity
=
firstocrCacheEntities
.
get
(
0
);
String
firstMdFileUrl
=
firstFileOcrCacheEntity
.
getMdFileUrl
();
String
firstJsonFileUrl
=
firstFileOcrCacheEntity
.
getJsonFileUrl
();
if
(
StringUtils
.
isNotBlank
(
firstJsonFileUrl
))
{
File
file
=
DocumentLoad
.
downloadURLDocument
(
StringUtils
.
isBlank
(
firstJsonFileUrl
)
?
firstMdFileUrl
:
firstJsonFileUrl
);
firstFileContent
=
DocumentLoad
.
documentToText
(
file
);
}
BizAiDataAuditFileEntity
secondAuditFileEntity
=
bizAiDataAuditFileService
.
get
(
secondFile
);
bizFileOcrCacheEntity
=
new
BizFileOcrCacheEntity
();
bizFileOcrCacheEntity
.
setMd5
(
secondAuditFileEntity
.
getMd5
());
List
<
BizFileOcrCacheEntity
>
secondOcrCacheEntities
=
bizFileOcrCacheService
.
findByExample
(
bizFileOcrCacheEntity
,
null
);
BizFileOcrCacheEntity
secondFileOcrCacheEntity
=
secondOcrCacheEntities
.
get
(
0
);
String
secondMdFileUrl
=
firstFileOcrCacheEntity
.
getMdFileUrl
();
String
secondJsonFileUrl
=
firstFileOcrCacheEntity
.
getJsonFileUrl
();
if
(
StringUtils
.
isNotBlank
(
secondJsonFileUrl
))
{
File
file
=
DocumentLoad
.
downloadURLDocument
(
StringUtils
.
isBlank
(
secondJsonFileUrl
)
?
secondMdFileUrl
:
secondJsonFileUrl
);
secondFileContent
=
DocumentLoad
.
documentToText
(
file
);
}
// 执行工作流
Map
<
String
,
Object
>
inputs
=
new
LinkedHashMap
<>();
inputs
.
put
(
"rule"
,
ruleDesc
);
inputs
.
put
(
"doc1"
,
firstFileContent
);
inputs
.
put
(
"doc2"
,
secondFileContent
);
inputs
.
put
(
"filed_1"
,
firstField
);
inputs
.
put
(
"filed_2"
,
secondField
);
// 创建聊天客户端
DifyChatClient
chatClient
=
DifyClientFactory
.
createChatClient
(
DIFY_BASE_URL
,
"app-1MRun3ecfLOzFS96xcWYCOOX"
);
// 创建聊天消息
ChatMessage
message
=
ChatMessage
.
builder
()
.
query
(
"run"
)
.
user
(
"0"
)
.
inputs
(
inputs
)
.
conversationId
(
StringUtils
.
EMPTY
)
.
responseMode
(
ResponseMode
.
BLOCKING
)
.
build
();
// 发送消息并获取响应
ChatMessageResponse
response
=
chatClient
.
sendChatMessage
(
message
);
String
result
=
response
.
getAnswer
();
results
.
add
(
result
);
}
catch
(
Exception
e
)
{
throw
new
RuntimeException
(
e
);
}
finally
{
countDownLatch
.
countDown
();
}
});
}
// 字段对文件
private
void
c2f
(
AiDataAuditRuleQueryItem
aiDataAuditRuleQueryItem
,
List
<
String
>
results
,
CountDownLatch
countDownLatch
)
{
countDownLatch
.
countDown
();
}
// 文件对文件
private
void
f2f
(
AiDataAuditRuleQueryItem
aiDataAuditRuleQueryItem
,
List
<
String
>
results
,
CountDownLatch
countDownLatch
)
{
countDownLatch
.
countDown
();
}
}
src/main/java/cn/com/poc/message/service/impl/AirportProducerServiceImpl.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
message
.
service
.
impl
;
import
cn.com.poc.message.entity.AirportPDFPaperMessage
;
import
cn.com.poc.message.service.AirportProducerService
;
import
cn.com.poc.message.topic.AirportTopic
;
import
cn.com.yict.framemax.tumbleweed.client.annotation.Producer
;
import
org.springframework.stereotype.Service
;
/**
* @author alex.yao
* @date 2025/10/30
*/
@Service
public
class
AirportProducerServiceImpl
implements
AirportProducerService
{
@Override
@Producer
(
topic
=
AirportTopic
.
AIRPORT_PDF_PAPER_TOPIC
)
public
AirportPDFPaperMessage
pdfPaper
(
AirportPDFPaperMessage
message
)
{
return
message
;
}
}
src/main/java/cn/com/poc/message/service/impl/OCRConsumerServiceImpl.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
message
.
service
.
impl
;
import
cn.com.poc.common.model.BizFileUploadRecordModel
;
import
cn.com.poc.common.service.BizFileUploadRecordService
;
import
cn.com.poc.common.service.BosConfigService
;
import
cn.com.poc.common.utils.DocumentLoad
;
import
cn.com.poc.common.utils.MD2Json
;
import
cn.com.poc.common.utils.UUIDTool
;
import
cn.com.poc.message.entity.OCRMessage
;
import
cn.com.poc.message.entity.OCRStatusMessage
;
import
cn.com.poc.message.service.OCRConsumerService
;
import
cn.com.poc.message.service.OCRProducerService
;
import
cn.com.poc.message.topic.OCRTopic
;
import
cn.com.poc.ocr.entity.BizFileOcrCacheEntity
;
import
cn.com.poc.ocr.service.BizFileOcrCacheService
;
import
cn.com.poc.thirdparty.resource.minerU.MinerUResponse
;
import
cn.com.poc.thirdparty.resource.minerU.api.MinerUAPI
;
import
cn.com.yict.framemax.tumbleweed.client.annotation.Consumer
;
import
cn.hutool.core.io.FileUtil
;
import
cn.hutool.crypto.digest.MD5
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
java.io.BufferedInputStream
;
import
java.io.File
;
import
java.io.FileOutputStream
;
import
java.io.IOException
;
/**
* @author alex.yao
* @date 2025/10/30
*/
@Service
public
class
OCRConsumerServiceImpl
implements
OCRConsumerService
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
OCRConsumerService
.
class
);
@Resource
private
MinerUAPI
minerUAPI
;
@Resource
private
BizFileOcrCacheService
bizFileOcrCacheService
;
@Resource
private
BosConfigService
bosConfigService
;
@Resource
private
BizFileUploadRecordService
bizFileUploadRecordService
;
@Resource
private
OCRProducerService
ocrProducerService
;
@Override
@Consumer
(
topic
=
OCRTopic
.
PARSE_PDF
)
public
void
OCR
(
OCRMessage
message
)
throws
Exception
{
OCRStatusMessage
ocrStatusMessage
=
new
OCRStatusMessage
();
ocrStatusMessage
.
setId
(
message
.
getId
());
ocrStatusMessage
.
setStatus
(
"parsing"
);
ocrProducerService
.
updateStatus
(
ocrStatusMessage
);
File
file
=
DocumentLoad
.
downloadURLDocument
(
message
.
getFileURL
());
MinerUResponse
minerUResponse
=
new
MinerUResponse
();
minerUResponse
.
setFiles
(
file
);
try
{
Object
o
=
minerUAPI
.
parsePDF
(
minerUResponse
);
//
String
md
=
""
;
String
json
=
MD2Json
.
md2json
(
md
);
BizFileOcrCacheEntity
updateEntity
=
bizFileOcrCacheService
.
get
(
message
.
getId
());
updateEntity
.
setParseStatus
(
"complete"
);
updateEntity
.
setJsonFileUrl
(
createFileAndUploadBos
(
md
,
"txt"
));
updateEntity
.
setMdFileUrl
(
createFileAndUploadBos
(
md
,
"md"
));
bizFileOcrCacheService
.
update
(
updateEntity
);
}
catch
(
Exception
e
)
{
logger
.
error
(
"----------- OCR 失败 {} ----------"
,
e
.
getMessage
());
OCRStatusMessage
errorOcrStatusMessage
=
new
OCRStatusMessage
();
errorOcrStatusMessage
.
setId
(
message
.
getId
());
errorOcrStatusMessage
.
setStatus
(
"fail"
);
ocrProducerService
.
updateStatus
(
errorOcrStatusMessage
);
}
}
@Override
@Consumer
(
topic
=
OCRTopic
.
UPDATE_STATUS
)
public
void
updateStatus
(
OCRStatusMessage
message
)
throws
Exception
{
logger
.
info
(
"update ocr status , id:{} , status:{}"
,
message
.
getId
(),
message
.
getStatus
());
BizFileOcrCacheEntity
bizFileOcrCacheEntity
=
bizFileOcrCacheService
.
get
(
message
.
getId
());
bizFileOcrCacheEntity
.
setParseStatus
(
message
.
getStatus
());
bizFileOcrCacheService
.
update
(
bizFileOcrCacheEntity
);
}
private
String
createFileAndUploadBos
(
String
content
,
String
suffix
)
throws
IOException
{
String
fileName
=
UUIDTool
.
getUUID
();
File
tempFile
=
File
.
createTempFile
(
fileName
,
suffix
);
FileOutputStream
fileOutputStream
=
new
FileOutputStream
(
tempFile
);
fileOutputStream
.
write
(
content
.
getBytes
());
fileOutputStream
.
flush
();
BufferedInputStream
inputStream
=
FileUtil
.
getInputStream
(
tempFile
);
byte
[]
bytes
=
new
byte
[
inputStream
.
available
()];
inputStream
.
read
(
bytes
);
String
md5
=
MD5
.
create
().
digestHex
(
bytes
);
String
upload
=
bosConfigService
.
upload
(
inputStream
,
fileName
,
null
);
BizFileUploadRecordModel
bizFileUploadRecordModel
=
new
BizFileUploadRecordModel
();
bizFileUploadRecordModel
.
setFileName
(
fileName
);
bizFileUploadRecordModel
.
setFileUrl
(
upload
);
bizFileUploadRecordModel
.
setMd5
(
md5
);
bizFileUploadRecordModel
.
setCoverSheetUrl
(
""
);
bizFileUploadRecordService
.
save
(
bizFileUploadRecordModel
);
fileOutputStream
.
close
();
inputStream
.
close
();
tempFile
.
delete
();
return
upload
;
}
}
src/main/java/cn/com/poc/message/service/impl/OCRProducerServiceImpl.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
message
.
service
.
impl
;
import
cn.com.poc.message.entity.OCRMessage
;
import
cn.com.poc.message.entity.OCRStatusMessage
;
import
cn.com.poc.message.service.OCRProducerService
;
import
cn.com.poc.message.topic.OCRTopic
;
import
cn.com.yict.framemax.core.service.BaseService
;
import
cn.com.yict.framemax.tumbleweed.client.annotation.Producer
;
import
cn.com.yict.framemax.tumbleweed.constant.PublishPoint
;
import
org.springframework.stereotype.Service
;
/**
* @author alex.yao
* @date 2025/10/30
*/
@Service
public
class
OCRProducerServiceImpl
implements
OCRProducerService
{
@Override
@Producer
(
topic
=
OCRTopic
.
PARSE_PDF
)
public
OCRMessage
OCR
(
OCRMessage
message
)
{
return
message
;
}
@Override
@Producer
(
topic
=
OCRTopic
.
UPDATE_STATUS
,
publishPoint
=
PublishPoint
.
PUBLISH_REAL_TIME
)
public
OCRStatusMessage
updateStatus
(
OCRStatusMessage
message
)
{
return
message
;
}
}
src/main/java/cn/com/poc/message/topic/AirportTopic.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
message
.
topic
;
/**
* @author alex.yao
* @date 2025/10/30
*/
public
interface
AirportTopic
{
String
AIRPORT_PDF_PAPER_TOPIC
=
"AIRPORT_PDF_PAPER_TOPIC"
;
}
src/main/java/cn/com/poc/message/topic/OCRTopic.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
message
.
topic
;
/**
* @author alex.yao
* @date 2025/10/30
*/
public
interface
OCRTopic
{
String
PARSE_PDF
=
"PARSE_PDF"
;
String
UPDATE_STATUS
=
"UPDATE_STATUS"
;
}
src/main/java/cn/com/poc/ocr/convert/BizFileOcrCacheConvert.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ocr
.
convert
;
import
cn.com.poc.ocr.model.BizFileOcrCacheModel
;
import
cn.com.poc.ocr.entity.BizFileOcrCacheEntity
;
import
cn.com.poc.ocr.dto.BizFileOcrCacheDto
;
public
class
BizFileOcrCacheConvert
{
public
static
BizFileOcrCacheEntity
modelToEntity
(
BizFileOcrCacheModel
model
)
{
BizFileOcrCacheEntity
entity
=
new
BizFileOcrCacheEntity
();
entity
.
setId
(
model
.
getId
());
entity
.
setMd5
(
model
.
getMd5
());
entity
.
setParseStatus
(
model
.
getParseStatus
());
entity
.
setFileUrl
(
model
.
getFileUrl
());
entity
.
setMdFileUrl
(
model
.
getMdFileUrl
());
entity
.
setJsonFileUrl
(
model
.
getJsonFileUrl
());
entity
.
setIsDeleted
(
model
.
getIsDeleted
());
entity
.
setCreator
(
model
.
getCreator
());
entity
.
setCreatedTime
(
model
.
getCreatedTime
());
entity
.
setModifier
(
model
.
getModifier
());
entity
.
setModifiedTime
(
model
.
getModifiedTime
());
entity
.
setSysVersion
(
model
.
getSysVersion
());
return
entity
;
}
public
static
BizFileOcrCacheModel
entityToModel
(
BizFileOcrCacheEntity
entity
)
{
BizFileOcrCacheModel
model
=
new
BizFileOcrCacheModel
();
model
.
setId
(
entity
.
getId
());
model
.
setMd5
(
entity
.
getMd5
());
model
.
setFileUrl
(
entity
.
getFileUrl
());
model
.
setParseStatus
(
entity
.
getParseStatus
());
model
.
setMdFileUrl
(
entity
.
getMdFileUrl
());
model
.
setJsonFileUrl
(
entity
.
getJsonFileUrl
());
model
.
setIsDeleted
(
entity
.
getIsDeleted
());
model
.
setCreator
(
entity
.
getCreator
());
model
.
setCreatedTime
(
entity
.
getCreatedTime
());
model
.
setModifier
(
entity
.
getModifier
());
model
.
setModifiedTime
(
entity
.
getModifiedTime
());
model
.
setSysVersion
(
entity
.
getSysVersion
());
return
model
;
}
public
static
BizFileOcrCacheDto
entityToDto
(
BizFileOcrCacheEntity
entity
)
{
BizFileOcrCacheDto
dto
=
new
BizFileOcrCacheDto
();
dto
.
setId
(
entity
.
getId
());
dto
.
setMd5
(
entity
.
getMd5
());
dto
.
setFileUrl
(
entity
.
getFileUrl
());
dto
.
setParseStatus
(
entity
.
getParseStatus
());
dto
.
setMdFileUrl
(
entity
.
getMdFileUrl
());
dto
.
setJsonFileUrl
(
entity
.
getJsonFileUrl
());
dto
.
setIsDeleted
(
entity
.
getIsDeleted
());
dto
.
setCreator
(
entity
.
getCreator
());
dto
.
setCreatedTime
(
entity
.
getCreatedTime
());
dto
.
setModifier
(
entity
.
getModifier
());
dto
.
setModifiedTime
(
entity
.
getModifiedTime
());
dto
.
setSysVersion
(
entity
.
getSysVersion
());
return
dto
;
}
public
static
BizFileOcrCacheEntity
dtoToEntity
(
BizFileOcrCacheDto
dto
)
{
BizFileOcrCacheEntity
entity
=
new
BizFileOcrCacheEntity
();
entity
.
setId
(
dto
.
getId
());
entity
.
setMd5
(
dto
.
getMd5
());
entity
.
setFileUrl
(
dto
.
getFileUrl
());
entity
.
setParseStatus
(
dto
.
getParseStatus
());
entity
.
setMdFileUrl
(
dto
.
getMdFileUrl
());
entity
.
setJsonFileUrl
(
dto
.
getJsonFileUrl
());
entity
.
setIsDeleted
(
dto
.
getIsDeleted
());
entity
.
setCreator
(
dto
.
getCreator
());
entity
.
setCreatedTime
(
dto
.
getCreatedTime
());
entity
.
setModifier
(
dto
.
getModifier
());
entity
.
setModifiedTime
(
dto
.
getModifiedTime
());
entity
.
setSysVersion
(
dto
.
getSysVersion
());
return
entity
;
}
}
\ No newline at end of file
src/main/java/cn/com/poc/ocr/dto/BizFileOcrCacheDto.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ocr
.
dto
;
public
class
BizFileOcrCacheDto
{
private
static
final
long
serialVersionUID
=
1L
;
/** id
*主键id
*/
private
java
.
lang
.
Long
id
;
public
java
.
lang
.
Long
getId
(){
return
this
.
id
;
}
public
void
setId
(
java
.
lang
.
Long
id
){
this
.
id
=
id
;
}
/** md5
*文件MD5
*/
private
java
.
lang
.
String
md5
;
public
java
.
lang
.
String
getMd5
(){
return
this
.
md5
;
}
public
void
setMd5
(
java
.
lang
.
String
md5
){
this
.
md5
=
md5
;
}
/**
* parse_status
* 解析状态 : create-已创建 queuing-排队中 parsing -解析中 complete-完成 fail-失败
*/
private
String
parseStatus
;
public
String
getParseStatus
()
{
return
parseStatus
;
}
public
void
setParseStatus
(
String
parseStatus
)
{
this
.
parseStatus
=
parseStatus
;
}
/** file_url
*源文件地址
*/
private
java
.
lang
.
String
fileUrl
;
public
java
.
lang
.
String
getFileUrl
(){
return
this
.
fileUrl
;
}
public
void
setFileUrl
(
java
.
lang
.
String
fileUrl
){
this
.
fileUrl
=
fileUrl
;
}
/** md_file_url
*OCR后MD文件地址
*/
private
java
.
lang
.
String
mdFileUrl
;
public
java
.
lang
.
String
getMdFileUrl
(){
return
this
.
mdFileUrl
;
}
public
void
setMdFileUrl
(
java
.
lang
.
String
mdFileUrl
){
this
.
mdFileUrl
=
mdFileUrl
;
}
/** json_file_url
*提取json后文件url
*/
private
java
.
lang
.
String
jsonFileUrl
;
public
java
.
lang
.
String
getJsonFileUrl
(){
return
this
.
jsonFileUrl
;
}
public
void
setJsonFileUrl
(
java
.
lang
.
String
jsonFileUrl
){
this
.
jsonFileUrl
=
jsonFileUrl
;
}
/** is_deleted
*是否删除 Y 是 N 否
*/
private
java
.
lang
.
String
isDeleted
;
public
java
.
lang
.
String
getIsDeleted
(){
return
this
.
isDeleted
;
}
public
void
setIsDeleted
(
java
.
lang
.
String
isDeleted
){
this
.
isDeleted
=
isDeleted
;
}
/** CREATOR
*创建人
*/
private
java
.
lang
.
String
creator
;
public
java
.
lang
.
String
getCreator
(){
return
this
.
creator
;
}
public
void
setCreator
(
java
.
lang
.
String
creator
){
this
.
creator
=
creator
;
}
/** CREATED_TIME
*创建时间
*/
private
java
.
util
.
Date
createdTime
;
public
java
.
util
.
Date
getCreatedTime
(){
return
this
.
createdTime
;
}
public
void
setCreatedTime
(
java
.
util
.
Date
createdTime
){
this
.
createdTime
=
createdTime
;
}
/** MODIFIER
*修改人
*/
private
java
.
lang
.
String
modifier
;
public
java
.
lang
.
String
getModifier
(){
return
this
.
modifier
;
}
public
void
setModifier
(
java
.
lang
.
String
modifier
){
this
.
modifier
=
modifier
;
}
/** MODIFIED_TIME
*修改时间
*/
private
java
.
util
.
Date
modifiedTime
;
public
java
.
util
.
Date
getModifiedTime
(){
return
this
.
modifiedTime
;
}
public
void
setModifiedTime
(
java
.
util
.
Date
modifiedTime
){
this
.
modifiedTime
=
modifiedTime
;
}
/** SYS_VERSION
*乐观锁,版本号
*/
private
java
.
lang
.
Integer
sysVersion
;
public
java
.
lang
.
Integer
getSysVersion
(){
return
this
.
sysVersion
;
}
public
void
setSysVersion
(
java
.
lang
.
Integer
sysVersion
){
this
.
sysVersion
=
sysVersion
;
}
}
\ No newline at end of file
src/main/java/cn/com/poc/ocr/entity/BizFileOcrCacheEntity.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ocr
.
entity
;
public
class
BizFileOcrCacheEntity
{
private
static
final
long
serialVersionUID
=
1L
;
/** id
*主键id
*/
private
java
.
lang
.
Long
id
;
public
java
.
lang
.
Long
getId
(){
return
this
.
id
;
}
public
void
setId
(
java
.
lang
.
Long
id
){
this
.
id
=
id
;
}
/** md5
*文件MD5
*/
private
java
.
lang
.
String
md5
;
public
java
.
lang
.
String
getMd5
(){
return
this
.
md5
;
}
public
void
setMd5
(
java
.
lang
.
String
md5
){
this
.
md5
=
md5
;
}
/**
* parse_status
* 解析状态 : create-已创建 queuing-排队中 parsing -解析中 complete-完成 fail-失败
*/
private
String
parseStatus
;
public
String
getParseStatus
()
{
return
parseStatus
;
}
public
void
setParseStatus
(
String
parseStatus
)
{
this
.
parseStatus
=
parseStatus
;
}
/** file_url
*源文件地址
*/
private
java
.
lang
.
String
fileUrl
;
public
java
.
lang
.
String
getFileUrl
(){
return
this
.
fileUrl
;
}
public
void
setFileUrl
(
java
.
lang
.
String
fileUrl
){
this
.
fileUrl
=
fileUrl
;
}
/** md_file_url
*OCR后MD文件地址
*/
private
java
.
lang
.
String
mdFileUrl
;
public
java
.
lang
.
String
getMdFileUrl
(){
return
this
.
mdFileUrl
;
}
public
void
setMdFileUrl
(
java
.
lang
.
String
mdFileUrl
){
this
.
mdFileUrl
=
mdFileUrl
;
}
/** json_file_url
*提取json后文件url
*/
private
java
.
lang
.
String
jsonFileUrl
;
public
java
.
lang
.
String
getJsonFileUrl
(){
return
this
.
jsonFileUrl
;
}
public
void
setJsonFileUrl
(
java
.
lang
.
String
jsonFileUrl
){
this
.
jsonFileUrl
=
jsonFileUrl
;
}
/** is_deleted
*是否删除 Y 是 N 否
*/
private
java
.
lang
.
String
isDeleted
;
public
java
.
lang
.
String
getIsDeleted
(){
return
this
.
isDeleted
;
}
public
void
setIsDeleted
(
java
.
lang
.
String
isDeleted
){
this
.
isDeleted
=
isDeleted
;
}
/** CREATOR
*创建人
*/
private
java
.
lang
.
String
creator
;
public
java
.
lang
.
String
getCreator
(){
return
this
.
creator
;
}
public
void
setCreator
(
java
.
lang
.
String
creator
){
this
.
creator
=
creator
;
}
/** CREATED_TIME
*创建时间
*/
private
java
.
util
.
Date
createdTime
;
public
java
.
util
.
Date
getCreatedTime
(){
return
this
.
createdTime
;
}
public
void
setCreatedTime
(
java
.
util
.
Date
createdTime
){
this
.
createdTime
=
createdTime
;
}
/** MODIFIER
*修改人
*/
private
java
.
lang
.
String
modifier
;
public
java
.
lang
.
String
getModifier
(){
return
this
.
modifier
;
}
public
void
setModifier
(
java
.
lang
.
String
modifier
){
this
.
modifier
=
modifier
;
}
/** MODIFIED_TIME
*修改时间
*/
private
java
.
util
.
Date
modifiedTime
;
public
java
.
util
.
Date
getModifiedTime
(){
return
this
.
modifiedTime
;
}
public
void
setModifiedTime
(
java
.
util
.
Date
modifiedTime
){
this
.
modifiedTime
=
modifiedTime
;
}
/** SYS_VERSION
*乐观锁,版本号
*/
private
java
.
lang
.
Integer
sysVersion
;
public
java
.
lang
.
Integer
getSysVersion
(){
return
this
.
sysVersion
;
}
public
void
setSysVersion
(
java
.
lang
.
Integer
sysVersion
){
this
.
sysVersion
=
sysVersion
;
}
}
\ No newline at end of file
src/main/java/cn/com/poc/ocr/model/BizFileOcrCacheModel.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ocr
.
model
;
import
java.io.Serializable
;
import
cn.com.yict.framemax.data.model.BaseModelClass
;
import
javax.persistence.Column
;
import
javax.persistence.Entity
;
import
javax.persistence.Table
;
import
javax.persistence.Id
;
import
org.hibernate.annotations.DynamicInsert
;
import
org.hibernate.annotations.DynamicUpdate
;
import
javax.persistence.Version
;
import
javax.persistence.GeneratedValue
;
import
javax.persistence.GenerationType
;
/**
* Model class for biz_file_ocr_cache
* 文件OCR结果缓存
*/
@Entity
@Table
(
name
=
"biz_file_ocr_cache"
)
@DynamicInsert
@DynamicUpdate
public
class
BizFileOcrCacheModel
extends
BaseModelClass
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* id
* 主键id
*/
private
java
.
lang
.
Long
id
;
@Column
(
name
=
"id"
,
length
=
19
)
@Id
@GeneratedValue
(
strategy
=
GenerationType
.
AUTO
)
public
java
.
lang
.
Long
getId
()
{
return
this
.
id
;
}
public
void
setId
(
java
.
lang
.
Long
id
)
{
this
.
id
=
id
;
super
.
addValidField
(
"id"
);
}
/**
* md5
* 文件MD5
*/
private
java
.
lang
.
String
md5
;
@Column
(
name
=
"md5"
,
length
=
200
)
public
java
.
lang
.
String
getMd5
()
{
return
this
.
md5
;
}
public
void
setMd5
(
java
.
lang
.
String
md5
)
{
this
.
md5
=
md5
;
super
.
addValidField
(
"md5"
);
}
/**
* parse_status
* 解析状态 : create-已创建 queuing-排队中 parsing -解析中 complete-完成 fail-失败
*/
private
String
parseStatus
;
@Column
(
name
=
"parse_status"
,
length
=
10
)
public
String
getParseStatus
()
{
return
parseStatus
;
}
public
void
setParseStatus
(
String
parseStatus
)
{
this
.
parseStatus
=
parseStatus
;
super
.
addValidField
(
"parseStatus"
);
}
/**
* file_url
* 源文件地址
*/
private
java
.
lang
.
String
fileUrl
;
@Column
(
name
=
"file_url"
,
length
=
200
)
public
java
.
lang
.
String
getFileUrl
()
{
return
this
.
fileUrl
;
}
public
void
setFileUrl
(
java
.
lang
.
String
fileUrl
)
{
this
.
fileUrl
=
fileUrl
;
super
.
addValidField
(
"fileUrl"
);
}
/**
* md_file_url
* OCR后MD文件地址
*/
private
java
.
lang
.
String
mdFileUrl
;
@Column
(
name
=
"md_file_url"
,
length
=
200
)
public
java
.
lang
.
String
getMdFileUrl
()
{
return
this
.
mdFileUrl
;
}
public
void
setMdFileUrl
(
java
.
lang
.
String
mdFileUrl
)
{
this
.
mdFileUrl
=
mdFileUrl
;
super
.
addValidField
(
"mdFileUrl"
);
}
/**
* json_file_url
* 提取json后文件url
*/
private
java
.
lang
.
String
jsonFileUrl
;
@Column
(
name
=
"json_file_url"
,
length
=
200
)
public
java
.
lang
.
String
getJsonFileUrl
()
{
return
this
.
jsonFileUrl
;
}
public
void
setJsonFileUrl
(
java
.
lang
.
String
jsonFileUrl
)
{
this
.
jsonFileUrl
=
jsonFileUrl
;
super
.
addValidField
(
"jsonFileUrl"
);
}
/**
* is_deleted
* 是否删除 Y 是 N 否
*/
private
java
.
lang
.
String
isDeleted
;
@Column
(
name
=
"is_deleted"
,
length
=
1
)
public
java
.
lang
.
String
getIsDeleted
()
{
return
this
.
isDeleted
;
}
public
void
setIsDeleted
(
java
.
lang
.
String
isDeleted
)
{
this
.
isDeleted
=
isDeleted
;
super
.
addValidField
(
"isDeleted"
);
}
/**
* CREATOR
* 创建人
*/
private
java
.
lang
.
String
creator
;
@Column
(
name
=
"CREATOR"
,
length
=
50
)
public
java
.
lang
.
String
getCreator
()
{
return
this
.
creator
;
}
public
void
setCreator
(
java
.
lang
.
String
creator
)
{
this
.
creator
=
creator
;
super
.
addValidField
(
"creator"
);
}
/**
* CREATED_TIME
* 创建时间
*/
private
java
.
util
.
Date
createdTime
;
@Column
(
name
=
"CREATED_TIME"
,
length
=
19
)
public
java
.
util
.
Date
getCreatedTime
()
{
return
this
.
createdTime
;
}
public
void
setCreatedTime
(
java
.
util
.
Date
createdTime
)
{
this
.
createdTime
=
createdTime
;
super
.
addValidField
(
"createdTime"
);
}
/**
* MODIFIER
* 修改人
*/
private
java
.
lang
.
String
modifier
;
@Column
(
name
=
"MODIFIER"
,
length
=
50
)
public
java
.
lang
.
String
getModifier
()
{
return
this
.
modifier
;
}
public
void
setModifier
(
java
.
lang
.
String
modifier
)
{
this
.
modifier
=
modifier
;
super
.
addValidField
(
"modifier"
);
}
/**
* MODIFIED_TIME
* 修改时间
*/
private
java
.
util
.
Date
modifiedTime
;
@Column
(
name
=
"MODIFIED_TIME"
,
length
=
19
)
public
java
.
util
.
Date
getModifiedTime
()
{
return
this
.
modifiedTime
;
}
public
void
setModifiedTime
(
java
.
util
.
Date
modifiedTime
)
{
this
.
modifiedTime
=
modifiedTime
;
super
.
addValidField
(
"modifiedTime"
);
}
/**
* SYS_VERSION
* 乐观锁,版本号
*/
private
java
.
lang
.
Integer
sysVersion
;
@Column
(
name
=
"SYS_VERSION"
,
length
=
10
)
@Version
public
java
.
lang
.
Integer
getSysVersion
()
{
return
this
.
sysVersion
;
}
public
void
setSysVersion
(
java
.
lang
.
Integer
sysVersion
)
{
this
.
sysVersion
=
sysVersion
;
super
.
addValidField
(
"sysVersion"
);
}
}
\ No newline at end of file
src/main/java/cn/com/poc/ocr/repository/BizFileOcrCacheRepository.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ocr
.
repository
;
import
cn.com.yict.framemax.data.repository.Repository
;
import
cn.com.poc.ocr.model.BizFileOcrCacheModel
;
public
interface
BizFileOcrCacheRepository
extends
Repository
<
BizFileOcrCacheModel
,
java
.
lang
.
Long
>
{
}
\ No newline at end of file
src/main/java/cn/com/poc/ocr/rest/BizFileOcrCacheRest.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ocr
.
rest
;
import
cn.com.yict.framemax.core.rest.BaseRest
;
import
cn.com.poc.ocr.dto.BizFileOcrCacheDto
;
import
cn.com.yict.framemax.data.model.PagingInfo
;
import
java.util.Collection
;
import
java.util.List
;
import
cn.com.yict.framemax.web.permission.Access
;
import
cn.com.yict.framemax.web.permission.Permission
;
import
org.springframework.web.bind.annotation.RequestBody
;
public
interface
BizFileOcrCacheRest
extends
BaseRest
{
BizFileOcrCacheDto
getById
(
java
.
lang
.
Long
id
)
throws
Exception
;
List
<
BizFileOcrCacheDto
>
getList
(
BizFileOcrCacheDto
example
,
PagingInfo
pagingInfo
)
throws
Exception
;
BizFileOcrCacheDto
save
(
BizFileOcrCacheDto
dto
)
throws
Exception
;
BizFileOcrCacheDto
update
(
BizFileOcrCacheDto
dto
)
throws
Exception
;
void
deletedById
(
java
.
lang
.
Long
id
)
throws
Exception
;
}
\ No newline at end of file
src/main/java/cn/com/poc/ocr/rest/impl/BizFileOcrCacheRestImpl.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ocr
.
rest
.
impl
;
import
java.util.List
;
import
javax.annotation.Resource
;
import
org.springframework.stereotype.Component
;
import
cn.com.poc.ocr.rest.BizFileOcrCacheRest
;
import
cn.com.poc.ocr.service.BizFileOcrCacheService
;
import
cn.com.poc.ocr.dto.BizFileOcrCacheDto
;
import
cn.com.poc.ocr.entity.BizFileOcrCacheEntity
;
import
cn.com.yict.framemax.data.model.PagingInfo
;
import
cn.com.poc.ocr.convert.BizFileOcrCacheConvert
;
import
java.util.stream.Collectors
;
import
org.springframework.util.Assert
;
@Component
public
class
BizFileOcrCacheRestImpl
implements
BizFileOcrCacheRest
{
@Resource
private
BizFileOcrCacheService
service
;
public
BizFileOcrCacheDto
getById
(
java
.
lang
.
Long
id
)
throws
Exception
{
Assert
.
notNull
(
id
);
return
BizFileOcrCacheConvert
.
entityToDto
(
service
.
get
(
id
));
}
public
List
<
BizFileOcrCacheDto
>
getList
(
BizFileOcrCacheDto
dto
,
PagingInfo
pagingInfo
)
throws
Exception
{
return
service
.
findByExample
(
BizFileOcrCacheConvert
.
dtoToEntity
(
dto
),
pagingInfo
)
.
stream
()
.
map
(
BizFileOcrCacheConvert:
:
entityToDto
)
.
collect
(
Collectors
.
toList
());
}
public
BizFileOcrCacheDto
save
(
BizFileOcrCacheDto
dto
)
throws
Exception
{
Assert
.
notNull
(
dto
);
BizFileOcrCacheEntity
entity
=
BizFileOcrCacheConvert
.
dtoToEntity
(
dto
);
return
BizFileOcrCacheConvert
.
entityToDto
(
service
.
save
(
entity
));
}
public
BizFileOcrCacheDto
update
(
BizFileOcrCacheDto
dto
)
throws
Exception
{
Assert
.
notNull
(
dto
);
BizFileOcrCacheEntity
entity
=
BizFileOcrCacheConvert
.
dtoToEntity
(
dto
);
return
BizFileOcrCacheConvert
.
entityToDto
(
service
.
update
(
entity
));
}
public
void
deletedById
(
java
.
lang
.
Long
id
)
throws
Exception
{
Assert
.
notNull
(
id
);
service
.
deletedById
(
id
);
}
}
\ No newline at end of file
src/main/java/cn/com/poc/ocr/scheduler/OCRScheduler.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ocr
.
scheduler
;
import
cn.com.poc.common.constant.CommonConstant
;
import
cn.com.poc.common.utils.StringUtils
;
import
cn.com.poc.message.entity.OCRMessage
;
import
cn.com.poc.message.service.OCRProducerService
;
import
cn.com.poc.ocr.entity.BizFileOcrCacheEntity
;
import
cn.com.poc.ocr.service.BizFileOcrCacheService
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
java.util.List
;
/**
* OCR服务
*
* @author alex.yao
* @date 2025/10/30
*/
@Component
public
class
OCRScheduler
{
@Resource
private
BizFileOcrCacheService
bizFileOcrCacheService
;
@Resource
private
OCRProducerService
ocrProducerService
;
@Scheduled
(
fixedDelay
=
10000
)
public
void
taskStatusUpdate
()
throws
Exception
{
BizFileOcrCacheEntity
bizFileOcrCacheEntity
=
new
BizFileOcrCacheEntity
();
bizFileOcrCacheEntity
.
setParseStatus
(
"create"
);
bizFileOcrCacheEntity
.
setIsDeleted
(
CommonConstant
.
IsDeleted
.
N
);
List
<
BizFileOcrCacheEntity
>
fileOcrCacheEntities
=
bizFileOcrCacheService
.
findByExample
(
bizFileOcrCacheEntity
,
null
);
if
(
CollectionUtils
.
isNotEmpty
(
fileOcrCacheEntities
))
{
for
(
BizFileOcrCacheEntity
fileOcrCacheEntity
:
fileOcrCacheEntities
)
{
if
(
fileOcrCacheEntity
.
getParseStatus
().
equals
(
"create"
))
{
if
(
StringUtils
.
isBlank
(
fileOcrCacheEntity
.
getMdFileUrl
()))
{
fileOcrCacheEntity
.
setParseStatus
(
"queuing"
);
bizFileOcrCacheService
.
update
(
fileOcrCacheEntity
);
OCRMessage
message
=
new
OCRMessage
();
message
.
setId
(
fileOcrCacheEntity
.
getId
());
message
.
setFileURL
(
fileOcrCacheEntity
.
getFileUrl
());
message
.
setMd5
(
fileOcrCacheEntity
.
getMd5
());
ocrProducerService
.
OCR
(
message
);
}
else
{
fileOcrCacheEntity
.
setParseStatus
(
"complete"
);
bizFileOcrCacheService
.
update
(
fileOcrCacheEntity
);
}
}
}
}
}
}
src/main/java/cn/com/poc/ocr/service/BizFileOcrCacheService.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ocr
.
service
;
import
cn.com.yict.framemax.core.service.BaseService
;
import
cn.com.poc.ocr.entity.BizFileOcrCacheEntity
;
import
cn.com.yict.framemax.data.model.PagingInfo
;
import
java.util.Collection
;
import
java.util.List
;
public
interface
BizFileOcrCacheService
extends
BaseService
{
BizFileOcrCacheEntity
get
(
java
.
lang
.
Long
id
)
throws
Exception
;
List
<
BizFileOcrCacheEntity
>
findByExample
(
BizFileOcrCacheEntity
example
,
PagingInfo
pagingInfo
)
throws
Exception
;
BizFileOcrCacheEntity
save
(
BizFileOcrCacheEntity
entity
)
throws
Exception
;
BizFileOcrCacheEntity
update
(
BizFileOcrCacheEntity
entity
)
throws
Exception
;
void
deletedById
(
java
.
lang
.
Long
id
)
throws
Exception
;
}
\ No newline at end of file
src/main/java/cn/com/poc/ocr/service/impl/BizFileOcrCacheServiceImpl.java
0 → 100644
View file @
0681cfb0
package
cn
.
com
.
poc
.
ocr
.
service
.
impl
;
import
cn.com.yict.framemax.core.service.impl.BaseServiceImpl
;
import
cn.com.poc.ocr.service.BizFileOcrCacheService
;
import
cn.com.poc.ocr.model.BizFileOcrCacheModel
;
import
cn.com.poc.ocr.entity.BizFileOcrCacheEntity
;
import
cn.com.poc.ocr.convert.BizFileOcrCacheConvert
;
import
cn.com.poc.ocr.repository.BizFileOcrCacheRepository
;
import
cn.com.yict.framemax.data.model.PagingInfo
;
import
org.springframework.stereotype.Service
;
import
org.apache.commons.collections4.CollectionUtils
;
import
java.util.ArrayList
;
import
java.util.stream.Collectors
;
import
java.util.List
;
import
javax.annotation.Resource
;
import
org.springframework.util.Assert
;
@Service
public
class
BizFileOcrCacheServiceImpl
extends
BaseServiceImpl
implements
BizFileOcrCacheService
{
@Resource
private
BizFileOcrCacheRepository
repository
;
public
BizFileOcrCacheEntity
get
(
java
.
lang
.
Long
id
)
throws
Exception
{
Assert
.
notNull
(
id
);
BizFileOcrCacheModel
model
=
this
.
repository
.
get
(
id
);
if
(
model
==
null
)
{
return
null
;
}
if
(
"Y"
.
equals
(
model
.
getIsDeleted
()))
{
return
null
;
}
return
BizFileOcrCacheConvert
.
modelToEntity
(
model
);
}
public
List
<
BizFileOcrCacheEntity
>
findByExample
(
BizFileOcrCacheEntity
example
,
PagingInfo
pagingInfo
)
throws
Exception
{
List
<
BizFileOcrCacheEntity
>
result
=
new
ArrayList
<
BizFileOcrCacheEntity
>();
BizFileOcrCacheModel
model
=
new
BizFileOcrCacheModel
();
if
(
example
!=
null
)
{
model
=
BizFileOcrCacheConvert
.
entityToModel
(
example
);
}
model
.
setIsDeleted
(
"N"
);
List
<
BizFileOcrCacheModel
>
models
=
this
.
repository
.
findByExample
(
model
,
pagingInfo
);
if
(
CollectionUtils
.
isNotEmpty
(
models
))
{
result
=
models
.
stream
().
map
(
BizFileOcrCacheConvert:
:
modelToEntity
).
collect
(
Collectors
.
toList
());
}
return
result
;
}
public
BizFileOcrCacheEntity
save
(
BizFileOcrCacheEntity
entity
)
throws
Exception
{
Assert
.
notNull
(
entity
);
entity
.
setId
(
null
);
entity
.
setIsDeleted
(
"N"
);
BizFileOcrCacheModel
model
=
BizFileOcrCacheConvert
.
entityToModel
(
entity
);
BizFileOcrCacheModel
saveModel
=
this
.
repository
.
save
(
model
);
return
BizFileOcrCacheConvert
.
modelToEntity
(
saveModel
);
}
public
BizFileOcrCacheEntity
update
(
BizFileOcrCacheEntity
entity
)
throws
Exception
{
Assert
.
notNull
(
entity
);
Assert
.
notNull
(
entity
.
getId
(),
"update pk can not be null"
);
BizFileOcrCacheModel
model
=
this
.
repository
.
get
(
entity
.
getId
());
if
(
entity
.
getMd5
()
!=
null
)
{
model
.
setMd5
(
entity
.
getMd5
());
}
if
(
entity
.
getFileUrl
()
!=
null
)
{
model
.
setFileUrl
(
entity
.
getFileUrl
());
}
if
(
entity
.
getParseStatus
()
!=
null
)
{
model
.
setParseStatus
(
entity
.
getParseStatus
());
}
if
(
entity
.
getMdFileUrl
()
!=
null
)
{
model
.
setMdFileUrl
(
entity
.
getMdFileUrl
());
}
if
(
entity
.
getJsonFileUrl
()
!=
null
)
{
model
.
setJsonFileUrl
(
entity
.
getJsonFileUrl
());
}
if
(
entity
.
getIsDeleted
()
!=
null
)
{
model
.
setIsDeleted
(
entity
.
getIsDeleted
());
}
if
(
entity
.
getCreator
()
!=
null
)
{
model
.
setCreator
(
entity
.
getCreator
());
}
if
(
entity
.
getCreatedTime
()
!=
null
)
{
model
.
setCreatedTime
(
entity
.
getCreatedTime
());
}
if
(
entity
.
getModifier
()
!=
null
)
{
model
.
setModifier
(
entity
.
getModifier
());
}
if
(
entity
.
getModifiedTime
()
!=
null
)
{
model
.
setModifiedTime
(
entity
.
getModifiedTime
());
}
if
(
entity
.
getSysVersion
()
!=
null
)
{
model
.
setSysVersion
(
entity
.
getSysVersion
());
}
BizFileOcrCacheModel
saveModel
=
this
.
repository
.
save
(
model
);
return
BizFileOcrCacheConvert
.
modelToEntity
(
saveModel
);
}
public
void
deletedById
(
java
.
lang
.
Long
id
)
throws
Exception
{
Assert
.
notNull
(
id
);
BizFileOcrCacheModel
model
=
this
.
repository
.
get
(
id
);
if
(
model
!=
null
)
{
if
(
"N"
.
equals
(
model
.
getIsDeleted
()))
{
model
.
setIsDeleted
(
"Y"
);
this
.
repository
.
save
(
model
);
}
}
}
}
\ No newline at end of file
src/test/java/cn/com/poc/common/UtilTest.java
0 → 100644
View file @
0681cfb0
This diff is collapsed.
Click to expand it.
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