Procházet zdrojové kódy

完成查询权要树接口

chendayu před 2 roky
rodič
revize
36941d0fd1

+ 10 - 11
PAS/src/main/java/cn/cslg/pas/service/patentRightSplit/PatentRightSplitENService.java

@@ -2,7 +2,6 @@ package cn.cslg.pas.service.patentRightSplit;
 
 import cn.cslg.pas.common.PatentRightContent;
 import cn.cslg.pas.common.model.params.PatentRightParams;
-import cn.cslg.pas.domain.PatentRight;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
@@ -53,6 +52,7 @@ public class PatentRightSplitENService implements PatentRightSplitService {
             String regex1 = "claim [0-9]+";
             String regex2 = "claims [0-9]+ or [0-9]+";
             String regex3 = "any preceding claim";
+            String regex4 = "claims [0-9]+ to [0-9]+";
             for (int i = 0; i < strs.length; i++) {
                 //创建权要对象装载当前权要
                 PatentRightContent patentRightContent = new PatentRightContent()
@@ -69,30 +69,29 @@ public class PatentRightSplitENService implements PatentRightSplitService {
                     Matcher matcher1 = Pattern.compile(regex1).matcher(strs[i]);
                     Matcher matcher2 = Pattern.compile(regex2).matcher(strs[i]);
                     Matcher matcher3 = Pattern.compile(regex3).matcher(strs[i]);
+                    Matcher matcher4 = Pattern.compile(regex4).matcher(strs[i]);
                     if (matcher2.find()) {  //"claims 2 or 3"
                         String parentNum = matcher2.group().substring(matcher2.group().indexOf("claims") + 7);  //"2 or 3"
-                        String[] parentNumStrs = new String[0];
-                        if (parentNum.contains(" or ")) {
-                            parentNumStrs = parentNum.split(" or ");  //[2, 3]
-                        }
-
+                        String[] parentNumStrs = parentNum.split(" or ");  //[2, 3]
                         for (String parentNumStr : parentNumStrs) {
                             parentSorts.add(Integer.parseInt(parentNumStr) - 1);
                         }
-
-                        patentRightContent.setParentSorts(parentSorts);
-
+                    } else if (matcher4.find()) {
+                        String parentNum = matcher4.group().substring(matcher4.group().indexOf("claims") + 7);
+                        String[] parentNumStrs = parentNum.split(" to ");  //[2, 5]
+                        for (int i1 = Integer.parseInt(parentNumStrs[0]); i1 <= Integer.parseInt(parentNumStrs[parentNumStrs.length - 1]); i1++) {
+                            parentSorts.add(i1 - 1);
+                        }
                     } else if (matcher1.find()) {
                         String parentNum = matcher1.group().substring(matcher1.group().indexOf("claim") + 6);
                         int parentSort = Integer.parseInt(parentNum) - 1;
                         parentSorts.add(parentSort);
-                        patentRightContent.setParentSorts(parentSorts);
                     } else if (matcher3.find()) {
                         for (int sort = 0; sort < i; sort++) {
                             parentSorts.add(sort);
                         }
-                        patentRightContent.setParentSorts(parentSorts);
                     }
+                    patentRightContent.setParentSorts(parentSorts);
                 } else {
                     //否则该权要为主权要
                     parentSorts.add(-1);

+ 5 - 10
PAS/src/main/java/cn/cslg/pas/service/patentRightSplit/PatentRightSplitJPService.java

@@ -1,7 +1,7 @@
 //package cn.cslg.pas.service.patentRightSplit;
 //
+//import cn.cslg.pas.common.PatentRightContent;
 //import cn.cslg.pas.common.model.params.PatentRightParams;
-//import cn.cslg.pas.domain.PatentRight;
 //import org.springframework.stereotype.Service;
 //
 //import java.util.ArrayList;
@@ -19,18 +19,13 @@
 //public class PatentRightSplitJPService implements PatentRightSplitService {
 //
 //    @Override
-//    public List<PatentRight> formatPatentRight(PatentRightParams params) {
+//    public List<PatentRightContent> formatPatentRight(PatentRightParams params) {
 //        try {
 //            //创建一个权要集合,用于返回结果
-//            ArrayList<PatentRight> patentRights = new ArrayList<>();
+//            ArrayList<PatentRightContent> patentRightContents = new ArrayList<>();
 //            //原文
 //            String content = params.getContent();
 //
-//            //将原文从"1"截取到末尾(为了去除首行"声称的是:\n")
-////            if (!content.equals("") && content.contains("声称的是") && content.contains("1")) {
-////                content = content.substring(content.indexOf("1"));
-////            }
-//
 //            //第1步:拆分权要原文 ↓
 //            //将原文和译文的所有换行符 "\r\n"和"\n" 替换成特殊符号 "##@@&&",这样可以使得全文连在一起,其次再根据特殊符号##@@&&拆分权要
 //            content = content.replace("\r\n", "##@@&&").replace("\n", "##@@&&");
@@ -58,14 +53,14 @@
 //            String regex2 = "权利要求[0-9]+[至或~-]+[0-9]+";
 //            for (int i = 0; i < strs.length; i++) {
 //                //创建权要对象装载当前权要
-//                PatentRight patentRight = new PatentRight()
+//                PatentRightContent patentRightContent = new PatentRightContent()
 //                        .setContent(strs[i])
 //                        .setSort(i);
 //
 //                //判断若该权要有逗号(即超过一句话)并且它第一句话中有"权利要求"4个字 或者 该权要没有逗号(即只有一句话),并且它有"权利要求"4个字,则该权要类型为附属权要
 //                if ((strs[i].contains(",") && strs[i].substring(0, strs[i].indexOf(",")).contains("权利要求")) || (!strs[i].contains(",") && strs[i].contains("权利要求"))) {
 //                    //则该权要类型为附属权要
-//                    patentRight.setType(0);
+//                    patentRightContent.setType(0);
 //
 //                    Matcher matcher1 = Pattern.compile(regex1).matcher(strs[i]);
 //                    Matcher matcher2 = Pattern.compile(regex2).matcher(strs[i]);

+ 3 - 0
PAS/src/test/java/cn/cslg/pas/service/PatentRightSplitCNServiceTests.java

@@ -14,6 +14,9 @@ import java.util.List;
  *
  * @author chenyu
  * @date 2023/8/30
+ *
+ *
+ *
  */
 @SpringBootTest
 public class PatentRightSplitCNServiceTests {

Rozdílová data souboru nebyla zobrazena, protože soubor je příliš velký
+ 27 - 1
PAS/src/test/java/cn/cslg/pas/service/PatentRightSplitENServiceTests.java


+ 138 - 0
PAS/src/test/java/cn/cslg/pas/service/PatentRightSplitJPServiceTests.java

@@ -0,0 +1,138 @@
+//package cn.cslg.pas.service;
+//
+//import cn.cslg.pas.common.PatentRightContent;
+//import cn.cslg.pas.common.model.params.PatentRightParams;
+//import cn.cslg.pas.service.patentRightSplit.PatentRightSplitENService;
+//import cn.cslg.pas.service.patentRightSplit.PatentRightSplitJPService;
+//import org.junit.jupiter.api.Test;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.boot.test.context.SpringBootTest;
+//
+//import java.util.List;
+//
+///**
+// * @author chenyu
+// * @date 2023/8/30
+// */
+//@SpringBootTest
+//public class PatentRightSplitJPServiceTests {
+//    @Autowired
+//    private PatentRightSplitJPService patentRightSplitJPService;
+//
+//    @Test
+//    void testFormatPatentRight() {
+//        PatentRightParams params = new PatentRightParams();
+//        params.setContent("【請求項1】\n" +
+//                "複数の電源と;\n" +
+//                "各々が前記電源の1つに関連し、前記関連する電源の性能データを収集する複数の監視モジュールと;\n" +
+//                "各々が前記監視モジュールの1つに関連し、前記性能データを送信する複数の送信機と;\n" +
+//                "各々が前記送信機の1つに関連し、タイマーの初期化からの経過時間に応じて送信イベントを制御する複数のコントローラと\n" +
+//                "を具えていることを特徴とする分散型DC電力設備用監視システム。\n" +
+//                "【請求項2】\n" +
+//                "前記電源の各々が電力線に接続され、前記送信機の各々が前記性能データを前記電力線上で送信することを特徴とする請求項1に記載の監視システム。\n" +
+//                "【請求項3】\n" +
+//                "前記監視モジュールの各々が、\n" +
+//                "電流データを収集する電流測定モジュールと;\n" +
+//                "電圧データを収集する電圧測定モジュールと\n" +
+//                "を具えていることを特徴とする請求項1に記載の監視システム。\n" +
+//                "【請求項4】\n" +
+//                "前記監視モジュールの各々がさらに、前記電源における温度データを検出するための温度センサモジュールを具えていることを特徴とする請求項1に記載の監視システム。\n" +
+//                "【請求項5】\n" +
+//                "前記監視モジュールの各々がさらに、前記電源におけるアーク放電を検出するためのアーク検出モジュールを具えていることを特徴とする請求項1に記載の監視システム。\n" +
+//                "【請求項6】\n" +
+//                "前記監視モジュールの各々がさらにタイマーを具え、前記コントローラの各々が、当該コントローラに関連する電源が電力を発生し始める際にいつも、前記タイマーを初期化することを特徴とする請求項1に記載の監視システム。\n" +
+//                "【請求項7】\n" +
+//                "前記監視モジュールの各々がさらに、送信イベントを制御するための時間増分を変化させるための乱数発生器を具えていることを特徴とする請求項6に記載の監視システム。\n" +
+//                "【請求項8】\n" +
+//                "さらに、タイマーの初期化以後に累積した前記性能データを記憶するメモリを具えていることを特徴とする請求項1に記載の監視システム。\n" +
+//                "【請求項9】\n" +
+//                "さらに、\n" +
+//                "中央分析ステーションと;\n" +
+//                "前記性能データを前記監視モジュールから受信し、前記性能データを前記中央分析ステーションに送信する通信変換器と\n" +
+//                "を具えていることを特徴とする請求項8に記載の監視システム。\n" +
+//                "【請求項10】\n" +
+//                "前記中央分析ステーションが故障検出を分析することを特徴とする請求項9に記載の監視システム。\n" +
+//                "【請求項11】\n" +
+//                "前記中央分析ステーションが、測定した電力を、外部データに基づいて決定した予想電力と比較することを特徴とする請求項9に記載の監視システム。\n" +
+//                "【請求項12】\n" +
+//                "前記電源の各々が太陽電池パネルを具えていることを特徴とする請求項9に記載の監視システム。\n" +
+//                "【請求項13】\n" +
+//                "前記電源が、直列接続された太陽電池パネルのストリングを具えていることを特徴とする請求項9に記載の監視システム。\n" +
+//                "【請求項14】\n" +
+//                "前記監視モジュールの各々が、電流データを収集する電流測定モジュールを具えていることを特徴とする請求項13に記載の監視システム。\n" +
+//                "【請求項15】\n" +
+//                "さらに、\n" +
+//                "前記直列接続された太陽電池パネルのストリングのすべてを並列結合するための接続ボックスと;\n" +
+//                "前記並列結合の電圧を測定する電圧測定モジュールと\n" +
+//                "を具えていることを特徴とする請求項14に記載の監視システム。\n" +
+//                "【請求項16】\n" +
+//                "さらに、\n" +
+//                "前記直列接続された太陽電池パネルのストリングのすべてを並列結合するための接続ボックスと;\n" +
+//                "前記並列結合の全電流を測定する全電流測定モジュールと\n" +
+//                "を具えていることを特徴とする請求項14に記載の監視システム。\n" +
+//                "【請求項17】\n" +
+//                "前記監視システムが、前記全電流測定モジュールの出力を、前記監視モジュールの各々の前記電流測定モジュールの出力の合計値と比較することによって、電流漏洩を検出することを特徴とする請求項16に記載の監視システム。\n" +
+//                "【請求項18】\n" +
+//                "DC電源を含む分散型電力ハーベストシステムを監視する方法において、\n" +
+//                "前記DC電源の各々における電力発生を個別に監視し、前記DC電源の1つにおける電力発生がしきい値を超えると、\n" +
+//                "当該DC電源用のタイマーを初期化するステップと;\n" +
+//                "当該DC電源の性能データを収集するステップと;\n" +
+//                "前記タイマーの計時期間の経過を監視し、前記計時期間が設定時間に達すると、前記収集した性能データを中央分析ステーションに送信するステップと\n" +
+//                "を実行することを特徴とする監視方法。\n" +
+//                "【請求項19】\n" +
+//                "前記性能データを収集するステップがさらに、前記性能データをメモリに記憶することを含み、前記収集した性能データを送信するステップが、前記タイマーの初期化以後に累積した前記収集した性能データを送信することを含むことを特徴とする請求項18に記載の方法。\n" +
+//                "【請求項20】\n" +
+//                "前記性能データを収集するステップが、前記DC電源の出力電圧及び出力電流の少なくとも一方を測定することを含むことを特徴とする請求項19に記載の方法。\n" +
+//                "【請求項21】\n" +
+//                "さらに、前記DC電源の少なくとも1つの性能データを、同じ前記DC電源の異なる時刻における性能データと比較することを含むことを特徴とする請求項19に記載の方法。\n" +
+//                "【請求項22】\n" +
+//                "さらに、前記DC電源の少なくとも1つの性能データを、当該DC電源に隣接する前記DC電源の性能データと比較することを含むことを特徴とする請求項19に記載の方法。\n" +
+//                "【請求項23】\n" +
+//                "さらに、前記DC電源の少なくとも1つの性能データを、外部パラメータに基づく予想性能データと比較することを含むことを特徴とする請求項19に記載の方法。\n" +
+//                "【請求項24】\n" +
+//                "前記計時時間の経過を監視するステップがさらに、前記設定時間にランダム性を導入することを含むことを特徴とする請求項19に記載の方法。\n" +
+//                "【請求項25】\n" +
+//                "さらに、複数の太陽電池パネルを直列接続して前記DC電源の各々を形成することを含むことを特徴とする請求項19に記載の方法。\n" +
+//                "【請求項26】\n" +
+//                "前記収集した性能データを送信するステップが、前記収集した性能データを電力線上で送信することを含むことを特徴とする請求項19に記載の方法。\n" +
+//                "【請求項27】\n" +
+//                "直列接続されてパネルのストリングを形成する複数の太陽電池パネルであって、このパネルのストリングが電力線に結合されている複数の太陽電池パネルと;\n" +
+//                "前記パネルのストリングに接続され、前記太陽電池パネルの少なくとも1つの性能データを収集する少なくとも1つの監視モジュールとを具えた分散型DC電力ハーベストシステムであって、\n" +
+//                "前記監視モジュールが、\n" +
+//                "前記性能データを電力線上で送信する送信機と;\n" +
+//                "タイマーの初期化からの経過時間に応じて前記送信機の送信イベントを制御するコントローラとを具え、\n" +
+//                "前記分散型DC電力ハーベストシステムがさらに、\n" +
+//                "前記電力線に結合され、前記送信機からの前記性能データを受信する受信ステーションを具えていることを特徴とする分散型DC電力ハーベストシステム。\n" +
+//                "【請求項28】\n" +
+//                "前記受信ステーションがさらに、電圧センサと電流センサの少なくとも一方を具えていることを特徴とする請求項27に記載のシステム。\n" +
+//                "【請求項29】\n" +
+//                "前記受信ステーションがさらに、少なくとも前記電力線から受信した前記性能データを中継する送信機を具えていることを特徴とする請求項27に記載のシステム。\n" +
+//                "【請求項30】\n" +
+//                "前記送信機が無線送信機を具えていることを特徴とする請求項29に記載のシステム。\n" +
+//                "【請求項31】\n" +
+//                "前記送信機が、\n" +
+//                "前記太陽電池パネルの少なくとも1つの電流データを収集する電流測定モジュール、及び、\n" +
+//                "前記太陽電池パネルの少なくとも1つの電圧データを収集する電圧測定モジュール\n" +
+//                "の少なくとも一方を具えていることを特徴とする請求項27に記載のシステム。\n" +
+//                "【請求項32】\n" +
+//                "前記監視モジュールがさらに、温度センサを具えていることを特徴とする請求項27に記載のシステム。\n" +
+//                "【請求項33】\n" +
+//                "前記監視モジュールがさらにタイマーを具え、前記コントローラが、当該コントローラに関連するパネルが電力を発生し始めるといつも、前記タイマーを初期化することを特徴とする請求項27に記載のシステム。\n" +
+//                "【請求項34】\n" +
+//                "前記監視モジュールがさらに、送信イベントを制御するための時間増分を変化させるための乱数発生器を具えていることを特徴とする請求項27に記載のシステム。\n" +
+//                "【請求項35】\n" +
+//                "さらに、前記タイマーの初期化以後に累積した前記性能データを記憶するメモリを具えていることを特徴とする請求項33に記載のシステム。\n" +
+//                "【請求項36】\n" +
+//                "さらに、\n" +
+//                "1つ以上の追加的なパネルのストリングと;\n" +
+//                "前記パネルのストリング及び前記追加的なパネルのストリングを並列結合するための接続ボックスと;\n" +
+//                "前記並列結合の電圧を測定する電圧測定モジュールと\n" +
+//                "を具えていることを特徴とする請求項27に記載のシステム。");
+//
+//        List<PatentRightContent> patentRightContents = patentRightSplitJPService.formatPatentRight(params);
+//
+//
+//    }
+//
+//
+//}