From 02c725de0140cd4875b05a9c47c1e0290b17fab1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9F=B3=E5=A4=B4=E4=BA=BA?= <3076767823@qq.com> Date: Mon, 31 Mar 2025 17:40:48 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E5=A2=9E=E5=8A=A0=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=88=9B=E5=BB=BA=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/MS439PrintServiceImpl.java | 3 ++ .../service/impl/RegisterServiceImpl.java | 4 ++ .../dpkj/modules/print/utils/FolderUtils.java | 40 +++++++++++++++++++ 3 files changed, 47 insertions(+) create mode 100644 src/main/java/com/dpkj/modules/print/utils/FolderUtils.java diff --git a/src/main/java/com/dpkj/modules/print/service/impl/MS439PrintServiceImpl.java b/src/main/java/com/dpkj/modules/print/service/impl/MS439PrintServiceImpl.java index bfd83b1..f8c68ed 100644 --- a/src/main/java/com/dpkj/modules/print/service/impl/MS439PrintServiceImpl.java +++ b/src/main/java/com/dpkj/modules/print/service/impl/MS439PrintServiceImpl.java @@ -9,6 +9,7 @@ import com.dpkj.common.utils.ThirdService; import com.dpkj.modules.print.enums.*; import com.dpkj.modules.print.request.MS439Request; import com.dpkj.modules.print.service.MS439PrintService; +import com.dpkj.modules.print.utils.FolderUtils; import com.dpkj.modules.print.utils.PDFUtils; import com.dpkj.modules.print.vo.PrinterStatus; import lombok.extern.slf4j.Slf4j; @@ -36,6 +37,8 @@ public class MS439PrintServiceImpl implements MS439PrintService { @Override public LexMarkResultDTO printImage(MS439Request request) { + FolderUtils.checkFolderAndCreate(request.getFileDir()); + // 校验是本地地址还是http开头的 PDFUtils.AddressType addressType = PDFUtils.checkAddressType(request.getFileDir()); if (addressType.equals(PDFUtils.AddressType.HTTP)) { diff --git a/src/main/java/com/dpkj/modules/print/service/impl/RegisterServiceImpl.java b/src/main/java/com/dpkj/modules/print/service/impl/RegisterServiceImpl.java index 9024629..a882ac9 100644 --- a/src/main/java/com/dpkj/modules/print/service/impl/RegisterServiceImpl.java +++ b/src/main/java/com/dpkj/modules/print/service/impl/RegisterServiceImpl.java @@ -11,7 +11,9 @@ import com.dpkj.common.utils.TemplateUtils; import com.dpkj.common.utils.ThirdService; import com.dpkj.modules.print.enums.*; import com.dpkj.modules.print.service.PrintService; +import com.dpkj.modules.print.utils.FolderUtils; import com.dpkj.modules.print.vo.PrinterStatus; +import jdk.jfr.Frequency; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import org.thymeleaf.util.StringUtils; @@ -47,6 +49,8 @@ public class RegisterServiceImpl implements PrintService { @Override public LexMarkResultDTO printImage(JSONObject data, String template, int width, int height, String saveDir) { + FolderUtils.checkFolderAndCreate(saveDir); + if (height <= 0) { width = FIXED_WIDTH; } diff --git a/src/main/java/com/dpkj/modules/print/utils/FolderUtils.java b/src/main/java/com/dpkj/modules/print/utils/FolderUtils.java new file mode 100644 index 0000000..6cb9daa --- /dev/null +++ b/src/main/java/com/dpkj/modules/print/utils/FolderUtils.java @@ -0,0 +1,40 @@ +package com.dpkj.modules.print.utils; + +import lombok.extern.slf4j.Slf4j; + +import java.io.File; + +/** + * 文件夹处理 + * + * @author 石头人 + * @version 1.0 + * @since 2025-03-31 17:28:34 + */ +@Slf4j +public class FolderUtils { + + public static void checkFolderAndCreate(String folderPath){ + File fileOrFolder = new File(folderPath); + String targetPath; + if (fileOrFolder.isFile()) { + // 如果是文件,获取文件所在目录路径 + targetPath = fileOrFolder.getParent(); + } else { + // 如果不是文件(可能是不存在的文件夹或已存在的文件夹),使用原始路径 + targetPath = folderPath; + } + + File targetFolder = new File(targetPath); + if (!targetFolder.exists()) { + boolean success = targetFolder.mkdirs(); + if (success) { + log.info("文件夹创建成功: " + targetPath); + } else { + log.error("文件夹创建失败: " + targetPath); + } + } + } + +} +