From 860ebe9295a3cdd183a6189f50b1b5f8ef301bcf Mon Sep 17 00:00:00 2001 From: Moon Date: Thu, 22 Jan 2026 21:06:20 +0900 Subject: [PATCH 1/3] =?UTF-8?q?=EC=B6=94=EB=A1=A0=EC=9E=90=EB=8F=99?= =?UTF-8?q?=EC=A0=9C=EC=99=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/MapSheetMngFileJobCoreService.java | 10 +++ .../MapSheetMngFileJobRepositoryCustom.java | 5 ++ .../MapSheetMngFileJobRepositoryImpl.java | 36 +++++++++++ .../MapSheetMngFileJobController.java | 5 +- .../scheduler/dto/MapSheetMngDto.java | 14 +++- .../service/MapSheetMngFileJobService.java | 64 +++++++++++++++++-- src/main/resources/application-dev.yml | 2 + 7 files changed, 128 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapSheetMngFileJobCoreService.java b/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapSheetMngFileJobCoreService.java index c9ffa316..e55517aa 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapSheetMngFileJobCoreService.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapSheetMngFileJobCoreService.java @@ -1,5 +1,6 @@ package com.kamco.cd.kamcoback.postgres.core; +import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.MngListCompareDto; import com.kamco.cd.kamcoback.postgres.entity.MapSheetMngFileEntity; import com.kamco.cd.kamcoback.postgres.repository.scheduler.MapSheetMngFileJobRepository; import com.kamco.cd.kamcoback.scheduler.dto.MapSheetMngDto; @@ -63,4 +64,13 @@ public class MapSheetMngFileJobCoreService { public Integer findNotYetMapSheetMng() { return mapSheetMngFileJobRepository.findNotYetMapSheetMng(); } + + public Long findByHstMapSheetBeforeYyyyListCount(int strtYyyy, int endYyyy, String mapSheetNum){ + return mapSheetMngFileJobRepository.findByHstMapSheetBeforeYyyyListCount(strtYyyy, endYyyy, mapSheetNum); + } + + public void updateException5kMapSheet(String mapSheetNum){ + mapSheetMngFileJobRepository.updateException5kMapSheet(mapSheetNum); + } + } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/MapSheetMngFileJobRepositoryCustom.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/MapSheetMngFileJobRepositoryCustom.java index 6467d921..9fe18ab7 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/MapSheetMngFileJobRepositoryCustom.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/MapSheetMngFileJobRepositoryCustom.java @@ -1,5 +1,6 @@ package com.kamco.cd.kamcoback.postgres.repository.scheduler; +import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.MngListCompareDto; import com.kamco.cd.kamcoback.scheduler.dto.MapSheetMngDto; import com.kamco.cd.kamcoback.scheduler.dto.MapSheetMngDto.MngHstDto; import java.util.List; @@ -18,4 +19,8 @@ public interface MapSheetMngFileJobRepositoryCustom { public void mngDataState(int mngYyyy, String mngState); public Integer findNotYetMapSheetMng(); + + public Long findByHstMapSheetBeforeYyyyListCount(int strtYyyy, int endYyyy, String mapSheetNum); + + public void updateException5kMapSheet(String mapSheetNum); } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/MapSheetMngFileJobRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/MapSheetMngFileJobRepositoryImpl.java index 84866211..cbbbbbf4 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/MapSheetMngFileJobRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/MapSheetMngFileJobRepositoryImpl.java @@ -1,8 +1,11 @@ package com.kamco.cd.kamcoback.postgres.repository.scheduler; +import static com.kamco.cd.kamcoback.postgres.entity.QMapInkx5kEntity.mapInkx5kEntity; import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetMngEntity.mapSheetMngEntity; import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetMngHstEntity.mapSheetMngHstEntity; +import com.kamco.cd.kamcoback.common.enums.CommonUseStatus; +import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.MngListCompareDto; import com.kamco.cd.kamcoback.postgres.entity.MapSheetMngHstEntity; import com.kamco.cd.kamcoback.scheduler.dto.MapSheetMngDto; import com.kamco.cd.kamcoback.scheduler.dto.MapSheetMngDto.MngHstDto; @@ -15,6 +18,7 @@ import com.querydsl.jpa.impl.JPAQueryFactory; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import java.time.ZonedDateTime; +import java.util.Collections; import java.util.List; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; @@ -168,6 +172,7 @@ public class MapSheetMngFileJobRepositoryImpl extends QuerydslRepositorySupport .set(mapSheetMngHstEntity.mapSheetPath, updateReq.getMapSheetPath()) .set(mapSheetMngHstEntity.syncTfwFileName, updateReq.getSyncTfwFileName()) .set(mapSheetMngHstEntity.syncTifFileName, updateReq.getSyncTifFileName()) + .set(mapSheetMngHstEntity.useInference, updateReq.getUseInference()) .where(mapSheetMngHstEntity.hstUid.eq(updateReq.getHstUid())) .execute(); } else { @@ -185,6 +190,7 @@ public class MapSheetMngFileJobRepositoryImpl extends QuerydslRepositorySupport .set(mapSheetMngHstEntity.mapSheetPath, updateReq.getMapSheetPath()) .set(mapSheetMngHstEntity.syncTfwFileName, updateReq.getSyncTfwFileName()) .set(mapSheetMngHstEntity.syncTifFileName, updateReq.getSyncTifFileName()) + .set(mapSheetMngHstEntity.useInference, updateReq.getUseInference()) .where(mapSheetMngHstEntity.hstUid.eq(updateReq.getHstUid())) .execute(); } @@ -213,6 +219,7 @@ public class MapSheetMngFileJobRepositoryImpl extends QuerydslRepositorySupport mapSheetMngHstEntity.mapSheetPath, mapSheetMngHstEntity.syncCheckTfwFileName, mapSheetMngHstEntity.syncCheckTifFileName, + mapSheetMngHstEntity.useInference, mapSheetMngEntity.mngPath)) .from(mapSheetMngHstEntity) .join(mapSheetMngEntity) @@ -226,4 +233,33 @@ public class MapSheetMngFileJobRepositoryImpl extends QuerydslRepositorySupport return foundContent; } + + @Override + public Long findByHstMapSheetBeforeYyyyListCount(int strtYyyy, int endYyyy, String mapSheetNum) { + + Long countQuery = + queryFactory + .select(mapSheetMngHstEntity.mngYyyy.count()) + .from(mapSheetMngHstEntity) + .where(mapSheetMngHstEntity.mngYyyy.goe(strtYyyy) + .and(mapSheetMngHstEntity.mngYyyy.loe(endYyyy)) + .and(mapSheetMngHstEntity.mapSheetNum.eq(mapSheetNum)) + .and(mapSheetMngHstEntity.useInference.eq("USE")) + .and(mapSheetMngHstEntity.syncState.eq("DONE") + .or(mapSheetMngHstEntity.syncCheckState.eq("DONE"))) + ) + .fetchOne(); + + return countQuery; + } + + @Override + public void updateException5kMapSheet(String mapSheetNum){ + long updateCount = + queryFactory + .update(mapInkx5kEntity) + .set(mapInkx5kEntity.useInference, CommonUseStatus.EXCEPT) + .where(mapInkx5kEntity.mapidcdNo.eq(mapSheetNum)) + .execute(); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/scheduler/MapSheetMngFileJobController.java b/src/main/java/com/kamco/cd/kamcoback/scheduler/MapSheetMngFileJobController.java index e2360b88..59011867 100644 --- a/src/main/java/com/kamco/cd/kamcoback/scheduler/MapSheetMngFileJobController.java +++ b/src/main/java/com/kamco/cd/kamcoback/scheduler/MapSheetMngFileJobController.java @@ -42,7 +42,7 @@ public class MapSheetMngFileJobController { } } - @Scheduled(fixedDelay = 1000 * 5) + @Scheduled(fixedDelay = 1000 * 10) public void mngFileSyncJob00() { if (!isSchedulerEnabled || !isFileSyncSchedulerEnabled) return; @@ -50,6 +50,7 @@ public class MapSheetMngFileJobController { mapSheetMngFileJobService.checkMapSheetFileProcess(0, mngSyncPageSize); } + @Scheduled(fixedDelay = 1000 * 5) public void mngFileSyncJob01() { if (!isSchedulerEnabled || !isFileSyncSchedulerEnabled) return; @@ -122,6 +123,8 @@ public class MapSheetMngFileJobController { mapSheetMngFileJobService.checkMapSheetFileProcess(9, mngSyncPageSize); } + + // 3. 외부에서 플래그를 변경할 수 있는 Setter 메서드 public void setSchedulerEnabled(boolean enabled) { this.isSchedulerEnabled = enabled; diff --git a/src/main/java/com/kamco/cd/kamcoback/scheduler/dto/MapSheetMngDto.java b/src/main/java/com/kamco/cd/kamcoback/scheduler/dto/MapSheetMngDto.java index 440ef00d..6716b2df 100644 --- a/src/main/java/com/kamco/cd/kamcoback/scheduler/dto/MapSheetMngDto.java +++ b/src/main/java/com/kamco/cd/kamcoback/scheduler/dto/MapSheetMngDto.java @@ -76,7 +76,7 @@ public class MapSheetMngDto { private String mapSheetPath; private String syncTifFileName; private String syncTfwFileName; - + private String useInference; private String syncMngPath; } @@ -114,6 +114,18 @@ public class MapSheetMngDto { private Long fileSize; } + @Schema(name = "MngListCompareDto", description = "영상파일 비교가능 이전년도정보") + @Getter + @Setter + @NoArgsConstructor + @AllArgsConstructor + public static class MngListCompareDto { + + private String mngYyyy; + private String mapSheetNum; + private Integer beforeYear; + } + @Schema(name = "DmlReturn", description = "영상관리 DML 수행 후 리턴") @Getter @Setter diff --git a/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetMngFileJobService.java b/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetMngFileJobService.java index 6b8c196d..cdee99cb 100644 --- a/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetMngFileJobService.java +++ b/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetMngFileJobService.java @@ -3,10 +3,14 @@ package com.kamco.cd.kamcoback.scheduler.service; import static java.lang.String.CASE_INSENSITIVE_ORDER; import com.kamco.cd.kamcoback.common.utils.FIleChecker; +import com.kamco.cd.kamcoback.common.utils.FIleChecker.Basic; +import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.MngListCompareDto; import com.kamco.cd.kamcoback.postgres.core.MapSheetMngFileJobCoreService; import com.kamco.cd.kamcoback.scheduler.dto.FileDto; import com.kamco.cd.kamcoback.scheduler.dto.FileDto.SrchFilesDepthDto; import com.kamco.cd.kamcoback.scheduler.dto.MapSheetMngDto; +import com.kamco.cd.kamcoback.scheduler.dto.MapSheetMngDto.DmlReturn; +import com.kamco.cd.kamcoback.scheduler.dto.MapSheetMngDto.MngFileAddReq; import com.kamco.cd.kamcoback.scheduler.dto.MapSheetMngDto.MngHstDto; import java.io.File; import java.io.IOException; @@ -45,6 +49,14 @@ public class MapSheetMngFileJobService { @Value("${file.sync-file-extention}") private String syncFileExtention; + @Value("${file.sync-auto-exception-start-year}") + private int syncAutoExceptionStartYear; + + @Value("${file.sync-auto-exception-before-year-cnt}") + private int syncAutoExceptionBeforeYearCnt; + + + public Integer checkMngFileSync() { return mapSheetMngFileJobCoreService.findNotYetMapSheetMng(); } @@ -62,7 +74,7 @@ public class MapSheetMngFileJobService { int mngYyyy = 0; SrchFilesDepthDto srchDto = new SrchFilesDepthDto(); - List basicList = new ArrayList<>(); + List basicList = new ArrayList<>(); if (mapSheetFileNotYetList.size() >= 1) { mngYyyy = mapSheetFileNotYetList.get(0).getMngYyyy(); @@ -70,8 +82,13 @@ public class MapSheetMngFileJobService { for (MngHstDto item : mapSheetFileNotYetList) { + //5K도엽 자동추론제외 + Long exceptCheckCnt = this.mapSheetAutoExceptionUpdate(item.getMngYyyy(), item.getMapSheetNum()); + // 도엽별 파일 체크 진행중으로 변경 item.setDataState("PROCESSING"); + item.setUseInference("USE"); + if( exceptCheckCnt == 0 )item.setUseInference("EXCEPT"); mngHstDataSyncStateUpdate(item); // 1. MngHstDto 객체의 필드 값에 접근 @@ -121,12 +138,12 @@ public class MapSheetMngFileJobService { if (tfwCnt == 0 && tifCnt == 0) syncState = "NOFILE"; - for (FIleChecker.Basic item2 : basicList) { + for (Basic item2 : basicList) { // System.out.println("path: " + item2.getParentPath()); // System.out.println("path: " + item2.getFileNm()); // System.out.println("path: " + item2.getFullPath()); - MapSheetMngDto.MngFileAddReq addReq = new MapSheetMngDto.MngFileAddReq(); + MngFileAddReq addReq = new MngFileAddReq(); addReq.setMngYyyy(item.getMngYyyy()); addReq.setMapSheetNum(item.getMapSheetNum()); addReq.setRefMapSheetNum(item.getRefMapSheetNum()); @@ -175,14 +192,19 @@ public class MapSheetMngFileJobService { } addReq.setFileState(fileState); - MapSheetMngDto.DmlReturn DmlReturn = mngDataSave(addReq); + DmlReturn DmlReturn = mngDataSave(addReq); } // 도엽별 파일 체크 완료로 변경 item.setDataState("DONE"); + if (syncState.isEmpty()) syncState = "DONE"; item.setSyncState(syncState); + mngHstDataSyncStateUpdate(item); + + + } Long notyetCnt = this.mngDataStateDoneUpdate(mngYyyy); @@ -211,6 +233,33 @@ public class MapSheetMngFileJobService { return notyetCnt; } + public Long mapSheetAutoExceptionUpdate(int mngYyyy, String mapSheetNum) { + + //2025년 이전 파일싱크는 무조건 이전3년이 존재하지 않으므로 자동추론제외를 진행하지 않는다.(전년도 파일이 무조건 존재하는 것으로 리턴) + if( syncAutoExceptionStartYear > mngYyyy )return 1L; + + //List mapSheetNums = new ArrayList<>(); + //mapSheetNums.add(mapSheetNum); + + int strtYyyy = mngYyyy - syncAutoExceptionBeforeYearCnt; + int endYyyy = mngYyyy - 1; + + //이전년도가 3개년인 도엽 확인 + Long beforeCnt = mapSheetMngFileJobCoreService.findByHstMapSheetBeforeYyyyListCount(strtYyyy, endYyyy, mapSheetNum); + + System.out.println("mapSheetAutoExceptionUpdate mapSheetNum == " +mapSheetNum); + System.out.println("mapSheetAutoExceptionUpdate strtYyyy == " +strtYyyy); + System.out.println("mapSheetAutoExceptionUpdate endYyyy == " +endYyyy); + System.out.println("mapSheetAutoExceptionUpdate beforeCnt == " +beforeCnt); + if( beforeCnt == 0 ) + { + System.out.println("mapSheetAutoExceptionUpdate inference == 자동추론제외"); + mapSheetMngFileJobCoreService.updateException5kMapSheet(mapSheetNum); + } + + return beforeCnt; + } + public List findTargetMapSheetFileList(long targetNum, int pageSize) { return mapSheetMngFileJobCoreService.findTargetMapSheetFileList(targetNum, pageSize); } @@ -219,11 +268,14 @@ public class MapSheetMngFileJobService { return mapSheetMngFileJobCoreService.findByMngYyyyTargetMapSheetNotYetCount(mngYyyy); } - public MapSheetMngDto.DmlReturn mngHstDataSyncStateUpdate(MapSheetMngDto.MngHstDto UpdateReq) { + + + + public DmlReturn mngHstDataSyncStateUpdate(MngHstDto UpdateReq) { return mapSheetMngFileJobCoreService.mngHstDataSyncStateUpdate(UpdateReq); } - public MapSheetMngDto.DmlReturn mngDataSave(MapSheetMngDto.MngFileAddReq AddReq) { + public DmlReturn mngDataSave(MngFileAddReq AddReq) { return mapSheetMngFileJobCoreService.mngFileSave(AddReq); } diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index 436f2802..93f944db 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -91,6 +91,8 @@ file: sync-root-dir: /kamco-nfs/images/ sync-tmp-dir: ${file.sync-root-dir}/tmp sync-file-extention: tfw,tif + sync-auto-exception-start-year: 2025 + sync-auto-exception-before-year-cnt: 3 #dataset-dir: D:/kamco-nfs/dataset/ dataset-dir: /kamco-nfs/dataset/export/ From 638f5fe12a7432472da252aaca7ed2d2f72b0255 Mon Sep 17 00:00:00 2001 From: Moon Date: Thu, 22 Jan 2026 21:07:44 +0900 Subject: [PATCH 2/3] =?UTF-8?q?=EC=B6=94=EB=A1=A0=EC=9E=90=EB=8F=99?= =?UTF-8?q?=EC=A0=9C=EC=99=B8=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application-local.yml | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/main/resources/application-local.yml b/src/main/resources/application-local.yml index 431d5c67..0636775d 100644 --- a/src/main/resources/application-local.yml +++ b/src/main/resources/application-local.yml @@ -15,8 +15,8 @@ spring: format_sql: true # ⚠️ 선택 - SQL 포맷팅 (가독성) datasource: - url: jdbc:postgresql://192.168.2.127:15432/kamco_cds - #url: jdbc:postgresql://localhost:15432/kamco_cds + #url: jdbc:postgresql://192.168.2.127:15432/kamco_cds + url: jdbc:postgresql://localhost:25432/kamco_cds username: kamco_cds password: kamco_cds_Q!W@E#R$ hikari: @@ -25,9 +25,12 @@ spring: data: redis: - host: 192.168.2.109 + #host: 192.168.2.109 + #port: 6379 + #password: kamco + host: localhost port: 6379 - password: kamco + password: servlet: multipart: @@ -65,13 +68,13 @@ mapsheet: shp: baseurl: /Users/bokmin/detect/result - - file: sync-root-dir: D:/kamco-nfs/images/ #sync-root-dir: /kamco-nfs/images/ sync-tmp-dir: ${file.sync-root-dir}/tmp sync-file-extention: tfw,tif + sync-auto-exception-start-year: 2025 + sync-auto-exception-before-year-cnt: 3 dataset-dir: D:/kamco-nfs/dataset/ #dataset-dir: /kamco-nfs/dataset/export/ @@ -87,3 +90,8 @@ inference: batch-url: http://10.100.0.11:8000/batches geojson-dir: /kamco-nfs/requests/ jar-path: jar/makeshp-1.0.0.jar + +innopam: + #url: http://localhost:8080 + url: http://192.168.2.129:5301 + mast : ${innopam.url}/api/kcd/cdi/chn/mast From cbbb0cadab8d9aa8a400c080f0e6ddc6c399f38e Mon Sep 17 00:00:00 2001 From: teddy Date: Thu, 22 Jan 2026 21:12:08 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=EC=9E=90=EB=8F=99=20=EC=B6=94=EB=A1=A0?= =?UTF-8?q?=EC=A0=9C=EC=99=B8,=20spotless=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/MapSheetMngFileJobCoreService.java | 9 ++-- .../MapSheetMngFileJobRepositoryCustom.java | 1 - .../MapSheetMngFileJobRepositoryImpl.java | 41 +++++++++--------- .../MapSheetMngFileJobController.java | 3 -- .../service/MapSheetMngFileJobService.java | 42 ++++++++----------- src/main/resources/application-prod.yml | 2 + 6 files changed, 45 insertions(+), 53 deletions(-) diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapSheetMngFileJobCoreService.java b/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapSheetMngFileJobCoreService.java index e55517aa..352e600b 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapSheetMngFileJobCoreService.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapSheetMngFileJobCoreService.java @@ -1,6 +1,5 @@ package com.kamco.cd.kamcoback.postgres.core; -import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.MngListCompareDto; import com.kamco.cd.kamcoback.postgres.entity.MapSheetMngFileEntity; import com.kamco.cd.kamcoback.postgres.repository.scheduler.MapSheetMngFileJobRepository; import com.kamco.cd.kamcoback.scheduler.dto.MapSheetMngDto; @@ -65,12 +64,12 @@ public class MapSheetMngFileJobCoreService { return mapSheetMngFileJobRepository.findNotYetMapSheetMng(); } - public Long findByHstMapSheetBeforeYyyyListCount(int strtYyyy, int endYyyy, String mapSheetNum){ - return mapSheetMngFileJobRepository.findByHstMapSheetBeforeYyyyListCount(strtYyyy, endYyyy, mapSheetNum); + public Long findByHstMapSheetBeforeYyyyListCount(int strtYyyy, int endYyyy, String mapSheetNum) { + return mapSheetMngFileJobRepository.findByHstMapSheetBeforeYyyyListCount( + strtYyyy, endYyyy, mapSheetNum); } - public void updateException5kMapSheet(String mapSheetNum){ + public void updateException5kMapSheet(String mapSheetNum) { mapSheetMngFileJobRepository.updateException5kMapSheet(mapSheetNum); } - } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/MapSheetMngFileJobRepositoryCustom.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/MapSheetMngFileJobRepositoryCustom.java index 9fe18ab7..d05930c6 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/MapSheetMngFileJobRepositoryCustom.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/MapSheetMngFileJobRepositoryCustom.java @@ -1,6 +1,5 @@ package com.kamco.cd.kamcoback.postgres.repository.scheduler; -import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.MngListCompareDto; import com.kamco.cd.kamcoback.scheduler.dto.MapSheetMngDto; import com.kamco.cd.kamcoback.scheduler.dto.MapSheetMngDto.MngHstDto; import java.util.List; diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/MapSheetMngFileJobRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/MapSheetMngFileJobRepositoryImpl.java index cbbbbbf4..77909404 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/MapSheetMngFileJobRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/scheduler/MapSheetMngFileJobRepositoryImpl.java @@ -5,7 +5,6 @@ import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetMngEntity.mapSheet import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetMngHstEntity.mapSheetMngHstEntity; import com.kamco.cd.kamcoback.common.enums.CommonUseStatus; -import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.MngListCompareDto; import com.kamco.cd.kamcoback.postgres.entity.MapSheetMngHstEntity; import com.kamco.cd.kamcoback.scheduler.dto.MapSheetMngDto; import com.kamco.cd.kamcoback.scheduler.dto.MapSheetMngDto.MngHstDto; @@ -18,7 +17,6 @@ import com.querydsl.jpa.impl.JPAQueryFactory; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import java.time.ZonedDateTime; -import java.util.Collections; import java.util.List; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; @@ -238,28 +236,33 @@ public class MapSheetMngFileJobRepositoryImpl extends QuerydslRepositorySupport public Long findByHstMapSheetBeforeYyyyListCount(int strtYyyy, int endYyyy, String mapSheetNum) { Long countQuery = - queryFactory - .select(mapSheetMngHstEntity.mngYyyy.count()) - .from(mapSheetMngHstEntity) - .where(mapSheetMngHstEntity.mngYyyy.goe(strtYyyy) - .and(mapSheetMngHstEntity.mngYyyy.loe(endYyyy)) - .and(mapSheetMngHstEntity.mapSheetNum.eq(mapSheetNum)) - .and(mapSheetMngHstEntity.useInference.eq("USE")) - .and(mapSheetMngHstEntity.syncState.eq("DONE") - .or(mapSheetMngHstEntity.syncCheckState.eq("DONE"))) - ) - .fetchOne(); + queryFactory + .select(mapSheetMngHstEntity.mngYyyy.count()) + .from(mapSheetMngHstEntity) + .where( + mapSheetMngHstEntity + .mngYyyy + .goe(strtYyyy) + .and(mapSheetMngHstEntity.mngYyyy.loe(endYyyy)) + .and(mapSheetMngHstEntity.mapSheetNum.eq(mapSheetNum)) + .and(mapSheetMngHstEntity.useInference.eq("USE")) + .and( + mapSheetMngHstEntity + .syncState + .eq("DONE") + .or(mapSheetMngHstEntity.syncCheckState.eq("DONE")))) + .fetchOne(); return countQuery; } @Override - public void updateException5kMapSheet(String mapSheetNum){ + public void updateException5kMapSheet(String mapSheetNum) { long updateCount = - queryFactory - .update(mapInkx5kEntity) - .set(mapInkx5kEntity.useInference, CommonUseStatus.EXCEPT) - .where(mapInkx5kEntity.mapidcdNo.eq(mapSheetNum)) - .execute(); + queryFactory + .update(mapInkx5kEntity) + .set(mapInkx5kEntity.useInference, CommonUseStatus.EXCEPT) + .where(mapInkx5kEntity.mapidcdNo.eq(mapSheetNum)) + .execute(); } } diff --git a/src/main/java/com/kamco/cd/kamcoback/scheduler/MapSheetMngFileJobController.java b/src/main/java/com/kamco/cd/kamcoback/scheduler/MapSheetMngFileJobController.java index 59011867..c16c9d55 100644 --- a/src/main/java/com/kamco/cd/kamcoback/scheduler/MapSheetMngFileJobController.java +++ b/src/main/java/com/kamco/cd/kamcoback/scheduler/MapSheetMngFileJobController.java @@ -50,7 +50,6 @@ public class MapSheetMngFileJobController { mapSheetMngFileJobService.checkMapSheetFileProcess(0, mngSyncPageSize); } - @Scheduled(fixedDelay = 1000 * 5) public void mngFileSyncJob01() { if (!isSchedulerEnabled || !isFileSyncSchedulerEnabled) return; @@ -123,8 +122,6 @@ public class MapSheetMngFileJobController { mapSheetMngFileJobService.checkMapSheetFileProcess(9, mngSyncPageSize); } - - // 3. 외부에서 플래그를 변경할 수 있는 Setter 메서드 public void setSchedulerEnabled(boolean enabled) { this.isSchedulerEnabled = enabled; diff --git a/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetMngFileJobService.java b/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetMngFileJobService.java index cdee99cb..0266d47c 100644 --- a/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetMngFileJobService.java +++ b/src/main/java/com/kamco/cd/kamcoback/scheduler/service/MapSheetMngFileJobService.java @@ -4,11 +4,9 @@ import static java.lang.String.CASE_INSENSITIVE_ORDER; import com.kamco.cd.kamcoback.common.utils.FIleChecker; import com.kamco.cd.kamcoback.common.utils.FIleChecker.Basic; -import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.MngListCompareDto; import com.kamco.cd.kamcoback.postgres.core.MapSheetMngFileJobCoreService; import com.kamco.cd.kamcoback.scheduler.dto.FileDto; import com.kamco.cd.kamcoback.scheduler.dto.FileDto.SrchFilesDepthDto; -import com.kamco.cd.kamcoback.scheduler.dto.MapSheetMngDto; import com.kamco.cd.kamcoback.scheduler.dto.MapSheetMngDto.DmlReturn; import com.kamco.cd.kamcoback.scheduler.dto.MapSheetMngDto.MngFileAddReq; import com.kamco.cd.kamcoback.scheduler.dto.MapSheetMngDto.MngHstDto; @@ -55,8 +53,6 @@ public class MapSheetMngFileJobService { @Value("${file.sync-auto-exception-before-year-cnt}") private int syncAutoExceptionBeforeYearCnt; - - public Integer checkMngFileSync() { return mapSheetMngFileJobCoreService.findNotYetMapSheetMng(); } @@ -82,13 +78,14 @@ public class MapSheetMngFileJobService { for (MngHstDto item : mapSheetFileNotYetList) { - //5K도엽 자동추론제외 - Long exceptCheckCnt = this.mapSheetAutoExceptionUpdate(item.getMngYyyy(), item.getMapSheetNum()); + // 5K도엽 자동추론제외 + Long exceptCheckCnt = + this.mapSheetAutoExceptionUpdate(item.getMngYyyy(), item.getMapSheetNum()); // 도엽별 파일 체크 진행중으로 변경 item.setDataState("PROCESSING"); item.setUseInference("USE"); - if( exceptCheckCnt == 0 )item.setUseInference("EXCEPT"); + if (exceptCheckCnt == 0) item.setUseInference("EXCEPT"); mngHstDataSyncStateUpdate(item); // 1. MngHstDto 객체의 필드 값에 접근 @@ -202,9 +199,6 @@ public class MapSheetMngFileJobService { item.setSyncState(syncState); mngHstDataSyncStateUpdate(item); - - - } Long notyetCnt = this.mngDataStateDoneUpdate(mngYyyy); @@ -235,24 +229,25 @@ public class MapSheetMngFileJobService { public Long mapSheetAutoExceptionUpdate(int mngYyyy, String mapSheetNum) { - //2025년 이전 파일싱크는 무조건 이전3년이 존재하지 않으므로 자동추론제외를 진행하지 않는다.(전년도 파일이 무조건 존재하는 것으로 리턴) - if( syncAutoExceptionStartYear > mngYyyy )return 1L; + // 2025년 이전 파일싱크는 무조건 이전3년이 존재하지 않으므로 자동추론제외를 진행하지 않는다.(전년도 파일이 무조건 존재하는 것으로 리턴) + if (syncAutoExceptionStartYear > mngYyyy) return 1L; - //List mapSheetNums = new ArrayList<>(); - //mapSheetNums.add(mapSheetNum); + // List mapSheetNums = new ArrayList<>(); + // mapSheetNums.add(mapSheetNum); int strtYyyy = mngYyyy - syncAutoExceptionBeforeYearCnt; int endYyyy = mngYyyy - 1; - //이전년도가 3개년인 도엽 확인 - Long beforeCnt = mapSheetMngFileJobCoreService.findByHstMapSheetBeforeYyyyListCount(strtYyyy, endYyyy, mapSheetNum); + // 이전년도가 3개년인 도엽 확인 + Long beforeCnt = + mapSheetMngFileJobCoreService.findByHstMapSheetBeforeYyyyListCount( + strtYyyy, endYyyy, mapSheetNum); - System.out.println("mapSheetAutoExceptionUpdate mapSheetNum == " +mapSheetNum); - System.out.println("mapSheetAutoExceptionUpdate strtYyyy == " +strtYyyy); - System.out.println("mapSheetAutoExceptionUpdate endYyyy == " +endYyyy); - System.out.println("mapSheetAutoExceptionUpdate beforeCnt == " +beforeCnt); - if( beforeCnt == 0 ) - { + System.out.println("mapSheetAutoExceptionUpdate mapSheetNum == " + mapSheetNum); + System.out.println("mapSheetAutoExceptionUpdate strtYyyy == " + strtYyyy); + System.out.println("mapSheetAutoExceptionUpdate endYyyy == " + endYyyy); + System.out.println("mapSheetAutoExceptionUpdate beforeCnt == " + beforeCnt); + if (beforeCnt == 0) { System.out.println("mapSheetAutoExceptionUpdate inference == 자동추론제외"); mapSheetMngFileJobCoreService.updateException5kMapSheet(mapSheetNum); } @@ -268,9 +263,6 @@ public class MapSheetMngFileJobService { return mapSheetMngFileJobCoreService.findByMngYyyyTargetMapSheetNotYetCount(mngYyyy); } - - - public DmlReturn mngHstDataSyncStateUpdate(MngHstDto UpdateReq) { return mapSheetMngFileJobCoreService.mngHstDataSyncStateUpdate(UpdateReq); } diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 7af3bb53..e5aee003 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -47,6 +47,8 @@ file: sync-root-dir: /kamco-nfs/images/ sync-tmp-dir: ${file.sync-root-dir}/tmp sync-file-extention: tfw,tif + sync-auto-exception-start-year: 2025 + sync-auto-exception-before-year-cnt: 3 #dataset-dir: D:/kamco-nfs/dataset/ dataset-dir: /kamco-nfs/dataset/export/