|
|
|
@ -6,9 +6,16 @@ import cn.hutool.core.util.StrUtil;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
import com.supervision.chat.UploadParamEnum;
|
|
|
|
|
import com.supervision.chat.client.CustomMultipartFile;
|
|
|
|
|
import com.supervision.chat.client.LangChainChatService;
|
|
|
|
|
import com.supervision.chat.client.dto.DeleteFileDTO;
|
|
|
|
|
import com.supervision.chat.client.dto.LangChainChatRes;
|
|
|
|
|
import com.supervision.common.utils.IPages;
|
|
|
|
|
import com.supervision.common.utils.ListUtils;
|
|
|
|
|
import com.supervision.common.utils.StringUtils;
|
|
|
|
|
import com.supervision.config.BusinessException;
|
|
|
|
|
import com.supervision.demo.dto.QARecordNodeDTO;
|
|
|
|
|
import com.supervision.minio.domain.MinioFile;
|
|
|
|
|
import com.supervision.minio.mapper.MinioFileMapper;
|
|
|
|
|
import com.supervision.minio.service.MinioService;
|
|
|
|
@ -16,10 +23,9 @@ import com.supervision.neo4j.service.Neo4jService;
|
|
|
|
|
import com.supervision.police.domain.*;
|
|
|
|
|
import com.supervision.police.dto.NoteRecordDTO;
|
|
|
|
|
import com.supervision.police.dto.NoteRecordDetailDTO;
|
|
|
|
|
import com.supervision.police.mapper.NoteRecordSplitMapper;
|
|
|
|
|
import com.supervision.police.mapper.NoteRecordMapper;
|
|
|
|
|
import com.supervision.police.mapper.NoteRecordSplitMapper;
|
|
|
|
|
import com.supervision.police.service.*;
|
|
|
|
|
import com.supervision.demo.dto.QARecordNodeDTO;
|
|
|
|
|
import com.supervision.utils.RecordRegexUtil;
|
|
|
|
|
import com.supervision.utils.WordReadUtil;
|
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
@ -64,6 +70,8 @@ public class NoteRecordSplitServiceImpl extends ServiceImpl<NoteRecordSplitMappe
|
|
|
|
|
|
|
|
|
|
private final Neo4jService neo4jService;
|
|
|
|
|
|
|
|
|
|
private final LangChainChatService langChainChatService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class)
|
|
|
|
@ -108,6 +116,22 @@ public class NoteRecordSplitServiceImpl extends ServiceImpl<NoteRecordSplitMappe
|
|
|
|
|
log.error("从minio中获取文件失败:{}", e.getMessage());
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
// 这里需要把文件传输,传输到知识库中去
|
|
|
|
|
CustomMultipartFile mockMultipartFile = new CustomMultipartFile(minioFile.getFilename(), inputStream);
|
|
|
|
|
LangChainChatRes langChainChatRes = langChainChatService.uploadFile("11111111",
|
|
|
|
|
mockMultipartFile,
|
|
|
|
|
"问讯笔录",
|
|
|
|
|
UploadParamEnum.to_vector_store.getBooleanValue(),
|
|
|
|
|
UploadParamEnum.override.getBooleanValue(),
|
|
|
|
|
UploadParamEnum.not_refresh_vs_cache.getBooleanValue(),
|
|
|
|
|
UploadParamEnum.chunk_size.getIntValue(),
|
|
|
|
|
UploadParamEnum.chunk_overlap.getIntValue(),
|
|
|
|
|
UploadParamEnum.zh_title_enhance.getBooleanValue(),
|
|
|
|
|
UploadParamEnum.docs.getStrValue());
|
|
|
|
|
if (!langChainChatRes.getCode().equals(200)) {
|
|
|
|
|
log.error("上传文件失败:{}", langChainChatRes.getMsg());
|
|
|
|
|
throw new RuntimeException("上传文件失败");
|
|
|
|
|
}
|
|
|
|
|
String context = WordReadUtil.readWord(inputStream);
|
|
|
|
|
List<QARecordNodeDTO> qaList = RecordRegexUtil.recordRegex(context, record.getName());
|
|
|
|
|
List<NoteRecordSplit> splitList = new ArrayList<>();
|
|
|
|
@ -254,6 +278,7 @@ public class NoteRecordSplitServiceImpl extends ServiceImpl<NoteRecordSplitMappe
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(transactionManager = "dataSourceTransactionManager", rollbackFor = Exception.class, noRollbackFor = BusinessException.class)
|
|
|
|
|
public void delRecords(String id) {
|
|
|
|
|
|
|
|
|
|
NoteRecord noteRecord = noteRecordMapper.selectById(id);
|
|
|
|
@ -262,12 +287,20 @@ public class NoteRecordSplitServiceImpl extends ServiceImpl<NoteRecordSplitMappe
|
|
|
|
|
// noteRecordMapper.updateById(noteRecord);
|
|
|
|
|
String fileIds = noteRecord.getFileIds();
|
|
|
|
|
if (StringUtils.isNotEmpty(fileIds)) {
|
|
|
|
|
|
|
|
|
|
//删除文件
|
|
|
|
|
for (String fileId : fileIds.split(",")) {
|
|
|
|
|
|
|
|
|
|
MinioFile minioFile = minioFileMapper.selectById(fileId);
|
|
|
|
|
// 删除文件
|
|
|
|
|
LangChainChatRes langChainChatRes = langChainChatService.deleteFile(DeleteFileDTO.create(noteRecord.getCaseId(), minioFile.getFilename()));
|
|
|
|
|
if (!langChainChatRes.getCode().equals(200)) {
|
|
|
|
|
throw new BusinessException("删除文件:" + minioFile.getFilename() + " 失败!");
|
|
|
|
|
}
|
|
|
|
|
minioFile.setDataStatus(StringUtils.getUUID());
|
|
|
|
|
minioFileMapper.updateById(minioFile);
|
|
|
|
|
minioService.delFile(fileId);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
// 去掉逻辑删除,直接删除
|
|
|
|
|