Commit bba86a8d013525c28e0be4f4d183d2221696cbad

Authored by qianbao
1 parent f0318b7b

添加未清选择 改成动态引导语

src/main/java/com/xly/entity/UserSceneSession.java
@@ -66,6 +66,14 @@ public class UserSceneSession { @@ -66,6 +66,14 @@ public class UserSceneSession {
66 private Boolean bCleanMemory = false; 66 private Boolean bCleanMemory = false;
67 67
68 private Map<String, Object> args; 68 private Map<String, Object> args;
  69 + /***
  70 + * @Author 钱豹
  71 + * @Date 12:40 2026/7/7
  72 + * @Param
  73 + * @return
  74 + * @Description 报价data
  75 + **/
  76 + private Map<String, Object> quoData;
69 77
70 /** 78 /**
71 * 数据库类型 X: 向量库 S:数据库 79 * 数据库类型 X: 向量库 S:数据库
src/main/java/com/xly/service/XlyErpService.java
@@ -459,6 +459,22 @@ public class XlyErpService { @@ -459,6 +459,22 @@ public class XlyErpService {
459 session.setSceneSelected(false); 459 session.setSceneSelected(false);
460 session.setBCleanMemory(false); 460 session.setBCleanMemory(false);
461 session.setCurrentRowData(null); 461 session.setCurrentRowData(null);
  462 + session.setQuoData(null);
  463 +
  464 + ToolMeta toolMeta = session.getCurrentTool();
  465 + List<ParamRule> data = toolMeta.getParamRuleListAll();
  466 + List<ParamRule> data2 = toolMeta.getParamRuleList();
  467 + List<ParamRule> data3 = toolMeta.getParamRuleListCheck();
  468 + data = data.stream().filter(one-> !one.getBDynamicParam()).collect(Collectors.toUnmodifiableList());
  469 + data2 = data2.stream().filter(one-> !one.getBDynamicParam()).collect(Collectors.toUnmodifiableList());
  470 + data2 = data2.stream().filter(one-> !one.getBDynamicParam()).collect(Collectors.toUnmodifiableList());
  471 + data3 = data3.stream().filter(one-> !one.getBDynamicParam()).collect(Collectors.toUnmodifiableList());
  472 + toolMeta.setDynamicParamRule(null);
  473 + toolMeta.setParamRuleListAll(data);
  474 + toolMeta.setParamRuleList(data2);
  475 + toolMeta.setParamRuleListCheck(data3);
  476 + session.setCurrentTool(toolMeta);
  477 + session.setCurrentRowData(null);
462 UserSceneSessionService.USER_SCENE_SESSION_CACHE.put(userId, session); 478 UserSceneSessionService.USER_SCENE_SESSION_CACHE.put(userId, session);
463 // 清空Agent缓存 479 // 清空Agent缓存
464 UserSceneSessionService.ERP_AGENT_CACHE.remove(userId); 480 UserSceneSessionService.ERP_AGENT_CACHE.remove(userId);
src/main/java/com/xly/tool/DynamicToolProvider.java
@@ -248,8 +248,13 @@ public class DynamicToolProvider implements ToolProvider { @@ -248,8 +248,13 @@ public class DynamicToolProvider implements ToolProvider {
248 if(ObjectUtil.isNotEmpty(askMsg)){ 248 if(ObjectUtil.isNotEmpty(askMsg)){
249 return askMsg; 249 return askMsg;
250 } 250 }
  251 + String resp = StrUtil.EMPTY;
  252 + if(session.getCurrentTool().getBQuo()){
  253 + resp = JSONUtil.toJsonStr(session.getQuoData());
  254 + }else{
  255 + resp = JSONUtil.toJsonStr(args) ;
  256 + }
251 // ====================== 返回时带终止指令 ====================== 257 // ====================== 返回时带终止指令 ======================
252 - String resp = JSONUtil.toJsonStr(args) ;  
253 return String.valueOf(successResult(toolExecutionRequest, resp)); 258 return String.valueOf(successResult(toolExecutionRequest, resp));
254 }; 259 };
255 } 260 }
@@ -694,8 +699,8 @@ public class DynamicToolProvider implements ToolProvider { @@ -694,8 +699,8 @@ public class DynamicToolProvider implements ToolProvider {
694 List<Map<String,Object>> sAll = (List<Map<String, Object>>) data.get("sAll"); 699 List<Map<String,Object>> sAll = (List<Map<String, Object>>) data.get("sAll");
695 List<Map<String,Object>> sEmpty = sAll.stream().filter(one-> BooleanUtil.toBoolean(one.get("bEmpty").toString()) 700 List<Map<String,Object>> sEmpty = sAll.stream().filter(one-> BooleanUtil.toBoolean(one.get("bEmpty").toString())
696 && (ObjectUtil.isEmpty(one.get("sValue")) || "0".equals(one.get("sValue")))).collect(Collectors.toUnmodifiableList()); 701 && (ObjectUtil.isEmpty(one.get("sValue")) || "0".equals(one.get("sValue")))).collect(Collectors.toUnmodifiableList());
  702 + data.remove("sAll");
697 if(ObjectUtil.isNotEmpty(sEmpty)){ 703 if(ObjectUtil.isNotEmpty(sEmpty)){
698 - data.remove("sAll");  
699 data.put("bTs",true); 704 data.put("bTs",true);
700 String askMsg = JSONObject.toJSONString(data); 705 String askMsg = JSONObject.toJSONString(data);
701 session.setSFunPrompts(askMsg); 706 session.setSFunPrompts(askMsg);
@@ -704,6 +709,7 @@ public class DynamicToolProvider implements ToolProvider { @@ -704,6 +709,7 @@ public class DynamicToolProvider implements ToolProvider {
704 // 需要提问用户 → 抛异常停止循环 709 // 需要提问用户 → 抛异常停止循环
705 return askMsg; 710 return askMsg;
706 } 711 }
  712 + session.setQuoData(data);
707 }else{ 713 }else{
708 List<String> missing = checkRequiredParams(args, meta.getParamRuleListCheck()); 714 List<String> missing = checkRequiredParams(args, meta.getParamRuleListCheck());
709 if (!missing.isEmpty()) { 715 if (!missing.isEmpty()) {
@@ -740,8 +746,7 @@ public class DynamicToolProvider implements ToolProvider { @@ -740,8 +746,7 @@ public class DynamicToolProvider implements ToolProvider {
740 || 6== meta.getIBizType() 746 || 6== meta.getIBizType()
741 || 7== meta.getIBizType() 747 || 7== meta.getIBizType()
742 || 8== meta.getIBizType() 748 || 8== meta.getIBizType()
743 - )  
744 - { 749 + ){
745 //根据获取的参数获取数据 750 //根据获取的参数获取数据
746 List<String> missingAfter = checkConfirmAfterParam(args, paramRuleData); 751 List<String> missingAfter = checkConfirmAfterParam(args, paramRuleData);
747 if (!missingAfter.isEmpty()) { 752 if (!missingAfter.isEmpty()) {
@@ -1382,21 +1387,6 @@ public class DynamicToolProvider implements ToolProvider { @@ -1382,21 +1387,6 @@ public class DynamicToolProvider implements ToolProvider {
1382 .filter(Objects::nonNull) 1387 .filter(Objects::nonNull)
1383 .collect(Collectors.toList()); 1388 .collect(Collectors.toList());
1384 } 1389 }
1385 -  
1386 - private String buildConfirmUserMessage(ToolMeta meta, Map<String, Object> args) {  
1387 - StringBuilder markdown = new StringBuilder();  
1388 - markdown.append("参数提取如下:\n\n");  
1389 - List<ParamRule> paramRuleData = meta.getParamRuleList();  
1390 - paramRuleData.forEach(one->{  
1391 - if(ObjectUtil.isNotEmpty(args.get(one.getSParam()))){  
1392 - markdown.append("- **").append(one.getSParam()).append("**: ").append(args.get(one.getSParam())).append("\n");  
1393 - }  
1394 - });  
1395 - markdown.append("\n---\n");  
1396 - appendConfirm(markdown,meta.getSControlName());  
1397 - return markdown.toString();  
1398 - }  
1399 -  
1400 private String buildAskUserMessage(ToolMeta meta, List<String> missing,Map<String,Object> arg) { 1390 private String buildAskUserMessage(ToolMeta meta, List<String> missing,Map<String,Object> arg) {
1401 StringBuilder sb = new StringBuilder(); 1391 StringBuilder sb = new StringBuilder();
1402 sb.append("缺少参数请补全:\n"); 1392 sb.append("缺少参数请补全:\n");