From 1c7f5c878e45e91d92a887fc916cc57672fe8824 Mon Sep 17 00:00:00 2001 From: yuance <182865460@qq.com> Date: Thu, 6 Nov 2025 17:57:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E4=B8=89=E9=87=8D=E4=B8=80?= =?UTF-8?q?=E5=A4=A7=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/AuditContent3Controller.java | 16 +++++++++++- .../service/AuditContent3TripleService.java | 2 +- .../impl/AuditContent3TripleServiceImpl.java | 26 +++++-------------- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/gxwebsoft/ai/controller/AuditContent3Controller.java b/src/main/java/com/gxwebsoft/ai/controller/AuditContent3Controller.java index f08b956..a73d8dc 100644 --- a/src/main/java/com/gxwebsoft/ai/controller/AuditContent3Controller.java +++ b/src/main/java/com/gxwebsoft/ai/controller/AuditContent3Controller.java @@ -11,6 +11,8 @@ import com.gxwebsoft.ai.utils.ExcelExportTool; import com.gxwebsoft.common.core.web.ApiResult; import com.gxwebsoft.common.core.web.BaseController; import com.gxwebsoft.common.system.entity.User; +import com.gxwebsoft.pwl.entity.PwlProjectLibrary; +import com.gxwebsoft.pwl.service.PwlProjectLibraryService; import com.gxwebsoft.ai.service.AiCloudDocService; import com.gxwebsoft.ai.service.AiCloudFileService; import com.gxwebsoft.ai.service.AuditContent3TripleService; @@ -51,6 +53,9 @@ public class AuditContent3Controller extends BaseController { @Autowired private KnowledgeBaseService knowledgeBaseService; + @Autowired + private PwlProjectLibraryService pwlProjectLibraryService; + /** * 生成三重一大制度对比分析表数据 */ @@ -59,6 +64,7 @@ public class AuditContent3Controller extends BaseController { public ApiResult generateTripleOneTable(@RequestBody AuditContentRequest request) { final User loginUser = getLoginUser(); String kbIdTmp = ""; + String libraryKbIds = ""; try { // 创建临时知识库(如果需要) @@ -66,11 +72,19 @@ public class AuditContent3Controller extends BaseController { kbIdTmp = createTempKnowledgeBase(request); } + // 提前查询项目库信息 + if (StrUtil.isNotBlank(request.getLibraryIds())) { + List idList = StrUtil.split(request.getLibraryIds(), ','); + List ret = pwlProjectLibraryService.list( + new LambdaQueryWrapper().in(PwlProjectLibrary::getId, idList)); + libraryKbIds = ret.stream().map(PwlProjectLibrary::getKbId).collect(Collectors.joining(",")); + } + // 生成三重一大制度对比分析表数据 String knowledgeBaseId = StrUtil.isNotBlank(kbIdTmp) ? kbIdTmp : request.getKbIds(); JSONObject result = auditContent3TripleService.generateTripleOneTableData( knowledgeBaseId, - request.getLibraryIds(), + libraryKbIds, request.getProjectLibrary(), loginUser.getUsername(), request.getHistory(), diff --git a/src/main/java/com/gxwebsoft/ai/service/AuditContent3TripleService.java b/src/main/java/com/gxwebsoft/ai/service/AuditContent3TripleService.java index fb8a838..dfd0032 100644 --- a/src/main/java/com/gxwebsoft/ai/service/AuditContent3TripleService.java +++ b/src/main/java/com/gxwebsoft/ai/service/AuditContent3TripleService.java @@ -10,6 +10,6 @@ public interface AuditContent3TripleService { /** * 生成三重一大制度对比分析表数据 */ - JSONObject generateTripleOneTableData(String kbIds, String libraryIds, String projectLibrary, + JSONObject generateTripleOneTableData(String kbIds, String libraryKbIds, String projectLibrary, String userName, String history, String suggestion); } \ No newline at end of file diff --git a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent3TripleServiceImpl.java b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent3TripleServiceImpl.java index 5d8ad51..64ed39f 100644 --- a/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent3TripleServiceImpl.java +++ b/src/main/java/com/gxwebsoft/ai/service/impl/AuditContent3TripleServiceImpl.java @@ -5,7 +5,6 @@ import com.aliyun.bailian20231229.models.RetrieveResponse; import com.aliyun.bailian20231229.models.RetrieveResponseBody; import com.aliyun.bailian20231229.models.RetrieveResponseBody.RetrieveResponseBodyData; import com.aliyun.bailian20231229.models.RetrieveResponseBody.RetrieveResponseBodyDataNodes; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.alibaba.fastjson.JSONArray; @@ -14,8 +13,6 @@ import com.gxwebsoft.ai.config.KnowledgeBaseConfig; import com.gxwebsoft.ai.factory.KnowledgeBaseClientFactory; import com.gxwebsoft.ai.service.AuditContent3TripleService; import com.gxwebsoft.ai.util.KnowledgeBaseUtil; -import com.gxwebsoft.pwl.entity.PwlProjectLibrary; -import com.gxwebsoft.pwl.service.PwlProjectLibraryService; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; @@ -27,7 +24,6 @@ import org.springframework.stereotype.Service; import java.util.*; import java.util.concurrent.CompletableFuture; -import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; @Slf4j @@ -40,9 +36,6 @@ public class AuditContent3TripleServiceImpl implements AuditContent3TripleServic @Autowired private KnowledgeBaseConfig config; - @Autowired - private PwlProjectLibraryService pwlProjectLibraryService; - // 工作流配置 private static final String TRIPLE_ONE_WORKFLOW_URL = "http://1.14.159.185:8180/v1/workflows/run"; private static final String TRIPLE_ONE_TOKEN = "Bearer app-tjXbmHDE6daMbYOT4O13ev2X"; @@ -120,10 +113,10 @@ public class AuditContent3TripleServiceImpl implements AuditContent3TripleServic } @Override - public JSONObject generateTripleOneTableData(String kbIds, String libraryIds, String projectLibrary, + public JSONObject generateTripleOneTableData(String kbIds, String libraryKbIds, String projectLibrary, String userName, String history, String suggestion) { log.info("开始生成三重一大制度对比分析表数据 - 用户: {}, kbIds: {}, libraryIds: {}, projectLibrary: {}", - userName, kbIds, libraryIds, projectLibrary); + userName, kbIds, libraryKbIds, projectLibrary); JSONObject result = new JSONObject(); long startTime = System.currentTimeMillis(); @@ -134,7 +127,7 @@ public class AuditContent3TripleServiceImpl implements AuditContent3TripleServic for (String category : CATEGORY_ORDER) { CompletableFuture future = generateCategoryDataAsync( - category, kbIds, libraryIds, projectLibrary, userName, history, suggestion + category, kbIds, libraryKbIds, projectLibrary, userName, history, suggestion ); futures.put(category, future); } @@ -182,7 +175,7 @@ public class AuditContent3TripleServiceImpl implements AuditContent3TripleServic * 异步生成单个分类的数据 */ @Async - public CompletableFuture generateCategoryDataAsync(String category, String kbIds, String libraryIds, + public CompletableFuture generateCategoryDataAsync(String category, String kbIds, String libraryKbIds, String projectLibrary, String userName, String history, String suggestion) { return CompletableFuture.supplyAsync(() -> { @@ -191,7 +184,7 @@ public class AuditContent3TripleServiceImpl implements AuditContent3TripleServic // 1. 为当前分类召回相关知识 Map> knowledgeSources = retrieveKnowledgeForCategory( - category, kbIds, libraryIds, projectLibrary + category, kbIds, libraryKbIds, projectLibrary ); // 2. 生成当前分类的数据 @@ -214,7 +207,7 @@ public class AuditContent3TripleServiceImpl implements AuditContent3TripleServic * 为单个分类检索相关知识 */ private Map> retrieveKnowledgeForCategory(String category, String kbIds, - String libraryIds, String projectLibrary) { + String libraryKbIds, String projectLibrary) { Map> knowledgeSources = new HashMap<>(); knowledgeSources.put("enterprise", new ArrayList<>()); knowledgeSources.put("regulation", new ArrayList<>()); @@ -233,12 +226,7 @@ public class AuditContent3TripleServiceImpl implements AuditContent3TripleServic } // 公共法律法规库检索 - if (StrUtil.isNotBlank(libraryIds)) { - List idList = StrUtil.split(libraryIds, ','); - List ret = pwlProjectLibraryService.list( - new LambdaQueryWrapper().in(PwlProjectLibrary::getId, idList)); - String libraryKbIds = ret.stream().map(PwlProjectLibrary::getKbId).collect(Collectors.joining(",")); - + if (StrUtil.isNotBlank(libraryKbIds)) { Arrays.stream(libraryKbIds.split(",")) .map(String::trim) .filter(StrUtil::isNotBlank)