diff --git a/EasyExcel/pom.xml b/EasyExcel/pom.xml
index d8230d98b..7c07ee3f0 100644
--- a/EasyExcel/pom.xml
+++ b/EasyExcel/pom.xml
@@ -6,7 +6,7 @@
com.netease.lowcode.extensions
EasyExcel
- 2.4.1
+ 2.4.2
8
@@ -108,6 +108,10 @@
codewave-file-connector-library
1.0.3
+
+ org.projectlombok
+ lombok
+
@@ -118,7 +122,7 @@
1.7.1
false
- true
+
diff --git a/async_function_pool/pom.xml b/async_function_pool/pom.xml
index 82aaa31cb..68ca28d11 100644
--- a/async_function_pool/pom.xml
+++ b/async_function_pool/pom.xml
@@ -12,13 +12,13 @@
com.netease
async_function_pool
- 1.0.4
+ 1.1.0
8
8
UTF-8
- 3.3
+ 3.8
- 1.3.7
+ 1.4.0
8
@@ -113,38 +113,38 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
com.netease.lowcode
nasl-metadata-maven-plugin
1.4.1
false
- false
+ true
diff --git a/freemarker-tool/src/main/java/com/netease/lowcode/freemarker/util/FreeMarkerUtil.java b/freemarker-tool/src/main/java/com/netease/lowcode/freemarker/util/FreeMarkerUtil.java
index da3c58140..474d575ce 100644
--- a/freemarker-tool/src/main/java/com/netease/lowcode/freemarker/util/FreeMarkerUtil.java
+++ b/freemarker-tool/src/main/java/com/netease/lowcode/freemarker/util/FreeMarkerUtil.java
@@ -10,17 +10,11 @@
import com.spire.xls.FileFormat;
import com.spire.xls.Workbook;
import freemarker.cache.URLTemplateLoader;
-import freemarker.core.HTMLOutputFormat;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
-import org.apache.poi.ss.usermodel.WorkbookFactory;
-
-import java.io.*;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.nio.charset.StandardCharsets;
import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.ss.usermodel.WorkbookFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.w3c.dom.Document;
@@ -37,7 +31,10 @@
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
-
+import java.io.*;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.regex.Matcher;
@@ -79,12 +76,12 @@ public static DownloadResponseDTO createFile(CreateRequest request) {
return DownloadResponseDTO.OK(outUrl.getResult(), outUrl.getFilePath());
} else {
- return DownloadResponseDTO.FAIL("文件上传失败","");
+ return DownloadResponseDTO.FAIL("文件上传失败", "");
}
} catch (Throwable e) {
- return DownloadResponseDTO.FAIL("执行异常:"+e.getMessage(), Arrays.toString(e.getStackTrace()));
+ return DownloadResponseDTO.FAIL("执行异常:" + e.getMessage(), Arrays.toString(e.getStackTrace()));
}
}
@@ -122,12 +119,12 @@ public static DownloadResponseDTO createNewXlsx(CreateRequest request) {
return DownloadResponseDTO.OK(outUrl.getResult(), outUrl.getFilePath());
} else {
- return DownloadResponseDTO.FAIL("文件上传失败","");
+ return DownloadResponseDTO.FAIL("文件上传失败", "");
}
} catch (Throwable e) {
- return DownloadResponseDTO.FAIL("执行异常:"+e.getMessage(), Arrays.toString(e.getStackTrace()));
+ return DownloadResponseDTO.FAIL("执行异常:" + e.getMessage(), Arrays.toString(e.getStackTrace()));
}
}
@@ -141,7 +138,7 @@ public static DownloadResponseDTO createNewXlsx(CreateRequest request) {
public static DownloadResponseDTO createNewDocxFile(CreateDocxRequest request) {
log.info("createDocxFile request:{}", request);
- Map templateFileMap = new HashMap<>();
+ Map templateFileMap = new HashMap<>();
try {
CreateDocxRequestValidator.validate(request);
@@ -176,7 +173,7 @@ public static DownloadResponseDTO createNewDocxFile(CreateDocxRequest request) {
// 下载模板文件
if (request.templateUrl != null) {
for (Map.Entry entry : request.templateUrl.entrySet()) {
- templateFileMap.put(entry.getKey(),FileUtil.getTrueUrl(entry.getValue()));
+ templateFileMap.put(entry.getKey(), FileUtil.getTrueUrl(entry.getValue()));
}
}
@@ -193,14 +190,14 @@ public static DownloadResponseDTO createNewDocxFile(CreateDocxRequest request) {
// System.out.println("文件写入成功");
// }
// 上传文件
- UploadResponseDTO outUrl = FileUtil.uploadStream(new ByteArrayInputStream(outputStream.toByteArray()),request.outFileName);
+ UploadResponseDTO outUrl = FileUtil.uploadStream(new ByteArrayInputStream(outputStream.toByteArray()), request.outFileName);
outputStream.close();
if (Objects.nonNull(outUrl)) {
return DownloadResponseDTO.OK(outUrl.getResult(), outUrl.getFilePath());
} else {
- return DownloadResponseDTO.FAIL("文件上传失败","");
+ return DownloadResponseDTO.FAIL("文件上传失败", "");
}
} catch (Throwable e) {
return DownloadResponseDTO.FAIL("执行异常:" + e.getMessage(), Arrays.toString(e.getStackTrace()));
@@ -210,7 +207,7 @@ public static DownloadResponseDTO createNewDocxFile(CreateDocxRequest request) {
public static ByteArrayOutputStream createDocx(String jsonData,
Map picMap,
InputStream docxInputSteam,
- Map templateFileMap,
+ Map templateFileMap,
boolean enableRichTextImage) throws Exception {
log.info("createDocx jsonData:{}, picMap:{}, docxInputSteam:{}, templateFileMap:{}, enableRichTextImage:{}", jsonData, picMap, docxInputSteam, templateFileMap, enableRichTextImage);
ZipOutputStream zipOut = null;
@@ -247,13 +244,13 @@ public static ByteArrayOutputStream createDocx(String jsonData,
//最初设计的模板
zipOut = new ZipOutputStream(outputStream);
//开始覆盖文档, 不要删除原图片,存在无需替换的情况,因此全部保留
- writeZipFileV2(new ByteArrayInputStream(templateDocBytes),zipOut,templateFileStreamMap);
+ writeZipFileV2(new ByteArrayInputStream(templateDocBytes), zipOut, templateFileStreamMap);
//写入图片 ,可能存在用户命名与保留文件重复,客户图片名称前加特定标识,由用户控制
writePicture(picMap, zipOut);
return outputStream;
} finally {
- if (zipOut != null){
+ if (zipOut != null) {
zipOut.close();
}
}
@@ -282,7 +279,7 @@ protected URL getURL(String name) {
}
private static void writeZipFileV2(InputStream zipInputStream,
- ZipOutputStream zipOut,Map templateFileStreamMap) throws IOException {
+ ZipOutputStream zipOut, Map templateFileStreamMap) throws IOException {
int len;
byte[] buffer = new byte[1024];
@@ -317,10 +314,10 @@ private static void writePicture(Map picMap, ZipOutputStream zip
Base64.Decoder decoder = Base64.getDecoder();
for (Map.Entry entry : picMap.entrySet()) {
// 用户输入的图片名称可能会与原文件重复,这里交由使用方控制,图片名称前加个标识区分,防止覆盖
- ZipEntry next = new ZipEntry("word/media/"+entry.getKey());
+ ZipEntry next = new ZipEntry("word/media/" + entry.getKey());
zipout.putNextEntry(new ZipEntry(next.toString()));
byte[] bytes = decoder.decode(entry.getValue());
- InputStream in = new ByteArrayInputStream(bytes);
+ InputStream in = new ByteArrayInputStream(bytes);
while ((len = in.read(buffer)) != -1) {
zipout.write(buffer, 0, len);
}
@@ -582,4 +579,19 @@ private static String guessImageContentType(String extension) {
return "image/" + extension;
}
}
+
+ /**
+ * 通用文本模板处理
+ */
+ @NaslLogic
+ public static String textFreemarker(String templateStr, Map data) {
+ try {
+ Template template = new Template("dynamic", new StringReader(templateStr));
+ StringWriter writer = new StringWriter();
+ template.process(data, writer);
+ return writer.toString();
+ } catch (Exception e) {
+ throw new RuntimeException("模板处理失败", e);
+ }
+ }
}
diff --git a/redis-template-tool/pom.xml b/redis-template-tool/pom.xml
index c3272a748..643854d28 100644
--- a/redis-template-tool/pom.xml
+++ b/redis-template-tool/pom.xml
@@ -84,7 +84,7 @@
1.5.1
false
- true
+