Sfoglia il codice sorgente

新增根据专利号patentNo获取拆分后的权要接口(供报告系统拆分特征调用)

chendayu 2 anni fa
parent
commit
3a14713c97

+ 8 - 0
PAS/src/main/java/cn/cslg/pas/controller/PatentRightController.java

@@ -3,6 +3,7 @@ package cn.cslg.pas.controller;
 import cn.cslg.pas.common.TreeNode;
 import cn.cslg.pas.common.core.base.Constants;
 import cn.cslg.pas.common.utils.Response;
+import cn.cslg.pas.domain.PatentRight;
 import cn.cslg.pas.service.PatentRightService;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
@@ -36,5 +37,12 @@ public class PatentRightController {
         return Response.ok(treeNodes);
     }
 
+    @Operation(summary = "获得拆分后的权要")
+    @GetMapping("/formatPatentRights")
+    public Response formatPatentRights(String patentNo) {
+        List<PatentRight> patentRights = patentRightService.formatPatentRights(patentNo);
+        return Response.ok(patentRights);
+    }
+
 
 }

+ 47 - 0
PAS/src/main/java/cn/cslg/pas/service/PatentRightService.java

@@ -16,6 +16,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
@@ -545,6 +546,52 @@ public class PatentRightService extends ServiceImpl<PatentRightMapper, PatentRig
 
     }
 
+    /**
+     * 给原始权要进行拆分
+     *
+     * @param patentNo 专利号
+     * @return 返回拆分后的权要
+     */
+    public List<PatentRight> formatPatentRights(String patentNo) {
+        Patent patent = patentService.getByPatentNo(patentNo);
+        if (patent == null) {
+            patent = new Patent();
+        }
+        LambdaQueryWrapper<PatentRight> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(PatentRight::getPatentId, patent.getId());
+        queryWrapper.orderByAsc(PatentRight::getSort);
+        List<PatentRight> patentRights = this.list(queryWrapper);
+
+        //装载权要原文
+        PatentRightParams params = new PatentRightParams();
+        params.setPatentId(patent.getId());
+        params.setPatentNo(patentNo);
+        //对获得的权利要求集合,判断集合元素个数若为1则为原文文本;若大于1则为已经拆分了的多个权要文本,此时就将其合并回原文文本
+        if (patentRights.size() == 1) {
+            params.setContent(patentRights.get(0).getContent());
+        } else if (patentRights.size() > 1) {
+            StringBuilder contentBuilder = new StringBuilder();
+            patentRights.forEach(patentRight -> {
+                contentBuilder.append(patentRight.getContent()).append("\n");
+            });
+            params.setContent(contentBuilder + "");
+        }
+
+        //调用拆分权要工厂类方法,返回对应该国家专利的拆分权要方法的对象
+        PatentRightSplitService obj = getPatentRightSplitServiceObj(patent.getPatentNo());
+        //对象调用拆分权要方法,返回处理过的(经过拆分、理出主附权要、理出层级关系的)权要集合
+        List<PatentRightContent> patentRightContents = obj.formatPatentRight(params);
+
+        List<PatentRight> finalPatentRights = new ArrayList<>();
+        patentRightContents.forEach(patentRightContent -> {
+            PatentRight patentRight = new PatentRight();
+            BeanUtils.copyProperties(patentRightContent, patentRight);
+            finalPatentRights.add(patentRight);
+        });
+
+        return finalPatentRights;
+    }
+
 
     public PatentRightSplitService getPatentRightSplitServiceObj(String patentNo) {
         String country = patentNo.substring(0, 2);