From c2b804778be6e301a688fc4deb88535942d8a48f Mon Sep 17 00:00:00 2001 From: DanielLee <198891672+sanghyeonhd@users.noreply.github.com> Date: Fri, 16 Jan 2026 11:44:12 +0900 Subject: [PATCH 1/4] =?UTF-8?q?projectinfo=20closed=20=EC=8A=A4=EC=9B=A8?= =?UTF-8?q?=EA=B1=B0=20=EC=98=88=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../label/LabelAllocateApiController.java | 32 ++++--------------- 1 file changed, 7 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/kamco/cd/kamcoback/label/LabelAllocateApiController.java b/src/main/java/com/kamco/cd/kamcoback/label/LabelAllocateApiController.java index 6745a735..e65dee0c 100644 --- a/src/main/java/com/kamco/cd/kamcoback/label/LabelAllocateApiController.java +++ b/src/main/java/com/kamco/cd/kamcoback/label/LabelAllocateApiController.java @@ -256,36 +256,18 @@ public class LabelAllocateApiController { mediaType = "application/json", schema = @Schema(implementation = UpdateClosedRequest.class), examples = { - @io.swagger.v3.oas.annotations.media.ExampleObject( - name = "라벨링 종료", - value = - """ - {"closedType": "LABELING", "closedYn": "Y"} - """), - @io.swagger.v3.oas.annotations.media.ExampleObject( - name = "검수 종료", - value = - """ - {"closedType": "INSPECTION", "closedYn": "Y"} - """), - @io.swagger.v3.oas.annotations.media.ExampleObject( - name = "라벨링 재개", - value = - """ - {"closedType": "LABELING", "closedYn": "N"} - """), - @io.swagger.v3.oas.annotations.media.ExampleObject( - name = "검수 재개", - value = - """ - {"closedType": "INSPECTION", "closedYn": "N"} - """), @io.swagger.v3.oas.annotations.media.ExampleObject( name = "특정 프로젝트 라벨링 전체 종료", value = """ + {"uuid": "f97dc186-e6d3-4645-9737-3173dde8dc64", "closedType": "LABELING", "closedYn": "Y"} + """), + @io.swagger.v3.oas.annotations.media.ExampleObject( + name = "특정 프로젝트 검수 전체 종료", + value = + """ {"uuid": "f97dc186-e6d3-4645-9737-3173dde8dc64", "closedType": "INSPECTION", "closedYn": "Y"} - """) + """) })) @RequestBody @Valid From 78cf943110d3fd027ef5c5e05fde934cf0cc3540 Mon Sep 17 00:00:00 2001 From: "gayoun.park" Date: Fri, 16 Jan 2026 11:45:05 +0900 Subject: [PATCH 2/4] =?UTF-8?q?=EC=B6=94=EB=A1=A0=EA=B4=80=EB=A6=AC=20?= =?UTF-8?q?=EC=83=81=EC=84=B8=20API=20=ED=85=8C=EC=9D=B4=EB=B8=94=20?= =?UTF-8?q?=EA=B5=AC=EC=A1=B0=20=EB=B3=80=EA=B2=BD=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EC=9D=B8=ED=95=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InferenceResultApiController.java | 10 +-- .../inference/dto/InferenceDetailDto.java | 14 ++-- .../service/InferenceResultService.java | 7 +- .../core/InferenceResultCoreService.java | 4 +- .../InferenceResultRepositoryImpl.java | 64 +++++++++---------- .../MapSheetLearnRepositoryCustom.java | 4 +- .../MapSheetLearnRepositoryImpl.java | 32 +++++----- 7 files changed, 68 insertions(+), 67 deletions(-) diff --git a/src/main/java/com/kamco/cd/kamcoback/inference/InferenceResultApiController.java b/src/main/java/com/kamco/cd/kamcoback/inference/InferenceResultApiController.java index e47761d9..5f4189c4 100644 --- a/src/main/java/com/kamco/cd/kamcoback/inference/InferenceResultApiController.java +++ b/src/main/java/com/kamco/cd/kamcoback/inference/InferenceResultApiController.java @@ -323,9 +323,9 @@ public class InferenceResultApiController { }) @GetMapping("/infer-result-info") public ApiResponseDto getInferenceResultInfo( - @Parameter(description = "회차 uuid", example = "932fbd72-2e8e-4a49-b189-09046787f9d1") + @Parameter(description = "회차 uuid", example = "f30e8817-9625-4fff-ba43-c1e6ed2067c4") @RequestParam - String uuid) { + UUID uuid) { return ApiResponseDto.ok(inferenceResultService.getInferenceResultInfo(uuid)); } @@ -344,9 +344,9 @@ public class InferenceResultApiController { }) @GetMapping("/infer-class-count") public ApiResponseDto> getInferenceClassCountList( - @Parameter(description = "회차 uuid", example = "8584e8d4-53b3-4582-bde2-28a81495a626") + @Parameter(description = "회차 uuid", example = "242750c5-a627-429b-950a-dce5a87c1c01") @RequestParam - String uuid) { + UUID uuid) { return ApiResponseDto.ok(inferenceResultService.getInferenceClassCountList(uuid)); } @@ -365,7 +365,7 @@ public class InferenceResultApiController { }) @GetMapping("/geom-list") public ApiResponseDto> getInferenceGeomList( - @Parameter(description = "회차 uuid", example = "8584e8d4-53b3-4582-bde2-28a81495a626") + @Parameter(description = "회차 uuid", example = "242750c5-a627-429b-950a-dce5a87c1c01") @RequestParam(required = true) UUID uuid, @Parameter(description = "기준년도 분류", example = "land") @RequestParam(required = false) 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 d825a462..1bb42407 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 @@ -472,14 +472,16 @@ public class InferenceDetailDto { ? Duration.between(inferStartDttm, inferEndDttm) : null; - long seconds = elapsed.getSeconds(); - long abs = Math.abs(seconds); + if (elapsed != null) { + long seconds = elapsed.getSeconds(); + long abs = Math.abs(seconds); - long h = abs / 3600; - long m = (abs % 3600) / 60; - long s = abs % 60; + long h = abs / 3600; + long m = (abs % 3600) / 60; + long s = abs % 60; - this.elapsedDuration = String.format("%02d:%02d:%02d", h, m, s); + this.elapsedDuration = String.format("%02d:%02d:%02d", h, m, s); + } } } } 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 e017e5c5..b502c4cb 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 @@ -62,6 +62,7 @@ public class InferenceResultService { private final ModelMngCoreService modelMngCoreService; private final ExternalHttpClient externalHttpClient; private final ObjectMapper objectMapper; + private final UserUtil userUtil; @Value("${inference.url}") private String inferenceUrl; @@ -72,8 +73,6 @@ public class InferenceResultService { @Value("${spring.profiles.active}") private String profile; - private final UserUtil userUtil; - /** * 추론관리 목록 * @@ -494,11 +493,11 @@ public class InferenceResultService { return dto; } - public AnalResultInfo getInferenceResultInfo(String uuid) { + public AnalResultInfo getInferenceResultInfo(UUID uuid) { return inferenceResultCoreService.getInferenceResultInfo(uuid); } - public List getInferenceClassCountList(String uuid) { + public List getInferenceClassCountList(UUID uuid) { return inferenceResultCoreService.getInferenceClassCountList(uuid); } 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 ff92c270..aea7bcbf 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 @@ -403,11 +403,11 @@ public class InferenceResultCoreService { return dto; } - public AnalResultInfo getInferenceResultInfo(String uuid) { + public AnalResultInfo getInferenceResultInfo(UUID uuid) { return mapSheetLearnRepository.getInferenceResultInfo(uuid); } - public List getInferenceClassCountList(String uuid) { + public List getInferenceClassCountList(UUID uuid) { return mapSheetLearnRepository.getInferenceClassCountList(uuid); } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/InferenceResultRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/InferenceResultRepositoryImpl.java index 1e6bcc15..9b623183 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/InferenceResultRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/InferenceResultRepositoryImpl.java @@ -37,38 +37,38 @@ public class InferenceResultRepositoryImpl implements InferenceResultRepositoryC public Long upsertGroupsFromMapSheetAnal(Long id) { String sql = """ - INSERT INTO tb_map_sheet_anal_inference ( - stage, - compare_yyyy, - target_yyyy, - anal_title, - detecting_cnt, - created_dttm, - m1_model_batch_id, - m2_model_batch_id, - m3_model_batch_id, - learn_id - ) - SELECT - r.stage, - r.compare_yyyy, - r.target_yyyy, - CONCAT(r.stage, '_', r.compare_yyyy, '_', r.target_yyyy) AS anal_title, - r.detecting_cnt, - now(), - r.m1_model_batch_id, - r.m2_model_batch_id, - r.m3_model_batch_id, - r.id - FROM tb_map_sheet_learn r - WHERE r.id = :id - ON CONFLICT (stage, compare_yyyy, target_yyyy) - DO UPDATE SET - detecting_cnt = EXCLUDED.detecting_cnt, - anal_title = EXCLUDED.anal_title, - updated_dttm = now(), - learn_id = EXCLUDED.learn_id - RETURNING anal_uid + INSERT INTO tb_map_sheet_anal_inference ( + stage, + compare_yyyy, + target_yyyy, + anal_title, + detecting_cnt, + created_dttm, + m1_model_batch_id, + m2_model_batch_id, + m3_model_batch_id, + learn_id + ) + SELECT + r.stage, + r.compare_yyyy, + r.target_yyyy, + r.title, + r.detecting_cnt, + now(), + r.m1_model_batch_id, + r.m2_model_batch_id, + r.m3_model_batch_id, + r.id + FROM tb_map_sheet_learn r + WHERE r.id = :id + ON CONFLICT (stage, compare_yyyy, target_yyyy) + DO UPDATE SET + detecting_cnt = EXCLUDED.detecting_cnt, + anal_title = EXCLUDED.anal_title, + updated_dttm = now(), + learn_id = EXCLUDED.learn_id + RETURNING anal_uid """; Object result = em.createNativeQuery(sql).setParameter("id", id).getSingleResult(); diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/MapSheetLearnRepositoryCustom.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/MapSheetLearnRepositoryCustom.java index 55683c6b..fef0cb99 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/MapSheetLearnRepositoryCustom.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/MapSheetLearnRepositoryCustom.java @@ -32,9 +32,9 @@ public interface MapSheetLearnRepositoryCustom { Integer getLearnStage(Integer compareYear, Integer targetYear); - AnalResultInfo getInferenceResultInfo(String uuid); + AnalResultInfo getInferenceResultInfo(UUID uuid); - List getInferenceClassCountList(String uuid); + List getInferenceClassCountList(UUID uuid); Page getInferenceGeomList(UUID uuid, SearchGeoReq searchGeoReq); } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/MapSheetLearnRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/MapSheetLearnRepositoryImpl.java index 70d1892c..a0a5f1ab 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/MapSheetLearnRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/Inference/MapSheetLearnRepositoryImpl.java @@ -19,7 +19,6 @@ import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto; import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.InferenceServerStatusDto; import com.kamco.cd.kamcoback.inference.dto.InferenceResultDto.InferenceStatusDetailDto; import com.kamco.cd.kamcoback.model.service.ModelMngService; -import com.kamco.cd.kamcoback.postgres.entity.MapSheetAnalInferenceEntity; import com.kamco.cd.kamcoback.postgres.entity.MapSheetLearnEntity; import com.kamco.cd.kamcoback.postgres.entity.QModelMngEntity; import com.querydsl.core.BooleanBuilder; @@ -28,7 +27,6 @@ import com.querydsl.core.types.dsl.CaseBuilder; import com.querydsl.core.types.dsl.Expressions; import com.querydsl.core.types.dsl.NumberExpression; import com.querydsl.jpa.impl.JPAQueryFactory; -import jakarta.persistence.EntityNotFoundException; import java.time.OffsetDateTime; import java.util.List; import java.util.Objects; @@ -292,7 +290,7 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto } @Override - public AnalResultInfo getInferenceResultInfo(String uuid) { + public AnalResultInfo getInferenceResultInfo(UUID uuid) { QModelMngEntity m1 = new QModelMngEntity("m1"); QModelMngEntity m2 = new QModelMngEntity("m2"); QModelMngEntity m3 = new QModelMngEntity("m3"); @@ -319,22 +317,22 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto .on(mapSheetLearnEntity.m2ModelUuid.eq(m2.uuid)) .leftJoin(m3) .on(mapSheetLearnEntity.m3ModelUuid.eq(m3.uuid)) - .where(mapSheetLearnEntity.uuid.eq(UUID.fromString(uuid))) + .where(mapSheetLearnEntity.uuid.eq(uuid)) .fetchOne(); } @Override - public List getInferenceClassCountList(String uuid) { + public List getInferenceClassCountList(UUID uuid) { // analUid로 분석 정보 조회 - MapSheetAnalInferenceEntity analEntity = + MapSheetLearnEntity learnEntity = queryFactory - .selectFrom(mapSheetAnalInferenceEntity) - .where(mapSheetAnalInferenceEntity.uuid.eq(UUID.fromString(uuid))) + .selectFrom(mapSheetLearnEntity) + .where(mapSheetLearnEntity.uuid.eq(uuid)) .fetchOne(); - if (Objects.isNull(analEntity)) { - throw new EntityNotFoundException("MapSheetAnalInferenceEntity not found for analUid: "); + if (Objects.isNull(learnEntity)) { + throw new CustomApiException("NOT_FOUND_DATA", HttpStatus.NOT_FOUND); } return queryFactory @@ -343,8 +341,10 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto Dashboard.class, mapSheetAnalSttcEntity.id.classAfterCd, mapSheetAnalSttcEntity.classAfterCnt.sum())) - .from(mapSheetAnalSttcEntity) - .where(mapSheetAnalSttcEntity.id.analUid.eq(analEntity.getId())) + .from(mapSheetAnalInferenceEntity) + .innerJoin(mapSheetAnalSttcEntity) + .on(mapSheetAnalInferenceEntity.id.eq(mapSheetAnalSttcEntity.id.analUid)) + .where(mapSheetAnalInferenceEntity.learnId.eq(learnEntity.getId())) .groupBy(mapSheetAnalSttcEntity.id.classAfterCd) .orderBy(mapSheetAnalSttcEntity.id.classAfterCd.asc()) .fetch(); @@ -362,10 +362,10 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto BooleanBuilder builder = new BooleanBuilder(); // analUid로 분석 정보 조회 - MapSheetAnalInferenceEntity analEntity = + MapSheetLearnEntity analEntity = queryFactory - .selectFrom(mapSheetAnalInferenceEntity) - .where(mapSheetAnalInferenceEntity.uuid.eq(uuid)) + .selectFrom(mapSheetLearnEntity) + .where(mapSheetLearnEntity.uuid.eq(uuid)) .fetchOne(); if (Objects.isNull(analEntity)) { @@ -373,7 +373,7 @@ public class MapSheetLearnRepositoryImpl implements MapSheetLearnRepositoryCusto } // 추론결과 id - builder.and(mapSheetAnalInferenceEntity.id.eq(analEntity.getId())); + builder.and(mapSheetAnalInferenceEntity.learnId.eq(analEntity.getId())); // 기준년도 분류 if (searchGeoReq.getTargetClass() != null && !searchGeoReq.getTargetClass().equals("")) { From e36af2afa3c06d2c8802e7ab1ba20797721c300d Mon Sep 17 00:00:00 2001 From: "gayoun.park" Date: Fri, 16 Jan 2026 11:46:07 +0900 Subject: [PATCH 3/4] spotless --- .../cd/kamcoback/label/LabelAllocateApiController.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/kamco/cd/kamcoback/label/LabelAllocateApiController.java b/src/main/java/com/kamco/cd/kamcoback/label/LabelAllocateApiController.java index e65dee0c..11243bb8 100644 --- a/src/main/java/com/kamco/cd/kamcoback/label/LabelAllocateApiController.java +++ b/src/main/java/com/kamco/cd/kamcoback/label/LabelAllocateApiController.java @@ -263,9 +263,9 @@ public class LabelAllocateApiController { {"uuid": "f97dc186-e6d3-4645-9737-3173dde8dc64", "closedType": "LABELING", "closedYn": "Y"} """), @io.swagger.v3.oas.annotations.media.ExampleObject( - name = "특정 프로젝트 검수 전체 종료", - value = - """ + name = "특정 프로젝트 검수 전체 종료", + value = + """ {"uuid": "f97dc186-e6d3-4645-9737-3173dde8dc64", "closedType": "INSPECTION", "closedYn": "Y"} """) })) From c8aab5f9fb9812ae66e74be47c209e82f2e5aa55 Mon Sep 17 00:00:00 2001 From: DanielLee <198891672+sanghyeonhd@users.noreply.github.com> Date: Fri, 16 Jan 2026 12:26:05 +0900 Subject: [PATCH 4/4] projectinfo closed BOTH ADD --- .../label/LabelAllocateApiController.java | 20 +++++++++++++++++-- .../kamcoback/label/dto/WorkerStatsDto.java | 11 +++++----- .../label/service/LabelAllocateService.java | 8 +++++++- .../label/LabelAllocateRepositoryImpl.java | 4 ++++ 4 files changed, 35 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/kamco/cd/kamcoback/label/LabelAllocateApiController.java b/src/main/java/com/kamco/cd/kamcoback/label/LabelAllocateApiController.java index 11243bb8..040c0e96 100644 --- a/src/main/java/com/kamco/cd/kamcoback/label/LabelAllocateApiController.java +++ b/src/main/java/com/kamco/cd/kamcoback/label/LabelAllocateApiController.java @@ -267,7 +267,13 @@ public class LabelAllocateApiController { value = """ {"uuid": "f97dc186-e6d3-4645-9737-3173dde8dc64", "closedType": "INSPECTION", "closedYn": "Y"} - """) + """), + @io.swagger.v3.oas.annotations.media.ExampleObject( + name = "특정 프로젝트 라벨링+검수 동시 종료", + value = + """ + {"uuid": "f97dc186-e6d3-4645-9737-3173dde8dc64", "closedType": "BOTH", "closedYn": "Y"} + """) })) @RequestBody @Valid @@ -276,7 +282,17 @@ public class LabelAllocateApiController { labelAllocateService.updateClosedYn( request.getUuid(), request.getClosedType(), request.getClosedYn()); - String typeLabel = "LABELING".equals(request.getClosedType()) ? "라벨링" : "검수"; + String typeLabel; + if ("LABELING".equals(request.getClosedType())) { + typeLabel = "라벨링"; + } else if ("INSPECTION".equals(request.getClosedType())) { + typeLabel = "검수"; + } else if ("BOTH".equals(request.getClosedType())) { + typeLabel = "라벨링 및 검수"; + } else { + typeLabel = "작업"; + } + String statusMessage = "Y".equals(request.getClosedYn()) ? typeLabel + "이(가) 종료되었습니다." diff --git a/src/main/java/com/kamco/cd/kamcoback/label/dto/WorkerStatsDto.java b/src/main/java/com/kamco/cd/kamcoback/label/dto/WorkerStatsDto.java index 75f09508..42d924d5 100644 --- a/src/main/java/com/kamco/cd/kamcoback/label/dto/WorkerStatsDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/label/dto/WorkerStatsDto.java @@ -57,13 +57,14 @@ public class WorkerStatsDto { example = "f97dc186-e6d3-4645-9737-3173dde8dc64") private String uuid; - @NotBlank(message = "종료 유형은 필수입니다.") - @Pattern(regexp = "^(LABELING|INSPECTION)$", message = "종료 유형은 LABELING 또는 INSPECTION이어야 합니다.") + @Pattern( + regexp = "^(LABELING|INSPECTION|BOTH)$", + message = "종료 유형은 LABELING, INSPECTION 또는 BOTH 이어야 합니다.") @Schema( - description = "종료 유형 (LABELING: 라벨링, INSPECTION: 검수)", + description = "종료 유형 (LABELING: 라벨링만, INSPECTION: 검수만, BOTH: 라벨링+검수 동시)", example = "LABELING", - allowableValues = {"LABELING", "INSPECTION"}, - requiredMode = Schema.RequiredMode.REQUIRED) + allowableValues = {"LABELING", "INSPECTION", "BOTH"}, + requiredMode = Schema.RequiredMode.NOT_REQUIRED) private String closedType; @NotBlank(message = "종료 여부는 필수입니다.") diff --git a/src/main/java/com/kamco/cd/kamcoback/label/service/LabelAllocateService.java b/src/main/java/com/kamco/cd/kamcoback/label/service/LabelAllocateService.java index 4a8b5502..3b070eb6 100644 --- a/src/main/java/com/kamco/cd/kamcoback/label/service/LabelAllocateService.java +++ b/src/main/java/com/kamco/cd/kamcoback/label/service/LabelAllocateService.java @@ -234,13 +234,19 @@ public class LabelAllocateService { * 프로젝트 종료 여부 업데이트 * * @param uuid 프로젝트 UUID (선택, 미입력 시 최신 프로젝트 대상) - * @param closedType 종료 유형 (LABELING/INSPECTION) + * @param closedType 종료 유형 (LABELING/INSPECTION/BOTH) * @param closedYn 종료 여부 (Y/N) */ @Transactional public void updateClosedYn(String uuid, String closedType, String closedYn) { String targetUuid = uuid; + // closedType 유효성 검증 + if (closedType == null || closedType.isBlank()) { + throw new IllegalArgumentException( + "종료 유형(closedType)은 필수입니다. (LABELING, INSPECTION, BOTH 중 하나)"); + } + // uuid가 없으면 최신 프로젝트 uuid 조회 if (targetUuid == null || targetUuid.isBlank()) { var latestProjectInfo = labelAllocateCoreService.findLatestProjectInfo(); diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/label/LabelAllocateRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/label/LabelAllocateRepositoryImpl.java index e3ec3ff6..a4015c2f 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/label/LabelAllocateRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/label/LabelAllocateRepositoryImpl.java @@ -1553,6 +1553,10 @@ public class LabelAllocateRepositoryImpl implements LabelAllocateRepositoryCusto updateQuery.set(mapSheetAnalInferenceEntity.labelingClosedYn, closedYn); } else if ("INSPECTION".equals(closedType)) { updateQuery.set(mapSheetAnalInferenceEntity.inspectionClosedYn, closedYn); + } else if ("BOTH".equals(closedType)) { + updateQuery + .set(mapSheetAnalInferenceEntity.labelingClosedYn, closedYn) + .set(mapSheetAnalInferenceEntity.inspectionClosedYn, closedYn); } updateQuery