From ea5a55deffa6d33048a1f7e03b71424c8add5e31 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 08 五月 2026 14:51:52 +0800
Subject: [PATCH] feat(ai): 实现采购多文件分析附件存储与历史回显功能
---
src/main/java/com/ruoyi/ai/service/impl/AiChatSessionServiceImpl.java | 23 ++++++++++++++++++++++-
1 files changed, 22 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/ruoyi/ai/service/impl/AiChatSessionServiceImpl.java b/src/main/java/com/ruoyi/ai/service/impl/AiChatSessionServiceImpl.java
index 6d8c945..0ea436d 100644
--- a/src/main/java/com/ruoyi/ai/service/impl/AiChatSessionServiceImpl.java
+++ b/src/main/java/com/ruoyi/ai/service/impl/AiChatSessionServiceImpl.java
@@ -114,7 +114,10 @@
return new LinkedList<>();
}
List<ChatMessage> messages = mongoChatMemoryStore.getMessages(memoryId);
- return messages.stream().map(this::convertMessage).collect(Collectors.toList());
+ List<AiChatMessageDto> messageDtos = messages.stream().map(this::convertMessage).collect(Collectors.toList());
+ List<List<String>> analyzeFilePathGroups = mongoChatMemoryStore.getAnalyzeFilePathGroups(memoryId);
+ attachAnalyzeFilePaths(messageDtos, analyzeFilePathGroups);
+ return messageDtos;
}
@Override
@@ -188,4 +191,22 @@
}
return new AiChatMessageDto("unknown", String.valueOf(message));
}
+
+ private void attachAnalyzeFilePaths(List<AiChatMessageDto> messages,
+ List<List<String>> analyzeFilePathGroups) {
+ if (StringUtils.isEmpty(messages) || StringUtils.isEmpty(analyzeFilePathGroups)) {
+ return;
+ }
+ int analyzeIndex = 0;
+ for (AiChatMessageDto message : messages) {
+ if (!"user".equals(message.getRole()) || analyzeIndex >= analyzeFilePathGroups.size()) {
+ continue;
+ }
+ List<String> filePaths = analyzeFilePathGroups.get(analyzeIndex);
+ if (!StringUtils.isEmpty(filePaths)) {
+ message.setFilePaths(filePaths);
+ }
+ analyzeIndex++;
+ }
+ }
}
--
Gitblit v1.9.3