From 65f06344cb9a0c1ca72b9f261aeb9a894ebfb8ef Mon Sep 17 00:00:00 2001 From: lifangliang Date: Wed, 16 Jul 2025 13:49:18 +0800 Subject: [PATCH] save --- pom.xml | 11 ++++++----- .../printserver/main/PrintController.java | 4 +++- .../main/gui/PrintNotificationService.java | 4 +++- .../main/gui/PrintSettingsPanel.java | 3 ++- .../main/service/PrintQueueService.java | 4 ++++ .../printserver/main/sse/PrinterClient.java | 6 ++---- src/main/resources/application.properties | 4 ++-- src/main/resources/icon.icns | Bin 0 -> 28730 bytes 8 files changed, 22 insertions(+), 14 deletions(-) create mode 100644 src/main/resources/icon.icns diff --git a/pom.xml b/pom.xml index 31efe1e..96ed8f2 100644 --- a/pom.xml +++ b/pom.xml @@ -5,14 +5,14 @@ org.springframework.boot spring-boot-starter-parent - 3.5.0 + 3.2.0 - com.goeing - zipship + com.goeing.zipship + zipshipPrintService 0.0.1-SNAPSHOT - goeingPrintService - goeingPrintService + zipshipPrintService + zipshipPrintService @@ -87,6 +87,7 @@ org.projectlombok lombok + ${lombok.version} diff --git a/src/main/java/com/goeing/printserver/main/PrintController.java b/src/main/java/com/goeing/printserver/main/PrintController.java index 78aa3e6..b33141f 100644 --- a/src/main/java/com/goeing/printserver/main/PrintController.java +++ b/src/main/java/com/goeing/printserver/main/PrintController.java @@ -33,7 +33,7 @@ public class PrintController implements PrintService { @Autowired private PrintServerConfig config; - private final String rootPath = "/Users/fl0919/work_space/goeingPrintServer/pdf"; + private final String rootPath = "pdfTemp"; /** * 获取所有可用打印机列表 @@ -139,6 +139,8 @@ public class PrintController implements PrintService { // 下载文件 log.info("正在从以下地址下载文件: {}", fileUrl); HttpUtil.downloadFile(fileUrl, filePath); + + log.info("文件下载地址为:",filePath); if (!pdfFile.exists() || pdfFile.length() == 0) { throw new RuntimeException("Downloaded file is empty or does not exist"); diff --git a/src/main/java/com/goeing/printserver/main/gui/PrintNotificationService.java b/src/main/java/com/goeing/printserver/main/gui/PrintNotificationService.java index 73e512f..e3028b5 100644 --- a/src/main/java/com/goeing/printserver/main/gui/PrintNotificationService.java +++ b/src/main/java/com/goeing/printserver/main/gui/PrintNotificationService.java @@ -3,6 +3,7 @@ package com.goeing.printserver.main.gui; import com.goeing.printserver.main.domain.request.PrintRequest; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import java.awt.*; @@ -19,7 +20,7 @@ public class PrintNotificationService { private boolean headless = false; @Autowired - public PrintNotificationService(PrintSettingsPanel settingsPanel) { + public PrintNotificationService(@Lazy PrintSettingsPanel settingsPanel) { this.settingsPanel = settingsPanel; // 检查是否在无头模式下运行 this.headless = GraphicsEnvironment.isHeadless() || Boolean.getBoolean("app.headless.mode"); @@ -29,6 +30,7 @@ public class PrintNotificationService { } @Autowired + @Lazy public void setPrintServerTray(PrintServerTray printServerTray) { this.printServerTray = printServerTray; } diff --git a/src/main/java/com/goeing/printserver/main/gui/PrintSettingsPanel.java b/src/main/java/com/goeing/printserver/main/gui/PrintSettingsPanel.java index 37d3824..b4657f7 100644 --- a/src/main/java/com/goeing/printserver/main/gui/PrintSettingsPanel.java +++ b/src/main/java/com/goeing/printserver/main/gui/PrintSettingsPanel.java @@ -9,6 +9,7 @@ import com.goeing.printserver.main.utils.MessageUtils; import com.goeing.printserver.main.service.PrintQueueService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Component; @@ -52,7 +53,7 @@ public class PrintSettingsPanel extends JPanel implements LocaleChangeListener { private JButton resetButton; @Autowired - public PrintSettingsPanel(PrintQueueService printQueueService, PrintServerConfig config, PrintController printController, PrinterClient printerClient) { + public PrintSettingsPanel(@Lazy PrintQueueService printQueueService, PrintServerConfig config, @Lazy PrintController printController, @Lazy PrinterClient printerClient) { this.printQueueService = printQueueService; this.config = config; this.printController = printController; diff --git a/src/main/java/com/goeing/printserver/main/service/PrintQueueService.java b/src/main/java/com/goeing/printserver/main/service/PrintQueueService.java index da7c09e..4b49e26 100644 --- a/src/main/java/com/goeing/printserver/main/service/PrintQueueService.java +++ b/src/main/java/com/goeing/printserver/main/service/PrintQueueService.java @@ -9,6 +9,7 @@ import jakarta.websocket.Session; import lombok.extern.slf4j.Slf4j; import jakarta.annotation.PreDestroy; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import java.io.IOException; @@ -30,12 +31,15 @@ import java.time.LocalDateTime; public class PrintQueueService { @Autowired + @Lazy private PrintService printService; @Autowired + @Lazy private PrintNotificationService notificationService; @Autowired + @Lazy private PrintStatisticsPanel statisticsPanel; @Autowired diff --git a/src/main/java/com/goeing/printserver/main/sse/PrinterClient.java b/src/main/java/com/goeing/printserver/main/sse/PrinterClient.java index 99460c5..1b80afb 100644 --- a/src/main/java/com/goeing/printserver/main/sse/PrinterClient.java +++ b/src/main/java/com/goeing/printserver/main/sse/PrinterClient.java @@ -1,18 +1,16 @@ package com.goeing.printserver.main.sse; -import cn.hutool.extra.spring.SpringUtil; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; -import com.goeing.printserver.main.PrintController; import com.goeing.printserver.main.config.PrintServerConfig; import com.goeing.printserver.main.domain.dto.WebSocketMessageDTO; import com.goeing.printserver.main.domain.request.PrintRequest; import com.goeing.printserver.main.service.PrintQueueService; import jakarta.websocket.*; import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; import jakarta.annotation.PreDestroy; @@ -39,7 +37,7 @@ public class PrinterClient implements ApplicationRunner { private boolean isConnecting = false; // 构造函数,注入PrintQueueService和PrintServerConfig - public PrinterClient(PrintQueueService printQueueService, PrintServerConfig config) { + public PrinterClient(@Lazy PrintQueueService printQueueService, PrintServerConfig config) { this.printQueueService = printQueueService; this.config = config; // 构造函数不做连接操作,在run方法中进行连接 diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 4062958..20ce655 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,7 +1,7 @@ spring.application.name=goeingPrintServer server.port=9090 -print.websocket.url=ws://127.0.0.1:8080/print-websocket -#print.websocket.url=ws://3.144.140.114:8080/print-websocket +print.websocket.url=ws://zipship.goeing.com/prod-api/print-websocket +#print.websocket.url=ws://127.0.0.1:8080/print-websocket print.printer.id=123456 print.websocket.apiKey=519883ab-3677-ce4b-59ba-7263870d0a26 diff --git a/src/main/resources/icon.icns b/src/main/resources/icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..6087e7dcc7eaa92dabf9447145e9b717ee988ea5 GIT binary patch literal 28730 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 XOi+>Nus+PKWE*&{tgck5U=i{^