Explorar el Código

Merge remote-tracking branch 'origin/master_novelty' into master_novelty

lwhhszx hace 1 año
padre
commit
99210ec4c3

+ 44 - 0
src/main/java/cn/cslg/pas/common/vo/CompareLiteratureVO.java

@@ -1,6 +1,7 @@
 package cn.cslg.pas.common.vo;
 
 import cn.cslg.pas.common.model.cronModel.SystemFile;
+import cn.cslg.pas.common.vo.NoveltyProjectVO.NoveltyCompareRecordVO;
 import cn.cslg.pas.domain.BaseEntity;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
@@ -77,4 +78,47 @@ public class CompareLiteratureVO  {
     private Date createTime;
     private SystemFile systemFile;
     private String authorName;
+
+    //查新报告信息
+    private Integer compareFileId;
+    /**
+     * 对比记录id
+     */
+    private Integer retrieveRecordId;
+    /**
+     * 相关度
+     */
+    private String relevance;
+
+    /**
+     * 影响新创新
+     */
+    private Integer ifEffectinv;
+
+    /**
+     *  备注
+     */
+    private String fileRemark;
+
+    /**
+     * 总说明
+     */
+    private String generalRemark;
+
+    /**
+     * 现有技术要点
+     */
+    private String technicalPoints;
+
+    /**
+     * 实施方案
+     */
+    private String excuteCase;
+
+    /**
+     * 有益效果
+     */
+    private String beneficialEffect;
+    //标注
+    private NoveltyCompareRecordVO noveltyCompareRecordVO;
 }

+ 2 - 0
src/main/java/cn/cslg/pas/common/vo/QueryInventionPointVO.java

@@ -16,4 +16,6 @@ public class QueryInventionPointVO {
     private String createName;
 
     private Date createTime;
+
+    private String similarRate;
 }

+ 1 - 1
src/main/java/cn/cslg/pas/controller/NoveltyProjectController.java

@@ -158,7 +158,7 @@ public class NoveltyProjectController {
         return Response.success(compareFileId);
     }
 
