Commit bba86a8d013525c28e0be4f4d183d2221696cbad

Authored by qianbao
1 parent f0318b7b

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

src/main/java/com/xly/entity/UserSceneSession.java
... ... @@ -66,6 +66,14 @@ public class UserSceneSession {
66 66 private Boolean bCleanMemory = false;
67 67  
68 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 79 * 数据库类型 X: 向量库 S:数据库
... ...
src/main/java/com/xly/service/XlyErpService.java
... ... @@ -459,6 +459,22 @@ public class XlyErpService {
459 459 session.setSceneSelected(false);
460 460 session.setBCleanMemory(false);
461 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 478 UserSceneSessionService.USER_SCENE_SESSION_CACHE.put(userId, session);
463 479 // 清空Agent缓存
464 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 248 if(ObjectUtil.isNotEmpty(askMsg)){
249 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 258 return String.valueOf(successResult(toolExecutionRequest, resp));
254 259 };
255 260 }
... ... @@ -694,8 +699,8 @@ public class DynamicToolProvider implements ToolProvider {
694 699 List<Map<String,Object>> sAll = (List<Map<String, Object>>) data.get("sAll");
695 700 List<Map<String,Object>> sEmpty = sAll.stream().filter(one-> BooleanUtil.toBoolean(one.get("bEmpty").toString())
696 701 && (ObjectUtil.isEmpty(one.get("sValue")) || "0".equals(one.get("sValue")))).collect(Collectors.toUnmodifiableList());
  702 + data.remove("sAll");
697 703 if(ObjectUtil.isNotEmpty(sEmpty)){
698   - data.remove("sAll");
699 704 data.put("bTs",true);
700 705 String askMsg = JSONObject.toJSONString(data);
701 706 session.setSFunPrompts(askMsg);
... ... @@ -704,6 +709,7 @@ public class DynamicToolProvider implements ToolProvider {
704 709 // 需要提问用户 → 抛异常停止循环
705 710 return askMsg;
706 711 }
  712 + session.setQuoData(data);
707 713 }else{
708 714 List<String> missing = checkRequiredParams(args, meta.getParamRuleListCheck());
709 715 if (!missing.isEmpty()) {
... ... @@ -740,8 +746,7 @@ public class DynamicToolProvider implements ToolProvider {
740 746 || 6== meta.getIBizType()
741 747 || 7== meta.getIBizType()
742 748 || 8== meta.getIBizType()
743   - )
744   - {
  749 + ){
745 750 //根据获取的参数获取数据
746 751 List<String> missingAfter = checkConfirmAfterParam(args, paramRuleData);
747 752 if (!missingAfter.isEmpty()) {
... ... @@ -1382,21 +1387,6 @@ public class DynamicToolProvider implements ToolProvider {
1382 1387 .filter(Objects::nonNull)
1383 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 1390 private String buildAskUserMessage(ToolMeta meta, List<String> missing,Map<String,Object> arg) {
1401 1391 StringBuilder sb = new StringBuilder();
1402 1392 sb.append("缺少参数请补全:\n");
... ...