영상관리 싱크하기 수정

This commit is contained in:
Harry M. You
2025-12-04 15:59:41 +09:00
parent bce49b7a0b
commit c891aa514a
6 changed files with 193 additions and 1 deletions

View File

@@ -1,5 +1,6 @@
package com.kamco.cd.kamcoback.postgres.core;
import com.kamco.cd.kamcoback.mapsheet.dto.ImageryDto;
import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto;
import com.kamco.cd.kamcoback.postgres.entity.MapSheetMngHstEntity;
import com.kamco.cd.kamcoback.postgres.repository.mapsheet.MapSheetMngRepository;
@@ -122,4 +123,25 @@ public class MapSheetMngCoreService {
throw new RuntimeException("File search error", e);
}
}
public MapSheetMngDto.DmlReturn syncProcess(ImageryDto.searchReq searchReq) {
int count = 0;
//대상파일목록 가저오기
Page<ImageryDto.SyncDto> pageImagerySyncDto = mapSheetMngRepository.findImageryList(searchReq);
//List<ImagerySyncDto> imagerySyncDtoList = pageImagerySyncDto.getContent();
for (ImageryDto.SyncDto dto : pageImagerySyncDto.getContent()) {
// 여기에 처리 로직 작성
System.out.println("ID: " + dto.getId());
// 예: 특정 작업 수행
// someService.process(dto);
}
return new MapSheetMngDto.DmlReturn("success", count + "개 업로드 성공하였습니다.");
}
}

View File

@@ -1,5 +1,6 @@
package com.kamco.cd.kamcoback.postgres.repository.mapsheet;
import com.kamco.cd.kamcoback.mapsheet.dto.ImageryDto;
import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto;
import com.kamco.cd.kamcoback.postgres.entity.MapSheetMngHstEntity;
import jakarta.validation.Valid;
@@ -13,4 +14,7 @@ public interface MapSheetMngRepositoryCustom {
Page<MapSheetMngDto.MngDto> findMapSheetMngList(MapSheetMngDto.@Valid searchReq searchReq);
Optional<MapSheetMngHstEntity> findMapSheetMngHstInfo(Long hstUid);
Page<ImageryDto.SyncDto> findImageryList(ImageryDto.@Valid searchReq searchReq);
}

View File

@@ -1,10 +1,12 @@
package com.kamco.cd.kamcoback.postgres.repository.mapsheet;
import static com.kamco.cd.kamcoback.postgres.entity.QImageryEntity.imageryEntity;
import static com.kamco.cd.kamcoback.postgres.entity.QMapInkx50kEntity.mapInkx50kEntity;
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.mapsheet.dto.ImageryDto;
import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto;
import com.kamco.cd.kamcoback.postgres.entity.MapSheetMngHstEntity;
import com.querydsl.core.BooleanBuilder;
@@ -139,6 +141,49 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport
return new PageImpl<>(foundContent, pageable, countQuery);
}
@Override
public Page<ImageryDto.SyncDto> findImageryList(ImageryDto.@Valid searchReq searchReq) {
Pageable pageable = searchReq.toPageable();
BooleanBuilder whereBuilder = new BooleanBuilder();
if (searchReq.getMngYyyy() != null) {
whereBuilder.and(imageryEntity.year.eq(searchReq.getMngYyyy()));
}
List<ImageryDto.SyncDto> foundContent =
queryFactory
.select(
Projections.constructor(
ImageryDto.SyncDto.class,
imageryEntity.id,
imageryEntity.year,
imageryEntity.scene50k,
imageryEntity.scene5k,
imageryEntity.middlePath,
imageryEntity.cogMiddlePath,
imageryEntity.filename,
imageryEntity.cogFilename
)
)
.from(imageryEntity)
.where(whereBuilder)
.offset(pageable.getOffset())
.limit(pageable.getPageSize())
//.orderBy(mapSheetMngEntity.createdDttm.desc())
.fetch();
Long countQuery =
queryFactory
.select(imageryEntity.id.count())
.from(imageryEntity)
.where(whereBuilder)
.fetchOne();
return new PageImpl<>(foundContent, pageable, countQuery);
}
@Override
public Optional<MapSheetMngHstEntity> findMapSheetMngHstInfo(Long hstUid) {
return Optional.ofNullable(
@@ -166,4 +211,10 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport
"{0} like '%" + searchReq.getSearchValue() + "%'",
mapSheetMngHstEntity.mapSheetNum));
}
}