diff --git a/src/main/java/com/xly/service/XlyErpService.java b/src/main/java/com/xly/service/XlyErpService.java
index 2c84bcb..05e9f18 100644
--- a/src/main/java/com/xly/service/XlyErpService.java
+++ b/src/main/java/com/xly/service/XlyErpService.java
@@ -37,6 +37,7 @@ import dev.langchain4j.service.MemoryId;
import dev.langchain4j.service.V;
import io.milvus.v2.common.DataType;
import io.milvus.v2.service.collection.request.CreateCollectionReq;
+import jnr.ffi.annotations.In;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DateFormatUtils;
@@ -227,6 +228,25 @@ public class XlyErpService {
}
}
+ /****
+ * @Author 钱豹
+ * @Date 8:54 2026/4/7
+ * @Param [userInput, userId, sUserName, sBrandsId, sSubsidiaryId, sUserType, authorization]
+ * @return com.xly.entity.AiResponseDTO
+ * @Description 换一换
+ **/
+ public AiResponseDTO change(String userId ,
+ String sUserName ,
+ String sBrandsId ,
+ String sSubsidiaryId,
+ String sUserType,
+ String authorization,
+ Integer iPage) {
+ // 1. 初始化用户场景会话(权限内场景)
+ UserSceneSession session = userSceneSessionService.getUserSceneSession(userId,sUserName,sBrandsId,sSubsidiaryId,sUserType,authorization);
+ return getChange(session, iPage);
+ }
+
/***
* @Author 钱豹
* @Date 19:18 2026/1/27
@@ -270,7 +290,7 @@ public class XlyErpService {
// 3. 未选场景:先展示场景选择界面,处理用户序号选择
if (!session.isSceneSelected() && ValiDataUtil.me().isPureNumber(input)){
// 3.1 尝试处理场景选择(输入序号则匹配,否则展示选择提示)
- return handleSceneSelect(userId, input, session);
+ return handleSceneSelect(userId, input, session,1);
}
// 4. 构建Agent,执行业务交互,如果返回为null,说明大模型没有判段出场景,必判断出后才能继续
ErpAiAgent aiAgent = createErpAiAgent(userId, input, session);
@@ -942,7 +962,7 @@ public class XlyErpService {
/**
* 处理用户场景选择:输入序号→匹配场景→更新会话状态
*/
- private AiResponseDTO handleSceneSelect(String userId, String userInput, UserSceneSession session) {
+ private AiResponseDTO handleSceneSelect(String userId, String userInput, UserSceneSession session,Integer page) {
// 1. 尝试根据序号匹配场景
boolean selectSuccess = session.selectSceneByInput(userInput);
String sceneName = StrUtil.EMPTY;
@@ -954,20 +974,34 @@ public class XlyErpService {
UserSceneSessionService.ERP_AGENT_CACHE.remove(userId);
//清除记忆缓存
operableChatMemoryProvider.clearSpecifiedMemory(userId);
- StringBuffer aiText = new StringBuffer().append("
")
- .append("
")
- .append("智能体选择成功! 现在可以问她相关问题(如" + String.join("、", session.getCurrentScene().getSSceneContext()) + ")")
- .append("
");
- //插入用户常用问题
- aiText.append(getSelectAgent(session,1));
- sceneName = ObjectUtil.isNotEmpty(session.getCurrentScene())?session.getCurrentScene().getSSceneName():StrUtil.EMPTY;
- methodName = ObjectUtil.isNotEmpty(session.getCurrentTool())?session.getCurrentTool().getSControlName():StrUtil.EMPTY;
- return AiResponseDTO.builder().sSceneName(sceneName).sMethodName(methodName).aiText(aiText.toString()).sSceneName(session.getCurrentScene().getSSceneName()).build();
+ return getChange( session, page);
} else {
// 3. 选择失败:重新展示场景选择提示
return AiResponseDTO.builder().sSceneName(sceneName).sMethodName(methodName).aiText(session.buildSceneSelectHint()).build();
}
}
+
+ /***
+ * @Author 钱豹
+ * @Date 9:00 2026/4/7
+ * @Param [session, page]
+ * @return com.xly.entity.AiResponseDTO
+ * @Description 用户输入数字换一换
+ **/
+ private AiResponseDTO getChange(UserSceneSession session,Integer page){
+ StringBuffer aiText = new StringBuffer().append("
")
+ .append("
")
+ .append("智能体选择成功! 现在可以问她相关问题(如" + String.join("、", session.getCurrentScene().getSSceneContext()) + ")")
+ .append("
");
+ //插入用户常用问题
+ aiText.append(getSelectAgent(session,page));
+ String sceneName = ObjectUtil.isNotEmpty(session.getCurrentScene())?session.getCurrentScene().getSSceneName():StrUtil.EMPTY;
+ String methodName = ObjectUtil.isNotEmpty(session.getCurrentTool())?session.getCurrentTool().getSControlName():StrUtil.EMPTY;
+ return AiResponseDTO.builder().sSceneName(sceneName).sMethodName(methodName).aiText(aiText.toString()).sSceneName(session.getCurrentScene().getSSceneName()).build();
+ }
+
+
+
/***
* @Author 钱豹
* @Date 11:45 2026/3/13
@@ -978,18 +1012,24 @@ public class XlyErpService {
private String getSelectAgent(UserSceneSession session,Integer page){
List
toolMetaAll = session.getAuthTool();
String sSceneId = session.getCurrentScene().getSId();
+ String sToolId = session.getCurrentTool().getSId();
toolMetaAll = toolMetaAll.stream().filter(to-> to.getSSceneId().equals(session.getCurrentScene().getSId())).collect(Collectors.toUnmodifiableList());
StringBuffer sb = new StringBuffer();
- List> firstFive = ListUtil.split(toolMetaAll,5);
- List showList;
- if(ObjectUtil.isNotEmpty(firstFive.get(page-1))){
- showList = firstFive.get(page-1);
- page = page + 1;
- }else{
- showList = firstFive.get(0);
- page = 1;
+ //获取用户最近五次问题
+ List
");
- sb.append("
");
+ sb.append("
");
sb.append(" 换一换").append("
");
return sb.toString();
}
+ /***
+ * @Author 钱豹
+ * @Date 10:02 2026/4/7
+ * @Param [sLoginId, sSceneId, sMethodId, iPageNum, iPageSize]
+ * @return java.util.List
>
+ * @Description 换一换获取最近数据
+ **/
+ private List