diff --git a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/controller/MapSheetMngFileJobController.class b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/controller/MapSheetMngFileJobController.class index 6abca85..ab89184 100644 Binary files a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/controller/MapSheetMngFileJobController.class and b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/controller/MapSheetMngFileJobController.class differ diff --git a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$DmlReturn.class b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$DmlReturn.class index 0025380..de6d180 100644 Binary files a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$DmlReturn.class and b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$DmlReturn.class differ diff --git a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$MngDto.class b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$MngDto.class index e544186..20bb824 100644 Binary files a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$MngDto.class and b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$MngDto.class differ diff --git a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$MngFileAddReq.class b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$MngFileAddReq.class index 955c826..1672d3e 100644 Binary files a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$MngFileAddReq.class and b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$MngFileAddReq.class differ diff --git a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$MngFilesDto.class b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$MngFilesDto.class index a5c90fe..3a974e8 100644 Binary files a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$MngFilesDto.class and b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$MngFilesDto.class differ diff --git a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$MngHstDto.class b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$MngHstDto.class index c0c5f5d..09f2813 100644 Binary files a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$MngHstDto.class and b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$MngHstDto.class differ diff --git a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$MngListCompareDto.class b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$MngListCompareDto.class index 733366a..a456dfa 100644 Binary files a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$MngListCompareDto.class and b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto$MngListCompareDto.class differ diff --git a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto.class b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto.class index a65577d..eb80c35 100644 Binary files a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto.class and b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/dto/MapSheetMngDto.class differ diff --git a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/postgres/core/MapSheetMngFileJobCoreService.class b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/postgres/core/MapSheetMngFileJobCoreService.class index 7315a4c..95d5d83 100644 Binary files a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/postgres/core/MapSheetMngFileJobCoreService.class and b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/postgres/core/MapSheetMngFileJobCoreService.class differ diff --git a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngFileJobRepositoryCustom.class b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngFileJobRepositoryCustom.class index 9401aa6..cdc3b48 100644 Binary files a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngFileJobRepositoryCustom.class and b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngFileJobRepositoryCustom.class differ diff --git a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngFileJobRepositoryImpl.class b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngFileJobRepositoryImpl.class index 7e47ebb..153de18 100644 Binary files a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngFileJobRepositoryImpl.class and b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngFileJobRepositoryImpl.class differ diff --git a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngYearRepositoryCustom.class b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngYearRepositoryCustom.class index 3bff8c5..b9c44c6 100644 Binary files a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngYearRepositoryCustom.class and b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngYearRepositoryCustom.class differ diff --git a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngYearRepositoryImpl.class b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngYearRepositoryImpl.class index df4075a..5666d79 100644 Binary files a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngYearRepositoryImpl.class and b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngYearRepositoryImpl.class differ diff --git a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/service/MapSheetMngFileJobService.class b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/service/MapSheetMngFileJobService.class index 47accce..9e41cd1 100644 Binary files a/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/service/MapSheetMngFileJobService.class and b/imagery-make-dataset/build/classes/java/main/com/kamco/cd/kamcoback/service/MapSheetMngFileJobService.class differ diff --git a/imagery-make-dataset/build/reports/problems/problems-report.html b/imagery-make-dataset/build/reports/problems/problems-report.html index 064af8d..c0a0bc1 100644 --- a/imagery-make-dataset/build/reports/problems/problems-report.html +++ b/imagery-make-dataset/build/reports/problems/problems-report.html @@ -650,7 +650,7 @@ code + .copy-button { diff --git a/imagery-make-dataset/build/tmp/compileJava/previous-compilation-data.bin b/imagery-make-dataset/build/tmp/compileJava/previous-compilation-data.bin index 91521b9..6686389 100644 Binary files a/imagery-make-dataset/build/tmp/compileJava/previous-compilation-data.bin and b/imagery-make-dataset/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/dto/MapSheetMngDto.java b/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/dto/MapSheetMngDto.java index 57185c7..b3ae808 100755 --- a/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/dto/MapSheetMngDto.java +++ b/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/dto/MapSheetMngDto.java @@ -40,6 +40,7 @@ public class MapSheetMngDto { @NoArgsConstructor @AllArgsConstructor public static class MngDto { + private int rowNum; private int mngYyyy; private String mngState; @@ -61,6 +62,7 @@ public class MapSheetMngDto { @NoArgsConstructor @AllArgsConstructor public static class MngHstDto { + private long hstUid; private int mngYyyy; private String mapSheetNum; @@ -86,6 +88,7 @@ public class MapSheetMngDto { @NoArgsConstructor @AllArgsConstructor public static class MngFileAddReq { + private int mngYyyy; private String mapSheetNum; private String refMapSheetNum; @@ -103,6 +106,7 @@ public class MapSheetMngDto { @NoArgsConstructor @AllArgsConstructor public static class MngFilesDto { + private long fileUid; private int mngYyyy; private String mapSheetNum; @@ -132,7 +136,19 @@ public class MapSheetMngDto { @NoArgsConstructor @AllArgsConstructor public static class DmlReturn { + private String flag; private String message; } + + @Schema(name = "MngYyyyDto", description = "년도 값") + @Getter + @Setter + @NoArgsConstructor + @AllArgsConstructor + public static class YearMinMax { + + private Integer minYyyy; + private Integer maxYyyy; + } } diff --git a/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapSheetMngFileJobCoreService.java b/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapSheetMngFileJobCoreService.java index 6026655..73b3dbb 100755 --- a/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapSheetMngFileJobCoreService.java +++ b/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/core/MapSheetMngFileJobCoreService.java @@ -1,8 +1,8 @@ package com.kamco.cd.kamcoback.postgres.core; import com.kamco.cd.kamcoback.dto.MapSheetMngDto; -import com.kamco.cd.kamcoback.dto.MapSheetMngDto.MngDto; import com.kamco.cd.kamcoback.dto.MapSheetMngDto.MngHstDto; +import com.kamco.cd.kamcoback.dto.MapSheetMngDto.YearMinMax; import com.kamco.cd.kamcoback.enums.CommonUseStatus; import com.kamco.cd.kamcoback.postgres.entity.MapSheetMngFileEntity; import com.kamco.cd.kamcoback.postgres.repository.MapSheetMngFileJobRepository; @@ -20,7 +20,8 @@ public class MapSheetMngFileJobCoreService { private final MapSheetMngFileJobRepository mapSheetMngFileJobRepository; private final MapSheetMngYearRepository mapSheetMngYearRepository; - public Page findMapSheetMngList(MapSheetMngDto.@Valid MngSearchReq searchReq) { + public Page findMapSheetMngList( + MapSheetMngDto.@Valid MngSearchReq searchReq) { return mapSheetMngFileJobRepository.findMapSheetMngList(searchReq); } @@ -67,9 +68,10 @@ public class MapSheetMngFileJobCoreService { return mapSheetMngFileJobRepository.findNotYetMapSheetMng(); } - public Long findByHstMapSheetBeforeYyyyListCount(int strtYyyy, int endYyyy, String mapSheetNum) { + public Long findByHstMapSheetBeforeYyyyListCount( + int mngYyyy, int strtYyyy, int endYyyy, String mapSheetNum) { return mapSheetMngFileJobRepository.findByHstMapSheetBeforeYyyyListCount( - strtYyyy, endYyyy, mapSheetNum); + mngYyyy, strtYyyy, endYyyy, mapSheetNum); } public void updateException5kMapSheet(String mapSheetNum, CommonUseStatus commonUseStatus) { @@ -79,4 +81,16 @@ public class MapSheetMngFileJobCoreService { public void saveSheetMngYear() { mapSheetMngYearRepository.saveFileInfo(); } + + public YearMinMax findYearMinMaxInfo() { + return mapSheetMngYearRepository.findYearMinMaxInfo(); + } + + public Long findMngYyyyCnt(Integer mngYyyy) { + return mapSheetMngFileJobRepository.findMngYyyyCnt(mngYyyy); + } + + public Long findMapSheetUseExceptCnt(String mapSheetNum) { + return mapSheetMngFileJobRepository.findMapSheetUseExceptCnt(mapSheetNum); + } } diff --git a/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/entity/YearEntity.java b/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/entity/YearEntity.java new file mode 100644 index 0000000..4378e78 --- /dev/null +++ b/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/entity/YearEntity.java @@ -0,0 +1,24 @@ +package com.kamco.cd.kamcoback.postgres.entity; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; +import jakarta.validation.constraints.Size; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@Entity +@Table(name = "tb_year") +public class YearEntity { + + @Id + @Column(name = "yyyy", nullable = false) + private Integer yyyy; + + @Size(max = 20) + @Column(name = "status", length = 20) + private String status; +} diff --git a/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngFileJobRepositoryCustom.java b/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngFileJobRepositoryCustom.java index bac0923..e82a179 100755 --- a/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngFileJobRepositoryCustom.java +++ b/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngFileJobRepositoryCustom.java @@ -1,7 +1,6 @@ package com.kamco.cd.kamcoback.postgres.repository; import com.kamco.cd.kamcoback.dto.MapSheetMngDto; -import com.kamco.cd.kamcoback.dto.MapSheetMngDto.MngDto; import com.kamco.cd.kamcoback.dto.MapSheetMngDto.MngHstDto; import com.kamco.cd.kamcoback.enums.CommonUseStatus; import java.util.List; @@ -9,7 +8,7 @@ import org.springframework.data.domain.Page; public interface MapSheetMngFileJobRepositoryCustom { - Page findMapSheetMngList(MapSheetMngDto.MngSearchReq searchReq); + Page findMapSheetMngList(MapSheetMngDto.MngSearchReq searchReq); void mngHstDataSyncStateUpdate(MapSheetMngDto.MngHstDto updateReq); @@ -21,7 +20,12 @@ public interface MapSheetMngFileJobRepositoryCustom { public Integer findNotYetMapSheetMng(); - public Long findByHstMapSheetBeforeYyyyListCount(int strtYyyy, int endYyyy, String mapSheetNum); + public Long findByHstMapSheetBeforeYyyyListCount( + int mngYyyy, int strtYyyy, int endYyyy, String mapSheetNum); public void updateException5kMapSheet(String mapSheetNum, CommonUseStatus commonUseStatus); + + Long findMngYyyyCnt(Integer mngYyyy); + + Long findMapSheetUseExceptCnt(String mapSheetNum); } diff --git a/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngFileJobRepositoryImpl.java b/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngFileJobRepositoryImpl.java index 3885632..708c16c 100755 --- a/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngFileJobRepositoryImpl.java +++ b/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngFileJobRepositoryImpl.java @@ -7,6 +7,7 @@ import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetMngHstEntity.mapSh import com.kamco.cd.kamcoback.dto.MapSheetMngDto; import com.kamco.cd.kamcoback.dto.MapSheetMngDto.MngHstDto; import com.kamco.cd.kamcoback.enums.CommonUseStatus; +import com.kamco.cd.kamcoback.postgres.entity.MapSheetMngHstEntity; import com.querydsl.core.BooleanBuilder; import com.querydsl.core.types.Projections; import com.querydsl.core.types.dsl.CaseBuilder; @@ -17,21 +18,24 @@ import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import java.time.ZonedDateTime; import java.util.List; -import lombok.RequiredArgsConstructor; import org.springframework.data.domain.Page; import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.Pageable; -import org.springframework.stereotype.Repository; +import org.springframework.data.jpa.repository.support.QuerydslRepositorySupport; -@Repository -@RequiredArgsConstructor -public class MapSheetMngFileJobRepositoryImpl implements MapSheetMngFileJobRepositoryCustom { +public class MapSheetMngFileJobRepositoryImpl extends QuerydslRepositorySupport + implements MapSheetMngFileJobRepositoryCustom { private final JPAQueryFactory queryFactory; private final StringExpression NULL_STRING = Expressions.stringTemplate("cast(null as text)"); @PersistenceContext private EntityManager em; + public MapSheetMngFileJobRepositoryImpl(JPAQueryFactory queryFactory) { + super(MapSheetMngHstEntity.class); + this.queryFactory = queryFactory; + } + @Override public Integer findNotYetMapSheetMng() { Integer countQuery = @@ -49,33 +53,6 @@ public class MapSheetMngFileJobRepositoryImpl implements MapSheetMngFileJobRepos return countQuery; } - @Override - public Long findByMngYyyyTargetMapSheetNotYetCount(int mngYyyy) { - Long countQuery = - queryFactory - .select(mapSheetMngHstEntity.mngYyyy.count()) - .from(mapSheetMngHstEntity) - .where( - mapSheetMngHstEntity - .mngYyyy - .eq(mngYyyy) - .and(mapSheetMngHstEntity.syncState.eq("NOTYET"))) - .fetchOne(); - - return countQuery; - } - - public void mngDataState(int mngYyyy, String mngState) { - long updateCount = - queryFactory - .update(mapSheetMngEntity) - .set(mapSheetMngEntity.mngState, mngState) - .set(mapSheetMngEntity.syncState, mngState) - .set(mapSheetMngEntity.syncCheckState, mngState) - .where(mapSheetMngEntity.mngYyyy.eq(mngYyyy)) - .execute(); - } - @Override public Page findMapSheetMngList(MapSheetMngDto.MngSearchReq searchReq) { @@ -148,6 +125,33 @@ public class MapSheetMngFileJobRepositoryImpl implements MapSheetMngFileJobRepos return new PageImpl<>(foundContent, pageable, countQuery); } + @Override + public Long findByMngYyyyTargetMapSheetNotYetCount(int mngYyyy) { + Long countQuery = + queryFactory + .select(mapSheetMngHstEntity.mngYyyy.count()) + .from(mapSheetMngHstEntity) + .where( + mapSheetMngHstEntity + .mngYyyy + .eq(mngYyyy) + .and(mapSheetMngHstEntity.syncState.eq("NOTYET"))) + .fetchOne(); + + return countQuery; + } + + public void mngDataState(int mngYyyy, String mngState) { + long updateCount = + queryFactory + .update(mapSheetMngEntity) + .set(mapSheetMngEntity.mngState, mngState) + .set(mapSheetMngEntity.syncState, mngState) + .set(mapSheetMngEntity.syncCheckState, mngState) + .where(mapSheetMngEntity.mngYyyy.eq(mngYyyy)) + .execute(); + } + public void mngHstDataSyncStateUpdate(MapSheetMngDto.MngHstDto updateReq) { ZonedDateTime now = ZonedDateTime.now(); @@ -229,7 +233,8 @@ public class MapSheetMngFileJobRepositoryImpl implements MapSheetMngFileJobRepos } @Override - public Long findByHstMapSheetBeforeYyyyListCount(int strtYyyy, int endYyyy, String mapSheetNum) { + public Long findByHstMapSheetBeforeYyyyListCount( + int mngYyyy, int strtYyyy, int endYyyy, String mapSheetNum) { Long countQuery = queryFactory @@ -240,8 +245,8 @@ public class MapSheetMngFileJobRepositoryImpl implements MapSheetMngFileJobRepos .mngYyyy .goe(strtYyyy) .and(mapSheetMngHstEntity.mngYyyy.loe(endYyyy)) + .and(mapSheetMngHstEntity.mngYyyy.ne(mngYyyy)) .and(mapSheetMngHstEntity.mapSheetNum.eq(mapSheetNum)) - .and(mapSheetMngHstEntity.useInference.eq("USE")) .and( mapSheetMngHstEntity .syncState @@ -262,4 +267,26 @@ public class MapSheetMngFileJobRepositoryImpl implements MapSheetMngFileJobRepos .where(mapInkx5kEntity.mapidcdNo.eq(mapSheetNum)) .execute(); } + + @Override + public Long findMngYyyyCnt(Integer mngYyyy) { + return queryFactory + .select(mapSheetMngEntity.mngYyyy.count()) + .from(mapSheetMngEntity) + .where(mapSheetMngEntity.mngYyyy.ne(mngYyyy)) + .fetchOne(); + } + + @Override + public Long findMapSheetUseExceptCnt(String mapSheetNum) { + return queryFactory + .select( + new CaseBuilder() + .when(mapInkx5kEntity.useInference.eq(CommonUseStatus.USE)) + .then(1L) + .otherwise(0L)) + .from(mapInkx5kEntity) + .where(mapInkx5kEntity.mapidcdNo.eq(mapSheetNum)) + .fetchOne(); + } } diff --git a/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngYearRepositoryCustom.java b/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngYearRepositoryCustom.java index 6587bbc..59074d2 100644 --- a/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngYearRepositoryCustom.java +++ b/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngYearRepositoryCustom.java @@ -1,10 +1,14 @@ package com.kamco.cd.kamcoback.postgres.repository; import com.kamco.cd.kamcoback.dto.MapSheetMngDto.MngListCompareDto; +import com.kamco.cd.kamcoback.dto.MapSheetMngDto.YearMinMax; import java.util.List; public interface MapSheetMngYearRepositoryCustom { + void saveFileInfo(); List findByHstMapSheetCompareList(int mngYyyy, List mapIds); + + YearMinMax findYearMinMaxInfo(); } diff --git a/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngYearRepositoryImpl.java b/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngYearRepositoryImpl.java index ad96c23..184d5d1 100644 --- a/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngYearRepositoryImpl.java +++ b/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/postgres/repository/MapSheetMngYearRepositoryImpl.java @@ -1,6 +1,9 @@ package com.kamco.cd.kamcoback.postgres.repository; +import static com.kamco.cd.kamcoback.postgres.entity.QYearEntity.yearEntity; + import com.kamco.cd.kamcoback.dto.MapSheetMngDto.MngListCompareDto; +import com.kamco.cd.kamcoback.dto.MapSheetMngDto.YearMinMax; import com.kamco.cd.kamcoback.postgres.entity.QMapSheetMngYearYnEntity; import com.querydsl.core.types.Projections; import com.querydsl.core.types.dsl.Expressions; @@ -26,52 +29,52 @@ public class MapSheetMngYearRepositoryImpl implements MapSheetMngYearRepositoryC String sql = """ - WITH bounds AS ( + WITH bounds AS ( + SELECT + map_sheet_num, + MIN(mng_yyyy::int) AS min_y, + MAX(mng_yyyy::int) AS max_y + FROM tb_map_sheet_mng_files + GROUP BY map_sheet_num + ), + years AS ( + SELECT + b.map_sheet_num, + gs.y AS mng_yyyy + FROM bounds b + CROSS JOIN LATERAL generate_series(b.min_y, b.max_y) AS gs(y) + ), + exist AS ( + SELECT DISTINCT + map_sheet_num, + mng_yyyy::int AS mng_yyyy + FROM tb_map_sheet_mng_files + ), + src AS ( + SELECT + y.map_sheet_num, + y.mng_yyyy, + CASE + WHEN e.map_sheet_num IS NULL THEN 'N' + ELSE 'Y' + END AS yn + FROM years y + LEFT JOIN exist e + ON e.map_sheet_num = y.map_sheet_num + AND e.mng_yyyy = y.mng_yyyy + ) + INSERT INTO tb_map_sheet_mng_year_yn + (map_sheet_num, mng_yyyy, yn) SELECT map_sheet_num, - MIN(mng_yyyy::int) AS min_y, - MAX(mng_yyyy::int) AS max_y - FROM tb_map_sheet_mng_files - GROUP BY map_sheet_num - ), - years AS ( - SELECT - b.map_sheet_num, - gs.y AS mng_yyyy - FROM bounds b - CROSS JOIN LATERAL generate_series(b.min_y, b.max_y) AS gs(y) - ), - exist AS ( - SELECT DISTINCT - map_sheet_num, - mng_yyyy::int AS mng_yyyy - FROM tb_map_sheet_mng_files - ), - src AS ( - SELECT - y.map_sheet_num, - y.mng_yyyy, - CASE - WHEN e.map_sheet_num IS NULL THEN 'N' - ELSE 'Y' - END AS yn - FROM years y - LEFT JOIN exist e - ON e.map_sheet_num = y.map_sheet_num - AND e.mng_yyyy = y.mng_yyyy - ) - INSERT INTO tb_map_sheet_mng_year_yn - (map_sheet_num, mng_yyyy, yn) - SELECT - map_sheet_num, - mng_yyyy, - yn - FROM src - ON CONFLICT (map_sheet_num, mng_yyyy) - DO UPDATE SET - yn = EXCLUDED.yn, - updated_dttm = now() - """; + mng_yyyy, + yn + FROM src + ON CONFLICT (map_sheet_num, mng_yyyy) + DO UPDATE SET + yn = EXCLUDED.yn, + updated_dttm = now() + """; em.createNativeQuery(sql).executeUpdate(); } @@ -98,4 +101,13 @@ public class MapSheetMngYearRepositoryImpl implements MapSheetMngYearRepositoryC .groupBy(y.id.mapSheetNum) .fetch(); } + + @Override + public YearMinMax findYearMinMaxInfo() { + return queryFactory + .select( + Projections.constructor(YearMinMax.class, yearEntity.yyyy.min(), yearEntity.yyyy.max())) + .from(yearEntity) + .fetchOne(); + } } diff --git a/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/service/MapSheetMngFileJobService.java b/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/service/MapSheetMngFileJobService.java old mode 100755 new mode 100644 index a9ffc37..dcc412f --- a/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/service/MapSheetMngFileJobService.java +++ b/imagery-make-dataset/src/main/java/com/kamco/cd/kamcoback/service/MapSheetMngFileJobService.java @@ -7,6 +7,7 @@ import com.kamco.cd.kamcoback.dto.FileDto.SrchFilesDepthDto; import com.kamco.cd.kamcoback.dto.MapSheetMngDto.DmlReturn; import com.kamco.cd.kamcoback.dto.MapSheetMngDto.MngFileAddReq; import com.kamco.cd.kamcoback.dto.MapSheetMngDto.MngHstDto; +import com.kamco.cd.kamcoback.dto.MapSheetMngDto.YearMinMax; import com.kamco.cd.kamcoback.enums.CommonUseStatus; import com.kamco.cd.kamcoback.postgres.core.MapSheetMngFileJobCoreService; import com.kamco.cd.kamcoback.utils.FIleChecker; @@ -63,9 +64,18 @@ public class MapSheetMngFileJobService { for (MngHstDto item : mapSheetFileNotYetList) { + // mng_yyyy 가 완전 최초로 등록되는 것인지 확인 + Long mngCnt = mapSheetMngFileJobCoreService.findMngYyyyCnt(item.getMngYyyy()); + // 5K도엽 자동추론제외 - Long exceptCheckCnt = - this.mapSheetAutoExceptionUpdate(item.getMngYyyy(), item.getMapSheetNum()); + Long exceptCheckCnt = 0L; + + if (mngCnt == 0) { // 최초 등록이면 도엽의 추론제외여부를 확인 + exceptCheckCnt = + mapSheetMngFileJobCoreService.findMapSheetUseExceptCnt(item.getMapSheetNum()); + } else { // 등록된 영상 년도가 있으면 자동추론제외 확인 + exceptCheckCnt = this.mapSheetAutoExceptionUpdate(item.getMngYyyy(), item.getMapSheetNum()); + } // 도엽별 파일 체크 진행중으로 변경 item.setDataState("PROCESSING"); @@ -105,11 +115,11 @@ public class MapSheetMngFileJobService { int tfwCnt = (int) - basicList.stream().filter(dto -> dto.getExtension().toString().equals("tfw")).count(); + basicList.stream().filter(dto -> dto.getExtension().equalsIgnoreCase("tfw")).count(); int tifCnt = (int) - basicList.stream().filter(dto -> dto.getExtension().toString().equals("tif")).count(); + basicList.stream().filter(dto -> dto.getExtension().equalsIgnoreCase("tif")).count(); syncState = ""; syncCheckState = ""; @@ -212,28 +222,26 @@ public class MapSheetMngFileJobService { return notyetCnt; } - public Long mapSheetAutoExceptionUpdate(int mngYyyy, String mapSheetNum) { + public Long mapSheetAutoExceptionUpdate(Integer mngYyyy, String mapSheetNum) { - // 2025년 이전 파일싱크는 무조건 이전3년이 존재하지 않으므로 자동추론제외를 진행하지 않는다.(전년도 파일이 무조건 존재하는 것으로 리턴) - // if (syncAutoExceptionStartYear > mngYyyy) { - // return 1L; - // } + // tb_year 에 있는 년도 min,max 가져오기 + YearMinMax yearInfo = mapSheetMngFileJobCoreService.findYearMinMaxInfo(); + int strtYyyy = yearInfo.getMinYyyy(); + int endYyyy = yearInfo.getMaxYyyy(); - // int strtYyyy = mngYyyy - syncAutoExceptionBeforeYearCnt + 1; - int strtYyyy = 2020; - int endYyyy = mngYyyy; - - // 본년도+이전년도가 3개년인 도엽 확인 -> 2020년도부터 현재까지 + // tb_map_sheet_mng_hst 에 도엽 정보가 하나라도 DONE 인 게 있는지 count 가져오기 Long beforeCnt = mapSheetMngFileJobCoreService.findByHstMapSheetBeforeYyyyListCount( - strtYyyy, endYyyy, mapSheetNum); + mngYyyy, strtYyyy, endYyyy, mapSheetNum); if (beforeCnt == 0) { - System.out.println("mapSheetAutoExceptionUpdate inference == 자동추론제외"); + System.out.println("beforeCnt: 0, mapSheetAutoExceptionUpdate inference == 자동추론제외"); mapSheetMngFileJobCoreService.updateException5kMapSheet( mapSheetNum, CommonUseStatus.AUTO_EXCEPT); } else { // 하나라도 있으면 USE + System.out.println( + "beforeCnt: " + beforeCnt + ", mapSheetAutoExceptionUpdate inference == 자동추론제외 해제"); mapSheetMngFileJobCoreService.updateException5kMapSheet(mapSheetNum, CommonUseStatus.USE); }