모델관리 목록, 삭제 API 수정된 버전 커밋

This commit is contained in:
2025-12-24 11:17:08 +09:00
parent f85d6c07b7
commit 72b8a7c41c
6 changed files with 174 additions and 143 deletions

View File

@@ -13,7 +13,12 @@ import jakarta.transaction.Transactional;
import java.time.LocalDate; import java.time.LocalDate;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@Tag(name = "모델 관리", description = "모델 관리 API") @Tag(name = "모델 관리", description = "모델 관리 API")
@RequiredArgsConstructor @RequiredArgsConstructor

View File

@@ -16,41 +16,70 @@ import org.springframework.data.domain.Sort;
public class ModelMngDto { public class ModelMngDto {
@CodeExpose
@Getter
@AllArgsConstructor
public enum ModelType implements EnumType {
M1("모델 M1"),
M2("모델 M2"),
M3("모델 M3");
private final String desc;
@Override
public String getId() {
return name();
}
@Override
public String getText() {
return desc;
}
}
@Schema(name = "ModelMgmtDto Basic", description = "모델관리 엔티티 기본 정보") @Schema(name = "ModelMgmtDto Basic", description = "모델관리 엔티티 기본 정보")
@Getter @Getter
@NoArgsConstructor @NoArgsConstructor
public static class Basic { public static class Basic {
private Long modelUid;
private String modelVer; private String modelVer;
private String hyperVer;
private String epochVer;
private String dockerFileNm;
@JsonFormatDttm private ZonedDateTime createCompleteDttm; @JsonFormatDttm
@JsonFormatDttm private ZonedDateTime recentUseDttm; private ZonedDateTime createCompleteDttm;
@JsonFormatDttm
private ZonedDateTime recentUseDttm;
private Boolean deleted; private Boolean deleted;
@JsonFormatDttm private ZonedDateTime createdDttm; @JsonFormatDttm
private ZonedDateTime createdDttm;
private Long createdUid; private Long createdUid;
@JsonFormatDttm private ZonedDateTime updatedDttm; @JsonFormatDttm
private ZonedDateTime updatedDttm;
private Long updatedUid; private Long updatedUid;
private String modelType;
private String filePath;
private String fileName;
private String memo;
public Basic( public Basic(
Long modelUid,
String modelVer, String modelVer,
String hyperVer,
String epochVer,
String dockerFileNm,
ZonedDateTime createCompleteDttm, ZonedDateTime createCompleteDttm,
ZonedDateTime recentUseDttm, ZonedDateTime recentUseDttm,
Boolean deleted, Boolean deleted,
ZonedDateTime createdDttm, ZonedDateTime createdDttm,
Long createdUid, Long createdUid,
ZonedDateTime updatedDttm, ZonedDateTime updatedDttm,
Long updatedUid) { Long updatedUid,
String modelType,
String filePath,
String fileName,
String memo
) {
this.modelUid = modelUid;
this.modelVer = modelVer; this.modelVer = modelVer;
this.hyperVer = hyperVer;
this.epochVer = epochVer;
this.dockerFileNm = dockerFileNm;
this.createCompleteDttm = createCompleteDttm; this.createCompleteDttm = createCompleteDttm;
this.recentUseDttm = recentUseDttm; this.recentUseDttm = recentUseDttm;
this.deleted = deleted; this.deleted = deleted;
@@ -58,6 +87,10 @@ public class ModelMngDto {
this.createdUid = createdUid; this.createdUid = createdUid;
this.updatedDttm = updatedDttm; this.updatedDttm = updatedDttm;
this.updatedUid = updatedUid; this.updatedUid = updatedUid;
this.modelType = modelType;
this.filePath = filePath;
this.fileName = fileName;
this.memo = memo;
} }
} }
@@ -67,17 +100,18 @@ public class ModelMngDto {
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
public static class ModelList { public static class ModelList {
private Integer rowNum; private Integer rowNum;
private String modelVer; private String modelVer;
private String fileName; private String fileName;
private String modelType; private String modelType;
private String createCompleteDttm; private String createCompleteDttm;
private String recentUseDttm;
private BigDecimal f1Score; private BigDecimal f1Score;
private BigDecimal precision; private BigDecimal precision;
private BigDecimal recall; private BigDecimal recall;
private BigDecimal accuracy; private BigDecimal accuracy;
private BigDecimal iou; private BigDecimal iou;
private String memo;
private Boolean deleted; private Boolean deleted;
} }
@@ -118,25 +152,4 @@ public class ModelMngDto {
return PageRequest.of(page, size); return PageRequest.of(page, size);
} }
} }
@CodeExpose
@Getter
@AllArgsConstructor
public enum ModelType implements EnumType {
M1("모델 M1"),
M2("모델 M2"),
M3("모델 M3");
private final String desc;
@Override
public String getId() {
return name();
}
@Override
public String getText() {
return desc;
}
}
} }

