From 5e1670170c18cf31b8491e0609bf0178c29227f2 Mon Sep 17 00:00:00 2001
From: 6c <420680616@qq.com>
Date: 星期五, 31 十月 2025 09:32:00 +0800
Subject: [PATCH] Merge branch 'dev' of http://nonxin.cn:8090/r/product/product-server-report/V2.0.0 into dev
---
src/main/java/com/product/server/report/service/DataListReportService.java | 20 +++++++++++++++++---
1 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/product/server/report/service/DataListReportService.java b/src/main/java/com/product/server/report/service/DataListReportService.java
index adc1c2b..2ddefa8 100644
--- a/src/main/java/com/product/server/report/service/DataListReportService.java
+++ b/src/main/java/com/product/server/report/service/DataListReportService.java
@@ -19,6 +19,7 @@
import com.product.core.service.support.AbstractBaseService;
import com.product.core.service.support.QueryFilterService;
import com.product.core.spring.context.SpringMVCContextHolder;
+import com.product.core.util.ReflectUtil;
import com.product.module.data.service.SystemDataExportService;
import com.product.server.report.config.CmnConst;
import com.product.server.report.config.ReportCode;
@@ -992,11 +993,24 @@
Object result;
String value;
try {
- result = BaseUtil.executeExpression(executeContent);
+ String reg = "\\w+\\.\\w+\\((\\w+)?((,\\w+)*)?\\)";
+ if (executeContent.matches(reg)) {
+ int split1 = executeContent.indexOf(".");
+ int split2 = executeContent.indexOf("(");
+ String beanName = executeContent.substring(0, split1);
+ String methodName = executeContent.substring(split1 + 1, split2);
+ String paramStr = executeContent.substring(split2 + 1, executeContent.length() - 1);
+ if (StringUtils.isEmpty(paramStr)) {
+ result = ReflectUtil.invoke(beanName, methodName, new Object[]{});
+ } else {
+ result = ReflectUtil.invoke(beanName, methodName, Arrays.asList(paramStr.split(",")).toArray());
+ }
+ } else {
+ result = BaseUtil.executeExpression(executeContent);
+ }
value = result.toString();
} catch (Exception e) {
- SpringMVCContextHolder.getSystemLogger().error(e);
- value = "";
+ throw new BaseException(ReportCode.APPLY_SQL_FAIL.getValue(), ReportCode.APPLY_SQL_FAIL.getText() + e.getMessage());
}
sqlText = sqlText.replace(suitContent, value);
}
--
Gitblit v1.9.2