Commit a2578fc8 authored by R10's avatar R10

f2f c2f

parent 0457ced1
package cn.com.poc.ai_data_audit.constants;
/**
* @Author:Roger Wu
* @name:DataAuditEnum
* @Date:2025-10-31 0:42
*/
public enum DataAuditEnum {
// fileNameMap.put("DOC-01","Work Permit Application Details");
// fileNameMap.put("DOC-02","Work Permit Extension Details");
// fileNameMap.put("DOC-03", "Work Method Statement");
// fileNameMap.put("DOC-04", "Safety Method Statement or Safety Plan");
// fileNameMap.put("DOC-05", "Risk Assessment");
// fileNameMap.put("DOC-06", "Work Programme");
// fileNameMap.put("DOC-07", "Location Plan");
// fileNameMap.put("DOC-08", "HKIA Contractor Safety (Construction & Maintenance) Training Record");
// fileNameMap.put("DOC-09", "HKIA BRAAS Check Form or BRAAS Exemption Declaration Form");
// fileNameMap.put("DOC-10", "Premises Endorser Declaration Form for Work Permit Application");
// fileNameMap.put("DOC-11", "OCWIP");
// fileNameMap.put("DOC-12", "Insurance");
// fileNameMap.put("DOC-13", "Pay-in-Slip for Work Permit Processing Fee");
// fileNameMap.put("DOC-14", "HKIA APM Safety Video Training and Examination Record");
// fileNameMap.put("DOC-15", "Aerodrome Safety Risk Assessment");
// fileNameMap.put("DOC-16", "System Change Request (SCR)");
// fileNameMap.put("DOC-17", "CCTV Equipment Configuration Request Form");
// fileNameMap.put("DOC-18", "Permit to Dig");
// fileNameMap.put("DOC-19", "Temporary Traffic Management Plan");
DOC_01("DOC-01","Work Permit Application Details"),
DOC_02("DOC-02","Work Permit Extension Details"),
DOC_03("DOC-03","Work Method Statement"),
DOC_04("DOC-04","Safety Method Statement or Safety Plan"),
DOC_05("DOC-05","Risk Assessment"),
DOC_06("DOC-06","Work Programme"),
DOC_07("DOC-07","Location Plan"),
DOC_08("DOC-08","HKIA Contractor Safety (Construction & Maintenance) Training Record"),
DOC_09("DOC-09","HKIA BRAAS Check Form or BRAAS Exemption Declaration Form"),
DOC_10("DOC-10","Premises Endorser Declaration Form for Work Permit Application"),
DOC_11("DOC-11","OCWIP"),
DOC_12("DOC-12","Insurance"),
DOC_13("DOC-13","Pay-in-Slip for Work Permit Processing Fee"),
DOC_14("DOC-14","HKIA APM Safety Video Training and Examination Record"),
DOC_15("DOC-15","Aerodrome Safety Risk Assessment"),
DOC_16("DOC-16","System Change Request (SCR)"),
DOC_17("DOC-17","CCTV Equipment Configuration Request Form"),
DOC_18("DOC-18","Permit to Dig"),
DOC_19("DOC-19","Temporary Traffic Management Plan");
DataAuditEnum(String templateCode, String templateName) {
this.templateCode = templateCode;
this.templateName = templateName;
}
private String templateCode;
private String templateName;
public static String getTemplateNameByCode(String templateCode) {
for (DataAuditEnum item : DataAuditEnum.values()) {
if (item.templateCode.equals(templateCode)) {
return item.templateName;
}
}
return null;
}
}
package cn.com.poc.ai_data_audit.dto;
/**
* @Author:Roger Wu
* @name:auditResultDto
*/
public class AuditResultDto {
private String riskLevel;
private String riskTitle;
private String riskAnalysis;
private String riskDescription;
private String modificationSuggestions;
public String getRiskLevel() {
return riskLevel;
}
public void setRiskLevel(String riskLevel) {
this.riskLevel = riskLevel;
}
public String getRiskTitle() {
return riskTitle;
}
public void setRiskTitle(String riskTitle) {
this.riskTitle = riskTitle;
}
public String getRiskAnalysis() {
return riskAnalysis;
}
public void setRiskAnalysis(String riskAnalysis) {
this.riskAnalysis = riskAnalysis;
}
public String getRiskDescription() {
return riskDescription;
}
public void setRiskDescription(String riskDescription) {
this.riskDescription = riskDescription;
}
public String getModificationSuggestions() {
return modificationSuggestions;
}
public void setModificationSuggestions(String modificationSuggestions) {
this.modificationSuggestions = modificationSuggestions;
}
}
......@@ -19,13 +19,13 @@ public class BizAiDataAuditFileDto {
/** task_id
*任务id
*/
private java.lang.Integer taskId;
private java.lang.Long taskId;
public java.lang.Integer getTaskId(){
public java.lang.Long getTaskId(){
return this.taskId;
}
public void setTaskId(java.lang.Integer taskId){
public void setTaskId(java.lang.Long taskId){
this.taskId = taskId;
}
/** orginal_template_code
......
......@@ -30,17 +30,41 @@ public class BizAiDataAuditRuleDto {
public void setDataAuditRuleType(java.lang.String dataAuditRuleType){
this.dataAuditRuleType = dataAuditRuleType;
}
/** title
*风险标题
*/
private java.lang.String title;
public java.lang.String getTitle(){
return this.title;
}
public void setTitle(java.lang.String title){
this.title = title;
}
/** level
*等级
*/
private java.lang.String level;
public java.lang.String getLevel(){
return this.level;
}
public void setLevel(java.lang.String level){
this.level = level;
}
/** first_file
*第一个文件
*/
private java.lang.Integer firstFile;
private java.lang.String firstFile;
public java.lang.Integer getFirstFile(){
public java.lang.String getFirstFile(){
return this.firstFile;
}
public void setFirstFile(java.lang.Integer firstFile){
public void setFirstFile(java.lang.String firstFile){
this.firstFile = firstFile;
}
/** first_field
......@@ -58,13 +82,13 @@ public class BizAiDataAuditRuleDto {
/** second_file
*第二个文件
*/
private java.lang.Integer secondFile;
private java.lang.String secondFile;
public java.lang.Integer getSecondFile(){
public java.lang.String getSecondFile(){
return this.secondFile;
}
public void setSecondFile(java.lang.Integer secondFile){
public void setSecondFile(java.lang.String secondFile){
this.secondFile = secondFile;
}
/** second_field
......
......@@ -9,13 +9,13 @@ import java.util.List;
*/
public class BizAiDataAuditTaskDeleteDto {
List<Integer> taskIdList;
List<Long> taskIdList;
public List<Integer> getTaskIdList() {
public List<Long> getTaskIdList() {
return taskIdList;
}
public void setTaskIdList(List<Integer> taskIdList) {
public void setTaskIdList(List<Long> taskIdList) {
this.taskIdList = taskIdList;
}
}
......@@ -11,13 +11,13 @@ public class BizAiDataAuditTaskDto {
/** data_audit_task_id
*
*/
private java.lang.Integer dataAuditTaskId;
private java.lang.Long dataAuditTaskId;
public java.lang.Integer getDataAuditTaskId(){
public java.lang.Long getDataAuditTaskId(){
return this.dataAuditTaskId;
}
public void setDataAuditTaskId(java.lang.Integer dataAuditTaskId){
public void setDataAuditTaskId(java.lang.Long dataAuditTaskId){
this.dataAuditTaskId = dataAuditTaskId;
}
/** data_audit_task_name
......
......@@ -19,13 +19,13 @@ public class BizAiDataAuditFileEntity {
/** task_id
*任务id
*/
private java.lang.Integer taskId;
private java.lang.Long taskId;
public java.lang.Integer getTaskId(){
public java.lang.Long getTaskId(){
return this.taskId;
}
public void setTaskId(java.lang.Integer taskId){
public void setTaskId(java.lang.Long taskId){
this.taskId = taskId;
}
/** orginal_template_code
......
......@@ -30,17 +30,41 @@ public class BizAiDataAuditRuleEntity {
public void setDataAuditRuleType(java.lang.String dataAuditRuleType){
this.dataAuditRuleType = dataAuditRuleType;
}
/** title
*风险标题
*/
private java.lang.String title;
public java.lang.String getTitle(){
return this.title;
}
public void setTitle(java.lang.String title){
this.title = title;
}
/** level
*等级
*/
private java.lang.String level;
public java.lang.String getLevel(){
return this.level;
}
public void setLevel(java.lang.String level){
this.level = level;
}
/** first_file
*第一个文件
*/
private java.lang.Integer firstFile;
private java.lang.String firstFile;
public java.lang.Integer getFirstFile(){
public java.lang.String getFirstFile(){
return this.firstFile;
}
public void setFirstFile(java.lang.Integer firstFile){
public void setFirstFile(java.lang.String firstFile){
this.firstFile = firstFile;
}
/** first_field
......@@ -58,13 +82,13 @@ public class BizAiDataAuditRuleEntity {
/** second_file
*第二个文件
*/
private java.lang.Integer secondFile;
private java.lang.String secondFile;
public java.lang.Integer getSecondFile(){
public java.lang.String getSecondFile(){
return this.secondFile;
}
public void setSecondFile(java.lang.Integer secondFile){
public void setSecondFile(java.lang.String secondFile){
this.secondFile = secondFile;
}
/** second_field
......
......@@ -7,13 +7,13 @@ public class BizAiDataAuditTaskEntity {
/** data_audit_task_id
*
*/
private java.lang.Integer dataAuditTaskId;
private java.lang.Long dataAuditTaskId;
public java.lang.Integer getDataAuditTaskId(){
public java.lang.Long getDataAuditTaskId(){
return this.dataAuditTaskId;
}
public void setDataAuditTaskId(java.lang.Integer dataAuditTaskId){
public void setDataAuditTaskId(java.lang.Long dataAuditTaskId){
this.dataAuditTaskId = dataAuditTaskId;
}
/** data_audit_task_name
......
......@@ -45,14 +45,14 @@ public class BizAiDataAuditFileModel extends BaseModelClass implements Serializa
/** task_id
*任务id
*/
private java.lang.Integer taskId;
private java.lang.Long taskId;
@Column(name = "task_id",length = 10)
public java.lang.Integer getTaskId(){
public java.lang.Long getTaskId(){
return this.taskId;
}
public void setTaskId(java.lang.Integer taskId){
public void setTaskId(java.lang.Long taskId){
this.taskId = taskId;
super.addValidField("taskId");
}
......
......@@ -61,17 +61,49 @@ public class BizAiDataAuditRuleModel extends BaseModelClass implements Serializa
}
/** title
*风险标题
*/
private java.lang.String title;
@Column(name = "title",length = 255)
public java.lang.String getTitle(){
return this.title;
}
public void setTitle(java.lang.String title){
this.title = title;
super.addValidField("title");
}
/** level
*等级
*/
private java.lang.String level;
@Column(name = "level",length = 255)
public java.lang.String getLevel(){
return this.level;
}
public void setLevel(java.lang.String level){
this.level = level;
super.addValidField("level");
}
/** first_file
*第一个文件
*/
private java.lang.Integer firstFile;
private java.lang.String firstFile;
@Column(name = "first_file",length = 10)
public java.lang.Integer getFirstFile(){
@Column(name = "first_file",length = 255)
public java.lang.String getFirstFile(){
return this.firstFile;
}
public void setFirstFile(java.lang.Integer firstFile){
public void setFirstFile(java.lang.String firstFile){
this.firstFile = firstFile;
super.addValidField("firstFile");
}
......@@ -96,14 +128,14 @@ public class BizAiDataAuditRuleModel extends BaseModelClass implements Serializa
/** second_file
*第二个文件
*/
private java.lang.Integer secondFile;
private java.lang.String secondFile;
@Column(name = "second_file",length = 10)
public java.lang.Integer getSecondFile(){
@Column(name = "second_file",length = 255)
public java.lang.String getSecondFile(){
return this.secondFile;
}
public void setSecondFile(java.lang.Integer secondFile){
public void setSecondFile(java.lang.String secondFile){
this.secondFile = secondFile;
super.addValidField("secondFile");
}
......@@ -114,7 +146,7 @@ public class BizAiDataAuditRuleModel extends BaseModelClass implements Serializa
*/
private java.lang.String secondField;
@Column(name = "second_field",length = 1073741824)
@Column(name = "second_field",length = 255)
public java.lang.String getSecondField(){
return this.secondField;
}
......@@ -130,7 +162,7 @@ public class BizAiDataAuditRuleModel extends BaseModelClass implements Serializa
*/
private java.lang.String ruleDesc;
@Column(name = "rule_desc",length = 255)
@Column(name = "rule_desc",length = 2147483647)
public java.lang.String getRuleDesc(){
return this.ruleDesc;
}
......
......@@ -28,15 +28,15 @@ public class BizAiDataAuditTaskModel extends BaseModelClass implements Serializa
/** data_audit_task_id
*
*/
private java.lang.Integer dataAuditTaskId;
private java.lang.Long dataAuditTaskId;
@Column(name = "data_audit_task_id",length = 10)
@Id @GeneratedValue(strategy = GenerationType.AUTO)
public java.lang.Integer getDataAuditTaskId(){
public java.lang.Long getDataAuditTaskId(){
return this.dataAuditTaskId;
}
public void setDataAuditTaskId(java.lang.Integer dataAuditTaskId){
public void setDataAuditTaskId(java.lang.Long dataAuditTaskId){
this.dataAuditTaskId = dataAuditTaskId;
super.addValidField("dataAuditTaskId");
}
......
select
SELECT
data_audit_rule_id,
data_audit_rule_type,
risk_level,
title,
first_file,
first_field,
second_file,
second_field,
rule_desc,
is_deleted,
CREATOR,
CREATED_TIME,
MODIFIER,
MODIFIED_TIME,
SYS_VERSION
rule_desc
from
biz_ai_data_audit_rule
where is_deleted = 'N'
......
package cn.com.poc.ai_data_audit.query;
import java.io.Serializable;
import java.util.List;
/**
* Query Condition class for AiDataAuditRuleQuery
......@@ -10,13 +11,13 @@ public class AiDataAuditRuleQueryCondition implements Serializable{
private static final long serialVersionUID = 1L;
private java.lang.Long[] ids;
private List<Integer> ids;
public java.lang.Long[] getIds(){
public java.util.List<Integer> getIds(){
return this.ids;
}
public void setIds(java.lang.Long[] ids){
public void setIds(List<Integer> ids){
this.ids = ids;
}
......
......@@ -41,17 +41,45 @@ public class AiDataAuditRuleQueryItem extends BaseItemClass implements Serializa
this.dataAuditRuleType = dataAuditRuleType;
}
/** risk_level
*risk_level
*/
private java.lang.String riskLevel;
@Column(name = "risk_level")
public java.lang.String getRiskLevel(){
return this.riskLevel;
}
public void setRiskLevel(java.lang.String riskLevel){
this.riskLevel = riskLevel;
}
/** title
*title
*/
private java.lang.String title;
@Column(name = "title")
public java.lang.String getTitle(){
return this.title;
}
public void setTitle(java.lang.String title){
this.title = title;
}
/** first_file
*first_file
*/
private java.lang.Integer firstFile;
private java.lang.String firstFile;
@Column(name = "first_file")
public java.lang.Integer getFirstFile(){
public java.lang.String getFirstFile(){
return this.firstFile;
}
public void setFirstFile(java.lang.Integer firstFile){
public void setFirstFile(java.lang.String firstFile){
this.firstFile = firstFile;
}
......@@ -72,14 +100,14 @@ public class AiDataAuditRuleQueryItem extends BaseItemClass implements Serializa
/** second_file
*second_file
*/
private java.lang.Integer secondFile;
private java.lang.String secondFile;
@Column(name = "second_file")
public java.lang.Integer getSecondFile(){
public java.lang.String getSecondFile(){
return this.secondFile;
}
public void setSecondFile(java.lang.Integer secondFile){
public void setSecondFile(java.lang.String secondFile){
this.secondFile = secondFile;
}
......@@ -111,88 +139,4 @@ public class AiDataAuditRuleQueryItem extends BaseItemClass implements Serializa
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
......@@ -2,5 +2,5 @@ package cn.com.poc.ai_data_audit.repository;
import cn.com.yict.framemax.data.repository.Repository;
import cn.com.poc.ai_data_audit.model.BizAiDataAuditTaskModel;
public interface BizAiDataAuditTaskRepository extends Repository<BizAiDataAuditTaskModel,java.lang.Integer> {
public interface BizAiDataAuditTaskRepository extends Repository<BizAiDataAuditTaskModel,java.lang.Long> {
}
\ No newline at end of file
......@@ -17,7 +17,7 @@ public interface BizAiDataAuditTaskRest extends BaseRest {
List<BizAiDataAuditTaskDto> getTaskList() throws Exception;
BizAiDataAuditTaskDto getByTaskId(@RequestParam Integer taskId) throws Exception;
BizAiDataAuditTaskDto getByTaskId(@RequestParam Long taskId) throws Exception;
void delete(@RequestBody BizAiDataAuditTaskDeleteDto dto) throws Exception;
}
\ No newline at end of file
......@@ -25,7 +25,6 @@ public interface DataAuditRest extends BaseRest {
/**
* 对话
* @param dataAuditCallDto
* @param input
* @throws Exception
*/
DataAuditResult call(@RequestBody DataAuditCallDto dataAuditCallDto) throws Exception;
......
......@@ -48,7 +48,7 @@ public class BizAiDataAuditTaskRestImpl implements BizAiDataAuditTaskRest {
}
@Override
public BizAiDataAuditTaskDto getByTaskId(Integer taskId) throws Exception {
public BizAiDataAuditTaskDto getByTaskId(Long taskId) throws Exception {
Assert.notNull(taskId, "taskId can not be null");
BizAiDataAuditTaskEntity bizAiDataAuditTaskEntity = bizAiDataAuditTaskService.get(taskId);
if (bizAiDataAuditTaskEntity == null) {
......@@ -72,7 +72,7 @@ public class BizAiDataAuditTaskRestImpl implements BizAiDataAuditTaskRest {
if (CollectionUtils.isEmpty(dto.getTaskIdList())) {
throw new Exception("the task can not be found");
}
for (Integer taskId : dto.getTaskIdList()) {
for (Long taskId : dto.getTaskIdList()) {
bizAiDataAuditTaskService.delete(taskId);
}
}
......
......@@ -9,12 +9,14 @@ import java.util.List;
public interface BizAiDataAuditTaskService extends BaseService {
BizAiDataAuditTaskEntity get(Integer id) throws Exception;
BizAiDataAuditTaskEntity get(Long id) throws Exception;
void delete(Integer id) throws Exception;
void delete(Long id) throws Exception;
List<BizAiDataAuditTaskEntity> findByExample(BizAiDataAuditTaskEntity example, PagingInfo pagingInfo) throws Exception;
BizAiDataAuditTaskEntity update(BizAiDataAuditTaskEntity entity) throws Exception;
void createDataAuditTask(String taskName, FileUploadConfirmDto fileUploadConfirmDto) throws Exception;
......
package cn.com.poc.ai_data_audit.service.impl;
import cn.com.poc.agent_application.entity.BizAgentApplicationLargeModelListEntity;
import cn.com.poc.ai_data_audit.constants.DataAuditConstants;
import cn.com.poc.ai_data_audit.dto.FileUploadConfirmDto;
import cn.com.poc.ai_data_audit.dto.FileUploadDto;
......@@ -9,7 +8,6 @@ import cn.com.poc.ai_data_audit.entity.BizAiDataAuditFileEntity;
import cn.com.poc.ai_data_audit.service.BizAiDataAuditFileService;
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.BlContext;
import cn.com.yict.framemax.core.service.impl.BaseServiceImpl;
import cn.com.poc.ai_data_audit.service.BizAiDataAuditTaskService;
......@@ -31,7 +29,6 @@ import java.util.List;
import javax.annotation.Resource;
import org.springframework.util.Assert;
import org.springframework.web.multipart.commons.CommonsFileUploadSupport;
@Service
public class BizAiDataAuditTaskServiceImpl extends BaseServiceImpl
......@@ -46,7 +43,7 @@ public class BizAiDataAuditTaskServiceImpl extends BaseServiceImpl
private BizFileUploadRecordService bizFileUploadRecordService;
@Override
public BizAiDataAuditTaskEntity get(java.lang.Integer id) throws Exception {
public BizAiDataAuditTaskEntity get(java.lang.Long id) throws Exception {
Assert.notNull(id);
BizAiDataAuditTaskModel model = this.repository.get(id);
if (model == null) {
......@@ -62,7 +59,7 @@ public class BizAiDataAuditTaskServiceImpl extends BaseServiceImpl
}
@Override
public void delete(Integer id) throws Exception {
public void delete(java.lang.Long id) throws Exception {
Assert.notNull(id);
BizAiDataAuditTaskEntity bizAiDataAuditTaskEntity = get(id);
if (bizAiDataAuditTaskEntity == null) {
......@@ -96,6 +93,7 @@ public class BizAiDataAuditTaskServiceImpl extends BaseServiceImpl
return BizAiDataAuditTaskConvert.modelToEntity(saveModel);
}
@Override
public BizAiDataAuditTaskEntity update(BizAiDataAuditTaskEntity entity) throws Exception {
Assert.notNull(entity);
Assert.notNull(entity.getDataAuditTaskId(), "update pk can not be null");
......@@ -135,7 +133,7 @@ public class BizAiDataAuditTaskServiceImpl extends BaseServiceImpl
return BizAiDataAuditTaskConvert.modelToEntity(saveModel);
}
public void deletedById(java.lang.Integer id) throws Exception {
public void deletedById(java.lang.Long id) throws Exception {
Assert.notNull(id);
BizAiDataAuditTaskModel model = this.repository.get(id);
if (model != null) {
......
......@@ -192,16 +192,7 @@ public class DataAuditServiceImpl extends BaseServiceImpl
}
File file = DocumentLoad.downloadURLDocument(bizFileOcrCacheEntityList.get(0).getMdFileUrl());
String fileContent="";
try (BufferedReader br = new BufferedReader(new FileReader(file))) {
String content;
while ((content = br.readLine()) != null) {
fileContent=content+fileContent;
}
} catch (IOException e) {
e.printStackTrace();
}
String fileContent = DocumentLoad.documentToText(file);
//组装请求参数
List<Message> messages = buildMessagesAndRecord(dialoguesId, userId, input, null, documentDialoguePrompt.getConfigSystem().replace("${content}", fileContent));
LargeModelResponse largeModelResponse = new LargeModelResponse();
......
......@@ -3,16 +3,20 @@ 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.exception.DifyApiException;
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.constants.DataAuditEnum;
import cn.com.poc.ai_data_audit.dto.AuditResultDto;
import cn.com.poc.ai_data_audit.entity.BizAiDataAuditFileEntity;
import cn.com.poc.ai_data_audit.entity.BizAiDataAuditTaskEntity;
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.ai_data_audit.service.BizAiDataAuditTaskService;
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;
......@@ -21,10 +25,12 @@ 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.apache.commons.collections.CollectionUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.File;
import java.io.IOException;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
......@@ -32,6 +38,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
* @author alex.yao
......@@ -57,14 +64,39 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
@Resource
private BizAiDataAuditRuleService bizAiDataAuditRuleService;
@Resource
private BizAiDataAuditTaskService bizAiDataAuditTaskService;
@Override
@Consumer(topic = AirportTopic.AIRPORT_PDF_PAPER_TOPIC)
public void pdfPaper(AirportPDFPaperMessage message) throws Exception {
List<String> results = new CopyOnWriteArrayList<>();
List<AuditResultDto> results = new CopyOnWriteArrayList<>();
Long taskId = message.getTaskId();
//根据任务id查找任务
BizAiDataAuditTaskEntity bizAiDataAuditTaskEntity = bizAiDataAuditTaskService.get(taskId);
if (bizAiDataAuditTaskEntity == null) {
throw new BusinessException("任务不存在");
}
//查找任务下的所有文件
BizAiDataAuditFileEntity bizAiDataAuditFileEntity = new BizAiDataAuditFileEntity();
bizAiDataAuditFileEntity.setTaskId(taskId);
List<BizAiDataAuditFileEntity> bizAiDataAuditFileEntities = bizAiDataAuditFileService.findByExample(bizAiDataAuditFileEntity, null);
if (CollectionUtils.isEmpty(bizAiDataAuditFileEntities)) {
throw new BusinessException("找不到该任务下的文件");
}
Map<String, List<BizAiDataAuditFileEntity>> groupedByTemplateCode = bizAiDataAuditFileEntities.stream()
.collect(Collectors.groupingBy(BizAiDataAuditFileEntity::getOrginalTemplateCode));
List<Integer> ruleIdList = message.getRuleIdList();
//获取所有的规则
AiDataAuditRuleQueryCondition aiDataAuditRuleQueryCondition = new AiDataAuditRuleQueryCondition();
aiDataAuditRuleQueryCondition.setIds(ruleIdList.toArray(new Long[ruleIdList.size()]));
// aiDataAuditRuleQueryCondition.setIds(ruleIdList.toArray(new Long[ruleIdList.size()]));
List<AiDataAuditRuleQueryItem> aiDataAuditRuleQueryItems = bizAiDataAuditRuleService.aiDataAuditRuleQueryItemList(aiDataAuditRuleQueryCondition, null);
......@@ -74,36 +106,44 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
for (AiDataAuditRuleQueryItem aiDataAuditRuleQueryItem : aiDataAuditRuleQueryItems) {
String ruleType = aiDataAuditRuleQueryItem.getDataAuditRuleType();
if (ruleType.equals("c2c")) {
c2c(aiDataAuditRuleQueryItem, results, countDownLatch);
c2c(bizAiDataAuditFileEntities, aiDataAuditRuleQueryItem, results, countDownLatch);
} else if (ruleType.equals("c2f")) {
c2f(aiDataAuditRuleQueryItem, results, countDownLatch);
c2f(bizAiDataAuditFileEntities, aiDataAuditRuleQueryItem, results, countDownLatch);
} else if (ruleType.equals("f2f")) {
f2f(aiDataAuditRuleQueryItem, results, countDownLatch);
f2f(bizAiDataAuditFileEntities, aiDataAuditRuleQueryItem, results, countDownLatch);
} else {
countDownLatch.countDown();
}
}
countDownLatch.await();
//更新结果和任务状态
bizAiDataAuditTaskEntity.setAuditResult(results.toString());
bizAiDataAuditTaskEntity.setStatus("end");
bizAiDataAuditTaskService.update(bizAiDataAuditTaskEntity);
} catch (Exception e) {
throw new BusinessException(e.getMessage());
}
}
// 字段对字段
private void c2c(AiDataAuditRuleQueryItem aiDataAuditRuleQueryItem, List<String> results, CountDownLatch countDownLatch) {
private void c2c(List<BizAiDataAuditFileEntity> fileList, AiDataAuditRuleQueryItem aiDataAuditRuleQueryItem, List<AuditResultDto> results, CountDownLatch countDownLatch) {
executor.submit(() -> {
try {
String ruleDesc = aiDataAuditRuleQueryItem.getRuleDesc();// 规则描述
Integer firstFile = aiDataAuditRuleQueryItem.getFirstFile();// 文件1
String firstFile = aiDataAuditRuleQueryItem.getFirstFile();// 文件1
String firstField = aiDataAuditRuleQueryItem.getFirstField();// 字段1
Integer secondFile = aiDataAuditRuleQueryItem.getSecondFile();// 文件2
String secondFile = aiDataAuditRuleQueryItem.getSecondFile();// 文件2
String secondField = aiDataAuditRuleQueryItem.getSecondField();// 字段2
String firstFileContent = StringUtils.EMPTY;
String secondFileContent = StringUtils.EMPTY;
Map<String, List<BizAiDataAuditFileEntity>> groupedByTemplateCode = fileList.stream()
.collect(Collectors.groupingBy(BizAiDataAuditFileEntity::getOrginalTemplateCode));
// 找到文件 并下载对应的md 或 json 文件
BizAiDataAuditFileEntity firstAuditFileEntity = bizAiDataAuditFileService.get(firstFile);
BizAiDataAuditFileEntity firstAuditFileEntity = groupedByTemplateCode.get(firstFile).get(0);
BizFileOcrCacheEntity bizFileOcrCacheEntity = new BizFileOcrCacheEntity();
bizFileOcrCacheEntity.setMd5(firstAuditFileEntity.getMd5());
List<BizFileOcrCacheEntity> firstocrCacheEntities = bizFileOcrCacheService.findByExample(bizFileOcrCacheEntity, null);
......@@ -115,12 +155,11 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
firstFileContent = DocumentLoad.documentToText(file);
}
BizAiDataAuditFileEntity secondAuditFileEntity = bizAiDataAuditFileService.get(secondFile);
BizAiDataAuditFileEntity secondAuditFileEntity = groupedByTemplateCode.get(secondFile).get(0);
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)) {
......@@ -147,10 +186,18 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
// 发送消息并获取响应
ChatMessageResponse response = chatClient.sendChatMessage(message);
String result = response.getAnswer();
results.add(result);
AuditResultDto auditResultDto = new AuditResultDto();
auditResultDto.setRiskLevel(aiDataAuditRuleQueryItem.getRiskLevel());
auditResultDto.setRiskTitle(aiDataAuditRuleQueryItem.getTitle());
//TODO:
auditResultDto.setRiskAnalysis(result);
auditResultDto.setRiskDescription(result);
auditResultDto.setModificationSuggestions(result);
results.add(auditResultDto);
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
......@@ -160,25 +207,136 @@ public class AirportConsumerServiceImpl implements AirportConsumerService {
}
// 字段对文件
private void c2f(AiDataAuditRuleQueryItem aiDataAuditRuleQueryItem, List<String> results, CountDownLatch countDownLatch) {
private void c2f(List<BizAiDataAuditFileEntity> fileList, AiDataAuditRuleQueryItem aiDataAuditRuleQueryItem, List<AuditResultDto> results, CountDownLatch countDownLatch) throws Exception {
executor.submit(() -> {
try {
String ruleDesc = aiDataAuditRuleQueryItem.getRuleDesc();// 规则描述
String firstFile = aiDataAuditRuleQueryItem.getFirstFile();// 文件1
String firstField = aiDataAuditRuleQueryItem.getFirstField();// 字段1
String secondFile = aiDataAuditRuleQueryItem.getSecondFile();// 文件2
String secondField = aiDataAuditRuleQueryItem.getSecondField();// 字段2
String firstFileContent = StringUtils.EMPTY;
// String secondFileContent = StringUtils.EMPTY;
//需要拿到第一个的字段
Map<String, List<BizAiDataAuditFileEntity>> groupedByTemplateCode = fileList.stream()
.collect(Collectors.groupingBy(BizAiDataAuditFileEntity::getOrginalTemplateCode));
// 找到文件 并下载对应的md 或 json 文件
BizAiDataAuditFileEntity firstAuditFileEntity = groupedByTemplateCode.get(firstFile).get(0);
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);
}
//需要判断是否有第二个文件
if (CollectionUtils.isNotEmpty(groupedByTemplateCode.get(secondFile))) {
//执行c2f判断
AuditResultDto auditResultDto = doC2f(firstFileContent, firstField, ruleDesc, aiDataAuditRuleQueryItem);
results.add(auditResultDto);
} else {
// AuditResultDto auditResultDto = new AuditResultDto();
// auditResultDto.setRiskLevel(aiDataAuditRuleQueryItem.getRiskLevel());
// auditResultDto.setRiskTitle(aiDataAuditRuleQueryItem.getTitle());
//
// String templateName = DataAuditEnum.getTemplateNameByCode(secondFile);
// auditResultDto.setRiskAnalysis(templateName + " file has not been submitted.");
// auditResultDto.setRiskDescription(ruleDesc);
// auditResultDto.setModificationSuggestions("Please submitt " + templateName + " file");
// results.add(auditResultDto);
}
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
countDownLatch.countDown();
}
});
}
// 判断文件文件1里面的字端是否等于某个值
private AuditResultDto doC2f(String firstFileContent, String firstField, String ruleDesc, AiDataAuditRuleQueryItem aiDataAuditRuleQueryItem) throws DifyApiException, IOException {
// 执行工作流
Map<String, Object> inputs = new LinkedHashMap<>();
inputs.put("rule", ruleDesc);
inputs.put("doc1", firstFileContent);
inputs.put("filed_1", firstField);
// 创建聊天客户端
DifyChatClient chatClient = DifyClientFactory.createChatClient(DIFY_BASE_URL, "xxxx");
// 创建聊天消息
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();
AuditResultDto auditResultDto = new AuditResultDto();
auditResultDto.setRiskLevel(aiDataAuditRuleQueryItem.getRiskLevel());
auditResultDto.setRiskTitle(aiDataAuditRuleQueryItem.getTitle());
//TODO:
auditResultDto.setRiskAnalysis(result);
auditResultDto.setRiskDescription(result);
auditResultDto.setModificationSuggestions(result);
return auditResultDto;
}
// 文件对文件
private void f2f(AiDataAuditRuleQueryItem aiDataAuditRuleQueryItem, List<String> results, CountDownLatch countDownLatch) {
private void f2f(List<BizAiDataAuditFileEntity> fileList, AiDataAuditRuleQueryItem aiDataAuditRuleQueryItem, List<AuditResultDto> 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 firstFile = aiDataAuditRuleQueryItem.getFirstFile();// 文件1
String secondFile = aiDataAuditRuleQueryItem.getSecondFile();// 文件2
Map<String, List<BizAiDataAuditFileEntity>> groupedByTemplateCode = fileList.stream()
.collect(Collectors.groupingBy(BizAiDataAuditFileEntity::getOrginalTemplateCode));
List<BizAiDataAuditFileEntity> firstFileFileEntities = groupedByTemplateCode.get(firstFile);
List<BizAiDataAuditFileEntity> secondFileFileEntities = groupedByTemplateCode.get(secondFile);
if (CollectionUtils.isNotEmpty(firstFileFileEntities)) {
if (CollectionUtils.isEmpty(secondFileFileEntities)) {
AuditResultDto auditResultDto = new AuditResultDto();
auditResultDto.setRiskLevel(aiDataAuditRuleQueryItem.getRiskLevel());
auditResultDto.setRiskTitle(aiDataAuditRuleQueryItem.getTitle());
String templateName = DataAuditEnum.getTemplateNameByCode(secondFile);
auditResultDto.setRiskAnalysis(templateName + " file has not been submitted.");
auditResultDto.setRiskDescription(ruleDesc);
auditResultDto.setModificationSuggestions("Please submitt " + templateName + " file");
results.add(auditResultDto);
}
} else {
AuditResultDto auditResultDto = new AuditResultDto();
auditResultDto.setRiskLevel(aiDataAuditRuleQueryItem.getRiskLevel());
auditResultDto.setRiskTitle(aiDataAuditRuleQueryItem.getTitle());
auditResultDto.setRiskAnalysis("Work Permit Application Details or Work Permit Extension Details has not been submitted");
auditResultDto.setRiskDescription("file has not been submitted");
auditResultDto.setModificationSuggestions("Please submitt Work Permit Application Details or Work Permit Extension Details file");
results.add(auditResultDto);
}
countDownLatch.countDown();
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
countDownLatch.countDown();
}
});
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment