Browse Source

20250415 dify功能修改

lrj 4 months ago
parent
commit
426655d129

+ 7 - 0
src/main/java/cn/cslg/pas/service/common/DifyService.java

@@ -7,9 +7,11 @@ import cn.cslg.pas.common.model.dify.GenerateClaimDTO;
 import cn.cslg.pas.common.model.dify.confessionSession.AddConfessionSessionDTO;
 import cn.cslg.pas.common.model.dify.confessionSession.UpdateConfessionSessionDTO;
 import cn.cslg.pas.common.utils.CacheUtils;
+import cn.cslg.pas.common.utils.ClaimUtils.ClaimSplitUtils;
 import cn.cslg.pas.common.utils.DataUtils;
 import cn.cslg.pas.common.utils.DateUtils;
 import cn.cslg.pas.common.utils.LoginUtils;
+import cn.cslg.pas.common.vo.PatentRightParams;
 import cn.cslg.pas.domain.business.TechnicalCase;
 import cn.cslg.pas.domain.dify.ConfessionSession;
 import cn.cslg.pas.domain.report.AssoProjectConfession;
@@ -329,6 +331,11 @@ public class DifyService {
 
     public List<Object> generateClaimExplain(GenerateClaimDTO generateClaimDTO) throws Exception {
         String claim = generateClaimDTO.getClaim();
+        PatentRightParams params =new PatentRightParams();
+        params.setCountry("CN");
+        params.setContent(claim);
+        params.setPatentNo("CN");
+        ClaimSplitUtils.formatPatentRight(params);
         DifyChatMessageDTO difyChatMessageDTO = new DifyChatMessageDTO();
         String userId = loginUtils.getId().toString();
         Map<String, Object> map = new HashMap<>();

+ 64 - 11
src/main/java/cn/cslg/pas/service/dify/GenerateInstructionService.java

@@ -1,25 +1,56 @@
 package cn.cslg.pas.service.dify;
 
+import cn.cslg.pas.common.model.dify.DifyChatMessageDTO;
+import cn.cslg.pas.common.model.dify.GenerateClaimDTO;
+import cn.cslg.pas.common.model.dify.confessionSession.AddConfessionSessionDTO;
 import cn.cslg.pas.common.utils.ClaimUtils.ClaimSplitUtils;
+import cn.cslg.pas.common.utils.DateUtils;
+import cn.cslg.pas.common.utils.FileUtils;
 import cn.cslg.pas.common.vo.PatentRightParams;
+import cn.cslg.pas.common.vo.RePatentClaim;
+import cn.cslg.pas.domain.business.ReportProject;
+import cn.cslg.pas.domain.business.ReportTemple;
+import cn.cslg.pas.exception.ExceptionEnum;
+import cn.cslg.pas.exception.XiaoShiException;
+import cn.cslg.pas.service.business.ReportTempleService;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.deepoove.poi.XWPFTemplate;
+import com.deepoove.poi.config.Configure;
+import com.google.gson.Gson;
+import okhttp3.MediaType;
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.RequestBody;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
+import java.io.IOException;
+import java.util.*;
+import java.util.concurrent.TimeUnit;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 @Service
 public class GenerateInstructionService {
-    public void generateContent(String claim){
-        PatentRightParams params =new PatentRightParams();
+    @Autowired
+    private ReportTempleService templeService;
+    @Autowired
+    private FileUtils fileUtils;
+
+    public void generateContent(String claim) {
+        PatentRightParams params = new PatentRightParams();
         params.setCountry("CN");
         params.setContent(claim);
         params.setPatentNo("CN");
-      ClaimSplitUtils.formatPatentRight(params);
+        List<RePatentClaim> rePatentClaims = ClaimSplitUtils.formatPatentRight(params);
+        rePatentClaims.forEach(item -> {
 
+        });
     }
 
-    public String getClaimContent(String claim){
+    public String getClaimContent(String claim) {
         // 正则表达式模式(注意 Java 中需要双反斜杠转义)
         String regex = "其特征在于[,。;!?、]+(.+)";
         Pattern pattern = Pattern.compile(regex);
@@ -28,17 +59,39 @@ public class GenerateInstructionService {
             // 提取第一个捕获组的内容(即括号内的部分)
             return matcher.group(1).trim();
         }
-        return "其中,"+claim; // 未找到匹配时返回空字符串
+        return "其中," + claim; // 未找到匹配时返回空字符串
 
     }
-    public String getMainClaimContent(String claim){
+
+    public String getMainClaimContent(String claim) {
         // 正则表达式模式(注意 Java 中需要双反斜杠转义)
         String regex1 = "^[0-9]+\\.[^0-9]+?";
-        String regex2="^\\[[0-9]+]";
-        String outPut1=claim.replaceAll(regex1,"");
-        String outPut2=outPut1.replaceAll(regex2,"");
-        return "为解决上述问题,本申请提出"+outPut2; // 未找到匹配时返回空字符串
+        String regex2 = "^\\[[0-9]+]";
+        String outPut1 = claim.replaceAll(regex1, "");
+        String outPut2 = outPut1.replaceAll(regex2, "");
+        return "为解决上述问题,本申请提出" + outPut2; // 未找到匹配时返回空字符串
+
+    }
 
+    private String a() {
+        Integer templeId = 1;
+        ReportTemple reportTemplate = templeService.getById(templeId);
+        String templateFilePath = fileUtils.getPath(reportTemplate.getTemplatePath());
+
+    }
+
+    private XWPFTemplate getTemplate(Integer projectId, String filePath) throws IOException {
+        //装载标的专利信息
+        XWPFTemplate template = null;
+        Map<String,Object> map =new HashMap<>();
+        try {
+            Configure configure = Configure.builder()
+                    .build();
+            template = XWPFTemplate.compile(filePath, configure).render(map);
+        } catch (Exception e) {
+            throw new XiaoShiException(ExceptionEnum.BUSINESS_ERROR, "未匹配到模版文件");
+        }
+        return template;
     }
 
 }