zero пре 1 година
родитељ
комит
f6f5794c78

+ 3 - 3
src/main/java/com/example/xiaoshiweixinback/controller/PatentController.java

@@ -20,6 +20,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.File;
+import java.util.Arrays;
 import java.util.List;
 
 
@@ -31,12 +32,11 @@ public class PatentController {
     private ImportFromWebToEsService importFromWebToEsService;
 
     @Autowired
-    private FileManagerService fileManagerService;
-
-    @Autowired
     private EsDenseVectorService esDenseVectorService;
+
     @Autowired
     private GetPatentFromExcelService getPatentFromExcelService;
+
     @Operation(summary = "导入专利")
     @GetMapping(value = "/importPatent")
     public Response queryPatent(@RequestBody ImportTaskAMVO importTaskAMVO) {

+ 6 - 0
src/main/java/com/example/xiaoshiweixinback/entity/vo/searchRecord/SelectSearchRecordVO.java

@@ -3,6 +3,7 @@ package com.example.xiaoshiweixinback.entity.vo.searchRecord;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 @Data
 public class SelectSearchRecordVO {
@@ -21,4 +22,9 @@ public class SelectSearchRecordVO {
 
     private Date createTime;
 
+    private String guid;
+
+    private String description;
+
+    private List<String> productFiles;
 }

+ 3 - 1
src/main/java/com/example/xiaoshiweixinback/service/ProductService.java

@@ -135,7 +135,9 @@ public class ProductService extends ServiceImpl<ProductMapper, Product> {
 
             if (assoPersonProducts.size() != 0) {
                 AssoPersonProduct assoPersonProduct = assoPersonProducts.stream().filter(item -> item.getProductId().equals(productVO.getId())).findFirst().orElse(null);
-                productVO.setConcernType(assoPersonProduct.getConcernType());
+                if (ToolUtil.isNotEmpty(assoPersonProduct)) {
+                    productVO.setConcernType(assoPersonProduct.getConcernType());
+                }
             }
         }
     }

+ 18 - 0
src/main/java/com/example/xiaoshiweixinback/service/SearchRecordService.java

@@ -11,13 +11,16 @@ import com.example.xiaoshiweixinback.business.utils.BeanUtil;
 import com.example.xiaoshiweixinback.business.utils.CacheUtil;
 import com.example.xiaoshiweixinback.business.utils.LoginUtils;
 import com.example.xiaoshiweixinback.business.utils.ToolUtil;
+import com.example.xiaoshiweixinback.domain.AssoProductFile;
 import com.example.xiaoshiweixinback.domain.SearchRecord;
 
 import com.example.xiaoshiweixinback.entity.dto.searchRecord.AddSearchRecordDTO;
 import com.example.xiaoshiweixinback.entity.dto.searchRecord.SelectSearchRecordDTO;
 import com.example.xiaoshiweixinback.entity.vo.PersonnelVO;
 import com.example.xiaoshiweixinback.entity.vo.searchRecord.SelectSearchRecordVO;
+import com.example.xiaoshiweixinback.mapper.AssoProductFileMapper;
 import com.example.xiaoshiweixinback.mapper.SearchRecordMapper;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
@@ -26,6 +29,7 @@ import org.springframework.util.CollectionUtils;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
 * @author admin
@@ -41,6 +45,9 @@ public class SearchRecordService extends ServiceImpl<SearchRecordMapper, SearchR
     @Autowired
     private CacheUtil cacheUtils;
 
+    @Autowired
+    private AssoProductFileMapper assoProductFileMapper;
+
     /**
      * 添加或更新检索记录
      *
@@ -87,6 +94,17 @@ public class SearchRecordService extends ServiceImpl<SearchRecordMapper, SearchR
             list.forEach(i -> {
                 SelectSearchRecordVO recordVO = new SelectSearchRecordVO();
                 BeanUtil.copy(i, recordVO);
+                List<String> collect = new ArrayList<>();
+                if (i.getProductId() != null) {
+                    List<AssoProductFile> productFiles = assoProductFileMapper.selectList(new LambdaQueryWrapper<AssoProductFile>()
+                            .eq(AssoProductFile::getProductId, i.getProductId()));
+                    collect = productFiles.stream().map(AssoProductFile::getFileGuid).collect(Collectors.toList());
+                } else {
+                    if (StringUtils.isNotEmpty(i.getGuid())) {
+                        collect.add(i.getGuid());
+                    }
+                }
+                recordVO.setProductFiles(collect);
                 recordVOS.add(recordVO);
             });
         }

+ 7 - 5
src/main/java/com/example/xiaoshiweixinback/service/common/EsDenseVectorService.java

@@ -15,7 +15,6 @@ import co.elastic.clients.elasticsearch.core.search.Hit;
 import co.elastic.clients.json.JsonData;
 import com.example.xiaoshiweixinback.business.common.base.Records;
 import com.example.xiaoshiweixinback.business.utils.BeanUtil;
-import com.example.xiaoshiweixinback.business.utils.ToolUtil;
 import com.example.xiaoshiweixinback.business.utils.parseQueryToTree.expressManager;
 import com.example.xiaoshiweixinback.business.utils.parseQueryToTree.operateNode;
 import com.example.xiaoshiweixinback.business.utils.parseQueryToTree.treeNode;
@@ -24,7 +23,6 @@ import com.example.xiaoshiweixinback.domain.es.PatentVector;
 import com.example.xiaoshiweixinback.entity.dto.esPicture.EsPictureNoDTO;
 import com.example.xiaoshiweixinback.entity.dto.esPicture.EsPatentVectorDTO;
 import com.example.xiaoshiweixinback.entity.dto.searchRecord.AddSearchRecordDTO;
-import com.example.xiaoshiweixinback.entity.product.ProductIdDTO;
 import com.example.xiaoshiweixinback.entity.vo.esPicture.EsPictureNoVo;
 import com.example.xiaoshiweixinback.entity.vo.esPicture.EsPatentVectorVo;
 import com.example.xiaoshiweixinback.mapper.ProductMapper;
@@ -41,7 +39,6 @@ import org.springframework.util.CollectionUtils;
 
 import java.io.File;
 import java.io.IOException;
-import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -64,6 +61,9 @@ public class EsDenseVectorService {
     @Autowired
     private ProductMapper productMapper;
 
+    @Autowired
+    private FileManagerService fileManagerService;
+
     /**
      * 根据图片排序获取列表
      *
@@ -90,8 +90,10 @@ public class EsDenseVectorService {
         //获取图片向量
         List<Float> imageList = new ArrayList<>();
         List<String> stringList = new ArrayList<>();
+        List<String> getGuids = new ArrayList<>();
         if (file != null && file.exists() && file.length() != 0) {
             stringList = getVectorService.getVectorByFile(file);
+            getGuids = fileManagerService.uploadFileGetGuid2(Collections.singletonList(file));
         } else if (StringUtils.isNotEmpty(dto.getDescription())) {
             stringList = getVectorService.getVectorByText(dto.getDescription());
         }
@@ -163,8 +165,8 @@ public class EsDenseVectorService {
             recordDTO.setSearchCondition(dto.getKey());
         }
         recordDTO.setDescription(dto.getDescription());
-        if (file != null && file.length() != 0) {
-            recordDTO.setGuid(file.getPath());
+        if (!CollectionUtils.isEmpty(getGuids)) {
+            recordDTO.setGuid(getGuids.get(0));
         }
         recordDTO.setAllNum(Integer.parseInt(String.valueOf(count)));
         recordDTO.setSearchTime(new Date());