[KC-99] 추론관리 등록 ai api 추가중, spotless 적용

This commit is contained in:
2026-01-09 16:12:21 +09:00
parent 3161b6dea7
commit 11b72e80cd
19 changed files with 355 additions and 77 deletions

View File

@@ -4,7 +4,6 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import com.kamco.cd.kamcoback.common.utils.enums.CodeExpose;
import com.kamco.cd.kamcoback.common.utils.enums.EnumType;
import com.kamco.cd.kamcoback.common.utils.interfaces.JsonFormatDttm;
import com.kamco.cd.kamcoback.upload.dto.UploadDto;
import io.swagger.v3.oas.annotations.media.Schema;
import java.math.BigDecimal;
import java.time.ZonedDateTime;
@@ -67,7 +66,7 @@ public class ModelMngDto {
private String clsModelPath;
private String clsModelFileName;
private String clsModelVersion;
private double priority;
private Double priority;
private String memo;
public Basic(
@@ -142,7 +141,7 @@ public class ModelMngDto {
private String clsModelPath;
private String clsModelFileName;
private String clsModelVersion;
private double priority;
private Double priority;
}
@Schema(name = "ModelAddReq", description = "모델 등록 req")
@@ -164,8 +163,8 @@ public class ModelMngDto {
private String clsModelFileName;
private String memo;
@JsonIgnore private String clsModelVersion;
@JsonIgnore private double priority;
@JsonIgnore private String clsModelVersion;
@JsonIgnore private Double priority;
@JsonIgnore private UUID uuid;
}
@@ -193,13 +192,13 @@ public class ModelMngDto {
}
}
@Schema(name = "ModelMetricAddReq", description = "모델 등록 req")
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
public static class ModelMetricAddReq {
private Long modelUid;
private Long modelVerUid;
private double f1Score;
@@ -215,6 +214,7 @@ public class ModelMngDto {
@NoArgsConstructor
@AllArgsConstructor
public static class ModelUploadResDto {
private String res;
private String resMsg;
private UUID uuid;
@@ -236,5 +236,4 @@ public class ModelMngDto {
return (double) (this.chunkIndex + 1) / (this.chunkTotalIndex + 1) * 100.0;
}
}
}

View File

@@ -3,8 +3,6 @@ package com.kamco.cd.kamcoback.model.service;
import com.kamco.cd.kamcoback.common.utils.FIleChecker;
import com.kamco.cd.kamcoback.common.utils.FIleChecker.Basic;
import com.kamco.cd.kamcoback.config.api.ApiResponseDto;
import com.kamco.cd.kamcoback.mapsheet.dto.FileDto.FilesDto;
import com.kamco.cd.kamcoback.mapsheet.dto.FileDto.SrchFilesDto;
import com.kamco.cd.kamcoback.model.dto.ModelMngDto;
import com.kamco.cd.kamcoback.model.dto.ModelMngDto.ModelMetricAddReq;
import com.kamco.cd.kamcoback.model.dto.ModelMngDto.ModelUploadResDto;
@@ -71,7 +69,7 @@ public class ModelMngService {
UUID uuid = UUID.randomUUID();
addReq.setUuid(uuid);
addReq.setClsModelVersion(addReq.getModelVer());
addReq.setPriority(0L);
addReq.setPriority(0d);
Long modelUid = modelMngCoreService.insertModel(addReq);
ModelMetricAddReq modelMetricAddReq = new ModelMetricAddReq();
@@ -83,7 +81,6 @@ public class ModelMngService {
modelMetricAddReq.setLoss(0);
modelMetricAddReq.setIou(0);
modelMngCoreService.insertModelResultMetric(modelMetricAddReq);
return new ApiResponseDto.ResponseObj(ApiResponseDto.ApiResponseCode.OK, "등록되었습니다.");
@@ -91,20 +88,19 @@ public class ModelMngService {
public ModelUploadResDto uploadChunkModelFile(
UploadDto.UploadAddReq upAddReqDto, MultipartFile chunkFile) {
UploadDto.UploadRes upRes = uploadService.uploadChunk(upAddReqDto, chunkFile);
UploadDto.UploadRes upRes = uploadService.uploadChunk(upAddReqDto, chunkFile);
ModelUploadResDto modelUploadResDto = new ModelUploadResDto();
modelUploadResDto.setRes(upRes.getRes());
modelUploadResDto.setResMsg(upRes.getResMsg());
modelUploadResDto.setUuid(upRes.getUuid());
modelUploadResDto.setFilePath(upRes.getFilePath());
modelUploadResDto.setFileName(upRes.getFileName());
modelUploadResDto.setChunkIndex(upRes.getChunkIndex());
modelUploadResDto.setChunkTotalIndex(upRes.getChunkTotalIndex());
// 압축풀기 (String zipFilePath, String destDirectory)
ModelUploadResDto modelUploadResDto = new ModelUploadResDto();
modelUploadResDto.setRes(upRes.getRes());
modelUploadResDto.setResMsg(upRes.getResMsg());
modelUploadResDto.setUuid(upRes.getUuid());
modelUploadResDto.setFilePath(upRes.getFilePath());
modelUploadResDto.setFileName(upRes.getFileName());
modelUploadResDto.setChunkIndex(upRes.getChunkIndex());
modelUploadResDto.setChunkTotalIndex(upRes.getChunkTotalIndex());
//압축풀기 (String zipFilePath, String destDirectory)
if( upRes.getChunkIndex() == upRes.getChunkTotalIndex() ) {
if (upRes.getChunkIndex() == upRes.getChunkTotalIndex()) {
try {
FIleChecker.unzip(upRes.getFileName(), upRes.getFilePath());
@@ -115,47 +111,37 @@ public class ModelMngService {
}
}
return modelUploadResDto;
}
public ModelUploadResDto getUnzipModelFiles(String dirPath, ModelUploadResDto modelUploadResDto) {
//String dirPath = srchDto.getDirPath();
// String dirPath = srchDto.getDirPath();
int startPos = 0;
int endPos = 20;
List<Basic> files =
FIleChecker.getFilesFromAllDepth(
dirPath,
"*",
"pth,py",
10,
"name",
startPos,
endPos);
FIleChecker.getFilesFromAllDepth(dirPath, "*", "pth,py", 10, "name", startPos, endPos);
for (Basic dto : files) {
// 예: 파일명 출력 및 추가 작업
String foldNm = dto.getFullPath().replace(dto.getFileNm(), "");
if( dto.getExtension().equals("pth") ) {
if (dto.getExtension().equals("pth")) {
modelUploadResDto.setCdModelPath(foldNm);
modelUploadResDto.setCdModelFileName(dto.getFileNm());
}else if( dto.getExtension().equals("py") ) {
} else if (dto.getExtension().equals("py")) {
modelUploadResDto.setCdModelConfigPath(foldNm);
modelUploadResDto.setCdModelConfigFileName(dto.getFileNm());
}else if( dto.getExtension().equals("json") ) {
} else if (dto.getExtension().equals("json")) {
modelUploadResDto.setClsModelPath(foldNm);
modelUploadResDto.setClsModelFileName(dto.getFileNm());
}
}
//int fileListPos = 0;
//int fileTotCnt = files.size();
//long fileTotSize = FIleChecker.getFileTotSize(files);
// int fileListPos = 0;
// int fileTotCnt = files.size();
// long fileTotSize = FIleChecker.getFileTotSize(files);
return modelUploadResDto;
}