diff --git a/src/main/java/com/kamco/cd/kamcoback/mapsheet/MapSheetMngApiController.java b/src/main/java/com/kamco/cd/kamcoback/mapsheet/MapSheetMngApiController.java index a0ff578a..08645dfa 100644 --- a/src/main/java/com/kamco/cd/kamcoback/mapsheet/MapSheetMngApiController.java +++ b/src/main/java/com/kamco/cd/kamcoback/mapsheet/MapSheetMngApiController.java @@ -139,10 +139,7 @@ public class MapSheetMngApiController { return ApiResponseDto.ok(mapSheetMngService.uploadProcess(hstUidList)); } - /** - * @param hstUidList - * @return - */ + @Operation(summary = "오류데이터 팝업 > 추론 제외", description = "오류데이터 팝업 > 추론 제외") @PutMapping("/except-inference") public ApiResponseDto updateExceptUseInference( @@ -162,4 +159,13 @@ public class MapSheetMngApiController { return ApiResponseDto.createOK( mapSheetMngService.uploadPair(tfwFile, tifFile, hstUid)); } + + + @GetMapping("/mng-file-list") + public ApiResponseDto> findHstUidToMapSheetFileList( + @RequestParam @Valid Long hstUid) { + return ApiResponseDto.ok(mapSheetMngService.findHstUidToMapSheetFileList(hstUid)); + } + + } 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 079ae777..889597c9 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 @@ -164,6 +164,7 @@ public class MapSheetMngDto { public static class ErrorDataDto { // private Integer rowNum; private Long hstUid; + private String mapSheetNum; private String map50kName; private String map5kName; private String mapSrcName; @@ -242,25 +243,21 @@ public class MapSheetMngDto { private String message; } - - + @Schema(name = "MngFilesDto", description = "영상파일내역 검색 리턴") @Getter + @Setter + @NoArgsConstructor @AllArgsConstructor - public enum DataState implements EnumType { - NOTYET("대기중"), - PROCESSING("진행중"), - DONE("완료"); - - private final String desc; - - @Override - public String getId() { - return name(); - } - - @Override - public String getText() { - return desc; - } + public static class MngFilesDto { + private long fileUid; + private int mngYyyy; + private String mapSheetNum; + private String refMapSheetNum; + private String filePath; + private String fileName; + private String fileExt; + private Long hstUid; + private Long fileSize; } + } 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 b75b572a..b2475702 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 @@ -5,11 +5,15 @@ import static java.lang.String.CASE_INSENSITIVE_ORDER; import com.kamco.cd.kamcoback.common.exception.DuplicateFileException; import com.kamco.cd.kamcoback.common.exception.ValidationException; 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.FilesDto; import com.kamco.cd.kamcoback.mapsheet.dto.FileDto.SrchFilesDepthDto; import com.kamco.cd.kamcoback.mapsheet.dto.FileDto.SrchFilesDto; import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto; +import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.DmlReturn; +import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.ErrorDataDto; +import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.MngFilesDto; import com.kamco.cd.kamcoback.postgres.core.MapSheetMngCoreService; import jakarta.validation.Valid; import java.io.File; @@ -267,7 +271,7 @@ public class MapSheetMngService { } @Transactional - public MapSheetMngDto.DmlReturn uploadPair( + public DmlReturn uploadPair( MultipartFile tfwFile, MultipartFile tifFile, //String targetPath, @@ -275,9 +279,9 @@ public class MapSheetMngService { // 파일 유효성 검증 if (tfwFile == null || tfwFile.isEmpty() || tfwFile.getSize() == 0) { - return new MapSheetMngDto.DmlReturn("fail", "TFW 파일이(0Byte) 비어있습니다."); + return new DmlReturn("fail", "TFW SIZE 오류"); }else if (tifFile == null || tifFile.isEmpty() || tifFile.getSize() == 0) { - return new MapSheetMngDto.DmlReturn("fail", "TIF 파일이(0Byte) 비어있습니다."); + return new DmlReturn("fail", "TIF SIZE 오류"); } if( ! tfwFile.getOriginalFilename() @@ -285,19 +289,39 @@ public class MapSheetMngService { .toLowerCase() .equals("tfw") ) { - return new MapSheetMngDto.DmlReturn("fail", "파일명이 TFW형식이 아닙니다."); + return new DmlReturn("fail", "TFW TYPE ERROR"); }else if( ! tifFile.getOriginalFilename() .substring(tifFile.getOriginalFilename().lastIndexOf('.') + 1) .toLowerCase() .equals("tif") ) { - return new MapSheetMngDto.DmlReturn("fail", "파일명이 TIF형식이 아닙니다."); + return new DmlReturn("fail", "TIF TYPE ERROR"); } + //싱크파일목록 가저오기 + List mngFiles = mapSheetMngCoreService.findIdToMapSheetFileList(hstUid); + String uploadPath = ""; + for (MngFilesDto dto : mngFiles) { + uploadPath = dto.getFilePath(); + break; + } - return new MapSheetMngDto.DmlReturn("success", "파일 업로드 완료되었습니다."); + if( uploadPath.isEmpty() ) { + //ErrorDataDto errDto = mapSheetMngCoreService.findMapSheetError(hstUid); + //uploadPath = FileConfig.rootSyncDir+"\\"+errDto.getMapSheetNum(); + } + + //tfw가 있는 경우 + //tif가 있는 경우 + + return new DmlReturn("success", "파일 업로드 완료되었습니다."); } + + public List findHstUidToMapSheetFileList(Long hstUid) { + return mapSheetMngCoreService.findHstUidToMapSheetFileList(hstUid); + } + } 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 74bfd2b3..d593a93e 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 @@ -54,6 +54,9 @@ public class MapSheetMngCoreService { return mapSheetMngRepository.findMapSheetError(hstUid); } + public List findIdToMapSheetFileList(Long hstUid) { + return mapSheetMngRepository.findIdToMapSheetFileList(hstUid); + } public MapSheetMngDto.DmlReturn uploadProcess(@Valid List hstUidList) { @@ -203,4 +206,10 @@ public class MapSheetMngCoreService { return new MapSheetMngDto.DmlReturn("success", saved.getMngYyyy().toString()); } + + + public List findHstUidToMapSheetFileList(Long hstUid){ + return mapSheetMngRepository.findHstUidToMapSheetFileList(hstUid); + } + } 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 db933de3..bf3d6b4d 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 @@ -19,6 +19,10 @@ public interface MapSheetMngRepositoryCustom { int insertMapSheetOrgDataToMapSheetMngHst(int mngYyyy); + List findHstUidToMapSheetFileList(Long hstUid); + + MapSheetMngDto.MngFilesDto findYyyyToMapSheetFilePath(int mngYyyy); + void deleteByMngYyyyMngAll(int mngYyyy); void deleteByMngYyyyMng(int mngYyyy); @@ -32,5 +36,7 @@ public interface MapSheetMngRepositoryCustom { MapSheetMngDto.ErrorDataDto findMapSheetError(Long hstUid); + List findIdToMapSheetFileList(Long hstUid); + 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 8edc9eb9..e64e4c87 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 @@ -380,6 +380,7 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport Projections.constructor( MapSheetMngDto.ErrorDataDto.class, mapSheetMngHstEntity.hstUid, + mapSheetMngHstEntity.mapSheetNum, Expressions.stringTemplate( "concat({0},substring({1}, 0, 6))", mapInkx5kEntity.mapidNm, mapSheetMngHstEntity.mapSheetNum).as("map50kName"), @@ -407,6 +408,92 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport return foundContent; } + @Override + public List findIdToMapSheetFileList(Long hstUid){ + + BooleanBuilder whereBuilder = new BooleanBuilder(); + whereBuilder.and( mapSheetMngFileEntity.hstUid.eq(hstUid) ); + + List 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(whereBuilder) + .fetch(); + + return foundContent; + } + + @Override + public List findHstUidToMapSheetFileList(Long hstUid) { + BooleanBuilder whereBuilder = new BooleanBuilder(); + whereBuilder.and( mapSheetMngFileEntity.hstUid.eq(hstUid) ); + + List 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(whereBuilder) + .orderBy(mapSheetMngFileEntity.fileExt.desc()) + .fetch(); + + return foundContent; + } + + @Override + public MapSheetMngDto.MngFilesDto findYyyyToMapSheetFilePath(int mngYyyy){ + + BooleanBuilder whereBuilder = new BooleanBuilder(); + whereBuilder.and( mapSheetMngFileEntity.mngYyyy.eq(mngYyyy) ); + + 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(whereBuilder) + .fetchOne(); + + return foundContent; + } public void MapSheetMngComplete(int mngYyyy) { long execCount =