diff --git a/src/main/java/com/xly/entity/UserSceneSession.java b/src/main/java/com/xly/entity/UserSceneSession.java index 4b2c46f..7957225 100644 --- a/src/main/java/com/xly/entity/UserSceneSession.java +++ b/src/main/java/com/xly/entity/UserSceneSession.java @@ -66,6 +66,14 @@ public class UserSceneSession { private Boolean bCleanMemory = false; private Map args; + /*** + * @Author 钱豹 + * @Date 12:40 2026/7/7 + * @Param + * @return + * @Description 报价data + **/ + private Map quoData; /** * 数据库类型 X: 向量库 S:数据库 diff --git a/src/main/java/com/xly/service/XlyErpService.java b/src/main/java/com/xly/service/XlyErpService.java index 89db558..b26418e 100644 --- a/src/main/java/com/xly/service/XlyErpService.java +++ b/src/main/java/com/xly/service/XlyErpService.java @@ -459,6 +459,22 @@ public class XlyErpService { session.setSceneSelected(false); session.setBCleanMemory(false); session.setCurrentRowData(null); + session.setQuoData(null); + + ToolMeta toolMeta = session.getCurrentTool(); + List data = toolMeta.getParamRuleListAll(); + List data2 = toolMeta.getParamRuleList(); + List data3 = toolMeta.getParamRuleListCheck(); + data = data.stream().filter(one-> !one.getBDynamicParam()).collect(Collectors.toUnmodifiableList()); + data2 = data2.stream().filter(one-> !one.getBDynamicParam()).collect(Collectors.toUnmodifiableList()); + data2 = data2.stream().filter(one-> !one.getBDynamicParam()).collect(Collectors.toUnmodifiableList()); + data3 = data3.stream().filter(one-> !one.getBDynamicParam()).collect(Collectors.toUnmodifiableList()); + toolMeta.setDynamicParamRule(null); + toolMeta.setParamRuleListAll(data); + toolMeta.setParamRuleList(data2); + toolMeta.setParamRuleListCheck(data3); + session.setCurrentTool(toolMeta); + session.setCurrentRowData(null); UserSceneSessionService.USER_SCENE_SESSION_CACHE.put(userId, session); // 清空Agent缓存 UserSceneSessionService.ERP_AGENT_CACHE.remove(userId); diff --git a/src/main/java/com/xly/tool/DynamicToolProvider.java b/src/main/java/com/xly/tool/DynamicToolProvider.java index 6224da1..a2645e3 100644 --- a/src/main/java/com/xly/tool/DynamicToolProvider.java +++ b/src/main/java/com/xly/tool/DynamicToolProvider.java @@ -248,8 +248,13 @@ public class DynamicToolProvider implements ToolProvider { if(ObjectUtil.isNotEmpty(askMsg)){ return askMsg; } + String resp = StrUtil.EMPTY; + if(session.getCurrentTool().getBQuo()){ + resp = JSONUtil.toJsonStr(session.getQuoData()); + }else{ + resp = JSONUtil.toJsonStr(args) ; + } // ====================== 返回时带终止指令 ====================== - String resp = JSONUtil.toJsonStr(args) ; return String.valueOf(successResult(toolExecutionRequest, resp)); }; } @@ -694,8 +699,8 @@ public class DynamicToolProvider implements ToolProvider { List> sAll = (List>) data.get("sAll"); List> sEmpty = sAll.stream().filter(one-> BooleanUtil.toBoolean(one.get("bEmpty").toString()) && (ObjectUtil.isEmpty(one.get("sValue")) || "0".equals(one.get("sValue")))).collect(Collectors.toUnmodifiableList()); + data.remove("sAll"); if(ObjectUtil.isNotEmpty(sEmpty)){ - data.remove("sAll"); data.put("bTs",true); String askMsg = JSONObject.toJSONString(data); session.setSFunPrompts(askMsg); @@ -704,6 +709,7 @@ public class DynamicToolProvider implements ToolProvider { // 需要提问用户 → 抛异常停止循环 return askMsg; } + session.setQuoData(data); }else{ List missing = checkRequiredParams(args, meta.getParamRuleListCheck()); if (!missing.isEmpty()) { @@ -740,8 +746,7 @@ public class DynamicToolProvider implements ToolProvider { || 6== meta.getIBizType() || 7== meta.getIBizType() || 8== meta.getIBizType() - ) - { + ){ //根据获取的参数获取数据 List missingAfter = checkConfirmAfterParam(args, paramRuleData); if (!missingAfter.isEmpty()) { @@ -1382,21 +1387,6 @@ public class DynamicToolProvider implements ToolProvider { .filter(Objects::nonNull) .collect(Collectors.toList()); } - - private String buildConfirmUserMessage(ToolMeta meta, Map args) { - StringBuilder markdown = new StringBuilder(); - markdown.append("参数提取如下:\n\n"); - List paramRuleData = meta.getParamRuleList(); - paramRuleData.forEach(one->{ - if(ObjectUtil.isNotEmpty(args.get(one.getSParam()))){ - markdown.append("- **").append(one.getSParam()).append("**: ").append(args.get(one.getSParam())).append("\n"); - } - }); - markdown.append("\n---\n"); - appendConfirm(markdown,meta.getSControlName()); - return markdown.toString(); - } - private String buildAskUserMessage(ToolMeta meta, List missing,Map arg) { StringBuilder sb = new StringBuilder(); sb.append("缺少参数请补全:\n");