From 438b5375d320af6d18f3f34cb26b803200e1ca81 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 23 Sep 2025 14:51:32 +0800
Subject: [PATCH] feat(ai): 新增公司工作流配置查询功能

---
 src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkStreamServiceImpl.java         |    8 +++++++-
 src/main/java/cc/mrbird/febs/ai/service/impl/AiCompanyWorkflowServiceImpl.java          |   28 ++++++++++++++++++++++++++++
 src/main/java/cc/mrbird/febs/ai/service/AiCompanyWorkflowService.java                   |   10 ++++++++++
 src/main/java/cc/mrbird/febs/ai/strategy/Impl/AliApplicationLlmStrategyServiceImpl.java |   14 +++++++++++++-
 4 files changed, 58 insertions(+), 2 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiCompanyWorkflowService.java b/src/main/java/cc/mrbird/febs/ai/service/AiCompanyWorkflowService.java
new file mode 100644
index 0000000..735e021
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/ai/service/AiCompanyWorkflowService.java
@@ -0,0 +1,10 @@
+package cc.mrbird.febs.ai.service;
+
+import cc.mrbird.febs.ai.entity.AiCompanyWorkflow;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+public interface AiCompanyWorkflowService extends IService<AiCompanyWorkflow> {
+
+    AiCompanyWorkflow getByTypeAndCompanyId(Integer type, String companyId);
+
+}
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiCompanyWorkflowServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiCompanyWorkflowServiceImpl.java
new file mode 100644
index 0000000..50238d2
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiCompanyWorkflowServiceImpl.java
@@ -0,0 +1,28 @@
+package cc.mrbird.febs.ai.service.impl;
+
+import cc.mrbird.febs.ai.entity.AiCompanyWorkflow;
+import cc.mrbird.febs.ai.mapper.AiCompanyWorkflowMapper;
+import cc.mrbird.febs.ai.service.AiCompanyWorkflowService;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+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.stereotype.Service;
+
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class AiCompanyWorkflowServiceImpl extends ServiceImpl<AiCompanyWorkflowMapper, AiCompanyWorkflow> implements AiCompanyWorkflowService {
+
+    private final AiCompanyWorkflowMapper aiCompanyWorkflowMapper;
+
+    @Override
+    public AiCompanyWorkflow getByTypeAndCompanyId(Integer type, String companyId) {
+        LambdaQueryWrapper<AiCompanyWorkflow> query = Wrappers.lambdaQuery(AiCompanyWorkflow.class);
+        query.eq(AiCompanyWorkflow::getType, type);
+        query.eq(AiCompanyWorkflow::getCompanyId, companyId);
+        query.last("limit 1");
+        return aiCompanyWorkflowMapper.selectOne(query);
+    }
+}
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkStreamServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkStreamServiceImpl.java
index 03f253e..e355029 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkStreamServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkStreamServiceImpl.java
@@ -53,6 +53,7 @@
     private final AiProductQuestionService aiProductQuestionService;
     private final LlmStrategyFactory llmStrategyFactory;
     private final AiService aiService;
+    private final AiCompanyWorkflowService aiCompanyWorkflowService;
 
 
     @Override
@@ -252,7 +253,12 @@
         llmStrategyDtoList.add(llmStrategyDto);
         llmStrategyDto = this.buildLlmStrategyDtoList(answer, 2);
         llmStrategyDtoList.add(llmStrategyDto);
-        llmStrategyDto = this.buildLlmStrategyDtoList(String.valueOf(type), 4);
+
+        AiCompanyWorkflow aiCompanyWorkflow = aiCompanyWorkflowService.getByTypeAndCompanyId(type,aiMemberTalk.getCompanyId());
+        if (ObjectUtil.isNull(aiCompanyWorkflow)){
+            throw new FebsException("工作流配置异常,请联系管理员");
+        }
+        llmStrategyDto = this.buildLlmStrategyDtoList(aiCompanyWorkflow.getCode(), 4);
         llmStrategyDtoList.add(llmStrategyDto);
 
         String modelName = LlmStrategyEnum.getName(aiService.getSystemSetAiType());
diff --git a/src/main/java/cc/mrbird/febs/ai/strategy/Impl/AliApplicationLlmStrategyServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/strategy/Impl/AliApplicationLlmStrategyServiceImpl.java
index 6b5f9e7..95441da 100644
--- a/src/main/java/cc/mrbird/febs/ai/strategy/Impl/AliApplicationLlmStrategyServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/strategy/Impl/AliApplicationLlmStrategyServiceImpl.java
@@ -83,6 +83,17 @@
         return appId;
     }
 
+    private String getAppIdV2(List<LlmStrategyDto> dto) {
+        String appId = null;
+        for (LlmStrategyDto dtoItem : dto){
+            if (StrUtil.equals(dtoItem.getRole(),Role.TOOL.getValue())){
+                appId = dtoItem.getContent();
+                break;
+            }
+        }
+        return appId;
+    }
+
     @Override
     public FebsResponse llmInvokeNonStreaming(List<LlmStrategyDto> dto) {
         return null;
@@ -166,7 +177,8 @@
         }
         HashMap prompt = getPrompt(dto);
         String query = getQuery(dto);
-        String appId = getAppId(dto);
+//        String appId = getAppId(dto);
+        String appId = getAppIdV2(dto);
         if (prompt == null || prompt.size() == 0){
             throw new FebsException("百炼工作流初始化异常");
         }

--
Gitblit v1.9.1