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
d282f61c
Commit
d282f61c
authored
Oct 31, 2025
by
R10
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'release_gdghg' of
ssh://gitlab.gsstcloud.com:10022/poc/poc-api
into release_gdghg
parents
5d895987
f9e3fdbc
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
292 additions
and
33 deletions
+292
-33
AiDataAuditScheduler.java
...com/poc/ai_data_audit/scheduler/AiDataAuditScheduler.java
+48
-0
BizAiDataAuditTaskServiceImpl.java
...ata_audit/service/impl/BizAiDataAuditTaskServiceImpl.java
+21
-1
AirportTaskCreateMessage.java
...a/cn/com/poc/message/entity/AirportTaskCreateMessage.java
+18
-0
AirportConsumerService.java
...va/cn/com/poc/message/service/AirportConsumerService.java
+8
-0
AirportProducerService.java
...va/cn/com/poc/message/service/AirportProducerService.java
+9
-0
AirportConsumerServiceImpl.java
.../poc/message/service/impl/AirportConsumerServiceImpl.java
+157
-25
AirportProducerServiceImpl.java
.../poc/message/service/impl/AirportProducerServiceImpl.java
+7
-0
OCRConsumerServiceImpl.java
.../com/poc/message/service/impl/OCRConsumerServiceImpl.java
+7
-4
AirportTopic.java
src/main/java/cn/com/poc/message/topic/AirportTopic.java
+2
-0
BizFileOcrCacheService.java
...n/java/cn/com/poc/ocr/service/BizFileOcrCacheService.java
+6
-3
BizFileOcrCacheServiceImpl.java
.../com/poc/ocr/service/impl/BizFileOcrCacheServiceImpl.java
+9
-0
No files found.
src/main/java/cn/com/poc/ai_data_audit/scheduler/AiDataAuditScheduler.java
0 → 100644
View file @
d282f61c
package
cn
.
com
.
poc
.
ai_data_audit
.
scheduler
;
import
cn.com.poc.ai_data_audit.constants.DataAuditConstants
;
import
cn.com.poc.ai_data_audit.entity.BizAiDataAuditTaskEntity
;
import
cn.com.poc.ai_data_audit.service.BizAiDataAuditTaskService
;
import
cn.com.poc.common.service.RedisService
;
import
cn.com.poc.message.entity.AirportTaskCreateMessage
;
import
cn.com.poc.message.service.AirportProducerService
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.Resource
;
import
java.util.List
;
/**
* @author alex.yao
* @date 2025/10/30
*/
@Component
public
class
AiDataAuditScheduler
{
@Resource
private
RedisService
redisService
;
@Resource
private
BizAiDataAuditTaskService
bizAiDataAuditTaskService
;
@Resource
private
AirportProducerService
airportProducerService
;
@Scheduled
(
fixedDelay
=
1000
*
30
)
public
void
aiDataAudit
()
throws
Exception
{
BizAiDataAuditTaskEntity
bizAiDataAuditTaskEntity
=
new
BizAiDataAuditTaskEntity
();
bizAiDataAuditTaskEntity
.
setStatus
(
DataAuditConstants
.
status
.
status_process
);
bizAiDataAuditTaskEntity
.
setIsDeleted
(
"N"
);
List
<
BizAiDataAuditTaskEntity
>
taskEntities
=
bizAiDataAuditTaskService
.
findByExample
(
bizAiDataAuditTaskEntity
,
null
);
for
(
BizAiDataAuditTaskEntity
taskEntity
:
taskEntities
)
{
Long
taskId
=
taskEntity
.
getDataAuditTaskId
();
if
(
redisService
.
hasKey
(
"AI_DATA_AUDIT_TASK:"
+
taskId
))
{
Object
value
=
redisService
.
get
(
"AI_DATA_AUDIT_TASK:"
+
taskId
);
if
(
"Get"
.
equals
(
value
.
toString
()))
{
AirportTaskCreateMessage
airportTaskCreateMessage
=
new
AirportTaskCreateMessage
();
airportTaskCreateMessage
.
setTaskId
(
taskId
);
airportProducerService
.
createTask
(
airportTaskCreateMessage
);
}
}
}
}
}
src/main/java/cn/com/poc/ai_data_audit/service/impl/BizAiDataAuditTaskServiceImpl.java
View file @
d282f61c
...
@@ -8,7 +8,10 @@ import cn.com.poc.ai_data_audit.entity.BizAiDataAuditFileEntity;
...
@@ -8,7 +8,10 @@ import cn.com.poc.ai_data_audit.entity.BizAiDataAuditFileEntity;
import
cn.com.poc.ai_data_audit.service.BizAiDataAuditFileService
;
import
cn.com.poc.ai_data_audit.service.BizAiDataAuditFileService
;
import
cn.com.poc.common.model.BizFileUploadRecordModel
;
import
cn.com.poc.common.model.BizFileUploadRecordModel
;
import
cn.com.poc.common.service.BizFileUploadRecordService
;
import
cn.com.poc.common.service.BizFileUploadRecordService
;
import
cn.com.poc.common.service.RedisService
;
import
cn.com.poc.common.utils.BlContext
;
import
cn.com.poc.common.utils.BlContext
;
import
cn.com.poc.message.entity.AirportTaskCreateMessage
;
import
cn.com.poc.message.service.AirportProducerService
;
import
cn.com.yict.framemax.core.service.impl.BaseServiceImpl
;
import
cn.com.yict.framemax.core.service.impl.BaseServiceImpl
;
import
cn.com.poc.ai_data_audit.service.BizAiDataAuditTaskService
;
import
cn.com.poc.ai_data_audit.service.BizAiDataAuditTaskService
;
import
cn.com.poc.ai_data_audit.model.BizAiDataAuditTaskModel
;
import
cn.com.poc.ai_data_audit.model.BizAiDataAuditTaskModel
;
...
@@ -221,7 +224,7 @@ public class BizAiDataAuditTaskServiceImpl extends BaseServiceImpl
...
@@ -221,7 +224,7 @@ public class BizAiDataAuditTaskServiceImpl extends BaseServiceImpl
}
}
List
<
String
>
uploadFileUrlList
=
bizAiDataAuditFileEntityList
.
stream
().
map
(
item
->
item
.
getUploadFileUrl
()).
collect
(
Collectors
.
toList
());
List
<
String
>
uploadFileUrlList
=
bizAiDataAuditFileEntityList
.
stream
().
map
(
item
->
item
.
getUploadFileUrl
()).
collect
(
Collectors
.
toList
());
if
(
CollectionUtils
.
isNotEmpty
(
uploadFileUrlList
))
{
if
(
CollectionUtils
.
isNotEmpty
(
uploadFileUrlList
))
{
List
<
BizFileUploadRecordModel
>
byFileLink
=
bizFileUploadRecordService
.
findByFileLink
(
uploadFileUrlList
);
List
<
BizFileUploadRecordModel
>
byFileLink
=
bizFileUploadRecordService
.
findByFileLink
(
uploadFileUrlList
);
Map
<
String
,
List
<
BizFileUploadRecordModel
>>
bizFileUploadRecordModelMap
=
byFileLink
.
stream
().
collect
(
Collectors
.
groupingBy
(
BizFileUploadRecordModel:
:
getFileUrl
));
Map
<
String
,
List
<
BizFileUploadRecordModel
>>
bizFileUploadRecordModelMap
=
byFileLink
.
stream
().
collect
(
Collectors
.
groupingBy
(
BizFileUploadRecordModel:
:
getFileUrl
));
...
@@ -233,5 +236,22 @@ public class BizAiDataAuditTaskServiceImpl extends BaseServiceImpl
...
@@ -233,5 +236,22 @@ public class BizAiDataAuditTaskServiceImpl extends BaseServiceImpl
}
}
}
}
bizAiDataAuditFileService
.
batchSavedFile
(
bizAiDataAuditFileEntityList
);
bizAiDataAuditFileService
.
batchSavedFile
(
bizAiDataAuditFileEntityList
);
//任务推送
pushTask
(
savedModel
.
getDataAuditTaskId
());
}
@Resource
private
RedisService
redisService
;
@Resource
private
AirportProducerService
airportProducerService
;
private
void
pushTask
(
Long
taskId
)
{
redisService
.
set
(
"AI_DATA_AUDIT_TASK:"
+
taskId
,
"Push"
);
AirportTaskCreateMessage
airportTaskCreateMessage
=
new
AirportTaskCreateMessage
();
airportTaskCreateMessage
.
setTaskId
(
taskId
);
airportProducerService
.
createTask
(
airportTaskCreateMessage
);
}
}
}
}
\ No newline at end of file
src/main/java/cn/com/poc/message/entity/AirportTaskCreateMessage.java
0 → 100644
View file @
d282f61c
package
cn
.
com
.
poc
.
message
.
entity
;
/**
* @author alex.yao
* @date 2025/10/30
*/
public
class
AirportTaskCreateMessage
{
private
Long
taskId
;
public
Long
getTaskId
()
{
return
taskId
;
}
public
void
setTaskId
(
Long
taskId
)
{
this
.
taskId
=
taskId
;
}
}
src/main/java/cn/com/poc/message/service/AirportConsumerService.java
View file @
d282f61c
package
cn
.
com
.
poc
.
message
.
service
;
package
cn
.
com
.
poc
.
message
.
service
;
import
cn.com.poc.message.entity.AirportTaskCreateMessage
;
import
cn.com.poc.message.entity.AirportPDFPaperMessage
;
import
cn.com.poc.message.entity.AirportPDFPaperMessage
;
import
cn.com.yict.framemax.core.service.BaseService
;
import
cn.com.yict.framemax.core.service.BaseService
;
...
@@ -17,4 +18,11 @@ public interface AirportConsumerService extends BaseService {
...
@@ -17,4 +18,11 @@ public interface AirportConsumerService extends BaseService {
*/
*/
void
pdfPaper
(
AirportPDFPaperMessage
message
)
throws
Exception
;
void
pdfPaper
(
AirportPDFPaperMessage
message
)
throws
Exception
;
/**
* 创建任务
*
* @param message
* @throws Exception
*/
void
createTask
(
AirportTaskCreateMessage
message
)
throws
Exception
;
}
}
src/main/java/cn/com/poc/message/service/AirportProducerService.java
View file @
d282f61c
package
cn
.
com
.
poc
.
message
.
service
;
package
cn
.
com
.
poc
.
message
.
service
;
import
cn.com.poc.message.entity.AirportTaskCreateMessage
;
import
cn.com.poc.message.entity.AirportPDFPaperMessage
;
import
cn.com.poc.message.entity.AirportPDFPaperMessage
;
import
cn.com.yict.framemax.core.service.BaseService
;
import
cn.com.yict.framemax.core.service.BaseService
;
...
@@ -17,4 +18,12 @@ public interface AirportProducerService extends BaseService {
...
@@ -17,4 +18,12 @@ public interface AirportProducerService extends BaseService {
*/
*/
AirportPDFPaperMessage
pdfPaper
(
AirportPDFPaperMessage
message
);
AirportPDFPaperMessage
pdfPaper
(
AirportPDFPaperMessage
message
);
/**
* 创建任务
*
* @param message
* @return
*/
AirportTaskCreateMessage
createTask
(
AirportTaskCreateMessage
message
);
}
}
src/main/java/cn/com/poc/message/service/impl/AirportConsumerServiceImpl.java
View file @
d282f61c
...
@@ -3,7 +3,6 @@ package cn.com.poc.message.service.impl;
...
@@ -3,7 +3,6 @@ package cn.com.poc.message.service.impl;
import
cn.com.gsst.dify_client.DifyChatClient
;
import
cn.com.gsst.dify_client.DifyChatClient
;
import
cn.com.gsst.dify_client.DifyClientFactory
;
import
cn.com.gsst.dify_client.DifyClientFactory
;
import
cn.com.gsst.dify_client.enums.ResponseMode
;
import
cn.com.gsst.dify_client.enums.ResponseMode
;
import
cn.com.gsst.dify_client.exception.DifyApiException
;
import
cn.com.gsst.dify_client.model.chat.ChatMessage
;
import
cn.com.gsst.dify_client.model.chat.ChatMessage
;
import
cn.com.gsst.dify_client.model.chat.ChatMessageResponse
;
import
cn.com.gsst.dify_client.model.chat.ChatMessageResponse
;
import
cn.com.poc.ai_data_audit.constants.DataAuditEnum
;
import
cn.com.poc.ai_data_audit.constants.DataAuditEnum
;
...
@@ -15,22 +14,28 @@ import cn.com.poc.ai_data_audit.query.AiDataAuditRuleQueryItem;
...
@@ -15,22 +14,28 @@ 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.BizAiDataAuditFileService
;
import
cn.com.poc.ai_data_audit.service.BizAiDataAuditRuleService
;
import
cn.com.poc.ai_data_audit.service.BizAiDataAuditRuleService
;
import
cn.com.poc.ai_data_audit.service.BizAiDataAuditTaskService
;
import
cn.com.poc.ai_data_audit.service.BizAiDataAuditTaskService
;
import
cn.com.poc.common.constant.CommonConstant
;
import
cn.com.poc.common.service.RedisService
;
import
cn.com.poc.common.utils.DocumentLoad
;
import
cn.com.poc.common.utils.DocumentLoad
;
import
cn.com.poc.common.utils.StringUtils
;
import
cn.com.poc.common.utils.StringUtils
;
import
cn.com.poc.message.entity.AirportTaskCreateMessage
;
import
cn.com.poc.message.entity.AirportPDFPaperMessage
;
import
cn.com.poc.message.entity.AirportPDFPaperMessage
;
import
cn.com.poc.message.entity.OCRMessage
;
import
cn.com.poc.message.service.AirportConsumerService
;
import
cn.com.poc.message.service.AirportConsumerService
;
import
cn.com.poc.message.service.AirportProducerService
;
import
cn.com.poc.message.service.OCRProducerService
;
import
cn.com.poc.message.topic.AirportTopic
;
import
cn.com.poc.message.topic.AirportTopic
;
import
cn.com.poc.ocr.entity.BizFileOcrCacheEntity
;
import
cn.com.poc.ocr.entity.BizFileOcrCacheEntity
;
import
cn.com.poc.ocr.service.BizFileOcrCacheService
;
import
cn.com.poc.ocr.service.BizFileOcrCacheService
;
import
cn.com.yict.framemax.core.exception.BusinessException
;
import
cn.com.yict.framemax.core.exception.BusinessException
;
import
cn.com.yict.framemax.tumbleweed.client.annotation.Consumer
;
import
cn.com.yict.framemax.tumbleweed.client.annotation.Consumer
;
import
com.alibaba.fastjson.JSONObject
;
import
com.google.common.util.concurrent.ThreadFactoryBuilder
;
import
com.google.common.util.concurrent.ThreadFactoryBuilder
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections
4
.CollectionUtils
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.io.File
;
import
java.io.File
;
import
java.io.IOException
;
import
java.util.LinkedHashMap
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -51,9 +56,9 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
...
@@ -51,9 +56,9 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
private
ThreadPoolExecutor
executor
=
new
ThreadPoolExecutor
(
10
,
20
,
10L
,
private
ThreadPoolExecutor
executor
=
new
ThreadPoolExecutor
(
10
,
20
,
10L
,
TimeUnit
.
SECONDS
,
TimeUnit
.
SECONDS
,
new
java
.
util
.
concurrent
.
ArrayBlockingQueue
<>(
5
),
new
java
.
util
.
concurrent
.
ArrayBlockingQueue
<>(
20
),
new
ThreadFactoryBuilder
().
setNameFormat
(
"pdf-paper-%d"
).
build
(),
new
ThreadFactoryBuilder
().
setNameFormat
(
"pdf-paper-%d"
).
build
(),
new
ThreadPoolExecutor
.
Discard
Oldest
Policy
());
new
ThreadPoolExecutor
.
DiscardPolicy
());
@Resource
@Resource
private
BizFileOcrCacheService
bizFileOcrCacheService
;
private
BizFileOcrCacheService
bizFileOcrCacheService
;
...
@@ -67,6 +72,79 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
...
@@ -67,6 +72,79 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
@Resource
@Resource
private
BizAiDataAuditTaskService
bizAiDataAuditTaskService
;
private
BizAiDataAuditTaskService
bizAiDataAuditTaskService
;
@Resource
private
OCRProducerService
ocrProducerService
;
@Resource
private
RedisService
redisService
;
@Resource
private
AirportProducerService
airportProducerService
;
@Override
@Consumer
(
topic
=
AirportTopic
.
AIRPORT_CREATE_TOPIC
)
public
void
createTask
(
AirportTaskCreateMessage
message
)
throws
Exception
{
redisService
.
set
(
"AI_DATA_AUDIT_TASK:"
+
message
.
getTaskId
(),
"Get"
);
BizAiDataAuditFileEntity
bizAiDataAuditFileEntity
=
new
BizAiDataAuditFileEntity
();
bizAiDataAuditFileEntity
.
setTaskId
(
message
.
getTaskId
());
bizAiDataAuditFileEntity
.
setIsDeleted
(
CommonConstant
.
IsDeleted
.
N
);
List
<
BizAiDataAuditFileEntity
>
aiDataAuditFileEntities
=
bizAiDataAuditFileService
.
findByExample
(
bizAiDataAuditFileEntity
,
null
);
boolean
isAllComplete
=
true
;
for
(
BizAiDataAuditFileEntity
aiDataAuditFileEntity
:
aiDataAuditFileEntities
)
{
String
md5
=
aiDataAuditFileEntity
.
getMd5
();
BizFileOcrCacheEntity
bizFileOcrCacheEntity
=
new
BizFileOcrCacheEntity
();
bizFileOcrCacheEntity
.
setMd5
(
md5
);
bizFileOcrCacheEntity
.
setIsDeleted
(
CommonConstant
.
IsDeleted
.
N
);
List
<
BizFileOcrCacheEntity
>
bizFileOcrCacheEntities
=
bizFileOcrCacheService
.
findByExample
(
bizFileOcrCacheEntity
,
null
);
if
(
CollectionUtils
.
isEmpty
(
bizFileOcrCacheEntities
))
{
BizFileOcrCacheEntity
saveFileOcrCacheEntity
=
new
BizFileOcrCacheEntity
();
saveFileOcrCacheEntity
.
setMd5
(
md5
);
saveFileOcrCacheEntity
.
setParseStatus
(
"create"
);
saveFileOcrCacheEntity
.
setFileUrl
(
aiDataAuditFileEntity
.
getUploadFileUrl
());
BizFileOcrCacheEntity
save
=
bizFileOcrCacheService
.
save
(
saveFileOcrCacheEntity
);
//发送OCR 任务
OCRMessage
ocrMessage
=
new
OCRMessage
();
ocrMessage
.
setId
(
save
.
getId
());
ocrMessage
.
setMd5
(
md5
);
ocrMessage
.
setFileURL
(
aiDataAuditFileEntity
.
getUploadFileUrl
());
ocrProducerService
.
OCR
(
ocrMessage
);
continue
;
}
BizFileOcrCacheEntity
fileOcrCacheEntity
=
bizFileOcrCacheEntities
.
get
(
0
);
if
(!
fileOcrCacheEntity
.
getParseStatus
().
equals
(
"complete"
))
{
isAllComplete
=
false
;
}
if
(
fileOcrCacheEntity
.
getParseStatus
().
equals
(
"fail"
))
{
//发送OCR 任务
OCRMessage
ocrMessage
=
new
OCRMessage
();
ocrMessage
.
setId
(
fileOcrCacheEntity
.
getId
());
ocrMessage
.
setMd5
(
md5
);
ocrMessage
.
setFileURL
(
aiDataAuditFileEntity
.
getUploadFileUrl
());
ocrProducerService
.
OCR
(
ocrMessage
);
isAllComplete
=
false
;
}
}
if
(
isAllComplete
)
{
//OCR 已完成
redisService
.
set
(
"AI_DATA_AUDIT_TASK:"
+
message
.
getTaskId
(),
"Finish"
);
//执行规则判断任务
AirportPDFPaperMessage
pdfPaperMessage
=
new
AirportPDFPaperMessage
();
pdfPaperMessage
.
setTaskId
(
message
.
getTaskId
());
airportProducerService
.
pdfPaper
(
pdfPaperMessage
);
}
}
@Override
@Override
@Consumer
(
topic
=
AirportTopic
.
AIRPORT_PDF_PAPER_TOPIC
)
@Consumer
(
topic
=
AirportTopic
.
AIRPORT_PDF_PAPER_TOPIC
)
public
void
pdfPaper
(
AirportPDFPaperMessage
message
)
throws
Exception
{
public
void
pdfPaper
(
AirportPDFPaperMessage
message
)
throws
Exception
{
...
@@ -96,7 +174,6 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
...
@@ -96,7 +174,6 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
//获取所有的规则
//获取所有的规则
AiDataAuditRuleQueryCondition
aiDataAuditRuleQueryCondition
=
new
AiDataAuditRuleQueryCondition
();
AiDataAuditRuleQueryCondition
aiDataAuditRuleQueryCondition
=
new
AiDataAuditRuleQueryCondition
();
// aiDataAuditRuleQueryCondition.setIds(ruleIdList.toArray(new Long[ruleIdList.size()]));
List
<
AiDataAuditRuleQueryItem
>
aiDataAuditRuleQueryItems
=
bizAiDataAuditRuleService
.
aiDataAuditRuleQueryItemList
(
aiDataAuditRuleQueryCondition
,
null
);
List
<
AiDataAuditRuleQueryItem
>
aiDataAuditRuleQueryItems
=
bizAiDataAuditRuleService
.
aiDataAuditRuleQueryItemList
(
aiDataAuditRuleQueryCondition
,
null
);
...
@@ -115,7 +192,7 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
...
@@ -115,7 +192,7 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
countDownLatch
.
countDown
();
countDownLatch
.
countDown
();
}
}
}
}
countDownLatch
.
await
();
countDownLatch
.
await
(
10
*
60
,
TimeUnit
.
SECONDS
);
//更新结果和任务状态
//更新结果和任务状态
bizAiDataAuditTaskEntity
.
setAuditResult
(
results
.
toString
());
bizAiDataAuditTaskEntity
.
setAuditResult
(
results
.
toString
());
...
@@ -128,6 +205,58 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
...
@@ -128,6 +205,58 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
// 字段对字段
// 字段对字段
private
void
c2c
(
List
<
BizAiDataAuditFileEntity
>
fileList
,
AiDataAuditRuleQueryItem
aiDataAuditRuleQueryItem
,
List
<
AuditResultDto
>
results
,
CountDownLatch
countDownLatch
)
{
private
void
c2c
(
List
<
BizAiDataAuditFileEntity
>
fileList
,
AiDataAuditRuleQueryItem
aiDataAuditRuleQueryItem
,
List
<
AuditResultDto
>
results
,
CountDownLatch
countDownLatch
)
{
class
C2CResult
{
private
boolean
need_judge
;
private
boolean
comply
;
private
String
risk_analysis
;
private
String
risk_description
;
private
String
modification_suggestions
;
public
boolean
getNeed_judge
()
{
return
need_judge
;
}
public
void
setNeed_judge
(
boolean
need_judge
)
{
this
.
need_judge
=
need_judge
;
}
public
boolean
getComply
()
{
return
comply
;
}
public
void
setComply
(
boolean
comply
)
{
this
.
comply
=
comply
;
}
public
String
getRisk_analysis
()
{
return
risk_analysis
;
}
public
void
setRisk_analysis
(
String
risk_analysis
)
{
this
.
risk_analysis
=
risk_analysis
;
}
public
String
getRisk_description
()
{
return
risk_description
;
}
public
void
setRisk_description
(
String
risk_description
)
{
this
.
risk_description
=
risk_description
;
}
public
String
getModification_suggestions
()
{
return
modification_suggestions
;
}
public
void
setModification_suggestions
(
String
modification_suggestions
)
{
this
.
modification_suggestions
=
modification_suggestions
;
}
}
executor
.
submit
(()
->
{
executor
.
submit
(()
->
{
try
{
try
{
String
ruleDesc
=
aiDataAuditRuleQueryItem
.
getRuleDesc
();
// 规则描述
String
ruleDesc
=
aiDataAuditRuleQueryItem
.
getRuleDesc
();
// 规则描述
...
@@ -144,10 +273,7 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
...
@@ -144,10 +273,7 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
// 找到文件 并下载对应的md 或 json 文件
// 找到文件 并下载对应的md 或 json 文件
BizAiDataAuditFileEntity
firstAuditFileEntity
=
groupedByTemplateCode
.
get
(
firstFile
).
get
(
0
);
BizAiDataAuditFileEntity
firstAuditFileEntity
=
groupedByTemplateCode
.
get
(
firstFile
).
get
(
0
);
BizFileOcrCacheEntity
bizFileOcrCacheEntity
=
new
BizFileOcrCacheEntity
();
BizFileOcrCacheEntity
firstFileOcrCacheEntity
=
bizFileOcrCacheService
.
findByMd5
(
firstAuditFileEntity
.
getMd5
());
bizFileOcrCacheEntity
.
setMd5
(
firstAuditFileEntity
.
getMd5
());
List
<
BizFileOcrCacheEntity
>
firstocrCacheEntities
=
bizFileOcrCacheService
.
findByExample
(
bizFileOcrCacheEntity
,
null
);
BizFileOcrCacheEntity
firstFileOcrCacheEntity
=
firstocrCacheEntities
.
get
(
0
);
String
firstMdFileUrl
=
firstFileOcrCacheEntity
.
getMdFileUrl
();
String
firstMdFileUrl
=
firstFileOcrCacheEntity
.
getMdFileUrl
();
String
firstJsonFileUrl
=
firstFileOcrCacheEntity
.
getJsonFileUrl
();
String
firstJsonFileUrl
=
firstFileOcrCacheEntity
.
getJsonFileUrl
();
if
(
StringUtils
.
isNotBlank
(
firstJsonFileUrl
))
{
if
(
StringUtils
.
isNotBlank
(
firstJsonFileUrl
))
{
...
@@ -156,16 +282,15 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
...
@@ -156,16 +282,15 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
}
}
BizAiDataAuditFileEntity
secondAuditFileEntity
=
groupedByTemplateCode
.
get
(
secondFile
).
get
(
0
);
BizAiDataAuditFileEntity
secondAuditFileEntity
=
groupedByTemplateCode
.
get
(
secondFile
).
get
(
0
);
bizFileOcrCacheEntity
=
new
BizFileOcrCacheEntity
();
BizFileOcrCacheEntity
secondFileOcrCacheEntity
=
bizFileOcrCacheService
.
findByMd5
(
secondAuditFileEntity
.
getMd5
());
bizFileOcrCacheEntity
.
setMd5
(
secondAuditFileEntity
.
getMd5
());
;
List
<
BizFileOcrCacheEntity
>
secondOcrCacheEntities
=
bizFileOcrCacheService
.
findByExample
(
bizFileOcrCacheEntity
,
null
);
String
secondMdFileUrl
=
secondFileOcrCacheEntity
.
getMdFileUrl
();
BizFileOcrCacheEntity
secondFileOcrCacheEntity
=
secondOcrCacheEntities
.
get
(
0
);
String
secondJsonFileUrl
=
secondFileOcrCacheEntity
.
getJsonFileUrl
();
String
secondMdFileUrl
=
firstFileOcrCacheEntity
.
getMdFileUrl
();
String
secondJsonFileUrl
=
firstFileOcrCacheEntity
.
getJsonFileUrl
();
if
(
StringUtils
.
isNotBlank
(
secondJsonFileUrl
))
{
if
(
StringUtils
.
isNotBlank
(
secondJsonFileUrl
))
{
File
file
=
DocumentLoad
.
downloadURLDocument
(
StringUtils
.
isBlank
(
secondJsonFileUrl
)
?
secondMdFileUrl
:
secondJsonFileUrl
);
File
file
=
DocumentLoad
.
downloadURLDocument
(
StringUtils
.
isBlank
(
secondJsonFileUrl
)
?
secondMdFileUrl
:
secondJsonFileUrl
);
secondFileContent
=
DocumentLoad
.
documentToText
(
file
);
secondFileContent
=
DocumentLoad
.
documentToText
(
file
);
}
}
// 执行工作流
// 执行工作流
Map
<
String
,
Object
>
inputs
=
new
LinkedHashMap
<>();
Map
<
String
,
Object
>
inputs
=
new
LinkedHashMap
<>();
inputs
.
put
(
"rule"
,
ruleDesc
);
inputs
.
put
(
"rule"
,
ruleDesc
);
...
@@ -174,7 +299,7 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
...
@@ -174,7 +299,7 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
inputs
.
put
(
"filed_1"
,
firstField
);
inputs
.
put
(
"filed_1"
,
firstField
);
inputs
.
put
(
"filed_2"
,
secondField
);
inputs
.
put
(
"filed_2"
,
secondField
);
// 创建聊天客户端
// 创建聊天客户端
DifyChatClient
chatClient
=
DifyClientFactory
.
createChatClient
(
DIFY_BASE_URL
,
"app-
1MRun3ecfLOzFS96xcWYCOOX
"
);
DifyChatClient
chatClient
=
DifyClientFactory
.
createChatClient
(
DIFY_BASE_URL
,
"app-
AVURkM0NaoE5gBt2wEo9cN8E
"
);
// 创建聊天消息
// 创建聊天消息
ChatMessage
message
=
ChatMessage
.
builder
()
ChatMessage
message
=
ChatMessage
.
builder
()
.
query
(
"run"
)
.
query
(
"run"
)
...
@@ -187,19 +312,26 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
...
@@ -187,19 +312,26 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
// 发送消息并获取响应
// 发送消息并获取响应
ChatMessageResponse
response
=
chatClient
.
sendChatMessage
(
message
);
ChatMessageResponse
response
=
chatClient
.
sendChatMessage
(
message
);
String
result
=
response
.
getAnswer
();
String
result
=
response
.
getAnswer
();
C2CResult
c2cResult
=
JSONObject
.
parseObject
(
result
,
C2CResult
.
class
);
if
(
c2cResult
==
null
)
{
throw
new
BusinessException
(
"c2c result is null"
);
}
if
(!
c2cResult
.
getNeed_judge
()
||
c2cResult
.
getComply
())
{
return
;
}
AuditResultDto
auditResultDto
=
new
AuditResultDto
();
AuditResultDto
auditResultDto
=
new
AuditResultDto
();
auditResultDto
.
setRiskLevel
(
aiDataAuditRuleQueryItem
.
getRiskLevel
());
auditResultDto
.
setRiskLevel
(
aiDataAuditRuleQueryItem
.
getRiskLevel
());
auditResultDto
.
setRiskTitle
(
aiDataAuditRuleQueryItem
.
getTitle
());
auditResultDto
.
setRiskTitle
(
aiDataAuditRuleQueryItem
.
getTitle
());
//TODO:
auditResultDto
.
setRiskAnalysis
(
c2cResult
.
getRisk_analysis
());
//分析
auditResultDto
.
setRiskAnalysis
(
result
);
auditResultDto
.
setRiskDescription
(
c2cResult
.
getRisk_description
());
//风险描述
auditResultDto
.
setRiskDescription
(
result
);
auditResultDto
.
setModificationSuggestions
(
c2cResult
.
getModification_suggestions
());
//建议
auditResultDto
.
setModificationSuggestions
(
result
);
results
.
add
(
auditResultDto
);
results
.
add
(
auditResultDto
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
throw
new
Runtime
Exception
(
e
);
throw
new
Business
Exception
(
e
);
}
finally
{
}
finally
{
countDownLatch
.
countDown
();
countDownLatch
.
countDown
();
}
}
...
@@ -263,7 +395,7 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
...
@@ -263,7 +395,7 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
// 判断文件文件1里面的字端是否等于某个值
// 判断文件文件1里面的字端是否等于某个值
private
AuditResultDto
doC2f
(
String
firstFileContent
,
String
firstField
,
String
ruleDesc
,
AiDataAuditRuleQueryItem
aiDataAuditRuleQueryItem
)
throws
DifyApiException
,
IO
Exception
{
private
AuditResultDto
doC2f
(
String
firstFileContent
,
String
firstField
,
String
ruleDesc
,
AiDataAuditRuleQueryItem
aiDataAuditRuleQueryItem
)
throws
Exception
{
// 执行工作流
// 执行工作流
Map
<
String
,
Object
>
inputs
=
new
LinkedHashMap
<>();
Map
<
String
,
Object
>
inputs
=
new
LinkedHashMap
<>();
inputs
.
put
(
"rule"
,
ruleDesc
);
inputs
.
put
(
"rule"
,
ruleDesc
);
...
...
src/main/java/cn/com/poc/message/service/impl/AirportProducerServiceImpl.java
View file @
d282f61c
package
cn
.
com
.
poc
.
message
.
service
.
impl
;
package
cn
.
com
.
poc
.
message
.
service
.
impl
;
import
cn.com.poc.message.entity.AirportTaskCreateMessage
;
import
cn.com.poc.message.entity.AirportPDFPaperMessage
;
import
cn.com.poc.message.entity.AirportPDFPaperMessage
;
import
cn.com.poc.message.service.AirportProducerService
;
import
cn.com.poc.message.service.AirportProducerService
;
import
cn.com.poc.message.topic.AirportTopic
;
import
cn.com.poc.message.topic.AirportTopic
;
...
@@ -18,4 +19,10 @@ public class AirportProducerServiceImpl implements AirportProducerService {
...
@@ -18,4 +19,10 @@ public class AirportProducerServiceImpl implements AirportProducerService {
public
AirportPDFPaperMessage
pdfPaper
(
AirportPDFPaperMessage
message
)
{
public
AirportPDFPaperMessage
pdfPaper
(
AirportPDFPaperMessage
message
)
{
return
message
;
return
message
;
}
}
@Override
@Producer
(
topic
=
AirportTopic
.
AIRPORT_CREATE_TOPIC
)
public
AirportTaskCreateMessage
createTask
(
AirportTaskCreateMessage
message
)
{
return
message
;
}
}
}
src/main/java/cn/com/poc/message/service/impl/OCRConsumerServiceImpl.java
View file @
d282f61c
...
@@ -67,15 +67,18 @@ public class OCRConsumerServiceImpl implements OCRConsumerService {
...
@@ -67,15 +67,18 @@ public class OCRConsumerServiceImpl implements OCRConsumerService {
MinerUResponse
minerUResponse
=
new
MinerUResponse
();
MinerUResponse
minerUResponse
=
new
MinerUResponse
();
minerUResponse
.
setFiles
(
file
);
minerUResponse
.
setFiles
(
file
);
try
{
try
{
//todo
Object
o
=
minerUAPI
.
parsePDF
(
minerUResponse
);
Object
o
=
minerUAPI
.
parsePDF
(
minerUResponse
);
//
String
md
=
""
;
String
md
=
""
;
String
json
=
MD2Json
.
md2json
(
md
);
BizFileOcrCacheEntity
updateEntity
=
bizFileOcrCacheService
.
get
(
message
.
getId
());
BizFileOcrCacheEntity
updateEntity
=
bizFileOcrCacheService
.
get
(
message
.
getId
());
updateEntity
.
setParseStatus
(
"complete"
);
updateEntity
.
setParseStatus
(
"complete"
);
updateEntity
.
setJsonFileUrl
(
createFileAndUploadBos
(
md
,
"txt"
));
String
fileName
=
bizFileUploadRecordService
.
getFileNameByFileUrl
(
message
.
getFileURL
());
if
(
fileName
.
equals
(
"Form.pdf"
))
{
String
json
=
MD2Json
.
md2json
(
md
);
updateEntity
.
setJsonFileUrl
(
createFileAndUploadBos
(
json
,
"txt"
));
}
updateEntity
.
setMdFileUrl
(
createFileAndUploadBos
(
md
,
"md"
));
updateEntity
.
setMdFileUrl
(
createFileAndUploadBos
(
md
,
"md"
));
bizFileOcrCacheService
.
update
(
updateEntity
);
bizFileOcrCacheService
.
update
(
updateEntity
);
...
...
src/main/java/cn/com/poc/message/topic/AirportTopic.java
View file @
d282f61c
...
@@ -6,6 +6,8 @@ package cn.com.poc.message.topic;
...
@@ -6,6 +6,8 @@ package cn.com.poc.message.topic;
*/
*/
public
interface
AirportTopic
{
public
interface
AirportTopic
{
String
AIRPORT_CREATE_TOPIC
=
"AIRPORT_CREATE_TOPIC"
;
String
AIRPORT_PDF_PAPER_TOPIC
=
"AIRPORT_PDF_PAPER_TOPIC"
;
String
AIRPORT_PDF_PAPER_TOPIC
=
"AIRPORT_PDF_PAPER_TOPIC"
;
...
...
src/main/java/cn/com/poc/ocr/service/BizFileOcrCacheService.java
View file @
d282f61c
...
@@ -3,6 +3,7 @@ package cn.com.poc.ocr.service;
...
@@ -3,6 +3,7 @@ package cn.com.poc.ocr.service;
import
cn.com.yict.framemax.core.service.BaseService
;
import
cn.com.yict.framemax.core.service.BaseService
;
import
cn.com.poc.ocr.entity.BizFileOcrCacheEntity
;
import
cn.com.poc.ocr.entity.BizFileOcrCacheEntity
;
import
cn.com.yict.framemax.data.model.PagingInfo
;
import
cn.com.yict.framemax.data.model.PagingInfo
;
import
java.util.Collection
;
import
java.util.Collection
;
import
java.util.List
;
import
java.util.List
;
...
@@ -10,7 +11,7 @@ public interface BizFileOcrCacheService extends BaseService {
...
@@ -10,7 +11,7 @@ public interface BizFileOcrCacheService extends BaseService {
BizFileOcrCacheEntity
get
(
java
.
lang
.
Long
id
)
throws
Exception
;
BizFileOcrCacheEntity
get
(
java
.
lang
.
Long
id
)
throws
Exception
;
List
<
BizFileOcrCacheEntity
>
findByExample
(
BizFileOcrCacheEntity
example
,
PagingInfo
pagingInfo
)
throws
Exception
;
List
<
BizFileOcrCacheEntity
>
findByExample
(
BizFileOcrCacheEntity
example
,
PagingInfo
pagingInfo
)
throws
Exception
;
BizFileOcrCacheEntity
save
(
BizFileOcrCacheEntity
entity
)
throws
Exception
;
BizFileOcrCacheEntity
save
(
BizFileOcrCacheEntity
entity
)
throws
Exception
;
...
@@ -18,4 +19,6 @@ public interface BizFileOcrCacheService extends BaseService {
...
@@ -18,4 +19,6 @@ public interface BizFileOcrCacheService extends BaseService {
void
deletedById
(
java
.
lang
.
Long
id
)
throws
Exception
;
void
deletedById
(
java
.
lang
.
Long
id
)
throws
Exception
;
BizFileOcrCacheEntity
findByMd5
(
String
md5
)
;
}
}
\ No newline at end of file
src/main/java/cn/com/poc/ocr/service/impl/BizFileOcrCacheServiceImpl.java
View file @
d282f61c
package
cn
.
com
.
poc
.
ocr
.
service
.
impl
;
package
cn
.
com
.
poc
.
ocr
.
service
.
impl
;
import
cn.com.poc.common.constant.CommonConstant
;
import
cn.com.yict.framemax.core.service.impl.BaseServiceImpl
;
import
cn.com.yict.framemax.core.service.impl.BaseServiceImpl
;
import
cn.com.poc.ocr.service.BizFileOcrCacheService
;
import
cn.com.poc.ocr.service.BizFileOcrCacheService
;
import
cn.com.poc.ocr.model.BizFileOcrCacheModel
;
import
cn.com.poc.ocr.model.BizFileOcrCacheModel
;
...
@@ -114,4 +115,12 @@ public class BizFileOcrCacheServiceImpl extends BaseServiceImpl
...
@@ -114,4 +115,12 @@ public class BizFileOcrCacheServiceImpl extends BaseServiceImpl
}
}
}
}
@Override
public
BizFileOcrCacheEntity
findByMd5
(
String
md5
)
{
BizFileOcrCacheModel
bizFileOcrCacheModel
=
new
BizFileOcrCacheModel
();
bizFileOcrCacheModel
.
setMd5
(
md5
);
bizFileOcrCacheModel
.
setIsDeleted
(
CommonConstant
.
IsDeleted
.
N
);
List
<
BizFileOcrCacheModel
>
models
=
this
.
repository
.
findByExample
(
bizFileOcrCacheModel
,
null
);
return
CollectionUtils
.
isNotEmpty
(
models
)
?
BizFileOcrCacheConvert
.
modelToEntity
(
models
.
get
(
0
))
:
null
;
}
}
}
\ No newline at end of file
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