From ffbf67765d2ae447d62333eed85100a15685d781 Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期四, 19 三月 2026 12:27:59 +0800
Subject: [PATCH] #AI.内置工具治理
---
rsf-server/src/main/java/com/vincent/rsf/server/ai/tool/RsfWmsTaskTools.java | 39 +++++++++++++++++++--------------------
1 files changed, 19 insertions(+), 20 deletions(-)
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/ai/tool/RsfWmsTaskTools.java b/rsf-server/src/main/java/com/vincent/rsf/server/ai/tool/RsfWmsTaskTools.java
index ba6d622..0aecbf7 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/ai/tool/RsfWmsTaskTools.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/ai/tool/RsfWmsTaskTools.java
@@ -21,7 +21,7 @@
private final TaskService taskService;
- @Tool(name = "rsf_query_task_list", description = "鎸変换鍔″彿銆佺姸鎬併�佷换鍔$被鍨嬨�佹簮绔欑偣銆佺洰鏍囩珯鐐圭瓑鏉′欢鏌ヨ浠诲姟鍒楄〃銆�")
+ @Tool(name = "rsf_query_task_list", description = "鍙鏌ヨ宸ュ叿銆傛寜浠诲姟鍙枫�佺姸鎬併�佷换鍔$被鍨嬨�佹簮绔欑偣銆佺洰鏍囩珯鐐圭瓑鏉′欢鏌ヨ浠诲姟鍒楄〃銆�")
public List<Map<String, Object>> queryTaskList(
@ToolParam(description = "浠诲姟鍙凤紝鍙ā绯婃煡璇�") String taskCode,
@ToolParam(description = "浠诲姟鐘舵�侊紝鍙��") Integer taskStatus,
@@ -29,10 +29,17 @@
@ToolParam(description = "婧愮珯鐐癸紝鍙��") String orgSite,
@ToolParam(description = "鐩爣绔欑偣锛屽彲閫�") String targSite,
@ToolParam(description = "杩斿洖鏉℃暟锛岄粯璁� 10锛屾渶澶� 50") Integer limit) {
+ String normalizedTaskCode = BuiltinToolGovernanceSupport.sanitizeQueryText(taskCode, "浠诲姟鍙�", 64);
+ String normalizedOrgSite = BuiltinToolGovernanceSupport.sanitizeQueryText(orgSite, "婧愮珯鐐�", 64);
+ String normalizedTargSite = BuiltinToolGovernanceSupport.sanitizeQueryText(targSite, "鐩爣绔欑偣", 64);
+ BuiltinToolGovernanceSupport.requireAnyFilter("浠诲姟鍒楄〃鏌ヨ鑷冲皯闇�瑕佹彁渚涗竴涓繃婊ゆ潯浠�",
+ normalizedTaskCode, normalizedOrgSite, normalizedTargSite,
+ taskStatus == null ? null : String.valueOf(taskStatus),
+ taskType == null ? null : String.valueOf(taskType));
LambdaQueryWrapper<Task> queryWrapper = new LambdaQueryWrapper<>();
- int finalLimit = normalizeLimit(limit, 10, 50);
- if (StringUtils.hasText(taskCode)) {
- queryWrapper.like(Task::getTaskCode, taskCode);
+ int finalLimit = BuiltinToolGovernanceSupport.normalizeLimit(limit, 10, 50);
+ if (StringUtils.hasText(normalizedTaskCode)) {
+ queryWrapper.like(Task::getTaskCode, normalizedTaskCode);
}
if (taskStatus != null) {
queryWrapper.eq(Task::getTaskStatus, taskStatus);
@@ -40,11 +47,11 @@
if (taskType != null) {
queryWrapper.eq(Task::getTaskType, taskType);
}
- if (StringUtils.hasText(orgSite)) {
- queryWrapper.eq(Task::getOrgSite, orgSite);
+ if (StringUtils.hasText(normalizedOrgSite)) {
+ queryWrapper.eq(Task::getOrgSite, normalizedOrgSite);
}
- if (StringUtils.hasText(targSite)) {
- queryWrapper.eq(Task::getTargSite, targSite);
+ if (StringUtils.hasText(normalizedTargSite)) {
+ queryWrapper.eq(Task::getTargSite, normalizedTargSite);
}
queryWrapper.orderByDesc(Task::getCreateTime).last("LIMIT " + finalLimit);
List<Task> tasks = taskService.list(queryWrapper);
@@ -55,18 +62,19 @@
return result;
}
- @Tool(name = "rsf_query_task_detail", description = "鏍规嵁浠诲姟 ID 鎴栦换鍔″彿鏌ヨ浠诲姟璇︽儏銆�")
+ @Tool(name = "rsf_query_task_detail", description = "鍙鏌ヨ宸ュ叿銆傛牴鎹换鍔� ID 鎴栦换鍔″彿鏌ヨ浠诲姟璇︽儏銆�")
public Map<String, Object> queryTaskDetail(
@ToolParam(description = "浠诲姟 ID") Long taskId,
@ToolParam(description = "浠诲姟鍙�") String taskCode) {
- if (taskId == null && !StringUtils.hasText(taskCode)) {
+ String normalizedTaskCode = BuiltinToolGovernanceSupport.sanitizeQueryText(taskCode, "浠诲姟鍙�", 64);
+ if (taskId == null && !StringUtils.hasText(normalizedTaskCode)) {
throw new CoolException("浠诲姟 ID 鍜屼换鍔″彿鑷冲皯闇�瑕佹彁渚涗竴涓�");
}
Task task;
if (taskId != null) {
task = taskService.getById(taskId);
} else {
- task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskCode, taskCode));
+ task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getTaskCode, normalizedTaskCode));
}
if (task == null) {
throw new CoolException("鏈煡璇㈠埌浠诲姟");
@@ -111,13 +119,4 @@
return item;
}
- private int normalizeLimit(Integer limit, int defaultValue, int maxValue) {
- if (limit == null) {
- return defaultValue;
- }
- if (limit < 1 || limit > maxValue) {
- throw new CoolException("limit 蹇呴』鍦� 1 鍒� " + maxValue + " 涔嬮棿");
- }
- return limit;
- }
}
--
Gitblit v1.9.1