|
@@ -11,6 +11,7 @@ import com.zjugis.ai.knowledge.dal.mapper.KnowledgeFileMapper;
|
|
|
import com.zjugis.ai.knowledge.retrofit.docs.UploadDocsService;
|
|
|
import com.zjugis.ai.knowledge.retrofit.docs.UploadDocsService2;
|
|
|
import com.zjugis.ai.knowledge.retrofit.docs.params.DeleteDocsReqVO;
|
|
|
+import com.zjugis.ai.knowledge.retrofit.docs.params.UploadDocsReqVO;
|
|
|
import com.zjugis.ai.knowledge.retrofit.docs.vo.DocsRespVO;
|
|
|
import com.zjugis.ai.knowledge.util.files.FileTypeUtils;
|
|
|
import com.zjugis.ai.knowledge.util.object.BeanUtils;
|
|
@@ -24,9 +25,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.io.File;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.List;
|
|
|
+import java.util.*;
|
|
|
|
|
|
import static com.zjugis.ai.knowledge.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
|
|
@@ -58,15 +57,12 @@ public class KnowledgeFileServiceImpl implements KnowledgeFileService {
|
|
|
fileDO.setSize(content.length);
|
|
|
String type = FileTypeUtils.getMineType(content, file.getOriginalFilename());
|
|
|
fileDO.setType(type);
|
|
|
- // 准备文本参数
|
|
|
- RequestBody knowledgeBaseName =
|
|
|
- RequestBody.create(MediaType.parse("text/plain"), BASE_NAME);
|
|
|
- // 准备文件列表
|
|
|
- RequestBody fileRQ = RequestBody.create(MediaType.parse(type), content);
|
|
|
- MultipartBody.Part part = MultipartBody.Part.createFormData("picture", file.getName(), fileRQ);
|
|
|
- List<MultipartBody.Part> parts = new ArrayList<>();
|
|
|
- parts.add(part);
|
|
|
- DocsRespVO respVO = uploadDocsService.upload(knowledgeBaseName, parts);
|
|
|
+ UploadDocsReqVO reqVO = new UploadDocsReqVO();
|
|
|
+ reqVO.setKnowledge_base_name(BASE_NAME);
|
|
|
+ List<MultipartFile> files = new ArrayList<>();
|
|
|
+ files.add(file);
|
|
|
+ reqVO.setFiles(files);
|
|
|
+ DocsRespVO respVO = uploadDocsService2.upload(reqVO);
|
|
|
if (respVO.getCode() != 200) {
|
|
|
throw exception(new ErrorCode(respVO.getCode(), respVO.getMsg()));
|
|
|
}
|
|
@@ -105,15 +101,19 @@ public class KnowledgeFileServiceImpl implements KnowledgeFileService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void initKnowledgeDocument() {
|
|
|
+ public void initKnowledgeDocument(Long parentId) {
|
|
|
try {
|
|
|
// 读取文件夹中的所有文件
|
|
|
- List<String> fileNames = readFileNamesFromFolder(folderPath);
|
|
|
+ List<Map<String,Object>> fileNames = readFileNamesFromFolder(folderPath);
|
|
|
List<KnowledgeFileDO> list = new ArrayList<>(fileNames.size());
|
|
|
fileNames.forEach(s -> {
|
|
|
KnowledgeFileDO fileDO = new KnowledgeFileDO();
|
|
|
- fileDO.setName(s);
|
|
|
- fileDO.setType(FileTypeUtils.getMineType(s));
|
|
|
+ String fileName = s.get("fileName").toString();
|
|
|
+ Integer fileSize = Integer.parseInt(s.get("fileSize").toString());
|
|
|
+ fileDO.setName(fileName);
|
|
|
+ fileDO.setType(FileTypeUtils.getMineType(fileName));
|
|
|
+ fileDO.setParentId(parentId);
|
|
|
+ fileDO.setSize(fileSize);
|
|
|
list.add(fileDO);
|
|
|
});
|
|
|
knowledgeFileMapper.insertBatch(list);
|
|
@@ -130,8 +130,8 @@ public class KnowledgeFileServiceImpl implements KnowledgeFileService {
|
|
|
/**
|
|
|
* 读取指定文件夹中的所有文件名
|
|
|
*/
|
|
|
- private static List<String> readFileNamesFromFolder(String folderPath) {
|
|
|
- List<String> fileNames = new ArrayList<>();
|
|
|
+ private static List<Map<String,Object>> readFileNamesFromFolder(String folderPath) {
|
|
|
+ List<Map<String,Object>> fileNames = new ArrayList<>();
|
|
|
File folder = new File(folderPath);
|
|
|
|
|
|
if (!folder.exists() || !folder.isDirectory()) {
|
|
@@ -142,7 +142,10 @@ public class KnowledgeFileServiceImpl implements KnowledgeFileService {
|
|
|
if (files != null) {
|
|
|
for (File file : files) {
|
|
|
if (file.isFile()) {
|
|
|
- fileNames.add(file.getName());
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
+ map.put("fileName",file.getName());
|
|
|
+ map.put("fileSize",file.length());
|
|
|
+ fileNames.add(map);
|
|
|
}
|
|
|
}
|
|
|
}
|