ソースを参照

6/24 韶音修改

lwhhszx 1 年間 前
コミット
9bb88b0506

+ 12 - 0
src/main/java/cn/cslg/pas/controller/CompareLiteratureController.java

@@ -95,4 +95,16 @@ public class CompareLiteratureController {
             return Response.error("删除失败");
         }
     }
+
+
+    @Operation(summary = "批量删除对比文献")
+    @PostMapping("/addAssoToEs")
+    public Response addAssoToEs() throws Exception {
+        try {
+            compareLiteratureService.addAssoToEs();
+            return Response.success("删除成功");
+        } catch (Exception e) {
+            return Response.error("删除失败");
+        }
+    }
 }

+ 6 - 7
src/main/java/cn/cslg/pas/factorys/getSqlFactorys/GetProofNameSql.java

@@ -44,19 +44,18 @@ public class GetProofNameSql implements GetSqlObject {
         //根据名称查询
         try {
             //根据号码模糊查询专利
-
             List<Integer> projectIds = esPatentService.getProjectIds(value);
-             if(projectIds.size()>0){
-                 ids.addAll(projectIds);
-             }
+            if (projectIds.size() > 0) {
+                ids.addAll(projectIds);
+            }
             LambdaQueryWrapper<CompareLiterature> queryWrapper = new LambdaQueryWrapper();
             queryWrapper.like(CompareLiterature::getName, value)
-                        .eq(CompareLiterature::getType,2);
+                    .eq(CompareLiterature::getType, 2);
             List<CompareLiterature> compareLiteratures = compareLiteratureService.list(queryWrapper);
 
             if (compareLiteratures.size() != 0) {
-              List<Integer>  newIds = compareLiteratures.stream().map(CompareLiterature::getProjectId).distinct().collect(Collectors.toList());
-           ids.addAll(newIds);
+                List<Integer> newIds = compareLiteratures.stream().map(CompareLiterature::getProjectId).distinct().collect(Collectors.toList());
+                ids.addAll(newIds);
             }
 
         } catch (Exception e) {

+ 42 - 5
src/main/java/cn/cslg/pas/service/business/CompareLiteratureService.java

@@ -431,6 +431,7 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
     /**
      * 添加或更新专利文献
      */
+    @Transactional(rollbackFor = Exception.class)
     public Integer saveOrUpdatePatent(UpdateBatchLiteraturesDTO updateBatchLiteratureDTO) {
         PersonnelVO personnelVO = new PersonnelVO();
         Integer projectId = updateBatchLiteratureDTO.getProjectId();
@@ -459,6 +460,9 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
         } catch (Exception e) {
 
         }
+        if(patentWithIdVO==null){
+            return  null;
+        }
         literatureNo = patent.getPatentNo();
         //判断该专利是否已经作为文献
         Integer lastId = this.getHaveAddIdByNos(projectId, literatureNo);
@@ -502,13 +506,13 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
             compareLiterature.updateById();
 
         } else {
-            try {
-                importSinglePatentService.saveAssoPatentProjectToEs(projectId, patentWithIdVO.getId());
-            } catch (Exception e) {
-                throw new XiaoShiException("添加和es关联错误");
-            }
             compareLiterature.insert();
         }
+        try {
+            importSinglePatentService.saveAssoPatentProjectToEs(projectId, patentWithIdVO.getId());
+        } catch (Exception e) {
+            throw new XiaoShiException("添加和es关联错误");
+        }
 
         return compareLiterature.getId();
 
@@ -656,4 +660,37 @@ public class CompareLiteratureService extends ServiceImpl<CompareLiteratureMappe
         }
         return true;
     }
