영상관리 > 오류 데이터 처리 변경

This commit is contained in:
Moon
2025-12-16 18:38:56 +09:00
parent d8aff03665
commit 280954a78d
3 changed files with 154 additions and 145 deletions

View File

@@ -253,8 +253,8 @@ public class FIleChecker {
List<Basic> fileList = new ArrayList<>();
SimpleDateFormat dttmFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//int fileTotCnt = 0;
//long fileTotSize = 0;
// int fileTotCnt = 0;
// long fileTotSize = 0;
try (Stream<Path> stream = Files.walk(startPath, maxDepth)) {

View File

@@ -2,7 +2,6 @@ package com.kamco.cd.kamcoback.mapsheet.dto;
import com.kamco.cd.kamcoback.common.utils.interfaces.JsonFormatDttm;
import com.kamco.cd.kamcoback.config.enums.EnumType;
import com.kamco.cd.kamcoback.mapsheet.dto.FileDto.FolderDto;
import io.swagger.v3.oas.annotations.media.Schema;
import java.time.ZonedDateTime;
import java.util.List;
@@ -154,7 +153,7 @@ public class MapSheetMngDto {
@NoArgsConstructor
@AllArgsConstructor
public static class ErrorDataDto {
//private Integer rowNum;
// private Integer rowNum;
private Long hstUid;
private String map50kName;
private String map5kName;
@@ -170,14 +169,14 @@ public class MapSheetMngDto {
private List<MngFIleDto> fileArray;
public ErrorDataDto(
Long hstUid,
String map50kName,
String map5kName,
String mapSrcName,
Integer mapCodeSrc,
ZonedDateTime createdDttm,
String syncState,
String syncCheckState) {
Long hstUid,
String map50kName,
String map5kName,
String mapSrcName,
Integer mapCodeSrc,
ZonedDateTime createdDttm,
String syncState,
String syncCheckState) {
this.hstUid = hstUid;
this.map50kName = map50kName;
this.map5kName = map5kName;
@@ -187,7 +186,6 @@ public class MapSheetMngDto {
this.syncState = syncState;
this.syncCheckState = syncCheckState;
}
}
@Schema(name = "MngFIleDto", description = "관리파일정보")

View File

@@ -7,8 +7,6 @@ import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetMngFileEntity.mapS
import static com.kamco.cd.kamcoback.postgres.entity.QMapSheetMngHstEntity.mapSheetMngHstEntity;
import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto;
import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto.MngFIleDto;
import com.kamco.cd.kamcoback.postgres.entity.MapSheetMngFileEntity;
import com.kamco.cd.kamcoback.postgres.entity.MapSheetMngHstEntity;
import com.querydsl.core.BooleanBuilder;
import com.querydsl.core.Tuple;
@@ -23,13 +21,11 @@ import jakarta.persistence.EntityManager;
import jakarta.persistence.PersistenceContext;
import jakarta.validation.Valid;
import java.util.ArrayList;
import java.util.Collections;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors;
import org.hibernate.query.Query;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
@@ -62,12 +58,13 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport
NumberExpression<Long> totalCount = mapSheetMngHstEntity.count().as("syncTotCnt");
NumberExpression<Long> doneCount = new CaseBuilder()
.when(mapSheetMngHstEntity.dataState.eq("DONE"))
.then(1L)
.otherwise(0L)
.sum()
.as("syncStateDoneCnt");
NumberExpression<Long> doneCount =
new CaseBuilder()
.when(mapSheetMngHstEntity.dataState.eq("DONE"))
.then(1L)
.otherwise(0L)
.sum()
.as("syncStateDoneCnt");
List<MapSheetMngDto.MngDto> foundContent =
queryFactory
@@ -95,46 +92,63 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport
.otherwise(0L)
.sum(),
new CaseBuilder()
.when(mapSheetMngHstEntity.syncState.eq("NOFILE")
.or( mapSheetMngHstEntity.syncState.eq("NOTPAIR")))
.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(),
.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(),
.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(),
.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(),
.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(),
.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)
@@ -165,74 +179,75 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport
BooleanBuilder whereBuilder = new BooleanBuilder();
whereBuilder.and(mapSheetMngHstEntity.mngYyyy.eq(searchReq.getMngYyyy()));
whereBuilder.and(mapSheetMngHstEntity.syncState.ne("DONE").and(mapSheetMngHstEntity.syncState.ne("NOTYET")));
whereBuilder.and(
mapSheetMngHstEntity.syncState.ne("DONE").and(mapSheetMngHstEntity.syncState.ne("NOTYET")));
if (searchReq.getSyncState() != null && ! searchReq.getSyncState().isEmpty()) {
if( searchReq.getSyncState().equals("NOTPAIR") )
{
whereBuilder.and(mapSheetMngHstEntity.syncState.eq("NOTPAIR")
.or(mapSheetMngHstEntity.syncState.eq("NOFILE")));
}
else if( searchReq.getSyncState().equals("FAULT") )
{
whereBuilder.and(mapSheetMngHstEntity.syncState.eq("SIZEERROR")
.or(mapSheetMngHstEntity.syncState.eq("TYPEERROR")));
}
else
{
whereBuilder.and(mapSheetMngHstEntity.syncState.eq(searchReq.getSyncState()));
}
}
if (searchReq.getSyncState() != null && !searchReq.getSyncState().isEmpty()) {
if (searchReq.getSyncState().equals("NOTPAIR")) {
whereBuilder.and(
mapSheetMngHstEntity
.syncState
.eq("NOTPAIR")
.or(mapSheetMngHstEntity.syncState.eq("NOFILE")));
} else if (searchReq.getSyncState().equals("FAULT")) {
whereBuilder.and(
mapSheetMngHstEntity
.syncState
.eq("SIZEERROR")
.or(mapSheetMngHstEntity.syncState.eq("TYPEERROR")));
} else {
whereBuilder.and(mapSheetMngHstEntity.syncState.eq(searchReq.getSyncState()));
}
}
if (searchReq.getSyncCheckState() != null && ! searchReq.getSyncCheckState().isEmpty()) {
if (searchReq.getSyncCheckState() != null && !searchReq.getSyncCheckState().isEmpty()) {
whereBuilder.and(mapSheetMngHstEntity.syncCheckState.eq(searchReq.getSyncCheckState()));
}
if (searchReq.getSearchValue() != null && ! searchReq.getSearchValue().isEmpty()) {
whereBuilder.and(mapSheetMngHstEntity.mapSheetNum.eq(searchReq.getSearchValue())
.or(mapSheetMngHstEntity.refMapSheetNum.eq(searchReq.getSearchValue()))
.or(Expressions.stringTemplate(
"concat({0},substring({1}, 0, 6))",
mapInkx5kEntity.mapidNm,
mapSheetMngHstEntity.mapSheetNum
).likeIgnoreCase(searchReq.getSearchValue()))
.or(Expressions.stringTemplate(
"concat({0},substring({1}, 6, 8))",
mapInkx5kEntity.mapidNm,
mapSheetMngHstEntity.mapSheetNum
).likeIgnoreCase(searchReq.getSearchValue()))
);
if (searchReq.getSearchValue() != null && !searchReq.getSearchValue().isEmpty()) {
whereBuilder.and(
mapSheetMngHstEntity
.mapSheetNum
.eq(searchReq.getSearchValue())
.or(mapSheetMngHstEntity.refMapSheetNum.eq(searchReq.getSearchValue()))
.or(
Expressions.stringTemplate(
"concat({0},substring({1}, 0, 6))",
mapInkx5kEntity.mapidNm, mapSheetMngHstEntity.mapSheetNum)
.likeIgnoreCase(searchReq.getSearchValue()))
.or(
Expressions.stringTemplate(
"concat({0},substring({1}, 6, 8))",
mapInkx5kEntity.mapidNm, mapSheetMngHstEntity.mapSheetNum)
.likeIgnoreCase(searchReq.getSearchValue())));
}
List<Tuple> tuples = queryFactory
.select(
mapSheetMngHstEntity.hstUid,
mapSheetMngHstEntity.mapSheetName,
mapInkx5kEntity.mapidNm,
mapSheetMngHstEntity.mapSheetNum,
mapSheetMngHstEntity.mapSheetCodeSrc,
mapSheetMngHstEntity.createdDate,
mapSheetMngHstEntity.syncState,
mapSheetMngHstEntity.syncCheckState,
mapSheetMngFileEntity.fileUid,
mapSheetMngFileEntity.filePath,
mapSheetMngFileEntity.fileName,
mapSheetMngFileEntity.fileSize,
mapSheetMngFileEntity.fileState
)
.from(mapSheetMngHstEntity)
.innerJoin(mapInkx5kEntity)
.on(mapSheetMngHstEntity.mapSheetNum.eq(mapInkx5kEntity.mapidcdNo))
.leftJoin(mapSheetMngFileEntity)
.on(mapSheetMngFileEntity.hstUid.eq(mapSheetMngHstEntity.hstUid))
.where(whereBuilder)
.orderBy(mapSheetMngHstEntity.createdDate.desc())
.offset(pageable.getOffset())
.limit(pageable.getPageSize())
.fetch();
List<Tuple> tuples =
queryFactory
.select(
mapSheetMngHstEntity.hstUid,
mapSheetMngHstEntity.mapSheetName,
mapInkx5kEntity.mapidNm,
mapSheetMngHstEntity.mapSheetNum,
mapSheetMngHstEntity.mapSheetCodeSrc,
mapSheetMngHstEntity.createdDate,
mapSheetMngHstEntity.syncState,
mapSheetMngHstEntity.syncCheckState,
mapSheetMngFileEntity.fileUid,
mapSheetMngFileEntity.filePath,
mapSheetMngFileEntity.fileName,
mapSheetMngFileEntity.fileSize,
mapSheetMngFileEntity.fileState)
.from(mapSheetMngHstEntity)
.innerJoin(mapInkx5kEntity)
.on(mapSheetMngHstEntity.mapSheetNum.eq(mapInkx5kEntity.mapidcdNo))
.leftJoin(mapSheetMngFileEntity)
.on(mapSheetMngFileEntity.hstUid.eq(mapSheetMngHstEntity.hstUid))
.where(whereBuilder)
.orderBy(mapSheetMngHstEntity.createdDate.desc())
.offset(pageable.getOffset())
.limit(pageable.getPageSize())
.fetch();
Map<Long, MapSheetMngDto.ErrorDataDto> resultMap = new LinkedHashMap<>();
@@ -241,38 +256,35 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport
Long hstUid = t.get(mapSheetMngHstEntity.hstUid);
MapSheetMngDto.ErrorDataDto dto =
resultMap.computeIfAbsent(hstUid, id -> {
resultMap.computeIfAbsent(
hstUid,
id -> {
String map50kName =
t.get(mapSheetMngHstEntity.mapSheetName)
+ t.get(mapSheetMngHstEntity.mapSheetNum).substring(0, 5);
String map5kName =
t.get(mapSheetMngHstEntity.mapSheetName)
+ t.get(mapSheetMngHstEntity.mapSheetNum).substring(5, 8);
String map50kName =
t.get(mapSheetMngHstEntity.mapSheetName)
+ t.get(mapSheetMngHstEntity.mapSheetNum).substring(0, 5);
String mapSrcName =
t.get(mapSheetMngHstEntity.mapSheetName)
+ t.get(mapSheetMngHstEntity.mapSheetNum).substring(5, 8);
String map5kName =
t.get(mapSheetMngHstEntity.mapSheetName)
+ t.get(mapSheetMngHstEntity.mapSheetNum).substring(5, 8);
MapSheetMngDto.ErrorDataDto newDto =
new MapSheetMngDto.ErrorDataDto(
id,
map50kName,
map5kName,
mapSrcName,
t.get(mapSheetMngHstEntity.mapSheetCodeSrc),
t.get(mapSheetMngHstEntity.createdDate),
t.get(mapSheetMngHstEntity.syncState),
t.get(mapSheetMngHstEntity.syncCheckState));
String mapSrcName =
t.get(mapSheetMngHstEntity.mapSheetName)
+ t.get(mapSheetMngHstEntity.mapSheetNum).substring(5, 8);
MapSheetMngDto.ErrorDataDto newDto =
new MapSheetMngDto.ErrorDataDto(
id,
map50kName,
map5kName,
mapSrcName,
t.get(mapSheetMngHstEntity.mapSheetCodeSrc),
t.get(mapSheetMngHstEntity.createdDate),
t.get(mapSheetMngHstEntity.syncState),
t.get(mapSheetMngHstEntity.syncCheckState)
);
newDto.setFileArray(new ArrayList<>());
return newDto;
});
newDto.setFileArray(new ArrayList<>());
return newDto;
});
// 파일 정보가 있는 경우만 추가
Long fileUid = t.get(mapSheetMngFileEntity.fileUid);
@@ -291,7 +303,6 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport
List<MapSheetMngDto.ErrorDataDto> foundContent = new ArrayList<>(resultMap.values());
Long countQuery =
queryFactory
.select(mapSheetMngHstEntity.hstUid.count())