From 3737901d5c56bffa4f55514a2bb2b0dd22738df5 Mon Sep 17 00:00:00 2001 From: tolag3 Date: Wed, 8 Jan 2025 14:19:25 +0900 Subject: [PATCH] =?UTF-8?q?pdf=20=EB=B3=80=ED=99=98=EC=86=94=EB=A3=A8?= =?UTF-8?q?=EC=85=98=20=EA=B0=9C=EB=B0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pdf/service/PdfJsonSerializerOption.java | 29 ++++ .../pdf/service/PdfJsonSerializerOptions.java | 29 ++++ .../java/kcc/com/pdf/service/PdfService.java | 7 + src/main/java/kcc/com/pdf/service/PdfVO.java | 52 +++++++ .../java/kcc/com/pdf/service/impl/PdfDAO.java | 10 ++ .../com/pdf/service/impl/PdfServiceImpl.java | 145 ++++++++++++++++++ src/main/java/kcc/xxx/web/XxxController.java | 24 ++- .../seed/com/gtm/base/BaseController.java | 21 ++- .../clipreport4/DataConnection.properties | 30 ++-- .../WEB-INF/clipreport4/License.properties | 4 +- .../logs/ClipReport4.2025-01-07-1.log | 134 ++++++++++++++++ .../ClipReport4/ClipReportViewer_pdf_down.jsp | 98 ++++++++++++ 12 files changed, 559 insertions(+), 24 deletions(-) create mode 100644 src/main/java/kcc/com/pdf/service/PdfJsonSerializerOption.java create mode 100644 src/main/java/kcc/com/pdf/service/PdfJsonSerializerOptions.java create mode 100644 src/main/java/kcc/com/pdf/service/PdfService.java create mode 100644 src/main/java/kcc/com/pdf/service/PdfVO.java create mode 100644 src/main/java/kcc/com/pdf/service/impl/PdfDAO.java create mode 100644 src/main/java/kcc/com/pdf/service/impl/PdfServiceImpl.java create mode 100644 src/main/webapp/WEB-INF/jsp/ClipReport4/ClipReportViewer_pdf_down.jsp diff --git a/src/main/java/kcc/com/pdf/service/PdfJsonSerializerOption.java b/src/main/java/kcc/com/pdf/service/PdfJsonSerializerOption.java new file mode 100644 index 00000000..a33991a8 --- /dev/null +++ b/src/main/java/kcc/com/pdf/service/PdfJsonSerializerOption.java @@ -0,0 +1,29 @@ +package kcc.com.pdf.service; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import kcc.com.pdf.service.PdfVO.Option; + +import java.io.IOException; +import java.util.List; + +public class PdfJsonSerializerOption extends JsonSerializer> { + + @Override + public void serialize(List Option, JsonGenerator gen, SerializerProvider serializers) throws IOException { + if (Option == null || Option.isEmpty()) { + gen.writeNull(); + return; + } + + if (Option.size() == 1) { + // 옵션이 하나일 때 객체로 직렬화 + serializers.defaultSerializeValue(Option.get(0), gen); + } else { + // 옵션이 여러 개일 때 배열로 직렬화 + serializers.defaultSerializeValue(Option, gen); + } + } +} \ No newline at end of file diff --git a/src/main/java/kcc/com/pdf/service/PdfJsonSerializerOptions.java b/src/main/java/kcc/com/pdf/service/PdfJsonSerializerOptions.java new file mode 100644 index 00000000..032c7817 --- /dev/null +++ b/src/main/java/kcc/com/pdf/service/PdfJsonSerializerOptions.java @@ -0,0 +1,29 @@ +package kcc.com.pdf.service; + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import kcc.com.pdf.service.PdfVO.Options; + +import java.io.IOException; +import java.util.List; + +public class PdfJsonSerializerOptions extends JsonSerializer> { + + @Override + public void serialize(List options, JsonGenerator gen, SerializerProvider serializers) throws IOException { + if (options == null || options.isEmpty()) { + gen.writeNull(); + return; + } + + if (options.size() == 1) { + // 옵션이 하나일 때 객체로 직렬화 + serializers.defaultSerializeValue(options.get(0), gen); + } else { + // 옵션이 여러 개일 때 배열로 직렬화 + serializers.defaultSerializeValue(options, gen); + } + } +} \ No newline at end of file diff --git a/src/main/java/kcc/com/pdf/service/PdfService.java b/src/main/java/kcc/com/pdf/service/PdfService.java new file mode 100644 index 00000000..cc1357d8 --- /dev/null +++ b/src/main/java/kcc/com/pdf/service/PdfService.java @@ -0,0 +1,7 @@ +package kcc.com.pdf.service; + +import java.util.Map; + +public interface PdfService { + Map conversionPdf(String caseNo) throws Exception; +} \ No newline at end of file diff --git a/src/main/java/kcc/com/pdf/service/PdfVO.java b/src/main/java/kcc/com/pdf/service/PdfVO.java new file mode 100644 index 00000000..90a61c31 --- /dev/null +++ b/src/main/java/kcc/com/pdf/service/PdfVO.java @@ -0,0 +1,52 @@ +package kcc.com.pdf.service; + +import java.util.ArrayList; +import java.util.List; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +@Getter +@Setter +@NoArgsConstructor +@JsonInclude(JsonInclude.Include.NON_EMPTY) +public class PdfVO { + private String inputUri; + private String outputUri; + private String name; + private List subtasks = new ArrayList<>(); + + @Getter + @Setter + @NoArgsConstructor + @JsonInclude(JsonInclude.Include.NON_EMPTY) + public static class SubTask { + private String type; + @JsonSerialize(using = PdfJsonSerializerOption.class) + private List options = new ArrayList<>(); + } + + @Getter + @Setter + @NoArgsConstructor + @JsonInclude(JsonInclude.Include.NON_EMPTY) + public static class Options { + private String mergeSrcUri; + private String pages; + @JsonSerialize(using = PdfJsonSerializerOption.class) + private List