Browse Source

20251127 专利状态监控

lrj 1 week ago
parent
commit
63360780d0

+ 1 - 0
src/main/java/cn/cslg/pas/domain/dify/GetInstructAnswerDTO.java

@@ -14,4 +14,5 @@ public class GetInstructAnswerDTO {
     private String mainClaim;
     private String filePath;
     private Integer userId;
+    private String parentClaims;
 }

+ 27 - 38
src/main/java/cn/cslg/pas/service/dify/GenerateInstructionService.java

@@ -165,7 +165,6 @@ public class GenerateInstructionService {
             mainClaimStr = StringUtils.join(reMainPatentClaims, "\n");
         }
         String mainClaim = mainClaimStr;
-        String claimStrs = StringUtils.join(reMainPatentClaims, "\n");
 
         AtomicBoolean businessCompleted = new AtomicBoolean(false);
         Flux<String> heartbeatFlux = Flux.interval(Duration.ofSeconds(5))
@@ -182,7 +181,7 @@ public class GenerateInstructionService {
                     System.out.println("心跳流已停止,原因: " + signal);
                 });
 
-        Flux<String> businessFlux =    Flux.create(emitter -> {
+        Flux<String> businessFlux = Flux.create(emitter -> {
             new Thread(() -> {
                 try {
 
@@ -192,7 +191,7 @@ public class GenerateInstructionService {
                     String conversionId = "";
                     String title = "";
                     //生成标题和技术领域
-                    GenerateInstructAnswerVO generateInstructAnswerVO = this.genrateTechcialAndTitle(userId, emitter, mainClaim, background, filePath, claimStrs);
+                    GenerateInstructAnswerVO generateInstructAnswerVO = this.genrateTechcialAndTitle(userId, emitter, mainClaim, background, filePath, claim);
                     conversionId = generateInstructAnswerVO.getConversionId();
                     title = generateInstructAnswerVO.getTitle();
                     String technical = generateInstructAnswerVO.getTechnical();
@@ -309,15 +308,15 @@ public class GenerateInstructionService {
         } else {
             message = getFluxMessage(FIELD_TITLE, MESSAGE, generateTechnicalVO.getTitle());
         }
-        System.out.println("message:"+message);
+        System.out.println("message:" + message);
         fluxSink.next(message);
         System.out.println("message: 发送成功");
         String endMessage = getFluxMessage(FIELD_TITLE, END, "");
         fluxSink.next(endMessage);
-        System.out.println("message:"+endMessage);
+        System.out.println("message:" + endMessage);
         String startMessage2 = getFluxMessage(FIELD_TECHNICAL, START, "");
         fluxSink.next(startMessage2);
-        System.out.println("message:"+startMessage2);
+        System.out.println("message:" + startMessage2);
         String message2 = "";
         if (ifError) {
             message2 = getFluxMessage(FIELD_TECHNICAL, ERROR, "生成技术领域异常");
@@ -325,42 +324,13 @@ public class GenerateInstructionService {
             message2 = getFluxMessage(FIELD_TECHNICAL, MESSAGE, generateTechnicalVO.getTechnical());
         }
         fluxSink.next(message2);
-        System.out.println("message:"+message2);
+        System.out.println("message:" + message2);
         String endMessage2 = getFluxMessage(FIELD_TECHNICAL, END, "");
         fluxSink.next(endMessage2);
 
         return generateInstructAnswerVO;
     }
 
-    /**
-     * 生成第一个权利要求解释
-     *
-     * @param rePatentClaim
-     * @return
-     */
-    public ClaimExplainVO getFirstImplementation(Integer userId, RePatentClaim rePatentClaim, String background, String conversationId) throws Exception {
-        ClaimExplainVO claimExplainVO = null;
-        try {
-            String claimContent = rePatentClaim.getContent();
-            GetInstructAnswerDTO getInstructAnswerDTO = new GetInstructAnswerDTO();
-            getInstructAnswerDTO.setClaim(claimContent);
-            getInstructAnswerDTO.setIndex(0);
-            getInstructAnswerDTO.setBackground(background);
-            getInstructAnswerDTO.setType("g&implementation");
-            getInstructAnswerDTO.setConversationId(conversationId);
-            getInstructAnswerDTO.setUserId(userId);
-            GenerateInstructAnswerVO generateInstructAnswerVO = this.getAnswerVO(getInstructAnswerDTO);
-            String answer = generateInstructAnswerVO.getAnswer();
-            claimExplainVO = JSONObject.parseObject(answer, ClaimExplainVO.class);
-
-
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-
-        return claimExplainVO;
-    }
-
 
     /**
      * 生成权要的具体实施方式
@@ -379,9 +349,11 @@ public class GenerateInstructionService {
         List<ImplementationMessage> implementationMessages = new ArrayList<>();
 
         List<ClaimExplainVO> claimExplainVOS = new ArrayList<>();
+        Map<Integer, String> map = new HashMap<>();
         for (int i = 0; i < rePatentClaims.size(); i++) {
             RePatentClaim rePatentClaim = rePatentClaims.get(i);
-
+            String parentSort = rePatentClaim.getParentSort();
+            Integer sort = rePatentClaim.getSort();
             ClaimExplainVO claimExplainVO = null;
 
             try {
@@ -391,14 +363,30 @@ public class GenerateInstructionService {
                 getInstructAnswerDTO.setClaim(claimContent);
                 getInstructAnswerDTO.setBackground(background);
                 getInstructAnswerDTO.setIndex(i);
-                getInstructAnswerDTO.setType("g&implementation");
+
                 getInstructAnswerDTO.setConversationId(conversationId);
                 getInstructAnswerDTO.setUserId(userId);
+
+                //处理独立权利要求
+                if (parentSort == null || parentSort.trim().equals("")||parentSort.equals("-1")) {
+                    getInstructAnswerDTO.setType("g&InExplain");
+                }
+                //处理从属权利要求
+                else {
+                    getInstructAnswerDTO.setType("g&Explain");
+                    List<Integer> sortLists = StringUtils.changeStringToInteger(parentSort, ",");
+                    StringBuilder stringBuilder = new StringBuilder();
+                    for (Integer s : sortLists) {
+                        stringBuilder.append(map.get(s));
+                    }
+                    getInstructAnswerDTO.setParentClaims(stringBuilder.toString());
+                }
                 GenerateInstructAnswerVO generateInstructAnswerVO = this.getAnswerVO(getInstructAnswerDTO);
                 String answer = generateInstructAnswerVO.getAnswer();
                 if (generateInstructAnswerVO.getConversionId() != null) {
                     mainVO.setConversionId(generateInstructAnswerVO.getConversionId());
                 }
+                map.put(sort, answer);
 
                 claimExplainVO = JSONObject.parseObject(answer, ClaimExplainVO.class);
 
@@ -507,6 +495,7 @@ public class GenerateInstructionService {
         map.put("claims", claims);
         map.put("main_claim", mainClaim);
         map.put("file_path", filePath);
+        map.put("parent_claims", getInstructAnswerDTO.getParentClaims());
         difyChatMessageDTO.setInputs(map);
         Integer cycle = 0;
         Boolean flag = false;

+ 1 - 1
src/main/resources/application-dev.yml

@@ -69,7 +69,7 @@ PASUrl: http://localhost:8879
 FMSUrl: http://192.168.2.24:8803
 WDUrl: http://1.116.113.26:81
 PythonUrl: http://192.168.2.24:8001
-FileDownloadUrl: http://192.168.2.24:8803/fileManager/downloadFile?fileId=f785dde5b96344e9a98563b6666b1da4
+FileDownloadUrl: http://192.168.2.24:8803/fileManager/downloadFile?fileId=
 FileSource: 1
 ES:
   patentVector: patent_vector