From a7d6f5f5bb8d1a9c76e1115d9407156f4d96c82f Mon Sep 17 00:00:00 2001 From: Kurt92 Date: Fri, 8 Aug 2025 11:19:01 +0900 Subject: [PATCH] =?UTF-8?q?feat=20:=20=EC=B2=A8=EB=B6=80=ED=8C=8C=EC=9D=BC?= =?UTF-8?q?=20=EB=8F=99=EC=98=81=EC=83=81=20=EC=97=AC=EB=B6=80=20=ED=99=95?= =?UTF-8?q?=EC=9D=B8=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scheduler/smg/service/DbPolling.java | 17 +++++++ .../worker/util/common/commEnum/FileKind.java | 48 +++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 src/main/java/com/worker/util/common/commEnum/FileKind.java diff --git a/src/main/java/com/worker/scheduler/smg/service/DbPolling.java b/src/main/java/com/worker/scheduler/smg/service/DbPolling.java index 6458578..3fcb1a5 100644 --- a/src/main/java/com/worker/scheduler/smg/service/DbPolling.java +++ b/src/main/java/com/worker/scheduler/smg/service/DbPolling.java @@ -6,6 +6,7 @@ import com.worker.domain.repo.ep.*; import com.worker.dto.SinmungoDto; import com.worker.util.common.CommonUtils; import com.worker.util.common.commEnum.DateTimePatternEnum; +import com.worker.util.common.commEnum.FileKind; import com.worker.util.common.commEnum.LawGBEnum; import com.worker.util.common.commEnum.TakeSeCdEnum; import com.worker.util.fileReader.XmlReader; @@ -114,6 +115,7 @@ public class DbPolling { .mmSgpos(sgpos) .mmBdcode(getBdcodeBySgpos(setInfo, sgpos)) .mmImagecnt(Integer.parseInt(xml.getApndfilcount())) + .mmImagegb(isVideoFile(xml)) .mmLawgb(getLawGBByReason(xml.getPeti_reason_l()).getCode()) .mmKeum1(getLawGBByReason(xml.getPeti_reason_l()).getImKeum1()) .mmKeum2(getLawGBByReason(xml.getPeti_reason_l()).getImKeum2()) @@ -202,6 +204,7 @@ public class DbPolling { .mmSgpos(sgpos) .mmBdcode(getBdcodeBySgpos(setInfo, sgpos)) .mmImagecnt(Integer.parseInt(xml.getApndfilcount())) + .mmImagegb(isVideoFile(xml)) .mmLawgb(getLawGBByReason(xml.getPeti_reason_l()).getCode()) .mmKeum1(getLawGBByReason(xml.getPeti_reason_l()).getImKeum1()) .mmKeum2(getLawGBByReason(xml.getPeti_reason_l()).getImKeum2()) @@ -376,4 +379,18 @@ public class DbPolling { return LawGBEnum.UNKNOWN; } + + private String isVideoFile(SinmungoDto.SinmungoXml xml) { + return Stream.of( + xml.getPeti_file_path1_v(), + xml.getPeti_file_path2_v(), + xml.getPeti_file_path3_v(), + xml.getPeti_file_path4_v(), + xml.getPeti_file_path5_v(), + xml.getPeti_file_path6_v() + ) + .anyMatch(path -> FileKind.codeFromFileName(path) == 2) ? "2" : "1"; + } + + } diff --git a/src/main/java/com/worker/util/common/commEnum/FileKind.java b/src/main/java/com/worker/util/common/commEnum/FileKind.java new file mode 100644 index 0000000..24ddb85 --- /dev/null +++ b/src/main/java/com/worker/util/common/commEnum/FileKind.java @@ -0,0 +1,48 @@ +package com.worker.util.common.commEnum; + +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; +import java.util.Set; + +public enum FileKind { + IMAGE(1, "jpg","jpeg","png","gif","bmp","webp","tiff","svg","heic","heif"), + VIDEO(2, "mp4","mov","m4v","avi","mkv","wmv","webm","flv","mpeg","mpg","3gp"), + OTHER(0); + + private static final Map EXT_KIND = new HashMap<>(); + + static { + for (FileKind kind : values()) { + for (String ext : kind.extensions) { + EXT_KIND.put(ext, kind); + } + } + } + + private final int code; // 1=IMAGE, 2=VIDEO, 0=OTHER + private final Set extensions; + + FileKind(int code, String... extensions) { + this.code = code; + this.extensions = Set.of(extensions); + } + + public int getCode() { + return code; + } + + public static FileKind fromFileName(String fileNameOrPath) { + if (fileNameOrPath == null || fileNameOrPath.isBlank()) return OTHER; + int dot = fileNameOrPath.lastIndexOf('.'); + if (dot > -1 && dot < fileNameOrPath.length() - 1) { + String ext = fileNameOrPath.substring(dot + 1).toLowerCase(Locale.ROOT); + return EXT_KIND.getOrDefault(ext, OTHER); + } + return OTHER; + } + + public static int codeFromFileName(String fileNameOrPath) { + return fromFileName(fileNameOrPath).getCode(); + } +}