From 06da4af9424dbc3e12912a8db24f341836dbe758 Mon Sep 17 00:00:00 2001 From: Moon Date: Wed, 17 Dec 2025 13:38:17 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=EC=98=81=EC=83=81=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=20=EA=B4=80=EB=A6=AC=20>=20=EC=98=A4=EB=A5=98=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC=20=EB=82=B4=EC=97=AD=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../kamcoback/common/enums/SyncStateType.java | 29 ++++++++ .../mapsheet/dto/MapSheetMngDto.java | 67 ++++++++++--------- .../postgres/entity/MapSheetMngHstEntity.java | 17 +++++ .../mapsheet/MapSheetMngRepositoryImpl.java | 14 ++-- 4 files changed, 84 insertions(+), 43 deletions(-) create mode 100644 src/main/java/com/kamco/cd/kamcoback/common/enums/SyncStateType.java diff --git a/src/main/java/com/kamco/cd/kamcoback/common/enums/SyncStateType.java b/src/main/java/com/kamco/cd/kamcoback/common/enums/SyncStateType.java new file mode 100644 index 00000000..2acba320 --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/common/enums/SyncStateType.java @@ -0,0 +1,29 @@ +package com.kamco.cd.kamcoback.common.enums; + +import com.kamco.cd.kamcoback.config.enums.EnumType; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public enum SyncStateType implements EnumType { + NOTYET("미처리"), + NOFILE("파일없음"), + NOTPAIR("페어파일누락"), + DUPLICATE("파일중복"), + SIZEERROR("파일용량오류"), + TYPEERROR("파일형식오류"), + DONE("완료"); + + private final String desc; + + @Override + public String getId() { + return name(); + } + + @Override + public String getText() { + return desc; + } +} 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 2ea190c6..7acb6639 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 @@ -1,5 +1,8 @@ package com.kamco.cd.kamcoback.mapsheet.dto; +import com.kamco.cd.kamcoback.common.enums.RoleType; +import com.kamco.cd.kamcoback.common.enums.SyncStateType; +import com.kamco.cd.kamcoback.common.utils.Enums; import com.kamco.cd.kamcoback.common.utils.interfaces.JsonFormatDttm; import com.kamco.cd.kamcoback.config.enums.EnumType; import io.swagger.v3.oas.annotations.media.Schema; @@ -150,7 +153,6 @@ public class MapSheetMngDto { @Schema(name = "ErrorDataDto", description = "영상관리 오류데이터 검색 리턴") @Getter @Setter - @NoArgsConstructor public static class ErrorDataDto { // private Integer rowNum; private Long hstUid; @@ -159,12 +161,16 @@ public class MapSheetMngDto { private String mapSrcName; private Integer mapCodeSrc; @JsonFormatDttm private ZonedDateTime createdDttm; - private String syncState; - private String syncCheckState; - //private Long fileUid; - private String tfwFileName; - private String tifFileName; + private String syncState; + private String syncStateName; + private String syncTfwFileName; + private String syncTifFileName; + + private String errorCheckState; + private String errorCheckStateName; + private String errorCheckTfwFileName; + private String errorCheckTifFileName; //private List fileArray; @@ -177,9 +183,11 @@ public class MapSheetMngDto { Integer mapCodeSrc, ZonedDateTime createdDttm, String syncState, - String syncCheckState, - String tfwFileName, - String tifFileName) { + String syncTfwFileName, + String syncTifFileName, + String errorCheckState, + String errorCheckTfwFileName, + String errorCheckTifFileName) { this.hstUid = hstUid; this.map50kName = map50kName; this.map5kName = map5kName; @@ -187,9 +195,20 @@ public class MapSheetMngDto { this.mapCodeSrc = mapCodeSrc; this.createdDttm = createdDttm; this.syncState = syncState; - this.syncCheckState = syncCheckState; - this.tfwFileName = tfwFileName; - this.tifFileName = tifFileName; + this.syncStateName = getSyncStateName(syncState); + this.syncTfwFileName = syncTfwFileName; + this.syncTifFileName = syncTifFileName; + this.errorCheckState = errorCheckState; + this.errorCheckStateName = getSyncStateName(errorCheckState); + this.errorCheckTfwFileName = errorCheckTfwFileName; + this.errorCheckTifFileName = errorCheckTifFileName; + } + + private String getSyncStateName(String enumId) { + if( enumId == null || enumId.isEmpty())enumId = "NOTYET"; + + SyncStateType type = Enums.fromId(SyncStateType.class, enumId); + return type.getText(); } } @@ -235,32 +254,14 @@ public class MapSheetMngDto { } } - @Getter - @AllArgsConstructor - public enum SyncState implements EnumType { - COMPLETE("동기화 완료"), - IN_PROGRESS("진행중"), - FAIL("오류"), - NONE("미진행"); - private final String desc; - - @Override - public String getId() { - return name(); - } - - @Override - public String getText() { - return desc; - } - } @Getter @AllArgsConstructor public enum DataState implements EnumType { - SUCCESS("정상"), - FAIL("데이터 없음"); + NOTYET("대기중"), + PROCESSING("진행중"), + DONE("완료"); private final String desc; diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapSheetMngHstEntity.java b/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapSheetMngHstEntity.java index def1c9b7..239652dd 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapSheetMngHstEntity.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapSheetMngHstEntity.java @@ -87,4 +87,21 @@ public class MapSheetMngHstEntity extends CommonDateEntity { @Column(name = "total_size_bytes") private Long totalSizeBytes; + + @Size(max = 100) + @Column(name = "sync_tif_file_name", length = 100) + private String syncTifFileName; + + @Size(max = 100) + @Column(name = "sync_tfw_file_name", length = 100) + private String syncTfwFileName; + + @Size(max = 100) + @Column(name = "sync_check_tif_file_name", length = 100) + private String syncCheckTifFileName; + + @Size(max = 100) + @Column(name = "sync_check_tfw_file_name", length = 100) + private String syncCheckTfwFileName; + } 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 f3b70cc1..a3fb23a7 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 @@ -340,22 +340,16 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport mapInkx5kEntity.fid, mapSheetMngHstEntity.createdDate, mapSheetMngHstEntity.syncState, + mapSheetMngHstEntity.syncTfwFileName, + mapSheetMngHstEntity.syncTifFileName, mapSheetMngHstEntity.syncCheckState, - Expressions.stringTemplate( - "MAX(CASE WHEN {0} = 'tfw' THEN {1} END)", - mapSheetMngFileEntity.fileExt, mapSheetMngFileEntity.fileName - ), - Expressions.stringTemplate( - "MAX(CASE WHEN {0} = 'tif' THEN {1} END)", - mapSheetMngFileEntity.fileExt, mapSheetMngFileEntity.fileName - ) + mapSheetMngHstEntity.syncCheckTfwFileName, + mapSheetMngHstEntity.syncCheckTifFileName ) ) .from(mapSheetMngHstEntity) .innerJoin(mapInkx5kEntity).on(mapSheetMngHstEntity.mapSheetNum.eq(mapInkx5kEntity.mapidcdNo)) - .leftJoin(mapSheetMngFileEntity).on(mapSheetMngHstEntity.hstUid.eq(mapSheetMngFileEntity.hstUid)) .where(whereBuilder) - .groupBy(mapSheetMngHstEntity.hstUid, mapInkx5kEntity.fid, mapInkx5kEntity.mapidNm) .orderBy(mapSheetMngHstEntity.createdDate.desc()) .offset(pageable.getOffset()) .limit(pageable.getPageSize()) From a911ecf7e2e4688461dca77bb2d1793961fe23cc Mon Sep 17 00:00:00 2001 From: teddy Date: Wed, 17 Dec 2025 13:53:21 +0900 Subject: [PATCH 2/2] =?UTF-8?q?spotlessApply=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapsheet/dto/MapSheetMngDto.java | 9 +- .../postgres/entity/MapSheetMngHstEntity.java | 1 - .../mapsheet/MapSheetMngRepositoryImpl.java | 264 +++++++++--------- 3 files changed, 132 insertions(+), 142 deletions(-) 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 7acb6639..d0fabd10 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 @@ -1,13 +1,11 @@ package com.kamco.cd.kamcoback.mapsheet.dto; -import com.kamco.cd.kamcoback.common.enums.RoleType; import com.kamco.cd.kamcoback.common.enums.SyncStateType; import com.kamco.cd.kamcoback.common.utils.Enums; import com.kamco.cd.kamcoback.common.utils.interfaces.JsonFormatDttm; import com.kamco.cd.kamcoback.config.enums.EnumType; import io.swagger.v3.oas.annotations.media.Schema; import java.time.ZonedDateTime; -import java.util.List; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; @@ -172,8 +170,7 @@ public class MapSheetMngDto { private String errorCheckTfwFileName; private String errorCheckTifFileName; - //private List fileArray; - + // private List fileArray; public ErrorDataDto( Long hstUid, @@ -205,7 +202,7 @@ 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(); @@ -254,8 +251,6 @@ public class MapSheetMngDto { } } - - @Getter @AllArgsConstructor public enum DataState implements EnumType { diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapSheetMngHstEntity.java b/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapSheetMngHstEntity.java index 239652dd..ad81fbc7 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapSheetMngHstEntity.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/entity/MapSheetMngHstEntity.java @@ -103,5 +103,4 @@ public class MapSheetMngHstEntity extends CommonDateEntity { @Size(max = 100) @Column(name = "sync_check_tfw_file_name", length = 100) private String syncCheckTfwFileName; - } 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 a3fb23a7..375cd240 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 @@ -9,7 +9,6 @@ import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetMngHstEntity.mapSh import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto; import com.kamco.cd.kamcoback.postgres.entity.MapSheetMngHstEntity; import com.querydsl.core.BooleanBuilder; -import com.querydsl.core.Tuple; import com.querydsl.core.types.Projections; import com.querydsl.core.types.dsl.BooleanExpression; import com.querydsl.core.types.dsl.CaseBuilder; @@ -20,10 +19,7 @@ import com.querydsl.jpa.impl.JPAQueryFactory; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import jakarta.validation.Valid; -import java.util.ArrayList; -import java.util.LinkedHashMap; import java.util.List; -import java.util.Map; import java.util.Objects; import java.util.Optional; import org.hibernate.query.Query; @@ -49,12 +45,12 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport @Override public List findMapSheetMngList() { - //Pageable pageable = searchReq.toPageable(); + // Pageable pageable = searchReq.toPageable(); BooleanBuilder whereBuilder = new BooleanBuilder(); - //if (searchReq.getMngYyyy() != null) { - //whereBuilder.and(mapSheetMngEntity.mngYyyy.eq(searchReq.getMngYyyy())); - //} + // if (searchReq.getMngYyyy() != null) { + // whereBuilder.and(mapSheetMngEntity.mngYyyy.eq(searchReq.getMngYyyy())); + // } NumberExpression totalCount = mapSheetMngHstEntity.count().as("syncTotCnt"); @@ -155,8 +151,8 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport .leftJoin(mapSheetMngHstEntity) .on(mapSheetMngEntity.mngYyyy.eq(mapSheetMngHstEntity.mngYyyy)) .where(whereBuilder) - //.offset(pageable.getOffset()) - //.limit(pageable.getPageSize()) + // .offset(pageable.getOffset()) + // .limit(pageable.getPageSize()) .orderBy(mapSheetMngEntity.mngYyyy.desc()) .groupBy(mapSheetMngEntity.mngYyyy) .fetch(); @@ -171,102 +167,102 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport return foundContent; } - public MapSheetMngDto.MngDto findMapSheetMng(int mngYyyy){ + public MapSheetMngDto.MngDto findMapSheetMng(int mngYyyy) { BooleanBuilder whereBuilder = new BooleanBuilder(); whereBuilder.and(mapSheetMngEntity.mngYyyy.eq(mngYyyy)); MapSheetMngDto.MngDto foundContent = - queryFactory - .select( - Projections.constructor( - MapSheetMngDto.MngDto.class, - Expressions.numberTemplate( - Integer.class, - "row_number() over(order by {0} desc)", - mapSheetMngEntity.createdDttm), - mapSheetMngEntity.mngYyyy, - mapSheetMngEntity.mngState, - mapSheetMngEntity.syncState, - mapSheetMngEntity.syncCheckState, - mapSheetMngHstEntity.count(), - new CaseBuilder() - .when(mapSheetMngHstEntity.dataState.eq("DONE")) - .then(1L) - .otherwise(0L) - .sum() - .as("syncStateDoneCnt"), - new CaseBuilder() - .when(mapSheetMngHstEntity.syncState.ne("NOTYET")) - .then(1L) - .otherwise(0L) - .sum(), - new CaseBuilder() - .when( - mapSheetMngHstEntity - .syncState - .eq("NOFILE") - .or(mapSheetMngHstEntity.syncState.eq("NOTPAIR"))) - .then(1L) - .otherwise(0L) - .sum(), - new CaseBuilder() - .when( - mapSheetMngHstEntity - .syncCheckState - .eq("DONE") - .and( - mapSheetMngHstEntity - .syncState - .eq("NOFILE") - .or(mapSheetMngHstEntity.syncState.eq("NOTPAIR")))) - .then(1L) - .otherwise(0L) - .sum(), - new CaseBuilder() - .when(mapSheetMngHstEntity.syncState.eq("DUPLICATE")) - .then(1L) - .otherwise(0L) - .sum(), - new CaseBuilder() - .when( - mapSheetMngHstEntity - .syncCheckState - .eq("DONE") - .and(mapSheetMngHstEntity.syncState.eq("DUPLICATE"))) - .then(1L) - .otherwise(0L) - .sum(), - new CaseBuilder() - .when( - mapSheetMngHstEntity - .syncState - .eq("TYPEERROR") - .or(mapSheetMngHstEntity.syncState.eq("SIZEERROR"))) - .then(1L) - .otherwise(0L) - .sum(), - new CaseBuilder() - .when( - mapSheetMngHstEntity - .syncCheckState - .eq("DONE") - .and( - mapSheetMngHstEntity - .syncState - .eq("TYPEERROR") - .or(mapSheetMngHstEntity.syncState.eq("SIZEERROR")))) - .then(1L) - .otherwise(0L) - .sum(), - mapSheetMngEntity.createdDttm, - mapSheetMngHstEntity.syncEndDttm.max())) - .from(mapSheetMngEntity) - .leftJoin(mapSheetMngHstEntity) - .on(mapSheetMngEntity.mngYyyy.eq(mapSheetMngHstEntity.mngYyyy)) - .where(whereBuilder) - .groupBy(mapSheetMngEntity.mngYyyy) - .fetchOne(); + queryFactory + .select( + Projections.constructor( + MapSheetMngDto.MngDto.class, + Expressions.numberTemplate( + Integer.class, + "row_number() over(order by {0} desc)", + mapSheetMngEntity.createdDttm), + mapSheetMngEntity.mngYyyy, + mapSheetMngEntity.mngState, + mapSheetMngEntity.syncState, + mapSheetMngEntity.syncCheckState, + mapSheetMngHstEntity.count(), + new CaseBuilder() + .when(mapSheetMngHstEntity.dataState.eq("DONE")) + .then(1L) + .otherwise(0L) + .sum() + .as("syncStateDoneCnt"), + new CaseBuilder() + .when(mapSheetMngHstEntity.syncState.ne("NOTYET")) + .then(1L) + .otherwise(0L) + .sum(), + new CaseBuilder() + .when( + mapSheetMngHstEntity + .syncState + .eq("NOFILE") + .or(mapSheetMngHstEntity.syncState.eq("NOTPAIR"))) + .then(1L) + .otherwise(0L) + .sum(), + new CaseBuilder() + .when( + mapSheetMngHstEntity + .syncCheckState + .eq("DONE") + .and( + mapSheetMngHstEntity + .syncState + .eq("NOFILE") + .or(mapSheetMngHstEntity.syncState.eq("NOTPAIR")))) + .then(1L) + .otherwise(0L) + .sum(), + new CaseBuilder() + .when(mapSheetMngHstEntity.syncState.eq("DUPLICATE")) + .then(1L) + .otherwise(0L) + .sum(), + new CaseBuilder() + .when( + mapSheetMngHstEntity + .syncCheckState + .eq("DONE") + .and(mapSheetMngHstEntity.syncState.eq("DUPLICATE"))) + .then(1L) + .otherwise(0L) + .sum(), + new CaseBuilder() + .when( + mapSheetMngHstEntity + .syncState + .eq("TYPEERROR") + .or(mapSheetMngHstEntity.syncState.eq("SIZEERROR"))) + .then(1L) + .otherwise(0L) + .sum(), + new CaseBuilder() + .when( + mapSheetMngHstEntity + .syncCheckState + .eq("DONE") + .and( + mapSheetMngHstEntity + .syncState + .eq("TYPEERROR") + .or(mapSheetMngHstEntity.syncState.eq("SIZEERROR")))) + .then(1L) + .otherwise(0L) + .sum(), + mapSheetMngEntity.createdDttm, + mapSheetMngHstEntity.syncEndDttm.max())) + .from(mapSheetMngEntity) + .leftJoin(mapSheetMngHstEntity) + .on(mapSheetMngEntity.mngYyyy.eq(mapSheetMngHstEntity.mngYyyy)) + .where(whereBuilder) + .groupBy(mapSheetMngEntity.mngYyyy) + .fetchOne(); return foundContent; } @@ -323,39 +319,39 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport } List foundContent = - queryFactory - .select( - Projections.constructor( - MapSheetMngDto.ErrorDataDto.class, - mapSheetMngHstEntity.hstUid, - 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) - .orderBy(mapSheetMngHstEntity.createdDate.desc()) - .offset(pageable.getOffset()) - .limit(pageable.getPageSize()) - .fetch(); - - + queryFactory + .select( + Projections.constructor( + MapSheetMngDto.ErrorDataDto.class, + mapSheetMngHstEntity.hstUid, + 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) + .orderBy(mapSheetMngHstEntity.createdDate.desc()) + .offset(pageable.getOffset()) + .limit(pageable.getPageSize()) + .fetch(); Long countQuery = queryFactory