diff --git a/backend/src/main/java/com/yfd/platform/qgc_env/wq/service/impl/EnvWqDataServiceImpl.java b/backend/src/main/java/com/yfd/platform/qgc_env/wq/service/impl/EnvWqDataServiceImpl.java index f4c224b2..b0e7efd7 100644 --- a/backend/src/main/java/com/yfd/platform/qgc_env/wq/service/impl/EnvWqDataServiceImpl.java +++ b/backend/src/main/java/com/yfd/platform/qgc_env/wq/service/impl/EnvWqDataServiceImpl.java @@ -1455,6 +1455,24 @@ public class EnvWqDataServiceImpl implements EnvWqDataService { case "contains": paramMap.put(key, "%" + filter.getValue() + "%"); return column + " LIKE #{map." + key + "}"; + case "in": { + List list = null; + if (filter.getValue() instanceof List l) { + list = l; + } else if (filter.getValue() instanceof Object[] arr) { + list = Arrays.asList(arr); + } + if (list != null && !list.isEmpty()) { + List placeholders = new ArrayList<>(); + for (Object item : list) { + String itemKey = "envWqParam" + indexHolder[0]++; + paramMap.put(itemKey, item); + placeholders.add("#{map." + itemKey + "}"); + } + return column + " IN (" + String.join(", ", placeholders) + ")"; + } + return ""; + } default: return ""; }