diff --git a/core/backend/src/main/java/io/dataease/service/chart/ViewPluginBaseServiceImpl.java b/core/backend/src/main/java/io/dataease/service/chart/ViewPluginBaseServiceImpl.java index d08c15ea22..1eb7390c9b 100644 --- a/core/backend/src/main/java/io/dataease/service/chart/ViewPluginBaseServiceImpl.java +++ b/core/backend/src/main/java/io/dataease/service/chart/ViewPluginBaseServiceImpl.java @@ -90,10 +90,10 @@ public class ViewPluginBaseServiceImpl implements ViewPluginBaseService { SQLObj sqlObj = BeanUtils.copyBean(SQLObj.builder().build(), pluginViewSQL); FilterTreeObj filters = gson.fromJson(gson.toJson(obj), FilterTreeObj.class); logger.info("filters:" + gson.toJson(filters)); - Object o1 = execProviderMethod(queryProvider, methodName, sqlObj, filters); + Object o1 = execProviderSuperMethod(queryProvider, methodName, sqlObj, filters); logger.info("o1:" + (String) o1); Object o; - if ((o = execProviderMethod(queryProvider, methodName, sqlObj, filters)) != null) { + if ((o = execProviderSuperMethod(queryProvider, methodName, sqlObj, filters)) != null) { logger.info("customWhereString:" + o); return (String) o; } @@ -231,6 +231,18 @@ public class ViewPluginBaseServiceImpl implements ViewPluginBaseService { return null; } + private Object execProviderSuperMethod(QueryProvider queryProvider, String methodName, Object... args) { + Method[] declaredMethods = queryProvider.getClass().getMethods(); + for (int i = 0; i < declaredMethods.length; i++) { + Method method = declaredMethods[i]; + if (StringUtils.equals(method.getName(), methodName)) { + method.setAccessible(true); + return ReflectUtil.invoke(queryProvider, method, args); + } + } + return null; + } + private Object execProviderMethod(QueryProvider queryProvider, String methodName, Object... args) { Method[] declaredMethods = queryProvider.getClass().getDeclaredMethods(); for (int i = 0; i < declaredMethods.length; i++) {