-    @Operation(summary = "查询查新报告对比专利")
+    @Operation(summary = "查询查新报告对比专利详情")
     @PostMapping("/queryCompareFile")
     public Response queryCompareFile(@RequestBody QueryCompareFileDTO fileDTO) throws Exception {
         List<QueryCompareFileVO> queryCompareFileVOS = new ArrayList<>();

+ 32 - 3
src/main/java/cn/cslg/pas/service/business/CompareLiteratureService.java

@@ -10,16 +10,20 @@ import cn.cslg.pas.common.model.cronModel.SystemFile;
 import cn.cslg.pas.common.utils.CacheUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
 import cn.cslg.pas.common.vo.CompareLiteratureVO;
+import cn.cslg.pas.common.vo.NoveltyProjectVO.NoveltyCompareRecordVO;
 import cn.cslg.pas.common.vo.PatentWithIdVO;
 import cn.cslg.pas.common.vo.WebSocketMessageVO;
 import cn.cslg.pas.domain.business.CompareLiterature;
 import cn.cslg.pas.common.dto.CompareLiteratureDTO;
 import cn.cslg.pas.domain.business.ReportProject;
+import cn.cslg.pas.domain.business.novelty.NoveltyCompareLiterature;
 import cn.cslg.pas.domain.es.Patent;
 import cn.cslg.pas.exception.UnLoginException;
 import cn.cslg.pas.exception.XiaoShiException;
 import cn.cslg.pas.mapper.CompareLiteratureMapper;
+import cn.cslg.pas.mapper.novelty.NoveltyCompareLiteratureMapper;
 import cn.cslg.pas.service.business.es.EsPatentService;
+import cn.cslg.pas.service.business.es.EsScratchWordsService;
 import cn.cslg.pas.service.business.es.EsService;
 import cn.cslg.pas.service.common.FileManagerService;
 import cn.cslg.pas.service.common.MessageService;
@@ -69,13 +73,16 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
 
     @Autowired
     private ImportSinglePatentService importSinglePatentService;
-
+    @Autowired
+    private EsScratchWordsService esScratchWordsService;
     @Autowired
     private EsService esService;
     @Autowired
     private MessageService messageService;
     @Autowired
     private CompareLiteratureMapper compareLiteratureMapper;
+    @Autowired
+    private NoveltyCompareLiteratureMapper noveltyCompareLiteratureMapper;
 
     //添加专利对比文献
     public Integer addPatentCompareLiterature(Patent patent, Integer projectId, String createId) {
@@ -173,7 +180,7 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
     }
 
     //查询对比文献
-    public Records queryCompareLiterature(LiteratureQueryDTO literatureQueryDTO) {
+    public Records queryCompareLiterature(LiteratureQueryDTO literatureQueryDTO) throws Exception {
         Integer projectId = literatureQueryDTO.getProjectId();
         Records records = new Records();
         //根据对比projectId 查询对比文献
@@ -200,13 +207,35 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
         ReportProject reportProject = reportProjectService.getOne(wrapper);
 
         compareLiteratureVOS = this.loadCompareLiterature(compareLiteratures, reportProject);
-        //装载不同的类型的对比文献
+        //装载查新对比文件和标注
+        this.loadCompareLiteratureVOS(compareLiteratureVOS,projectId);
 
         records.setData(compareLiteratureVOS);
 
         return records;
     }
 
+    public void loadCompareLiteratureVOS(List<CompareLiteratureVO> compareLiteratureVOS, Integer projectId) throws Exception {
+        if (!CollectionUtils.isEmpty(compareLiteratureVOS)) {
+            List<Integer> literatureIds = new ArrayList<>();
+            compareLiteratureVOS.forEach(item -> {
+                literatureIds.add(item.getId());
+            });
+            List<NoveltyCompareRecordVO> recordVOS = esScratchWordsService.queryNoveltyRecord(projectId, 1);
+            List<NoveltyCompareLiterature> noveltyCompareLiteratureList = noveltyCompareLiteratureMapper.selectList(new LambdaQueryWrapper<NoveltyCompareLiterature>()
+                    .in(NoveltyCompareLiterature::getCompareLitertureId, literatureIds));
+            for (CompareLiteratureVO literatureVO : compareLiteratureVOS) {
+                NoveltyCompareLiterature noveltyCompareLiterature = noveltyCompareLiteratureList.stream().filter(i -> literatureVO.getId().equals(i.getCompareLitertureId())).findFirst().orElse(new NoveltyCompareLiterature());
+                BeanUtils.copyProperties(noveltyCompareLiterature, literatureVO);
+                literatureVO.setCompareFileId(noveltyCompareLiterature.getId());
+                literatureVO.setFileRemark(noveltyCompareLiterature.getRemark());
+                if (CollectionUtils.isEmpty(recordVOS)) {
+                    NoveltyCompareRecordVO recordVO = recordVOS.stream().filter(i -> i.getPatentNo().equals(literatureVO.getLiteratureNo())).findFirst().orElse(new NoveltyCompareRecordVO());
+                    literatureVO.setNoveltyCompareRecordVO(recordVO);
+                }
+            }
+        }
+    }
 
     public List<CompareLiteratureVO> loadCompareLiterature(List<CompareLiterature> compareLiteratures, ReportProject reportProject) {
         String signPatentNo = reportProject.getSignPatentNo();

+ 2 - 2
src/main/java/cn/cslg/pas/service/business/TechnicalCaseService.java

@@ -195,7 +195,7 @@ public class TechnicalCaseService extends ServiceImpl<TechnicalCaseMapper, Techn
         Query query = QueryBuilders.moreLikeThis(i -> i.fields("invention_point").like(likeContent)
                 .minTermFreq(1).maxQueryTerms(12));
         builder.query(query);
-//        builder.from(0).size(200);
+        builder.from(0).size(5);
         //解除最大条数限制
         builder.trackTotalHits(i -> i.enabled(true));
         SearchResponse<TechnicalCasePatent> response = client.search(builder.build(), TechnicalCasePatent.class);
@@ -208,12 +208,12 @@ public class TechnicalCaseService extends ServiceImpl<TechnicalCaseMapper, Techn
             inventionPointVO.setInventionPoint(casePatent.getInventionPoint());
             inventionPointVOS.add(inventionPointVO);
         }
-        List<Personnel> personnels = new ArrayList<>();
         if (!CollectionUtils.isEmpty(inventionPointVOS)) {
             List<Integer> projectIds = inventionPointVOS.stream().map(QueryInventionPointVO::getProjectId).collect(Collectors.toList());
             List<Project> projects = projectMapper.selectBatchIds(projectIds);
             List<String> createIds = projects.stream().map(Project::getCreateId).collect(Collectors.toList());
             //查询创建人名称
+            List<Personnel> personnels = new ArrayList<>();
             if (!CollectionUtils.isEmpty(createIds)) {
                 String res = permissionService.getPersonnelByIdsFromPCS(createIds);
                 JSONObject jsonObject = com.alibaba.fastjson.JSON.parseObject(res);

+ 11 - 15
src/main/java/cn/cslg/pas/service/business/es/EsScratchWordsService.java

@@ -90,10 +90,10 @@ public class EsScratchWordsService {
         try {
             markingLast = this.getById(id);
         } catch (Exception e) {
-            throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR,"查询错误");
+            throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "查询错误");
         }
         if (markingLast == null) {
-            throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR,"id不存在");
+            throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "id不存在");
         }
         BeanUtils.copyProperties(marking, markingLast);
         this.updateToEs(marking, id);
@@ -135,7 +135,7 @@ public class EsScratchWordsService {
         return records;
     }
 
-    public Query getSearchQuerys(StringRequest stringRequest)  {
+    public Query getSearchQuerys(StringRequest stringRequest) {
         PersonnelVO personnelVO = cacheUtils.getLoginUser(loginUtils.getId());
         String createId = personnelVO.getId();
         Integer tenantId = personnelVO.getTenantId();
@@ -242,7 +242,6 @@ public class EsScratchWordsService {
     }
 
 
-
     //保存
     public String saveToEs(Marking marking) throws Exception {
         IndexResponse indexResponse = client.index(i -> i
@@ -402,9 +401,7 @@ public class EsScratchWordsService {
     }
 
 
-
-
-    public  List<NoveltyCompareRecordVO> queryNoveltyRecord(Integer projectId,Integer markType)  throws Exception{
+    public List<NoveltyCompareRecordVO> queryNoveltyRecord(Integer projectId, Integer markType) throws Exception {
 
         List<NoveltyCompareRecordVO> vos = new ArrayList<>();
         SearchRequest.Builder builder = new SearchRequest.Builder();
@@ -412,17 +409,16 @@ public class EsScratchWordsService {
         Query q1 = QueryBuilders.term(t -> t.field("public_project_id").value(projectId));
         //不公开
         List<FieldValue> fieldValues = new ArrayList<>();
-    if(markType==null){
-        fieldValues.add(FieldValue.of(1));
-        fieldValues.add(FieldValue.of(2));
-    }
-    else {
-        fieldValues.add(FieldValue.of(markType));
-    }
+        if (markType == null) {
+            fieldValues.add(FieldValue.of(1));
+            fieldValues.add(FieldValue.of(2));
+        } else {
+            fieldValues.add(FieldValue.of(markType));
+        }
 
         Query q2 = QueryBuilders.terms(t -> t.field("mark_type").terms(new TermsQueryField.Builder().value(fieldValues).build()));
 
-        Query q3 =QueryBuilders.bool(i->i.should(q1,q2));
+        Query q3 = QueryBuilders.bool(i -> i.should(q1, q2));
         builder.query(q3);
 
         long total = 0;

+ 1 - 1
src/test/java/cn/cslg/pas/service/CompareLiteratureServiceTests.java

@@ -50,7 +50,7 @@ public class CompareLiteratureServiceTests {
     }
 
   @Test
-    public void queryCompareLiterature(){
+    public void queryCompareLiterature() throws Exception {
     LiteratureQueryDTO literatureQueryDTO =new LiteratureQueryDTO();
     literatureQueryDTO.setCurrent(0);
     literatureQueryDTO.setSize(10);