View File

@@ -27,4 +27,5 @@ public class ModelMngService {
public ApiResponseDto.ResponseObj removeModel(String modelVer) { public ApiResponseDto.ResponseObj removeModel(String modelVer) {
return modelMngCoreService.removeModel(modelVer); return modelMngCoreService.removeModel(modelVer);
} }
} }

View File

@@ -1,7 +1,12 @@
package com.kamco.cd.kamcoback.postgres.entity; package com.kamco.cd.kamcoback.postgres.entity;
import com.kamco.cd.kamcoback.postgres.CommonDateEntity; import com.kamco.cd.kamcoback.postgres.CommonDateEntity;
import jakarta.persistence.*; import jakarta.persistence.Column;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import java.time.ZonedDateTime; import java.time.ZonedDateTime;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
@@ -11,6 +16,7 @@ import lombok.Setter;
@Entity @Entity
@Table(name = "tb_model_mng") @Table(name = "tb_model_mng")
public class ModelMngEntity extends CommonDateEntity { public class ModelMngEntity extends CommonDateEntity {
@Id @Id
@GeneratedValue(strategy = GenerationType.IDENTITY) @GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "model_uid") @Column(name = "model_uid")
@@ -43,6 +49,9 @@ public class ModelMngEntity extends CommonDateEntity {
@Column(name = "file_name") @Column(name = "file_name")
private String fileName; private String fileName;
@Column(name = "memo")
private String memo;
public void deleted() { public void deleted() {
this.deleted = true; this.deleted = true;
} }

View File

@@ -16,4 +16,5 @@ public interface ModelMngRepositoryCustom {
String searchVal); String searchVal);
Optional<ModelMngEntity> findByModelUid(String modelVer); Optional<ModelMngEntity> findByModelUid(String modelVer);
} }

View File

@@ -9,7 +9,10 @@ import com.kamco.cd.kamcoback.postgres.entity.ModelMngEntity;
import com.querydsl.core.BooleanBuilder; import com.querydsl.core.BooleanBuilder;
import com.querydsl.core.types.Expression; import com.querydsl.core.types.Expression;
import com.querydsl.core.types.Projections; import com.querydsl.core.types.Projections;
import com.querydsl.core.types.dsl.*; import com.querydsl.core.types.dsl.BooleanExpression;
import com.querydsl.core.types.dsl.Expressions;
import com.querydsl.core.types.dsl.NumberPath;
import com.querydsl.core.types.dsl.StringExpression;
import com.querydsl.jpa.impl.JPAQueryFactory; import com.querydsl.jpa.impl.JPAQueryFactory;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.time.LocalDate; import java.time.LocalDate;
@@ -71,13 +74,12 @@ public class ModelMngRepositoryImpl extends QuerydslRepositorySupport
modelMngEntity.modelType, modelMngEntity.modelType,
Expressions.stringTemplate( Expressions.stringTemplate(
"to_char({0}, 'YYYY-MM-DD')", modelMngEntity.createCompleteDttm), "to_char({0}, 'YYYY-MM-DD')", modelMngEntity.createCompleteDttm),
Expressions.stringTemplate(
"to_char({0}, 'YYYY-MM-DD')", modelMngEntity.recentUseDttm),
roundNumericToPercent(modelResultMetricEntity.f1Score), roundNumericToPercent(modelResultMetricEntity.f1Score),
roundNumericToPercent(modelResultMetricEntity.precision), roundNumericToPercent(modelResultMetricEntity.precision),
roundNumericToPercent(modelResultMetricEntity.recall), roundNumericToPercent(modelResultMetricEntity.recall),
roundNumericToPercent(modelResultMetricEntity.loss), roundNumericToPercent(modelResultMetricEntity.loss),
roundNumericToPercent(modelResultMetricEntity.iou), roundNumericToPercent(modelResultMetricEntity.iou),
modelMngEntity.memo,
modelMngEntity.deleted)) modelMngEntity.deleted))
.from(modelMngEntity) .from(modelMngEntity)
.innerJoin(modelResultMetricEntity) .innerJoin(modelResultMetricEntity)