+
+
+
+    public  void addAssoToEs(){
+        List<String> patentNos =new ArrayList<>();
+        LambdaQueryWrapper<CompareLiterature> compareLiteratureLambdaQueryWrapper =new LambdaQueryWrapper<>();
+       compareLiteratureLambdaQueryWrapper.eq(CompareLiterature::getType,0);
+        List<CompareLiterature> compareLiteratures =this.list(compareLiteratureLambdaQueryWrapper);
+        int i=0;
+        for (CompareLiterature item: compareLiteratures){
+           i++;
+            System.out.println(i);
+            String patentNo =item.getLiteratureNo().trim();
+            Integer projectId =item.getProjectId();
+            try {
+                PatentWithIdVO  patentWithIdVO = esService.getIdByPatentNo(patentNo);
+                if(patentWithIdVO==null){
+                        // 不存在该专利则从数据库获取著录信息并保存
+                        patentWithIdVO = importSinglePatentService.addSinglePatent(patentNo);
+
+                }
+                importSinglePatentService.saveAssoPatentProjectToEs(projectId, patentWithIdVO.getId());
+            }
+catch (Exception e){
+                e.printStackTrace();
+    patentNos.add(patentNo);
+            }
+
+        }
+System.out.println(patentNos);
+    }
+
+
 }

+ 5 - 2
src/main/java/cn/cslg/pas/service/business/es/EsPatentService.java

@@ -43,6 +43,7 @@ import co.elastic.clients.elasticsearch._types.query_dsl.QueryBuilders;
 import co.elastic.clients.elasticsearch.core.DeleteResponse;
 import co.elastic.clients.elasticsearch.core.SearchRequest;
 import co.elastic.clients.elasticsearch.core.SearchResponse;
+import co.elastic.clients.elasticsearch.core.search.FieldCollapse;
 import co.elastic.clients.elasticsearch.core.search.Hit;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
@@ -837,8 +838,10 @@ Query query2 =QueryBuilders.exists(i->i.field("project_id"));
          builder.source(sourceOptionsBuilder -> sourceOptionsBuilder
                  .filter(fieldSourceBuilder -> fieldSourceBuilder
                          .includes(reSources)));
-
-         builder.from(0).size(1000);
+     builder.from(0).size(1000);
+     FieldCollapse collapse = FieldCollapse.of(i -> i.field("project_id"));
+     builder.collapse(collapse);
+     builder.trackTotalHits(i -> i.enabled(true));
      SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
      List<Hit<Patent>> hits = response.hits().hits();
      if (hits != null && hits.size() > 0) {

+ 1 - 0
src/main/java/cn/cslg/pas/service/importPatent/ImportSinglePatentService.java

@@ -125,6 +125,7 @@ public class ImportSinglePatentService {
             if (patentWithIdVO != null) {
                 return patentWithIdVO;
             }
+            patentWithIdVO =new PatentWithIdVO();
             String patentId = esService.addPatent(patent);
             patentWithIdVO.setPatent(patent);
             patentWithIdVO.setId(patentId);

+ 1 - 1
src/main/resources/jsons/invalidReportProject.json

@@ -398,7 +398,7 @@
     "type":"String",
     "value":"rightHolderAgency",
     "field": "rightHolderAgency",
-    "sqlField": "rp.rightHolder_agency",
+    "sqlField": "rp.right_holder_agency",
     "sqlClass": "getComSql",
     "orderClass": "getComOrder",
     "groupClass":"getScenarioGroup",

+ 13 - 0
src/main/resources/jsons/reportProject.json

@@ -296,5 +296,18 @@
     "ifGroup": "true",
     "ifShow":"true",
     "ifAsCondition": "true"
+  },
+  {"name":"证据库",
+    "type":"String",
+    "value":"proofName",
+    "field": "proofName",
+    "sqlField": "p.id",
+    "sqlClass": "getProofNameSql",
+    "orderClass": "getProjectScenarioOrder",
+    "groupClass":"getScenarioGroup",
+    "ifSearch":"true",
+    "ifGroup": "false",
+    "ifShow":"false",
+    "ifAsCondition": "true"
   }
 ]