diff --git a/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceDetailDto.java b/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceDetailDto.java index bb24fa82..6ce0a9c3 100644 --- a/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceDetailDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceDetailDto.java @@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.kamco.cd.kamcoback.common.enums.DetectionClassification; import com.kamco.cd.kamcoback.common.enums.ImageryFitStatus; +import com.kamco.cd.kamcoback.common.utils.HeaderUtil; import com.kamco.cd.kamcoback.common.utils.interfaces.JsonFormatDttm; import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.DetectOption; import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.MapSheetScope; @@ -156,9 +157,14 @@ public class InferenceDetailDto { String classAfterName; Long classAfterCnt; + boolean english = HeaderUtil.isEnglishRequest(); + public Dashboard(String classAfterCd, Long classAfterCnt) { this.classAfterCd = classAfterCd; - this.classAfterName = DetectionClassification.fromString(classAfterCd).getDesc(); + this.classAfterName = + english + ? DetectionClassification.fromString(classAfterCd).getId() + : DetectionClassification.fromString(classAfterCd).getDesc(); this.classAfterCnt = classAfterCnt; } } @@ -315,6 +321,8 @@ public class InferenceDetailDto { String pnu; String fitState; + boolean english = HeaderUtil.isEnglishRequest(); + public Geom( Long geoUid, UUID uuid, @@ -338,10 +346,16 @@ public class InferenceDetailDto { this.targetYyyy = targetYyyy; this.cdProb = cdProb; this.classBeforeCd = classBeforeCd; - this.classBeforeName = DetectionClassification.fromString(classBeforeCd).getDesc(); + this.classBeforeName = + english + ? DetectionClassification.fromString(classBeforeCd).getId() + : DetectionClassification.fromString(classBeforeCd).getDesc(); this.classBeforeProb = classBeforeProb; this.classAfterCd = classAfterCd; - this.classAfterName = DetectionClassification.fromString(classAfterCd).getDesc(); + this.classAfterName = + english + ? DetectionClassification.fromString(classAfterCd).getId() + : DetectionClassification.fromString(classAfterCd).getDesc(); this.classAfterProb = classAfterProb; this.mapSheetNum = mapSheetNum; this.mapSheetName = mapSheetName; diff --git a/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceResultDto.java b/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceResultDto.java index 4223f458..4ba8ab29 100644 --- a/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceResultDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/inference/dto/InferenceResultDto.java @@ -2,6 +2,7 @@ package com.kamco.cd.kamcoback.inference.dto; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; +import com.kamco.cd.kamcoback.common.utils.HeaderUtil; import com.kamco.cd.kamcoback.common.utils.enums.EnumType; import com.kamco.cd.kamcoback.common.utils.interfaces.EnumValid; import com.kamco.cd.kamcoback.common.utils.interfaces.JsonFormatDttm; @@ -14,6 +15,8 @@ import java.time.ZonedDateTime; import java.util.Arrays; import java.util.List; import java.util.UUID; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -106,7 +109,12 @@ public class InferenceResultDto { } public static String getDescByCode(String code) { - return fromCode(code).getDesc(); + boolean english = HeaderUtil.isEnglishRequest(); + if (english) { + return fromCode(code).getTextEn(); + } else { + return fromCode(code).getDesc(); + } } @Override @@ -121,7 +129,7 @@ public class InferenceResultDto { @Override public String getTextEn() { - return desc; + return name(); } } @@ -231,7 +239,46 @@ public class InferenceResultDto { long m = (s % 3600) / 60; long sec = s % 60; - return String.format("%d시간 %d분 %d초", h, m, sec); + boolean english = HeaderUtil.isEnglishRequest(); + if (english) { + return String.format("%dh %dm %ds", h, m, sec); + } else { + return String.format("%d시간 %d분 %d초", h, m, sec); + } + } + + @JsonProperty("mapSheetCnt") + public String getMapSheetCnt() { + boolean english = HeaderUtil.isEnglishRequest(); + String text = this.mapSheetCnt; + + if (!english) { + return text; + } + + // "창원 외 34건" + Pattern otherPattern = Pattern.compile("^(.+) 외 (\\d+)건$"); + Matcher otherMatcher = otherPattern.matcher(text); + + if (otherMatcher.find()) { + String name = otherMatcher.group(1); + int count = Integer.parseInt(otherMatcher.group(2)); + + return name + " and " + count + (count == 1 ? " other" : " others"); + } + + // "창원 1건" + Pattern itemPattern = Pattern.compile("^(.+) (\\d+)건$"); + Matcher itemMatcher = itemPattern.matcher(text); + + if (itemMatcher.find()) { + String name = itemMatcher.group(1); + int count = Integer.parseInt(itemMatcher.group(2)); + + return name + " (" + count + (count == 1 ? " item" : " items") + ")"; + } + + return text; } }