국유인in 연동 가능여부 api 수정
This commit is contained in:
@@ -7,7 +7,7 @@ import com.kamco.cd.kamcoback.gukyuin.dto.ChngDetectMastDto.ChngDetectMastSearch
|
||||
import com.kamco.cd.kamcoback.gukyuin.dto.ChngDetectMastDto.ResReturn;
|
||||
import com.kamco.cd.kamcoback.gukyuin.dto.DetectMastDto.Basic;
|
||||
import com.kamco.cd.kamcoback.gukyuin.dto.DetectMastDto.DetectMastReq;
|
||||
import com.kamco.cd.kamcoback.gukyuin.dto.GukYuinDto;
|
||||
import com.kamco.cd.kamcoback.gukyuin.dto.GukYuinDto.GukYuinLinkableRes;
|
||||
import com.kamco.cd.kamcoback.gukyuin.service.GukYuinApiService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
@@ -114,12 +114,12 @@ public class GukYuinApiController {
|
||||
mediaType = "application/json",
|
||||
schema =
|
||||
@Schema(
|
||||
implementation = GukYuinDto.isLinkDto.class,
|
||||
implementation = GukYuinLinkableRes.class,
|
||||
description = "TRUE:연동가능, FALSE:연동 불가능"))),
|
||||
@ApiResponse(responseCode = "404", description = "코드를 찾을 수 없음", content = @Content),
|
||||
@ApiResponse(responseCode = "500", description = "서버 오류", content = @Content)
|
||||
})
|
||||
public ApiResponseDto<GukYuinDto.isLinkDto> getIsLinkGukYuin(
|
||||
public ApiResponseDto<GukYuinLinkableRes> getIsLinkGukYuin(
|
||||
@Parameter(description = "uuid", example = "5799eb21-4780-48b0-a82e-e58dcbb8806b")
|
||||
@PathVariable
|
||||
UUID uuid) {
|
||||
|
||||
@@ -1,19 +1,48 @@
|
||||
package com.kamco.cd.kamcoback.gukyuin.dto;
|
||||
|
||||
import com.kamco.cd.kamcoback.common.utils.enums.EnumType;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.Setter;
|
||||
|
||||
public class GukYuinDto {
|
||||
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public static class isLinkDto {
|
||||
public static class GukYuinLinkableRes {
|
||||
|
||||
private Boolean isLinkable;
|
||||
private boolean linkable;
|
||||
// private GukYuinLinkFailCode code;
|
||||
private String message;
|
||||
}
|
||||
|
||||
/** 실패 코드 enum */
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
public enum GukYuinLinkFailCode implements EnumType {
|
||||
OK("연동 가능"),
|
||||
NOT_FOUND("대상 회차가 없습니다."),
|
||||
SCOPE_PART_NOT_ALLOWED("부분 도엽은 연동 불가능 합니다."),
|
||||
HAS_RUNNING_INFERENCE("라벨링 진행 중 회차가 있습니다."),
|
||||
OTHER_GUKYUIN_IN_PROGRESS("국유in 연동 진행 중 회차가 있습니다.");
|
||||
|
||||
private final String desc;
|
||||
|
||||
@Override
|
||||
public String getId() {
|
||||
return name();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getText() {
|
||||
return desc;
|
||||
}
|
||||
}
|
||||
|
||||
// Repository가 반환할 Fact(조회 결과)
|
||||
public record GukYuinLinkFacts(
|
||||
boolean existsLearn,
|
||||
boolean isPartScope,
|
||||
boolean hasRunningInference,
|
||||
boolean hasOtherUnfinishedGukYuin) {}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,9 @@ import com.kamco.cd.kamcoback.config.resttemplate.ExternalHttpClient;
|
||||
import com.kamco.cd.kamcoback.config.resttemplate.ExternalHttpClient.ExternalCallResult;
|
||||
import com.kamco.cd.kamcoback.gukyuin.dto.ChngDetectMastDto;
|
||||
import com.kamco.cd.kamcoback.gukyuin.dto.ChngDetectMastDto.ResReturn;
|
||||
import com.kamco.cd.kamcoback.gukyuin.dto.GukYuinDto;
|
||||
import com.kamco.cd.kamcoback.gukyuin.dto.GukYuinDto.GukYuinLinkFacts;
|
||||
import com.kamco.cd.kamcoback.gukyuin.dto.GukYuinDto.GukYuinLinkFailCode;
|
||||
import com.kamco.cd.kamcoback.gukyuin.dto.GukYuinDto.GukYuinLinkableRes;
|
||||
import com.kamco.cd.kamcoback.postgres.core.GukYuinCoreService;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
@@ -100,7 +102,35 @@ public class GukYuinApiService {
|
||||
* @param uuid uuid
|
||||
* @return
|
||||
*/
|
||||
public GukYuinDto.isLinkDto getIsLinkGukYuin(UUID uuid) {
|
||||
return gukyuinCoreService.getIsLinkGukYuin(uuid);
|
||||
public GukYuinLinkableRes getIsLinkGukYuin(UUID uuid) {
|
||||
GukYuinLinkFacts f = gukyuinCoreService.findLinkFacts(uuid);
|
||||
GukYuinLinkFailCode code = decideCode(f);
|
||||
|
||||
GukYuinLinkableRes res = new GukYuinLinkableRes();
|
||||
// res.setCode(code);
|
||||
res.setLinkable(code == GukYuinLinkFailCode.OK);
|
||||
res.setMessage(code.getDesc());
|
||||
return res;
|
||||
}
|
||||
|
||||
private GukYuinLinkFailCode decideCode(GukYuinLinkFacts f) {
|
||||
|
||||
if (!f.existsLearn()) {
|
||||
return GukYuinLinkFailCode.NOT_FOUND;
|
||||
}
|
||||
|
||||
if (f.isPartScope()) {
|
||||
return GukYuinLinkFailCode.SCOPE_PART_NOT_ALLOWED;
|
||||
}
|
||||
|
||||
if (f.hasRunningInference()) {
|
||||
return GukYuinLinkFailCode.HAS_RUNNING_INFERENCE;
|
||||
}
|
||||
|
||||
if (f.hasOtherUnfinishedGukYuin()) {
|
||||
return GukYuinLinkFailCode.OTHER_GUKYUIN_IN_PROGRESS;
|
||||
}
|
||||
|
||||
return GukYuinLinkFailCode.OK;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user