From 1ae69e5665ab4a0daf34618ebcb16440a8f9451d Mon Sep 17 00:00:00 2001 From: teddy Date: Wed, 14 Jan 2026 15:24:45 +0900 Subject: [PATCH] =?UTF-8?q?[KC-103]=20spot=20less=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inference/dto/InferenceResultDto.java | 105 ++++++--------- .../service/InferenceResultService.java | 87 +++++++------ .../core/InferenceResultCoreService.java | 120 +++++++++--------- .../service/MapSheetInferenceJobService.java | 35 ++--- 4 files changed, 161 insertions(+), 186 deletions(-) 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 6ab2556b..6d6970cb 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 @@ -23,9 +23,7 @@ import org.springframework.data.domain.Pageable; public class InferenceResultDto { - /** - * 목록조회 dto - */ + /** 목록조회 dto */ @Getter @Setter @AllArgsConstructor @@ -37,15 +35,11 @@ public class InferenceResultDto { private String status; private String mapSheetCnt; private Long detectingCnt; - @JsonFormatDttm - private ZonedDateTime startTime; - @JsonFormatDttm - private ZonedDateTime endTime; - @JsonFormatDttm - private ZonedDateTime elapsedTime; + @JsonFormatDttm private ZonedDateTime startTime; + @JsonFormatDttm private ZonedDateTime endTime; + @JsonFormatDttm private ZonedDateTime elapsedTime; private Boolean applyYn; - @JsonFormatDttm - private ZonedDateTime applyDttm; + @JsonFormatDttm private ZonedDateTime applyDttm; @JsonProperty("statusName") public String statusName() { @@ -53,9 +47,7 @@ public class InferenceResultDto { } } - /** - * 목록조회 검색 조건 dto - */ + /** 목록조회 검색 조건 dto */ @Getter @Setter @NoArgsConstructor @@ -77,9 +69,7 @@ public class InferenceResultDto { } } - /** - * 탐지 데이터 옵션 dto - */ + /** 탐지 데이터 옵션 dto */ @Getter @AllArgsConstructor public enum MapSheetScope implements EnumType { @@ -100,9 +90,7 @@ public class InferenceResultDto { } } - /** - * 분석대상 도엽 enum - */ + /** 분석대상 도엽 enum */ @Getter @AllArgsConstructor public enum DetectOption implements EnumType { @@ -150,9 +138,7 @@ public class InferenceResultDto { } } - /** - * 변화탐지 실행 정보 저장 요청 정보 - */ + /** 변화탐지 실행 정보 저장 요청 정보 */ @Getter @Setter @NoArgsConstructor @@ -191,8 +177,8 @@ public class InferenceResultDto { @Schema(description = "탐지 데이터 옵션 - 추론제외(EXCL), 이전 년도 도엽 사용(PREV)", example = "EXCL") @NotBlank @EnumValid( - enumClass = DetectOption.class, - message = "탐지 데이터 옵션은 '추론제외', '이전 년도 도엽 사용' 만 사용 가능합니다.") + enumClass = DetectOption.class, + message = "탐지 데이터 옵션은 '추론제외', '이전 년도 도엽 사용' 만 사용 가능합니다.") private String detectOption; @Schema(description = "5k 도협 번호 목록", example = "[33605,33606, 33610, 34802, 35603, 35611]") @@ -219,49 +205,41 @@ public class InferenceResultDto { private Integer targetYyyy; private String detectOption; private String mapSheetScope; - @JsonFormatDttm - private ZonedDateTime inferStartDttm; - @JsonFormatDttm - private ZonedDateTime inferEndDttm; + @JsonFormatDttm private ZonedDateTime inferStartDttm; + @JsonFormatDttm private ZonedDateTime inferEndDttm; private Long detectingCnt = 0L; private Long detectingEndCnt = 0L; - @JsonFormatDttm - private ZonedDateTime m1ModelStartDttm; - @JsonFormatDttm - private ZonedDateTime m1ModelEndDttm; - @JsonFormatDttm - private ZonedDateTime m2ModelStartDttm; - @JsonFormatDttm - private ZonedDateTime m2ModelEndDttm; - @JsonFormatDttm - private ZonedDateTime m3ModelStartDttm; - @JsonFormatDttm - private ZonedDateTime m3ModelEndDttm; + @JsonFormatDttm private ZonedDateTime m1ModelStartDttm; + @JsonFormatDttm private ZonedDateTime m1ModelEndDttm; + @JsonFormatDttm private ZonedDateTime m2ModelStartDttm; + @JsonFormatDttm private ZonedDateTime m2ModelEndDttm; + @JsonFormatDttm private ZonedDateTime m3ModelStartDttm; + @JsonFormatDttm private ZonedDateTime m3ModelEndDttm; private String model1Ver; private String model2Ver; private String model3Ver; public InferenceStatusDetailDto( - String title, - Integer compareYyyy, - Integer targetYyyy, - String detectOption, - String mapSheetScope, - ZonedDateTime inferStartDttm, - ZonedDateTime inferEndDttm, - Long detectingCnt, - Long detectingEndCnt, - ZonedDateTime m1ModelStartDttm, - ZonedDateTime m1ModelEndDttm, - ZonedDateTime m2ModelStartDttm, - ZonedDateTime m2ModelEndDttm, - ZonedDateTime m3ModelStartDttm, - ZonedDateTime m3ModelEndDttm, - String model1Ver, - String model2Ver, - String model3Ver) { + String title, + Integer compareYyyy, + Integer targetYyyy, + String detectOption, + String mapSheetScope, + ZonedDateTime inferStartDttm, + ZonedDateTime inferEndDttm, + Long detectingCnt, + Long detectingEndCnt, + ZonedDateTime m1ModelStartDttm, + ZonedDateTime m1ModelEndDttm, + ZonedDateTime m2ModelStartDttm, + ZonedDateTime m2ModelEndDttm, + ZonedDateTime m3ModelStartDttm, + ZonedDateTime m3ModelEndDttm, + String model1Ver, + String model2Ver, + String model3Ver) { this.title = title; this.compareYyyy = compareYyyy; this.targetYyyy = targetYyyy; @@ -364,12 +342,9 @@ public class InferenceResultDto { public static class InferenceServerStatusDto { private String serverName; - @JsonIgnore - private float cpu_user; - @JsonIgnore - private float cpu_system; - @JsonIgnore - private float memused; + @JsonIgnore private float cpu_user; + @JsonIgnore private float cpu_system; + @JsonIgnore private float memused; private Long kbmemused; private float gpuUtil; diff --git a/src/main/java/com/kamco/cd/kamcoback/inference/service/InferenceResultService.java b/src/main/java/com/kamco/cd/kamcoback/inference/service/InferenceResultService.java index 1419fa9d..8cff1043 100644 --- a/src/main/java/com/kamco/cd/kamcoback/inference/service/InferenceResultService.java +++ b/src/main/java/com/kamco/cd/kamcoback/inference/service/InferenceResultService.java @@ -107,7 +107,7 @@ public class InferenceResultService { // 변화탐지 실행 가능 비교년도 조회 List compareList = - mapSheetMngCoreService.getByHstMapSheetCompareList(req.getCompareYyyy(), mapTargetIds); + mapSheetMngCoreService.getByHstMapSheetCompareList(req.getCompareYyyy(), mapTargetIds); if (compareList.isEmpty()) { throw new CustomApiException("NOT_FOUND_COMPARE_YEAR", HttpStatus.NOT_FOUND); @@ -156,20 +156,20 @@ public class InferenceResultService { // 추론에 필요한 geojson 파일 생성 List mapSheetNumList = - targetList.stream() - .filter(t -> Boolean.TRUE.equals(t.getIsSuccess())) - .map(MngListDto::getMapSheetNum) - .toList(); + targetList.stream() + .filter(t -> Boolean.TRUE.equals(t.getIsSuccess())) + .map(MngListDto::getMapSheetNum) + .toList(); // 비교년도 geojson 파일 생성하여 경로 받기 String modelComparePath = - getSceneInference( - String.valueOf(req.getCompareYyyy()), mapSheetNumList, req.getMapSheetScope()); + getSceneInference( + String.valueOf(req.getCompareYyyy()), mapSheetNumList, req.getMapSheetScope()); // 기준년도 geojson 파일 생성하여 경로 받기 String modelTargetPath = - getSceneInference( - String.valueOf(req.getTargetYyyy()), mapSheetNumList, req.getMapSheetScope()); + getSceneInference( + String.valueOf(req.getTargetYyyy()), mapSheetNumList, req.getMapSheetScope()); // ai 서버에 전달할 파라미터 생성 pred_requests_areas predRequestsAreas = new pred_requests_areas(); @@ -201,19 +201,19 @@ public class InferenceResultService { // 비교년도 탐지 제이터 옵션 별로 조회하여 req에 적용 private List createdMngDto( - InferenceResultDto.RegReq req, List targetList) { + InferenceResultDto.RegReq req, List targetList) { List mapTargetIds = new ArrayList<>(); targetList.forEach( - hstMapSheet -> { - // 비교년도는 target 년도 기준으로 가져옴 파라미터 만들기 - mapTargetIds.add(hstMapSheet.getMapSheetNum()); - }); + hstMapSheet -> { + // 비교년도는 target 년도 기준으로 가져옴 파라미터 만들기 + mapTargetIds.add(hstMapSheet.getMapSheetNum()); + }); // 비교년도 조회 List mapCompareIds = new ArrayList<>(); List compareList = - mapSheetMngCoreService.getByHstMapSheetCompareList(req.getCompareYyyy(), mapTargetIds); + mapSheetMngCoreService.getByHstMapSheetCompareList(req.getCompareYyyy(), mapTargetIds); for (MngListCompareDto dto : compareList) { // 추론 제외일때 이전년도 파일이 없으면 제외 @@ -228,35 +228,35 @@ public class InferenceResultService { } Set compareSet = - mapCompareIds.stream() - .filter(Objects::nonNull) - .map(String::trim) // 공백/개행 방지 - .collect(Collectors.toSet()); + mapCompareIds.stream() + .filter(Objects::nonNull) + .map(String::trim) // 공백/개행 방지 + .collect(Collectors.toSet()); // target 기준 compare 비교하여 서로 있는것만 저장 List commonIds = - mapTargetIds.stream() - .filter(Objects::nonNull) - .map(String::trim) - .filter(compareSet::contains) - .toList(); + mapTargetIds.stream() + .filter(Objects::nonNull) + .map(String::trim) + .filter(compareSet::contains) + .toList(); Set commonIdSet = - commonIds.stream().filter(Objects::nonNull).map(String::trim).collect(Collectors.toSet()); + commonIds.stream().filter(Objects::nonNull).map(String::trim).collect(Collectors.toSet()); // 저장하기위해 파라미터 다시 구성 List mapSheetNum = - targetList.stream() - .filter(dto -> dto.getMapSheetNum() != null) - .filter(dto -> commonIdSet.contains(dto.getMapSheetNum().trim())) - .map( - dto -> { - MapSheetNumDto mapSheetNumDto = new MapSheetNumDto(); - mapSheetNumDto.setMapSheetNum(dto.getMapSheetNum()); - mapSheetNumDto.setMapSheetName(dto.getMapSheetName()); - return mapSheetNumDto; - }) - .toList(); + targetList.stream() + .filter(dto -> dto.getMapSheetNum() != null) + .filter(dto -> commonIdSet.contains(dto.getMapSheetNum().trim())) + .map( + dto -> { + MapSheetNumDto mapSheetNumDto = new MapSheetNumDto(); + mapSheetNumDto.setMapSheetNum(dto.getMapSheetNum()); + mapSheetNumDto.setMapSheetName(dto.getMapSheetName()); + return mapSheetNumDto; + }) + .toList(); return mapSheetNum; } @@ -295,7 +295,7 @@ public class InferenceResultService { headers.setAccept(List.of(MediaType.APPLICATION_JSON)); ExternalCallResult result = - externalHttpClient.call(inferenceUrl, HttpMethod.POST, dto, headers, String.class); + externalHttpClient.call(inferenceUrl, HttpMethod.POST, dto, headers, String.class); if (result.statusCode() < 200 || result.statusCode() >= 300) { log.error("Inference API failed. status={}, body={}", result.statusCode(), result.body()); @@ -305,8 +305,7 @@ public class InferenceResultService { // 4) 응답 파싱 try { List> list = - objectMapper.readValue(result.body(), new TypeReference<>() { - }); + objectMapper.readValue(result.body(), new TypeReference<>() {}); if (list.isEmpty()) { throw new IllegalStateException("Inference response is empty"); @@ -375,8 +374,8 @@ public class InferenceResultService { /** * geojson 파일 생성 * - * @param yyyy 영상관리 파일별 년도 - * @param mapSheetNums 5k 도엽 번호 리스트 + * @param yyyy 영상관리 파일별 년도 + * @param mapSheetNums 5k 도엽 번호 리스트 * @param mapSheetScope EXCL : 추론제외, PREV 이전 년도 도엽 사용 * @return */ @@ -411,7 +410,7 @@ public class InferenceResultService { * @return */ public Page getInferenceResultGeomList( - Long id, InferenceDetailDto.SearchGeoReq searchGeoReq) { + Long id, InferenceDetailDto.SearchGeoReq searchGeoReq) { return inferenceResultCoreService.getInferenceResultGeomList(id, searchGeoReq); } @@ -422,7 +421,7 @@ public class InferenceResultService { * @return */ public Page listInferenceResultWithGeom( - @NotNull Long id, InferenceDetailDto.SearchGeoReq searchReq) { + @NotNull Long id, InferenceDetailDto.SearchGeoReq searchReq) { return inferenceResultCoreService.listInferenceResultWithGeom(id, searchReq); } @@ -467,7 +466,7 @@ public class InferenceResultService { public InferenceStatusDetailDto getInferenceStatus(UUID uuid) { List servers = - inferenceResultCoreService.getInferenceServerStatusList(); + inferenceResultCoreService.getInferenceServerStatusList(); String serverNames = ""; for (InferenceServerStatusDto server : servers) { diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/core/InferenceResultCoreService.java b/src/main/java/com/kamco/cd/kamcoback/postgres/core/InferenceResultCoreService.java index 0ff40dd0..c68a6276 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/core/InferenceResultCoreService.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/core/InferenceResultCoreService.java @@ -103,7 +103,7 @@ public class InferenceResultCoreService { mapSheetLearnEntity.setMapSheetCnt(mapSheetName); mapSheetLearnEntity.setDetectingCnt((long) detectingCnt); mapSheetLearnEntity.setStage( - mapSheetLearnRepository.getLearnStage(req.getCompareYyyy(), req.getTargetYyyy())); + mapSheetLearnRepository.getLearnStage(req.getCompareYyyy(), req.getTargetYyyy())); // learn 테이블 저장 MapSheetLearnEntity savedLearn = mapSheetLearnRepository.save(mapSheetLearnEntity); @@ -165,9 +165,9 @@ public class InferenceResultCoreService { */ public InferenceDetailDto.AnalResSummary getInferenceResultSummary(Long id) { InferenceDetailDto.AnalResSummary summary = - mapSheetAnalDataRepository - .getInferenceResultSummary(id) - .orElseThrow(() -> new EntityNotFoundException("요약정보를 찾을 수 없습니다. " + id)); + mapSheetAnalDataRepository + .getInferenceResultSummary(id) + .orElseThrow(() -> new EntityNotFoundException("요약정보를 찾을 수 없습니다. " + id)); return summary; } @@ -188,7 +188,7 @@ public class InferenceResultCoreService { * @return */ public Page getInferenceResultGeomList( - Long id, InferenceDetailDto.SearchGeoReq searchGeoReq) { + Long id, InferenceDetailDto.SearchGeoReq searchGeoReq) { return mapSheetAnalDataRepository.getInferenceGeomList(id, searchGeoReq); } @@ -200,16 +200,16 @@ public class InferenceResultCoreService { */ @Transactional(readOnly = true) public Page listInferenceResultWithGeom( - @NotNull Long analyId, InferenceDetailDto.SearchGeoReq searchReq) { + @NotNull Long analyId, InferenceDetailDto.SearchGeoReq searchReq) { // 분석 ID 에 해당하는 dataids를 가져온다. List dataIds = - mapSheetAnalDataRepository.listAnalyGeom(analyId).stream() - .mapToLong(MapSheetAnalDataInferenceEntity::getId) - .boxed() - .toList(); + mapSheetAnalDataRepository.listAnalyGeom(analyId).stream() + .mapToLong(MapSheetAnalDataInferenceEntity::getId) + .boxed() + .toList(); // 해당데이터의 폴리곤데이터를 가져온다 Page mapSheetAnalDataGeomEntities = - mapSheetAnalDataRepository.listInferenceResultWithGeom(dataIds, searchReq); + mapSheetAnalDataRepository.listInferenceResultWithGeom(dataIds, searchReq); return mapSheetAnalDataGeomEntities.map(MapSheetAnalDataInferenceGeomEntity::toEntity); } @@ -226,14 +226,14 @@ public class InferenceResultCoreService { @Transactional(readOnly = true) public List listGetScenes5k(Long analyId) { List sceneCodes = - mapSheetAnalDataRepository.listAnalyGeom(analyId).stream() - .mapToLong(MapSheetAnalDataInferenceEntity::getMapSheetNum) - .mapToObj(String::valueOf) - .toList(); + mapSheetAnalDataRepository.listAnalyGeom(analyId).stream() + .mapToLong(MapSheetAnalDataInferenceEntity::getMapSheetNum) + .mapToObj(String::valueOf) + .toList(); return mapInkx5kRepository.listGetScenes5k(sceneCodes).stream() - .map(MapInkx5kEntity::toEntity) - .toList(); + .map(MapInkx5kEntity::toEntity) + .toList(); } /** @@ -243,8 +243,9 @@ public class InferenceResultCoreService { */ public void update(SaveInferenceAiDto request) { MapSheetLearnEntity entity = - mapSheetLearnRepository.getInferenceResultByUuid(request.getUuid()) - .orElseThrow(EntityNotFoundException::new); + mapSheetLearnRepository + .getInferenceResultByUuid(request.getUuid()) + .orElseThrow(EntityNotFoundException::new); // M1/M2/M3 영역 업데이트 if (request.getType() != null) { @@ -266,50 +267,49 @@ public class InferenceResultCoreService { private void applyModelUpdate(MapSheetLearnEntity entity, SaveInferenceAiDto request) { switch (request.getType()) { - case "M1" -> applyModelFields( - request, - entity::setM1ModelBatchId, - entity::setM1ModelStartDttm, - entity::setM1ModelEndDttm, - entity::setM1PendingJobs, - entity::setM1RunningJobs, - entity::setM1CompletedJobs, - entity::setM1FailedJobs - ); - case "M2" -> applyModelFields( - request, - entity::setM2ModelBatchId, - entity::setM2ModelStartDttm, - entity::setM2ModelEndDttm, - entity::setM2PendingJobs, - entity::setM2RunningJobs, - entity::setM2CompletedJobs, - entity::setM2FailedJobs - ); - case "M3" -> applyModelFields( - request, - entity::setM3ModelBatchId, - entity::setM3ModelStartDttm, - entity::setM3ModelEndDttm, - entity::setM3PendingJobs, - entity::setM3RunningJobs, - entity::setM3CompletedJobs, - entity::setM3FailedJobs - ); + case "M1" -> + applyModelFields( + request, + entity::setM1ModelBatchId, + entity::setM1ModelStartDttm, + entity::setM1ModelEndDttm, + entity::setM1PendingJobs, + entity::setM1RunningJobs, + entity::setM1CompletedJobs, + entity::setM1FailedJobs); + case "M2" -> + applyModelFields( + request, + entity::setM2ModelBatchId, + entity::setM2ModelStartDttm, + entity::setM2ModelEndDttm, + entity::setM2PendingJobs, + entity::setM2RunningJobs, + entity::setM2CompletedJobs, + entity::setM2FailedJobs); + case "M3" -> + applyModelFields( + request, + entity::setM3ModelBatchId, + entity::setM3ModelStartDttm, + entity::setM3ModelEndDttm, + entity::setM3PendingJobs, + entity::setM3RunningJobs, + entity::setM3CompletedJobs, + entity::setM3FailedJobs); default -> throw new IllegalArgumentException("Unknown type: " + request.getType()); } } private void applyModelFields( - SaveInferenceAiDto request, - Consumer setBatchId, - Consumer setStart, - Consumer setEnd, - Consumer setPending, - Consumer setRunning, - Consumer setCompleted, - Consumer setFailed - ) { + SaveInferenceAiDto request, + Consumer setBatchId, + Consumer setStart, + Consumer setEnd, + Consumer setPending, + Consumer setRunning, + Consumer setCompleted, + Consumer setFailed) { applyIfNotNull(request.getBatchId(), setBatchId); applyIfNotNull(request.getModelStartDttm(), setStart); applyIfNotNull(request.getModelEndDttm(), setEnd); @@ -331,7 +331,7 @@ public class InferenceResultCoreService { public InferenceBatchSheet getInferenceResultByStatus(String status) { MapSheetLearnEntity entity = - mapSheetLearnRepository.getInferenceResultByStatus(status).orElse(null); + mapSheetLearnRepository.getInferenceResultByStatus(status).orElse(null); if (entity == null) { return null; @@ -377,7 +377,7 @@ public class InferenceResultCoreService { /** * @param compareYear 비교년도 - * @param targetYear 기준년도 + * @param targetYear 기준년도 * @return */ public Integer getLearnStage(Integer compareYear, Integer targetYear) { diff --git a/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetInferenceJobService.java b/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetInferenceJobService.java index bbb2d65c..42138051 100644 --- a/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetInferenceJobService.java +++ b/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetInferenceJobService.java @@ -47,9 +47,7 @@ public class MapSheetInferenceJobService { @Value("${inference.url}") private String inferenceUrl; - /** - * 추론 진행 배치 1분 - */ + /** 추론 진행 배치 1분 */ @Scheduled(fixedDelay = 60_000) @Transactional public void runBatch() { @@ -132,7 +130,7 @@ public class MapSheetInferenceJobService { String url = batchUrl + "/" + batchId; ExternalCallResult result = - externalHttpClient.call(url, HttpMethod.GET, null, jsonHeaders(), String.class); + externalHttpClient.call(url, HttpMethod.GET, null, jsonHeaders(), String.class); int status = result.statusCode(); if (status < 200 || status >= 300) { @@ -266,23 +264,28 @@ public class MapSheetInferenceJobService { // 추론 실행 api 파라미터 조회 InferenceProgressDto progressDto = - inferenceResultCoreService.getInferenceAiResultById(id, modelUuid); + inferenceResultCoreService.getInferenceAiResultById(id, modelUuid); // ai 에 맞는 모델 명으로 변경 String inferenceType = modelToInferenceType(type); - InferenceSendDto.pred_requests_areas predRequestsAreas = new InferenceSendDto.pred_requests_areas(); + InferenceSendDto.pred_requests_areas predRequestsAreas = + new InferenceSendDto.pred_requests_areas(); predRequestsAreas.setInput1_year(progressDto.getPred_requests_areas().getInput1_year()); predRequestsAreas.setInput2_year(progressDto.getPred_requests_areas().getInput2_year()); - predRequestsAreas.setInput1_scene_path(progressDto.getPred_requests_areas().getInput1_scene_path()); - predRequestsAreas.setInput2_scene_path(progressDto.getPred_requests_areas().getInput2_scene_path()); + predRequestsAreas.setInput1_scene_path( + progressDto.getPred_requests_areas().getInput1_scene_path()); + predRequestsAreas.setInput2_scene_path( + progressDto.getPred_requests_areas().getInput2_scene_path()); InferenceSendDto m = new InferenceSendDto(); m.setPred_requests_areas(predRequestsAreas); m.setModel_version(progressDto.getModelVersion()); m.setCd_model_path(progressDto.getCdModelPath() + "/" + progressDto.getCdModelFileName()); - m.setCd_model_config(progressDto.getCdModelConfigPath() + "/" + progressDto.getCdModelConfigFileName()); - m.setCls_model_path(progressDto.getCdModelClsPath() + "/" + progressDto.getCdModelClsFileName()); + m.setCd_model_config( + progressDto.getCdModelConfigPath() + "/" + progressDto.getCdModelConfigFileName()); + m.setCls_model_path( + progressDto.getCdModelClsPath() + "/" + progressDto.getCdModelClsFileName()); m.setCls_model_version(progressDto.getClsModelVersion()); m.setCd_model_type(inferenceType); m.setPriority(progressDto.getPriority()); @@ -353,7 +356,7 @@ public class MapSheetInferenceJobService { headers.setAccept(List.of(MediaType.APPLICATION_JSON)); ExternalCallResult result = - externalHttpClient.call(inferenceUrl, HttpMethod.POST, dto, headers, String.class); + externalHttpClient.call(inferenceUrl, HttpMethod.POST, dto, headers, String.class); if (result.statusCode() < 200 || result.statusCode() >= 300) { log.error("Inference API failed. status={}, body={}", result.statusCode(), result.body()); @@ -363,8 +366,7 @@ public class MapSheetInferenceJobService { // 4) 응답 파싱 try { List> list = - objectMapper.readValue(result.body(), new TypeReference<>() { - }); + objectMapper.readValue(result.body(), new TypeReference<>() {}); if (list.isEmpty()) { throw new IllegalStateException("Inference response is empty"); @@ -392,10 +394,9 @@ public class MapSheetInferenceJobService { return "local".equalsIgnoreCase(profile); } - /** - * 모델별 추론 종료 update - */ - private void updateProcessingEndTimeByModel(JobStatusDto dto, UUID uuid, ZonedDateTime dateTime, String type) { + /** 모델별 추론 종료 update */ + private void updateProcessingEndTimeByModel( + JobStatusDto dto, UUID uuid, ZonedDateTime dateTime, String type) { SaveInferenceAiDto saveInferenceAiDto = new SaveInferenceAiDto(); saveInferenceAiDto.setUuid(uuid); saveInferenceAiDto.setUpdateUid(0L);