diff --git a/src/main/java/com/kamco/cd/kamcoback/mapsheet/dto/MapSheetMngDto.java b/src/main/java/com/kamco/cd/kamcoback/mapsheet/dto/MapSheetMngDto.java index 6ee5c82f..0d483dd6 100644 --- a/src/main/java/com/kamco/cd/kamcoback/mapsheet/dto/MapSheetMngDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/mapsheet/dto/MapSheetMngDto.java @@ -2,7 +2,7 @@ package com.kamco.cd.kamcoback.mapsheet.dto; import com.kamco.cd.kamcoback.common.enums.MngStateType; import com.kamco.cd.kamcoback.common.enums.SyncStateType; -import com.kamco.cd.kamcoback.common.utils.Enums; +import com.kamco.cd.kamcoback.common.utils.enums.Enums; import com.kamco.cd.kamcoback.common.utils.interfaces.JsonFormatDttm; import io.swagger.v3.oas.annotations.media.Schema; import java.time.ZonedDateTime; @@ -44,6 +44,7 @@ public class MapSheetMngDto { @NoArgsConstructor @AllArgsConstructor public static class AddReq { + @Schema(description = "관리년도", example = "2022") private int mngYyyy; @@ -57,6 +58,7 @@ public class MapSheetMngDto { @NoArgsConstructor @AllArgsConstructor public static class DeleteFileReq { + @Schema(description = "파일 경로", example = "/app/original-images/2024/00000001.tif") private String filePath; } @@ -67,6 +69,7 @@ public class MapSheetMngDto { @NoArgsConstructor @AllArgsConstructor public static class MngDto { + private int rowNum; private int mngYyyy; private String mngPath; @@ -85,7 +88,6 @@ public class MapSheetMngDto { @JsonFormatDttm private ZonedDateTime rgstStrtDttm; @JsonFormatDttm private ZonedDateTime rgstEndDttm; - public double getSyncStateDoneRate() { if (this.syncTotCnt == null || this.syncTotCnt == 0) { return 0.0; @@ -110,7 +112,9 @@ public class MapSheetMngDto { public String getMngStateName() { String enumId = this.mngState; - if (enumId == null || enumId.isEmpty()) enumId = "NOTYET"; + if (enumId == null || enumId.isEmpty()) { + enumId = "NOTYET"; + } MngStateType type = Enums.fromId(MngStateType.class, enumId); return type.getText(); @@ -162,6 +166,7 @@ public class MapSheetMngDto { @Getter @Setter public static class ErrorDataDto { + private Long hstUid; private Integer mngYyyy; private String mapSheetNum; @@ -220,19 +225,20 @@ public class MapSheetMngDto { } private String getSyncStateName(String enumId) { - if (enumId == null || enumId.isEmpty()) enumId = "NOTYET"; + if (enumId == null || enumId.isEmpty()) { + enumId = "NOTYET"; + } SyncStateType type = Enums.fromId(SyncStateType.class, enumId); return type.getText(); } } - - @Schema(name = "MngFIleDto", description = "관리파일정보") @Getter @Setter public static class MngFIleDto { + private Long fileUid; private String filePath; private String fileName; @@ -247,6 +253,7 @@ public class MapSheetMngDto { @NoArgsConstructor @AllArgsConstructor public static class DmlReturn { + private String flag; private String message; } @@ -257,6 +264,7 @@ public class MapSheetMngDto { @NoArgsConstructor @AllArgsConstructor public static class MngFileAddReq { + private int mngYyyy; private String mapSheetNum; private String refMapSheetNum; @@ -274,6 +282,7 @@ public class MapSheetMngDto { @NoArgsConstructor @AllArgsConstructor public static class MngFilesDto { + private long fileUid; private int mngYyyy; private String mapSheetNum; @@ -285,17 +294,16 @@ public class MapSheetMngDto { private Long fileSize; } - - @Schema(name = "ReqUpdateErrorCheckStateDto", description = "영상관리 오류데이터 체크결과 수정요청") @Getter @Setter public static class ReqUpdateErrorCheckStateDto { + private Long hstUid; private String errorCheckState; private String errorCheckTfwFileName; private String errorCheckTifFileName; -/* + /* public reqErrorDataCheckStateDto( Long hstUid, String errorCheckState, diff --git a/src/main/java/com/kamco/cd/kamcoback/mapsheet/service/MapSheetMngService.java b/src/main/java/com/kamco/cd/kamcoback/mapsheet/service/MapSheetMngService.java index edde3889..9ef93885 100644 --- a/src/main/java/com/kamco/cd/kamcoback/mapsheet/service/MapSheetMngService.java +++ b/src/main/java/com/kamco/cd/kamcoback/mapsheet/service/MapSheetMngService.java @@ -4,7 +4,6 @@ import static java.lang.String.CASE_INSENSITIVE_ORDER; import com.kamco.cd.kamcoback.common.utils.FIleChecker; import com.kamco.cd.kamcoback.config.FileConfig; -import com.kamco.cd.kamcoback.mapsheet.dto.FileDto; import com.kamco.cd.kamcoback.mapsheet.dto.FileDto.Basic; import com.kamco.cd.kamcoback.mapsheet.dto.FileDto.FilesDto; import com.kamco.cd.kamcoback.mapsheet.dto.FileDto.SrchFilesDepthDto; @@ -16,7 +15,6 @@ import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.ErrorDataDto; import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.ErrorSearchReq; import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.MngDto; import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.MngFilesDto; -import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.ReqUpdateErrorCheckStateDto; import com.kamco.cd.kamcoback.postgres.core.MapSheetMngCoreService; import jakarta.validation.Valid; import java.io.File; @@ -31,7 +29,6 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.Date; -import java.util.HashMap; import java.util.List; import java.util.Set; import java.util.stream.Collectors; @@ -246,8 +243,6 @@ public class MapSheetMngService { return mapSheetMngCoreService.findMapSheetMngYyyyList(); } - - public MngDto findMapSheetMng(int mngYyyy) { return mapSheetMngCoreService.findMapSheetMng(mngYyyy); } @@ -260,8 +255,7 @@ public class MapSheetMngService { return new DmlReturn("success", "작업완료 처리되었습니다."); } - public Page findMapSheetErrorList( - @Valid ErrorSearchReq searchReq) { + public Page findMapSheetErrorList(@Valid ErrorSearchReq searchReq) { return mapSheetMngCoreService.findMapSheetErrorList(searchReq); } @@ -325,44 +319,39 @@ public class MapSheetMngService { } ErrorDataDto errDto = mapSheetMngCoreService.findMapSheetError(hstUid); - if( errDto == null ) - { + if (errDto == null) { return new DmlReturn("fail", "NO hstUid Data"); } MngDto mngDto = mapSheetMngCoreService.findMapSheetMng(errDto.getMngYyyy()); String targetYearDir = mngDto.getMngPath(); - List basicTfwList = FIleChecker.getFilesFromAllDepth(targetYearDir, - tfwFile.getOriginalFilename(), - "tfw", - 100, - "name", - 0, 100); + List basicTfwList = + FIleChecker.getFilesFromAllDepth( + targetYearDir, tfwFile.getOriginalFilename(), "tfw", 100, "name", 0, 100); - List basicTifList = FIleChecker.getFilesFromAllDepth(targetYearDir, - tifFile.getOriginalFilename(), - "tif", - 100, - "name", - 0, 100); + List basicTifList = + FIleChecker.getFilesFromAllDepth( + targetYearDir, tifFile.getOriginalFilename(), "tif", 100, "name", 0, 100); int tfwCnt = - (int) - basicTfwList.stream().filter(dto -> dto.getExtension().toString().equals("tfw")).count(); + (int) + basicTfwList.stream() + .filter(dto -> dto.getExtension().toString().equals("tfw")) + .count(); int tifCnt = - (int) - basicTifList.stream().filter(dto -> dto.getExtension().toString().equals("tif")).count(); + (int) + basicTifList.stream() + .filter(dto -> dto.getExtension().toString().equals("tif")) + .count(); - - if( tfwCnt > 0 || tifCnt > 0 ) - { + if (tfwCnt > 0 || tifCnt > 0) { String tfwMsg = ""; String tifMsg = ""; - if( tfwCnt > 0 )tfwMsg = tfwFile.getOriginalFilename(); - if( tifCnt > 0 )tifMsg = tifFile.getOriginalFilename(); - return new DmlReturn("fail", tfwMsg+","+tifMsg+ " DUPLICATE ERROR"); + if (tfwCnt > 0) tfwMsg = tfwFile.getOriginalFilename(); + if (tifCnt > 0) tifMsg = tifFile.getOriginalFilename(); + return new DmlReturn("fail", tfwMsg + "," + tifMsg + " DUPLICATE ERROR"); } File directory = new File(tmpPath); @@ -375,14 +364,12 @@ public class MapSheetMngService { tfwFile.transferTo(tfwTmpSavePath); tifFile.transferTo(tifTmpSavePath); } catch (IOException e) { - //throw new RuntimeException(e); + // throw new RuntimeException(e); return new DmlReturn("fail", "UPLOAD ERROR"); } - if( !FIleChecker.cmmndGdalInfo(tifTmpPath) )return new DmlReturn("fail", "TIF TYPE ERROR"); - if( !FIleChecker.checkTfw(tfwTmpPath) )return new DmlReturn("fail", "TFW TYPE ERROR"); - - + if (!FIleChecker.cmmndGdalInfo(tifTmpPath)) return new DmlReturn("fail", "TIF TYPE ERROR"); + if (!FIleChecker.checkTfw(tfwTmpPath)) return new DmlReturn("fail", "TFW TYPE ERROR"); // 싱크파일목록 가저오기 List mngFiles = mapSheetMngCoreService.findIdToMapSheetFileList(hstUid); @@ -397,14 +384,15 @@ public class MapSheetMngService { Path uploadTargetPath = null; if (uploadPath.isEmpty()) { - MngFilesDto filesDto = mapSheetMngCoreService.findYyyyToMapSheetFilePathRefer(errDto.getMngYyyy()); + MngFilesDto filesDto = + mapSheetMngCoreService.findYyyyToMapSheetFilePathRefer(errDto.getMngYyyy()); String referPath = filesDto.getFilePath(); - uploadPath = Paths.get(referPath).getParent().toString()+"/"+errDto.getRefMapSheetNum(); + uploadPath = Paths.get(referPath).getParent().toString() + "/" + errDto.getRefMapSheetNum(); tfwTargetPath = Paths.get(uploadPath).resolve(tfwFile.getOriginalFilename()); tifTargetPath = Paths.get(uploadPath).resolve(tifFile.getOriginalFilename()); } - //String searchDir = + // String searchDir = try { uploadTargetPath = Paths.get(uploadPath); @@ -415,13 +403,10 @@ public class MapSheetMngService { throw new RuntimeException(e); } - //hst업데이트 + // hst업데이트 mapSheetMngCoreService.updateMapSheetMngHstSyncCheckState( - hstUid, - uploadPath, - tfwFile.getOriginalFilename(), - tifFile.getOriginalFilename()); - //파일정보 업데이트 + hstUid, uploadPath, tfwFile.getOriginalFilename(), tifFile.getOriginalFilename()); + // 파일정보 업데이트 mapSheetMngCoreService.deleteByHstUidMngFile(hstUid); MapSheetMngDto.MngFileAddReq addReq = new MapSheetMngDto.MngFileAddReq(); @@ -441,7 +426,6 @@ public class MapSheetMngService { addReq.setFileSize(tifFile.getSize()); mapSheetMngCoreService.mngFileSave(addReq); - return new DmlReturn("success", "파일 업로드 완료되었습니다."); } @@ -454,7 +438,7 @@ public class MapSheetMngService { for (Long uid : fileUids) { MapSheetMngDto.MngFilesDto dto = mapSheetMngCoreService.findIdToMapSheetFile(uid); - String filePath = dto.getFilePath()+"/"+dto.getFileName(); + String filePath = dto.getFilePath() + "/" + dto.getFileName(); Path path = Paths.get(filePath); try { boolean isDeleted = Files.deleteIfExists(path); diff --git a/src/main/java/com/kamco/cd/kamcoback/model/dto/ModelMgmtDto.java b/src/main/java/com/kamco/cd/kamcoback/model/dto/ModelMgmtDto.java index b2fee42b..97830283 100644 --- a/src/main/java/com/kamco/cd/kamcoback/model/dto/ModelMgmtDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/model/dto/ModelMgmtDto.java @@ -2,6 +2,7 @@ package com.kamco.cd.kamcoback.model.dto; import com.kamco.cd.kamcoback.common.utils.interfaces.JsonFormatDttm; import io.swagger.v3.oas.annotations.media.Schema; +import java.math.BigDecimal; import java.time.ZonedDateTime; import lombok.AllArgsConstructor; import lombok.Getter; @@ -69,7 +70,12 @@ public class ModelMgmtDto { private String dockerFileNm; private String modelType; private String createCompleteDttm; - private String recentUseDttm; + private String recentUseDttm; // TODO: 추론관리 테이블 나오면 분석진행중일 때 사용중으로 리턴하기 + private BigDecimal f1Score; + private BigDecimal precision; + private BigDecimal recall; + private BigDecimal accuracy; + private BigDecimal iou; private Boolean deleted; } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapSheetMngCoreService.java b/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapSheetMngCoreService.java index 88f086e1..53cfe380 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapSheetMngCoreService.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapSheetMngCoreService.java @@ -2,7 +2,6 @@ package com.kamco.cd.kamcoback.postgres.core; import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto; import com.kamco.cd.kamcoback.postgres.entity.MapSheetMngEntity; -import com.kamco.cd.kamcoback.postgres.entity.MapSheetMngFileEntity; import com.kamco.cd.kamcoback.postgres.entity.MapSheetMngHstEntity; import com.kamco.cd.kamcoback.postgres.repository.mapsheet.MapSheetMngRepository; import jakarta.persistence.EntityNotFoundException; @@ -55,20 +54,16 @@ public class MapSheetMngCoreService { public MapSheetMngDto.DmlReturn mngFileSave(@Valid MapSheetMngDto.MngFileAddReq addReq) { - mapSheetMngRepository.mngFileSave(addReq); // int hstCnt = mapSheetMngRepository.insertMapSheetOrgDataToMapSheetMngHst(saved.getMngYyyy()); return new MapSheetMngDto.DmlReturn("success", "파일정보저장되었습니다."); } - public void updateMapSheetMngHstSyncCheckState( - Long hstUid, - String uploadPath, - String syncCheckTfwFileName, - String syncCheckTifFileName){ - mapSheetMngRepository.updateMapSheetMngHstSyncCheckState(hstUid, uploadPath, syncCheckTfwFileName, syncCheckTifFileName); + Long hstUid, String uploadPath, String syncCheckTfwFileName, String syncCheckTifFileName) { + mapSheetMngRepository.updateMapSheetMngHstSyncCheckState( + hstUid, uploadPath, syncCheckTfwFileName, syncCheckTifFileName); } public Page findMapSheetErrorList( @@ -80,13 +75,10 @@ public class MapSheetMngCoreService { return mapSheetMngRepository.findMapSheetError(hstUid); } - - public List findIdToMapSheetFileList(Long hstUid) { return mapSheetMngRepository.findIdToMapSheetFileList(hstUid); } - public MapSheetMngDto.MngFilesDto findYyyyToMapSheetFilePathRefer(int mngYyyy) { return mapSheetMngRepository.findYyyyToMapSheetFilePathRefer(mngYyyy); } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/entity/ModelResultMetricEntity.java b/src/main/java/com/kamco/cd/kamcoback/postgres/entity/ModelResultMetricEntity.java new file mode 100644 index 00000000..37defe6d --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/entity/ModelResultMetricEntity.java @@ -0,0 +1,58 @@ +package com.kamco.cd.kamcoback.postgres.entity; + +import jakarta.persistence.*; +import java.time.ZonedDateTime; +import java.util.Map; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import org.hibernate.annotations.JdbcTypeCode; +import org.hibernate.type.SqlTypes; + +@Entity +@Table(name = "tb_model_result_metric") +@Getter +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ModelResultMetricEntity { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "metric_uid") + private Long id; + + @Column(name = "model_uid") + private Long modelUid; + + @Column(name = "model_ver_uid") + private Long modelVerUid; + + @JdbcTypeCode(SqlTypes.JSON) + @Column(name = "metrics", columnDefinition = "jsonb") + private Map metrics; + + @Column(name = "f1_score") + private Double f1Score; + + @Column(name = "precision") + private Double precision; + + @Column(name = "recall") + private Double recall; + + @Column(name = "loss") + private Double loss; + + @Column(name = "iou") + private Double iou; + + @Column(name = "created_dttm", updatable = false, nullable = false) + private ZonedDateTime createdDate; + + @PrePersist + protected void onPersist() { + this.createdDate = ZonedDateTime.now(); + } +} diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/mapsheet/MapSheetMngRepositoryCustom.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/mapsheet/MapSheetMngRepositoryCustom.java index af36af60..d479ff91 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/mapsheet/MapSheetMngRepositoryCustom.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/mapsheet/MapSheetMngRepositoryCustom.java @@ -15,8 +15,6 @@ public interface MapSheetMngRepositoryCustom { MapSheetMngDto.MngDto findMapSheetMng(int mngYyyy); - - void MapSheetMngComplete(int mngYyyy); Optional findMapSheetMngHstInfo(Long hstUid); @@ -42,10 +40,7 @@ public interface MapSheetMngRepositoryCustom { void mngFileSave(@Valid MapSheetMngDto.MngFileAddReq addReq); void updateMapSheetMngHstSyncCheckState( - Long hstUid, - String uploadPath, - String syncCheckTfwFileName, - String syncCheckTifFileName); + Long hstUid, String uploadPath, String syncCheckTfwFileName, String syncCheckTifFileName); Page findMapSheetErrorList( MapSheetMngDto.@Valid ErrorSearchReq searchReq); @@ -53,6 +48,7 @@ public interface MapSheetMngRepositoryCustom { MapSheetMngDto.ErrorDataDto findMapSheetError(Long hstUid); List findIdToMapSheetFileList(Long hstUid); + MapSheetMngDto.MngFilesDto findIdToMapSheetFile(Long fileUid); void updateHstFileSizes(Long hstUid, long tifSizeBytes, long tfwSizeBytes, long totalSizeBytes); diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/mapsheet/MapSheetMngRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/mapsheet/MapSheetMngRepositoryImpl.java index 62928f85..6863cf0d 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/mapsheet/MapSheetMngRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/mapsheet/MapSheetMngRepositoryImpl.java @@ -21,7 +21,6 @@ import jakarta.persistence.PersistenceContext; import jakarta.validation.Valid; import java.time.ZonedDateTime; import java.util.List; -import java.util.Map; import java.util.Objects; import java.util.Optional; import org.hibernate.query.Query; @@ -187,7 +186,6 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport BooleanBuilder whereBuilder = new BooleanBuilder(); whereBuilder.and(mapSheetMngEntity.mngYyyy.eq(mngYyyy)); - MapSheetMngDto.MngDto foundContent = queryFactory .select( @@ -394,39 +392,39 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport whereBuilder.and(mapSheetMngHstEntity.hstUid.eq(hstUid)); MapSheetMngDto.ErrorDataDto foundContent = - queryFactory - .select( - Projections.constructor( - MapSheetMngDto.ErrorDataDto.class, - mapSheetMngHstEntity.hstUid, - mapSheetMngHstEntity.mngYyyy, - mapSheetMngHstEntity.mapSheetNum, - mapSheetMngHstEntity.refMapSheetNum, - Expressions.stringTemplate( - "concat({0},substring({1}, 0, 6))", - mapInkx5kEntity.mapidNm, mapSheetMngHstEntity.mapSheetNum) - .as("map50kName"), - Expressions.stringTemplate( - "concat({0},substring({1}, 6, 8))", - mapInkx5kEntity.mapidNm, mapSheetMngHstEntity.mapSheetNum) - .as("map5kName"), - Expressions.stringTemplate( - "concat({0},substring({1}, 6, 8))", - mapInkx5kEntity.mapidNm, mapSheetMngHstEntity.mapSheetNum) - .as("mapSrcName"), - mapInkx5kEntity.fid, - mapSheetMngHstEntity.createdDate, - mapSheetMngHstEntity.syncState, - mapSheetMngHstEntity.syncTfwFileName, - mapSheetMngHstEntity.syncTifFileName, - mapSheetMngHstEntity.syncCheckState, - mapSheetMngHstEntity.syncCheckTfwFileName, - mapSheetMngHstEntity.syncCheckTifFileName)) - .from(mapSheetMngHstEntity) - .innerJoin(mapInkx5kEntity) - .on(mapSheetMngHstEntity.mapSheetNum.eq(mapInkx5kEntity.mapidcdNo)) - .where(whereBuilder) - .fetchOne(); + queryFactory + .select( + Projections.constructor( + MapSheetMngDto.ErrorDataDto.class, + mapSheetMngHstEntity.hstUid, + mapSheetMngHstEntity.mngYyyy, + mapSheetMngHstEntity.mapSheetNum, + mapSheetMngHstEntity.refMapSheetNum, + Expressions.stringTemplate( + "concat({0},substring({1}, 0, 6))", + mapInkx5kEntity.mapidNm, mapSheetMngHstEntity.mapSheetNum) + .as("map50kName"), + Expressions.stringTemplate( + "concat({0},substring({1}, 6, 8))", + mapInkx5kEntity.mapidNm, mapSheetMngHstEntity.mapSheetNum) + .as("map5kName"), + Expressions.stringTemplate( + "concat({0},substring({1}, 6, 8))", + mapInkx5kEntity.mapidNm, mapSheetMngHstEntity.mapSheetNum) + .as("mapSrcName"), + mapInkx5kEntity.fid, + mapSheetMngHstEntity.createdDate, + mapSheetMngHstEntity.syncState, + mapSheetMngHstEntity.syncTfwFileName, + mapSheetMngHstEntity.syncTifFileName, + mapSheetMngHstEntity.syncCheckState, + mapSheetMngHstEntity.syncCheckTfwFileName, + mapSheetMngHstEntity.syncCheckTifFileName)) + .from(mapSheetMngHstEntity) + .innerJoin(mapInkx5kEntity) + .on(mapSheetMngHstEntity.mapSheetNum.eq(mapInkx5kEntity.mapidcdNo)) + .where(whereBuilder) + .fetchOne(); return foundContent; } @@ -518,27 +516,26 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport public MapSheetMngDto.MngFilesDto findIdToMapSheetFile(Long fileUid) { MapSheetMngDto.MngFilesDto foundContent = - queryFactory - .select( - Projections.constructor( - MapSheetMngDto.MngFilesDto.class, - mapSheetMngFileEntity.fileUid, - mapSheetMngFileEntity.mngYyyy, - mapSheetMngFileEntity.mapSheetNum, - mapSheetMngFileEntity.refMapSheetNum, - mapSheetMngFileEntity.filePath, - mapSheetMngFileEntity.fileName, - mapSheetMngFileEntity.fileExt, - mapSheetMngFileEntity.hstUid, - mapSheetMngFileEntity.fileSize)) - .from(mapSheetMngFileEntity) - .where(mapSheetMngFileEntity.fileUid.eq(fileUid)) - .fetchOne(); + queryFactory + .select( + Projections.constructor( + MapSheetMngDto.MngFilesDto.class, + mapSheetMngFileEntity.fileUid, + mapSheetMngFileEntity.mngYyyy, + mapSheetMngFileEntity.mapSheetNum, + mapSheetMngFileEntity.refMapSheetNum, + mapSheetMngFileEntity.filePath, + mapSheetMngFileEntity.fileName, + mapSheetMngFileEntity.fileExt, + mapSheetMngFileEntity.hstUid, + mapSheetMngFileEntity.fileSize)) + .from(mapSheetMngFileEntity) + .where(mapSheetMngFileEntity.fileUid.eq(fileUid)) + .fetchOne(); return foundContent; } - @Override public void MapSheetMngComplete(int mngYyyy) { long execCount = @@ -551,22 +548,19 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport @Override public void updateMapSheetMngHstSyncCheckState( - Long hstUid, - String uploadPath, - String syncCheckTfwFileName, - String syncCheckTifFileName){ + Long hstUid, String uploadPath, String syncCheckTfwFileName, String syncCheckTifFileName) { long execCount = - queryFactory - .update(mapSheetMngHstEntity) - .set(mapSheetMngHstEntity.syncCheckState, "DONE") - .set(mapSheetMngHstEntity.mapSheetPath, uploadPath) - .set(mapSheetMngHstEntity.syncCheckTfwFileName, syncCheckTfwFileName) - .set(mapSheetMngHstEntity.syncCheckTifFileName, syncCheckTifFileName) - .set(mapSheetMngHstEntity.syncCheckStrtDttm, ZonedDateTime.now()) - .set(mapSheetMngHstEntity.syncCheckEndDttm, ZonedDateTime.now()) - .where(mapSheetMngHstEntity.hstUid.eq(hstUid)) - .execute(); + queryFactory + .update(mapSheetMngHstEntity) + .set(mapSheetMngHstEntity.syncCheckState, "DONE") + .set(mapSheetMngHstEntity.mapSheetPath, uploadPath) + .set(mapSheetMngHstEntity.syncCheckTfwFileName, syncCheckTfwFileName) + .set(mapSheetMngHstEntity.syncCheckTifFileName, syncCheckTifFileName) + .set(mapSheetMngHstEntity.syncCheckStrtDttm, ZonedDateTime.now()) + .set(mapSheetMngHstEntity.syncCheckEndDttm, ZonedDateTime.now()) + .where(mapSheetMngHstEntity.hstUid.eq(hstUid)) + .execute(); } @Override @@ -624,10 +618,10 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport @Override public void deleteByHstUidMngFile(Long hstUid) { long deletedFileCount = - queryFactory - .delete(mapSheetMngFileEntity) - .where(mapSheetMngFileEntity.fileUid.eq(hstUid)) - .execute(); + queryFactory + .delete(mapSheetMngFileEntity) + .where(mapSheetMngFileEntity.fileUid.eq(hstUid)) + .execute(); } @Override @@ -640,33 +634,31 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport } @Override - public void mngFileSave(@Valid MapSheetMngDto.MngFileAddReq addReq){ + public void mngFileSave(@Valid MapSheetMngDto.MngFileAddReq addReq) { long fileCount = - queryFactory - .insert(mapSheetMngFileEntity) - .columns( - mapSheetMngFileEntity.mngYyyy, - mapSheetMngFileEntity.mapSheetNum, - mapSheetMngFileEntity.refMapSheetNum, - mapSheetMngFileEntity.filePath, - mapSheetMngFileEntity.fileName, - mapSheetMngFileEntity.fileExt, - mapSheetMngFileEntity.hstUid, - mapSheetMngFileEntity.fileSize, - mapSheetMngFileEntity.fileState - ) - .values( - addReq.getMngYyyy(), - addReq.getMapSheetNum(), - addReq.getRefMapSheetNum(), - addReq.getFilePath(), - addReq.getFileName(), - addReq.getFileExt(), - addReq.getHstUid(), - addReq.getFileSize(), - addReq.getFileState() - ) - .execute(); + queryFactory + .insert(mapSheetMngFileEntity) + .columns( + mapSheetMngFileEntity.mngYyyy, + mapSheetMngFileEntity.mapSheetNum, + mapSheetMngFileEntity.refMapSheetNum, + mapSheetMngFileEntity.filePath, + mapSheetMngFileEntity.fileName, + mapSheetMngFileEntity.fileExt, + mapSheetMngFileEntity.hstUid, + mapSheetMngFileEntity.fileSize, + mapSheetMngFileEntity.fileState) + .values( + addReq.getMngYyyy(), + addReq.getMapSheetNum(), + addReq.getRefMapSheetNum(), + addReq.getFilePath(), + addReq.getFileName(), + addReq.getFileExt(), + addReq.getHstUid(), + addReq.getFileSize(), + addReq.getFileState()) + .execute(); } @Override diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/model/ModelMgmtRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/model/ModelMgmtRepositoryImpl.java index eda77291..d6b17926 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/model/ModelMgmtRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/model/ModelMgmtRepositoryImpl.java @@ -1,6 +1,7 @@ package com.kamco.cd.kamcoback.postgres.repository.model; import static com.kamco.cd.kamcoback.postgres.entity.QModelMgmtEntity.modelMgmtEntity; +import static com.kamco.cd.kamcoback.postgres.entity.QModelResultMetricEntity.modelResultMetricEntity; import com.kamco.cd.kamcoback.model.dto.ModelMgmtDto; import com.kamco.cd.kamcoback.postgres.QuerydslOrderUtil; @@ -10,8 +11,10 @@ import com.querydsl.core.types.Expression; import com.querydsl.core.types.Projections; 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 java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.ZoneId; @@ -79,8 +82,15 @@ public class ModelMgmtRepositoryImpl extends QuerydslRepositorySupport "to_char({0}, 'YYYY-MM-DD')", modelMgmtEntity.createCompleteDttm), Expressions.stringTemplate( "to_char({0}, 'YYYY-MM-DD')", modelMgmtEntity.recentUseDttm), + roundNumericToPercent(modelResultMetricEntity.f1Score), + roundNumericToPercent(modelResultMetricEntity.precision), + roundNumericToPercent(modelResultMetricEntity.recall), + roundNumericToPercent(modelResultMetricEntity.loss), + roundNumericToPercent(modelResultMetricEntity.iou), modelMgmtEntity.deleted)) .from(modelMgmtEntity) + .innerJoin(modelResultMetricEntity) + .on(modelMgmtEntity.modelUid.longValue().eq(modelResultMetricEntity.modelUid)) .where( eventEndedAtBetween(startDate, endDate, property), searchModelVersion(modelType, searchVal)) @@ -138,4 +148,8 @@ public class ModelMgmtRepositoryImpl extends QuerydslRepositorySupport return builder; } + + private Expression roundNumericToPercent(NumberPath ratio) { + return Expressions.numberTemplate(BigDecimal.class, "function('round', {0} * 100, 2)", ratio); + } }