浏览代码

合并/外部专利

zero 1 年之前
父节点
当前提交
597c717182

+ 7 - 0
src/main/java/cn/cslg/pas/controller/PatentController.java

@@ -215,6 +215,13 @@ public class PatentController {
         return Response.success(allCountry);
     }
 
+    @Operation(summary = "获取国内省份列表查询")
+    @GetMapping("/getAllProvince")
+    public Response getAllProvince() {
+        List<GetAllCountryDTO> allCountry = mergePersonService.getAllProvince();
+        return Response.success(allCountry);
+    }
+
     //--------------------导出-----------------------
     @PostMapping("/exportPDFFirstPage")
     @Operation(summary = "导出专利PDF")

+ 55 - 31
src/main/java/cn/cslg/pas/service/business/MergePersonService.java

@@ -184,7 +184,7 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
     @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
     public Integer mergePersonAgain(MergePersonAgainVO vo) throws Exception {
         List<String> mergedNames = vo.getNeedMergedName();
-        List<String> mergeName = vo.getMergeName();
+        List<String> mergeName = vo.getMergedName();
         List<String> nameList = new ArrayList<>();
         if (!CollectionUtils.isEmpty(mergedNames)) {
             for (String mergedName : mergedNames) {
@@ -682,42 +682,46 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
     public Integer delMergePerson(MergePersonIdVO vo) throws IOException {
         Integer type = vo.getType();
         MergePerson mergePerson = mergePersonMapper.selectById(vo.getId());
-        String name = mergePerson.getName();
         if (ObjectUtil.isNotEmpty(mergePerson)) {
             LambdaQueryWrapper<MergePerson> wrapper = new LambdaQueryWrapper<MergePerson>()
                     .eq(BaseEntity::getId, vo.getId());
             this.remove(wrapper);
 
-            SearchRequest.Builder builder = new SearchRequest.Builder();
-            //设置查询索引
-            builder.index("patent");
-            List<Query> queries = new ArrayList<>();
-            if (type == 0) {
-                Query q1 = QueryBuilders.term(i -> i.field("merge_applicant.name.raw").value(name));
-                Query query1 = QueryBuilders.nested(i -> i.path("merge_applicant").query(q1));
-                Query q2 = QueryBuilders.term(i -> i.field("merge_right_holder.name.raw").value(name));
-                Query query2 = QueryBuilders.nested(i -> i.path("merge_right_holder").query(q2));
-                queries.add(query1);
-                queries.add(query2);
-            } else {
-                Query q = QueryBuilders.term(i -> i.field("merge_inventor.name.raw").value(name));
-                Query query3 = QueryBuilders.nested(i -> i.path("merge_inventor").query(q));
-                queries.add(query3);
-            }
-            Query query = QueryBuilders.bool(i -> i.must(queries));
-            builder.query(query);
-            SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
-            List<Hit<Patent>> hits = response.hits().hits();
-            Map<String, Patent> map = new HashMap<>();
-            for (Hit<Patent> hit : hits) {
-                String id = hit.id();
-                map.put(id, hit.source());
-            }
+            String name = mergePerson.getName();
+            String mergedName = mergePerson.getMergedName();
+            List<String> list = JSONArray.parseArray(mergedName, String.class);
+            if (!CollectionUtils.isEmpty(list)) {
+                SearchRequest.Builder builder = new SearchRequest.Builder();
+                //设置查询索引
+                builder.index("patent");
+                List<Query> queries = new ArrayList<>();
+                if (type == 0) {
+                    Query q1 = QueryBuilders.term(i -> i.field("merge_applicant.name.raw").value(name));
+                    Query query1 = QueryBuilders.nested(i -> i.path("merge_applicant").query(q1));
+                    Query q2 = QueryBuilders.term(i -> i.field("merge_right_holder.name.raw").value(name));
+                    Query query2 = QueryBuilders.nested(i -> i.path("merge_right_holder").query(q2));
+                    queries.add(query1);
+                    queries.add(query2);
+                } else {
+                    Query q = QueryBuilders.term(i -> i.field("merge_inventor.name.raw").value(name));
+                    Query query3 = QueryBuilders.nested(i -> i.path("merge_inventor").query(q));
+                    queries.add(query3);
+                }
+                Query query = QueryBuilders.bool(i -> i.must(queries));
+                builder.query(query);
+                SearchResponse<Patent> response = client.search(builder.build(), Patent.class);
+                List<Hit<Patent>> hits = response.hits().hits();
+                Map<String, Patent> map = new HashMap<>();
+                for (Hit<Patent> hit : hits) {
+                    String id = hit.id();
+                    map.put(id, hit.source());
+                }
 
-            if (!CollectionUtils.isEmpty(map)) {
-                for (String id : map.keySet()) {
-                    Patent patent = map.get(id);
-                    esService.delMergePerson(patent, id, type, mergePerson.getName());
+                if (!CollectionUtils.isEmpty(map)) {
+                    for (String id : map.keySet()) {
+                        Patent patent = map.get(id);
+                        esService.delMergePerson(patent, id, type, mergePerson.getName());
+                    }
                 }
             }
         }
@@ -743,4 +747,24 @@ public class MergePersonService extends ServiceImpl<MergePersonMapper, MergePers
         }
         return list;
     }
+
+    /**
+     * 获取国内省份列表查询
+     * @return
+     */
+    public List<GetAllCountryDTO> getAllProvince() {
+        List<GetAllCountryDTO> list = new ArrayList<>();
+        List<SystemDict> countries = systemDictMapper.selectList(new LambdaQueryWrapper<SystemDict>()
+                .eq(SystemDict::getType, "PROVINCE"));
+        if (!CollectionUtils.isEmpty(countries)) {
+            countries.forEach(county -> {
+                GetAllCountryDTO dto = new GetAllCountryDTO();
+                dto.setLabel(county.getLabel());
+                dto.setValue(county.getValue());
+                dto.setType(county.getType());
+                list.add(dto);
+            });
+        }
+        return list;
+    }
 }

+ 11 - 3
src/main/java/cn/cslg/pas/service/business/es/EsPatentService.java

@@ -21,6 +21,7 @@ import cn.cslg.pas.common.vo.business.PatentKinVO;
 import cn.cslg.pas.common.vo.business.PatentNoVO;
 import cn.cslg.pas.domain.es.*;
 import cn.cslg.pas.service.business.CommonService;
+import cn.cslg.pas.service.common.FileManagerService;
 import cn.cslg.pas.service.query.FormatQueryService;
 import co.elastic.clients.elasticsearch.ElasticsearchClient;
 import co.elastic.clients.elasticsearch._types.SortOrder;
@@ -34,6 +35,7 @@ import co.elastic.clients.elasticsearch.core.search.SourceConfigBuilders;
 import co.elastic.clients.elasticsearch.transform.Source;
 import com.alibaba.druid.sql.visitor.functions.If;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
@@ -56,6 +58,9 @@ public class EsPatentService {
     private final ElasticsearchClient client;
     private final FormatQueryService formatQueryService;
 
+    @Autowired
+    private FileManagerService fileManagerService;
+
     /**
      * 根据专利号查询专利详情
      *
@@ -176,10 +181,13 @@ public class EsPatentService {
      * @param appNo
      * @return
      */
-    public List<String> getFigure(String appNo) {
+    public List<String> getFigure(String appNo) throws IOException {
         List<String> list = new ArrayList<>();
-        String pictureFormat = FormatUtil.getPictureFormat(appNo);
-        list.add(pictureFormat);
+        String guids = fileManagerService.getPatentPictureGuids(appNo);
+        if (StringUtils.isNotEmpty(guids)) {
+            JSONObject jsonObject = JSONObject.parseObject(guids);
+            list = JSONArray.parseArray(jsonObject.get("data").toString(), String.class);
+        }
         return list;
     }
 

+ 27 - 10
src/main/java/cn/cslg/pas/service/common/FileManagerService.java

@@ -78,7 +78,7 @@ public class FileManagerService {
     }
 
     public List<String> uploadFileGetGuid(List<MultipartFile> multipartFiles) throws IOException {
-   String res= this.uploadFile(multipartFiles);
+        String res = this.uploadFile(multipartFiles);
         JSONObject jsonObject = JSONObject.parseObject(res);
         List<String> guids = JSONArray.parseArray(jsonObject.get("data").toString(), String.class);
         return guids;
@@ -145,15 +145,15 @@ public class FileManagerService {
         return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
     }
 
-    public String uploadFileWithGuid(File file ,String guid)  throws IOException {
+    public String uploadFileWithGuid(File file, String guid) throws IOException {
         MultipartBody.Builder multipartBodyBuilder = new MultipartBody.Builder()
                 .setType(MultipartBody.FORM);
-            //根据文件名获取文件的MIME类型
-            String mimeType = getMimeType(file.getPath());
-            multipartBodyBuilder.addFormDataPart("file", file.getName(), RequestBody.create(MediaType.parse(mimeType), file));
+        //根据文件名获取文件的MIME类型
+        String mimeType = getMimeType(file.getPath());
+        multipartBodyBuilder.addFormDataPart("file", file.getName(), RequestBody.create(MediaType.parse(mimeType), file));
         RequestBody requestBody = multipartBodyBuilder
                 .addFormDataPart("sourceId", String.valueOf(FileSource))
-                .addFormDataPart("fileGuid",guid)
+                .addFormDataPart("fileGuid", guid)
                 .build();
         OkHttpClient okHttpClient = new OkHttpClient.Builder()
                 .connectTimeout(60, TimeUnit.SECONDS)
@@ -167,15 +167,13 @@ public class FileManagerService {
         Response response = null;
         response = okHttpClient.newCall(request).execute();
         // 最后记得删除临时文件
-            FileUtils.deleteQuietly(file);
+        FileUtils.deleteQuietly(file);
 
         return Objects.requireNonNull(response.body()).string();
     }
 
     /**
      * 调用文件系统上传文件接口
-     *
-
      */
     public String uploadFile2(List<File> files) throws IOException {
 
@@ -206,10 +204,29 @@ public class FileManagerService {
         }
         return Objects.requireNonNull(response.body()).string();
     }
+
     public List<String> uploadFileGetGuid2(List<File> files) throws IOException {
-        String res= this.uploadFile2(files);
+        String res = this.uploadFile2(files);
         JSONObject jsonObject = JSONObject.parseObject(res);
         List<String> guids = JSONArray.parseArray(jsonObject.get("data").toString(), String.class);
         return guids;
     }
+
+    /**
+     * 调用文件系统获得专利图片的guid
+     *
+     * @param appNo 申请号
+     */
+    public String getPatentPictureGuids(String appNo) throws IOException {
+        OkHttpClient okHttpClient = new OkHttpClient.Builder()
+                .connectTimeout(60, TimeUnit.SECONDS)
+                .writeTimeout(60, TimeUnit.SECONDS)
+                .readTimeout(60, TimeUnit.SECONDS)
+                .build();
+        Request request = new Request.Builder()
+                .url(FMSUrl + "/fileManager/getPatentPictureGuids?appNo=" + appNo)
+                .get()
+                .build();
+        return Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
+    }
 }