From 8684965ac96f825162807b0f0cd680782905044e Mon Sep 17 00:00:00 2001 From: Moon Date: Thu, 18 Dec 2025 16:25:59 +0900 Subject: [PATCH 1/4] =?UTF-8?q?=ED=8E=98=EC=96=B4=ED=8C=8C=EC=9D=BC?= =?UTF-8?q?=EC=97=85=EB=A1=9C=EB=93=9C,=20=ED=8C=8C=EC=9D=BC=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kamco/cd/kamcoback/config/FileConfig.java | 5 +- .../mapsheet/dto/MapSheetMngDto.java | 52 ++++- .../mapsheet/service/MapSheetMngService.java | 179 +++++++++++++++--- .../postgres/core/MapSheetMngCoreService.java | 35 ++++ .../mapsheet/MapSheetMngRepositoryCustom.java | 15 +- .../mapsheet/MapSheetMngRepositoryImpl.java | 162 ++++++++++++---- 6 files changed, 386 insertions(+), 62 deletions(-) diff --git a/src/main/java/com/kamco/cd/kamcoback/config/FileConfig.java b/src/main/java/com/kamco/cd/kamcoback/config/FileConfig.java index fb0ae08c..d830b6b4 100644 --- a/src/main/java/com/kamco/cd/kamcoback/config/FileConfig.java +++ b/src/main/java/com/kamco/cd/kamcoback/config/FileConfig.java @@ -12,6 +12,7 @@ import org.springframework.stereotype.Component; @Setter public class FileConfig { - // private String rootSyncDir = "D:\\app\\original-images"; - private String rootSyncDir = "/app/original-images"; + private String rootSyncDir = "D:\\app\\original-images\\"; + private String tmpSyncDir = rootSyncDir+"tmp\\"; + //private String rootSyncDir = "/app/original-images"; } 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 abf3b3a2..a200c937 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 @@ -69,6 +69,7 @@ public class MapSheetMngDto { public static class MngDto { private int rowNum; private int mngYyyy; + private String mngPath; private String mngState; private String syncState; private String syncDataCheckState; @@ -160,9 +161,10 @@ public class MapSheetMngDto { @Getter @Setter public static class ErrorDataDto { - // private Integer rowNum; private Long hstUid; + private Integer mngYyyy; private String mapSheetNum; + private String refMapSheetNum; private String map50kName; private String map5kName; private String mapSrcName; @@ -183,6 +185,9 @@ public class MapSheetMngDto { public ErrorDataDto( Long hstUid, + Integer mngYyyy, + String mapSheetNum, + String refMapSheetNum, String map50kName, String map5kName, String mapSrcName, @@ -195,6 +200,9 @@ public class MapSheetMngDto { String errorCheckTfwFileName, String errorCheckTifFileName) { this.hstUid = hstUid; + this.mngYyyy = mngYyyy; + this.mapSheetNum = mapSheetNum; + this.refMapSheetNum = refMapSheetNum; this.map50kName = map50kName; this.map5kName = map5kName; this.mapSrcName = mapSrcName; @@ -218,6 +226,8 @@ public class MapSheetMngDto { } } + + @Schema(name = "MngFIleDto", description = "관리파일정보") @Getter @Setter @@ -240,6 +250,23 @@ public class MapSheetMngDto { private String message; } + @Schema(name = "MngFileAddReq", description = "영상관리파일 등록 요청") + @Getter + @Setter + @NoArgsConstructor + @AllArgsConstructor + public static class MngFileAddReq { + private int mngYyyy; + private String mapSheetNum; + private String refMapSheetNum; + private String filePath; + private String fileName; + private String fileExt; + private Long hstUid; + private Long fileSize; + private String fileState; + } + @Schema(name = "MngFilesDto", description = "영상파일내역 검색 리턴") @Getter @Setter @@ -256,4 +283,27 @@ public class MapSheetMngDto { private Long hstUid; 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, + String errorCheckTfwFileName, + String errorCheckTifFileName) { + this.hstUid = hstUid; + this.errorCheckState = errorCheckState; + this.errorCheckTfwFileName = errorCheckTfwFileName; + this.errorCheckTifFileName = errorCheckTifFileName; + }*/ + } } 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 0147608a..dceea25c 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 @@ -2,13 +2,21 @@ package com.kamco.cd.kamcoback.mapsheet.service; 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; 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.AddReq; 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.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; @@ -16,12 +24,14 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; import java.nio.file.attribute.FileTime; import java.text.SimpleDateFormat; 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; @@ -39,6 +49,7 @@ import org.springframework.web.multipart.MultipartFile; public class MapSheetMngService { private final MapSheetMngCoreService mapSheetMngCoreService; + private final FileConfig fileConfig; public FilesDto getFilesAll(SrchFilesDto srchDto) { @@ -50,7 +61,7 @@ public class MapSheetMngService { File dir = new File(dirPath); File[] fileList = dir.listFiles(); - List files = new ArrayList<>(); + List files = new ArrayList<>(); SimpleDateFormat dttmFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); int fileListPos = 0; @@ -85,7 +96,7 @@ public class MapSheetMngService { String lastModified = dttmFormat.format(new Date(file.lastModified())); files.add( - new FileDto.Basic( + new Basic( fileName, parentFolderNm, parentPath, fullPath, ext, fileSize, lastModified)); fileTotCnt = fileTotCnt + 1; @@ -113,7 +124,7 @@ public class MapSheetMngService { Set targetExtensions = createExtensionSet(extension); - List fileDtoList = new ArrayList<>(); + List fileDtoList = new ArrayList<>(); SimpleDateFormat dttmFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); int fileTotCnt = 0; @@ -147,13 +158,13 @@ public class MapSheetMngService { long fileSize = file.length(); String lastModified = dttmFormat.format(new Date(file.lastModified())); - return new FileDto.Basic( + return new Basic( fileNm, parentFolderNm, parentPath, fullPath, ext, fileSize, lastModified); }) .collect(Collectors.toList()); fileTotCnt = fileDtoList.size(); - fileTotSize = fileDtoList.stream().mapToLong(FileDto.Basic::getFileSize).sum(); + fileTotSize = fileDtoList.stream().mapToLong(Basic::getFileSize).sum(); } catch (IOException e) { System.err.println("파일 I/O 오류 발생: " + e.getMessage()); @@ -215,7 +226,7 @@ public class MapSheetMngService { } } - public List findMapSheetMngList() { + public List findMapSheetMngList() { return mapSheetMngCoreService.findMapSheetMngList(); } @@ -225,29 +236,29 @@ public class MapSheetMngService { - public MapSheetMngDto.MngDto findMapSheetMng(int mngYyyy) { + public MngDto findMapSheetMng(int mngYyyy) { return mapSheetMngCoreService.findMapSheetMng(mngYyyy); } @Transactional - public MapSheetMngDto.DmlReturn mngComplete(int mngYyyy) { + public DmlReturn mngComplete(int mngYyyy) { mapSheetMngCoreService.MapSheetMngComplete(mngYyyy); - return new MapSheetMngDto.DmlReturn("success", "작업완료 처리되었습니다."); + return new DmlReturn("success", "작업완료 처리되었습니다."); } - public Page findMapSheetErrorList( - MapSheetMngDto.@Valid ErrorSearchReq searchReq) { + public Page findMapSheetErrorList( + @Valid ErrorSearchReq searchReq) { return mapSheetMngCoreService.findMapSheetErrorList(searchReq); } - public MapSheetMngDto.ErrorDataDto findMapSheetError(Long hstUid) { + public ErrorDataDto findMapSheetError(Long hstUid) { return mapSheetMngCoreService.findMapSheetError(hstUid); } @Transactional - public MapSheetMngDto.DmlReturn mngDataSave(MapSheetMngDto.AddReq AddReq) { + public DmlReturn mngDataSave(AddReq AddReq) { return mapSheetMngCoreService.mngDataSave(AddReq); } @@ -262,11 +273,11 @@ public class MapSheetMngService { */ - public MapSheetMngDto.DmlReturn uploadProcess(@Valid List hstUidList) { + public DmlReturn uploadProcess(@Valid List hstUidList) { return mapSheetMngCoreService.uploadProcess(hstUidList); } - public MapSheetMngDto.DmlReturn updateExceptUseInference(@Valid List hstUidList) { + public DmlReturn updateExceptUseInference(@Valid List hstUidList) { return mapSheetMngCoreService.updateExceptUseInference(hstUidList); } @@ -277,6 +288,9 @@ public class MapSheetMngService { // String targetPath, Long hstUid) { + String rootPath = fileConfig.getRootSyncDir(); + String tmpPath = fileConfig.getTmpSyncDir(); + // 파일 유효성 검증 if (tfwFile == null || tfwFile.isEmpty() || tfwFile.getSize() == 0) { return new DmlReturn("fail", "TFW SIZE 오류"); @@ -289,15 +303,75 @@ public class MapSheetMngService { .substring(tfwFile.getOriginalFilename().lastIndexOf('.') + 1) .toLowerCase() .equals("tfw")) { - return new DmlReturn("fail", "TFW TYPE ERROR"); + return new DmlReturn("fail", "TFW FILENAME ERROR"); } else if (!tifFile .getOriginalFilename() .substring(tifFile.getOriginalFilename().lastIndexOf('.') + 1) .toLowerCase() .equals("tif")) { - return new DmlReturn("fail", "TIF TYPE ERROR"); + return new DmlReturn("fail", "TIF FILENAME ERROR"); } + ErrorDataDto errDto = mapSheetMngCoreService.findMapSheetError(hstUid); + 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 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 tifCnt = + (int) + basicTifList.stream().filter(dto -> dto.getExtension().toString().equals("tif")).count(); + + + 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"); + } + + File directory = new File(tmpPath); + String tfwTmpPath = tmpPath + tfwFile.getOriginalFilename(); + Path tfwTmpSavePath = Paths.get(tfwTmpPath); + String tifTmpPath = tmpPath + tifFile.getOriginalFilename(); + Path tifTmpSavePath = Paths.get(tifTmpPath); + boolean fileUpload = true; + try { + tfwFile.transferTo(tfwTmpSavePath); + tifFile.transferTo(tifTmpSavePath); + } catch (IOException 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"); + + + // 싱크파일목록 가저오기 List mngFiles = mapSheetMngCoreService.findIdToMapSheetFileList(hstUid); String uploadPath = ""; @@ -306,28 +380,83 @@ public class MapSheetMngService { break; } + Path tfwTargetPath = null; + Path tifTargetPath = null; + Path uploadTargetPath = null; + if (uploadPath.isEmpty()) { - // ErrorDataDto errDto = mapSheetMngCoreService.findMapSheetError(hstUid); - // uploadPath = FileConfig.rootSyncDir+"\\"+errDto.getMapSheetNum(); + MngFilesDto filesDto = mapSheetMngCoreService.findYyyyToMapSheetFilePathRefer(errDto.getMngYyyy()); + String referPath = filesDto.getFilePath(); + uploadPath = Paths.get(referPath).getParent().toString()+"/"+errDto.getRefMapSheetNum(); + tfwTargetPath = Paths.get(uploadPath).resolve(tfwFile.getOriginalFilename()); + tifTargetPath = Paths.get(uploadPath).resolve(tifFile.getOriginalFilename()); } - // tfw가 있는 경우 - // tif가 있는 경우 + //String searchDir = + + try { + uploadTargetPath = Paths.get(uploadPath); + Files.createDirectories(uploadTargetPath); + Files.move(tfwTmpSavePath, tfwTargetPath, StandardCopyOption.REPLACE_EXISTING); + Files.move(tifTmpSavePath, tifTargetPath, StandardCopyOption.REPLACE_EXISTING); + } catch (IOException e) { + throw new RuntimeException(e); + } + + //hst업데이트 + mapSheetMngCoreService.updateMapSheetMngHstSyncCheckState( + hstUid, + uploadPath, + tfwFile.getOriginalFilename(), + tifFile.getOriginalFilename()); + //파일정보 업데이트 + mapSheetMngCoreService.deleteByHstUidMngFile(hstUid); + + MapSheetMngDto.MngFileAddReq addReq = new MapSheetMngDto.MngFileAddReq(); + addReq.setMngYyyy(errDto.getMngYyyy()); + addReq.setMapSheetNum(errDto.getMapSheetNum()); + addReq.setRefMapSheetNum(errDto.getRefMapSheetNum()); + addReq.setFilePath(uploadPath); + addReq.setFileName(tfwFile.getOriginalFilename()); + addReq.setFileExt("tfw"); + addReq.setFileSize(tfwFile.getSize()); + addReq.setHstUid(errDto.getHstUid()); + addReq.setFileState("DONE"); + + mapSheetMngCoreService.mngFileSave(addReq); + + addReq.setFileExt("tif"); + addReq.setFileSize(tifFile.getSize()); + mapSheetMngCoreService.mngFileSave(addReq); + return new DmlReturn("success", "파일 업로드 완료되었습니다."); } - public List findHstUidToMapSheetFileList(Long hstUid) { + public List findHstUidToMapSheetFileList(Long hstUid) { return mapSheetMngCoreService.findHstUidToMapSheetFileList(hstUid); } @Transactional - public MapSheetMngDto.DmlReturn deleteByFileUidMngFile(List fileUids) { + public DmlReturn deleteByFileUidMngFile(List fileUids) { for (Long uid : fileUids) { - MapSheetMngDto.DmlReturn dmlReturn = mapSheetMngCoreService.deleteByFileUidMngFile(uid); + MapSheetMngDto.MngFilesDto dto = mapSheetMngCoreService.findIdToMapSheetFile(uid); + String filePath = dto.getFilePath()+"/"+dto.getFileName(); + Path path = Paths.get(filePath); + try { + boolean isDeleted = Files.deleteIfExists(path); + if (isDeleted) { + System.out.println("파일 삭제 성공: " + filePath); + } else { + System.out.println("삭제 실패: 파일이 존재하지 않습니다."); + } + } catch (IOException e) { + System.err.println("파일 삭제 중 오류 발생: " + e.getMessage()); + } + DmlReturn dmlReturn = mapSheetMngCoreService.deleteByFileUidMngFile(uid); } - return new MapSheetMngDto.DmlReturn("success", fileUids.size() + "개 파일이 삭제되었습니다."); + return new DmlReturn("success", fileUids.size() + "개 파일이 삭제되었습니다."); } } 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 adb05a62..ba297ae4 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,6 +2,7 @@ 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; @@ -49,6 +50,28 @@ public class MapSheetMngCoreService { mapSheetMngRepository.MapSheetMngComplete(mngYyyy); } + public void deleteByHstUidMngFile(@Valid Long hstUid) { + mapSheetMngRepository.deleteByHstUidMngFile(hstUid); + } + + 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); + } + public Page findMapSheetErrorList( MapSheetMngDto.@Valid ErrorSearchReq searchReq) { return mapSheetMngRepository.findMapSheetErrorList(searchReq); @@ -58,10 +81,21 @@ 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); + } + + public MapSheetMngDto.MngFilesDto findIdToMapSheetFile(Long fileUid) { + return mapSheetMngRepository.findIdToMapSheetFile(fileUid); + } + public MapSheetMngDto.DmlReturn uploadProcess(@Valid List hstUidList) { int count = 0; if (!Objects.isNull(hstUidList) && !hstUidList.isEmpty()) { @@ -215,6 +249,7 @@ public class MapSheetMngCoreService { } public MapSheetMngDto.DmlReturn deleteByFileUidMngFile(Long fileUid) { + mapSheetMngRepository.deleteByFileUidMngFile(fileUid); return new MapSheetMngDto.DmlReturn("success", fileUid + " : 삭제되었습니다."); 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 3683f365..af36af60 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,6 +15,8 @@ public interface MapSheetMngRepositoryCustom { MapSheetMngDto.MngDto findMapSheetMng(int mngYyyy); + + void MapSheetMngComplete(int mngYyyy); Optional findMapSheetMngHstInfo(Long hstUid); @@ -25,7 +27,7 @@ public interface MapSheetMngRepositoryCustom { void deleteByFileUidMngFile(Long fileUid); - MapSheetMngDto.MngFilesDto findYyyyToMapSheetFilePath(int mngYyyy); + MapSheetMngDto.MngFilesDto findYyyyToMapSheetFilePathRefer(int mngYyyy); void deleteByMngYyyyMngAll(int mngYyyy); @@ -35,12 +37,23 @@ public interface MapSheetMngRepositoryCustom { void deleteByMngYyyyMngFile(int mngYyyy); + void deleteByHstUidMngFile(Long hstUid); + + void mngFileSave(@Valid MapSheetMngDto.MngFileAddReq addReq); + + void updateMapSheetMngHstSyncCheckState( + Long hstUid, + String uploadPath, + String syncCheckTfwFileName, + String syncCheckTifFileName); + Page findMapSheetErrorList( MapSheetMngDto.@Valid ErrorSearchReq searchReq); 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 a39b9748..746ab044 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 @@ -19,7 +19,9 @@ import com.querydsl.jpa.impl.JPAQueryFactory; import jakarta.persistence.EntityManager; 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; @@ -72,6 +74,7 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport "row_number() over(order by {0} desc)", mapSheetMngEntity.createdDttm), mapSheetMngEntity.mngYyyy, + mapSheetMngEntity.mngPath, mapSheetMngEntity.mngState, mapSheetMngEntity.syncState, mapSheetMngEntity.syncCheckState, @@ -194,6 +197,7 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport "row_number() over(order by {0} desc)", mapSheetMngEntity.createdDttm), mapSheetMngEntity.mngYyyy, + mapSheetMngEntity.mngPath, mapSheetMngEntity.mngState, mapSheetMngEntity.syncState, mapSheetMngEntity.syncCheckState, @@ -336,6 +340,9 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport 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) @@ -386,37 +393,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.mapSheetNum, - 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; } @@ -476,7 +485,7 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport } @Override - public MapSheetMngDto.MngFilesDto findYyyyToMapSheetFilePath(int mngYyyy) { + public MapSheetMngDto.MngFilesDto findYyyyToMapSheetFilePathRefer(int mngYyyy) { BooleanBuilder whereBuilder = new BooleanBuilder(); whereBuilder.and(mapSheetMngFileEntity.mngYyyy.eq(mngYyyy)); @@ -497,11 +506,39 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport mapSheetMngFileEntity.fileSize)) .from(mapSheetMngFileEntity) .where(whereBuilder) + .orderBy(mapSheetMngFileEntity.fileUid.desc()) + .limit(1) .fetchOne(); return foundContent; } + @Override + 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(); + + return foundContent; + } + + + @Override public void MapSheetMngComplete(int mngYyyy) { long execCount = queryFactory @@ -511,6 +548,26 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport .execute(); } + @Override + public void updateMapSheetMngHstSyncCheckState( + 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(); + } + @Override public void deleteByMngYyyyMngAll(int mngYyyy) { @@ -564,14 +621,53 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport } @Override - public void deleteByFileUidMngFile(Long fileUid) { + public void deleteByHstUidMngFile(Long hstUid) { long deletedFileCount = + queryFactory + .delete(mapSheetMngFileEntity) + .where(mapSheetMngFileEntity.fileUid.eq(hstUid)) + .execute(); + } + + @Override + public void deleteByFileUidMngFile(Long fileUid) { + long fileCount = queryFactory .delete(mapSheetMngFileEntity) .where(mapSheetMngFileEntity.fileUid.eq(fileUid)) .execute(); } + @Override + 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(); + } + @Override public int insertMapSheetOrgDataToMapSheetMngHst(int mngYyyy) { From 45b8ca92b7e92a0dd6571ed3de74ec52feda9c65 Mon Sep 17 00:00:00 2001 From: Moon Date: Thu, 18 Dec 2025 16:27:21 +0900 Subject: [PATCH 2/4] =?UTF-8?q?=ED=8C=8C=EC=9D=BC=EA=B2=BD=EB=A1=9C?= =?UTF-8?q?=EC=84=A4=EC=A0=95=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/kamco/cd/kamcoback/config/FileConfig.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/kamco/cd/kamcoback/config/FileConfig.java b/src/main/java/com/kamco/cd/kamcoback/config/FileConfig.java index d830b6b4..345ac523 100644 --- a/src/main/java/com/kamco/cd/kamcoback/config/FileConfig.java +++ b/src/main/java/com/kamco/cd/kamcoback/config/FileConfig.java @@ -12,7 +12,9 @@ import org.springframework.stereotype.Component; @Setter public class FileConfig { - private String rootSyncDir = "D:\\app\\original-images\\"; - private String tmpSyncDir = rootSyncDir+"tmp\\"; - //private String rootSyncDir = "/app/original-images"; + //private String rootSyncDir = "D:\\app\\original-images\\"; + //private String tmpSyncDir = rootSyncDir+"tmp\\"; + + private String rootSyncDir = "/app/original-images/"; + private String tmpSyncDir = rootSyncDir+"tmp/"; } From f2ee64242d0ef826a54a49f985d1e5ef5ad5a503 Mon Sep 17 00:00:00 2001 From: Moon Date: Thu, 18 Dec 2025 16:33:56 +0900 Subject: [PATCH 3/4] =?UTF-8?q?=EC=98=81=EC=83=81=EA=B4=80=EB=A6=AC=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/kamco/cd/kamcoback/mapsheet/dto/MapSheetMngDto.java | 1 + .../postgres/repository/mapsheet/MapSheetMngRepositoryImpl.java | 1 + 2 files changed, 2 insertions(+) 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 a200c937..6ee5c82f 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 @@ -85,6 +85,7 @@ public class MapSheetMngDto { @JsonFormatDttm private ZonedDateTime rgstStrtDttm; @JsonFormatDttm private ZonedDateTime rgstEndDttm; + public double getSyncStateDoneRate() { if (this.syncTotCnt == null || this.syncTotCnt == 0) { return 0.0; 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 de94f24a..62928f85 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 @@ -187,6 +187,7 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport BooleanBuilder whereBuilder = new BooleanBuilder(); whereBuilder.and(mapSheetMngEntity.mngYyyy.eq(mngYyyy)); + MapSheetMngDto.MngDto foundContent = queryFactory .select( From 097b40ae8e925b65b59dd3d4ae17944b301762a5 Mon Sep 17 00:00:00 2001 From: teddy Date: Thu, 18 Dec 2025 16:35:48 +0900 Subject: [PATCH 4/4] =?UTF-8?q?=EC=98=81=EC=83=81=EA=B4=80=EB=A6=AC=20?= =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EC=97=85=EB=A1=9C=EB=93=9C=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kamco/cd/kamcoback/config/FileConfig.java | 6 +- .../mapsheet/dto/MapSheetMngDto.java | 26 ++- .../mapsheet/service/MapSheetMngService.java | 78 +++----- .../postgres/core/MapSheetMngCoreService.java | 14 +- .../mapsheet/MapSheetMngRepositoryCustom.java | 8 +- .../mapsheet/MapSheetMngRepositoryImpl.java | 184 +++++++++--------- 6 files changed, 144 insertions(+), 172 deletions(-) diff --git a/src/main/java/com/kamco/cd/kamcoback/config/FileConfig.java b/src/main/java/com/kamco/cd/kamcoback/config/FileConfig.java index 345ac523..b734aec1 100644 --- a/src/main/java/com/kamco/cd/kamcoback/config/FileConfig.java +++ b/src/main/java/com/kamco/cd/kamcoback/config/FileConfig.java @@ -12,9 +12,9 @@ import org.springframework.stereotype.Component; @Setter public class FileConfig { - //private String rootSyncDir = "D:\\app\\original-images\\"; - //private String tmpSyncDir = rootSyncDir+"tmp\\"; + // private String rootSyncDir = "D:\\app\\original-images\\"; + // private String tmpSyncDir = rootSyncDir+"tmp\\"; private String rootSyncDir = "/app/original-images/"; - private String tmpSyncDir = rootSyncDir+"tmp/"; + private String tmpSyncDir = rootSyncDir + "tmp/"; } 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 dceea25c..8f4f04f2 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; @@ -234,8 +231,6 @@ public class MapSheetMngService { return mapSheetMngCoreService.findMapSheetMngYyyyList(); } - - public MngDto findMapSheetMng(int mngYyyy) { return mapSheetMngCoreService.findMapSheetMng(mngYyyy); } @@ -248,8 +243,7 @@ public class MapSheetMngService { return new DmlReturn("success", "작업완료 처리되었습니다."); } - public Page findMapSheetErrorList( - @Valid ErrorSearchReq searchReq) { + public Page findMapSheetErrorList(@Valid ErrorSearchReq searchReq) { return mapSheetMngCoreService.findMapSheetErrorList(searchReq); } @@ -313,44 +307,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); @@ -363,14 +352,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); @@ -385,14 +372,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); @@ -403,13 +391,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(); @@ -429,7 +414,6 @@ public class MapSheetMngService { addReq.setFileSize(tifFile.getSize()); mapSheetMngCoreService.mngFileSave(addReq); - return new DmlReturn("success", "파일 업로드 완료되었습니다."); } @@ -442,7 +426,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/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/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