중복페어 조회, 선택삭제, 파일삭제, 중복파일삭제 추가
This commit is contained in:
@@ -5,6 +5,7 @@ import com.kamco.cd.kamcoback.mapsheet.dto.ImageryDto;
|
||||
import com.kamco.cd.kamcoback.postgres.entity.MapSheetMngHstEntity;
|
||||
import com.kamco.cd.kamcoback.postgres.repository.mapsheet.MapSheetMngFileCheckerRepository;
|
||||
import com.kamco.cd.kamcoback.postgres.repository.mapsheet.MapSheetMngRepository;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Optional;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
@@ -58,4 +59,12 @@ public class MapSheetMngFileCheckerCoreService {
|
||||
public Optional<MapSheetMngHstEntity> findHstByUid(Long hstUid) {
|
||||
return mapSheetMngRepository.findMapSheetMngHstInfo(hstUid);
|
||||
}
|
||||
|
||||
public void updateHstSyncCheckStart(Long hstUid) {
|
||||
mapSheetMngRepository.updateHstSyncCheck(hstUid, null, ZonedDateTime.now(), null);
|
||||
}
|
||||
|
||||
public void updateHstSyncCheckEnd(Long hstUid, String state) {
|
||||
mapSheetMngRepository.updateHstSyncCheck(hstUid, state, null, ZonedDateTime.now());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
package com.kamco.cd.kamcoback.postgres.repository.mapsheet;
|
||||
|
||||
import com.kamco.cd.kamcoback.postgres.entity.MapSheetMngFileEntity;
|
||||
import java.util.List;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
public interface MapSheetMngFileRepository extends JpaRepository<MapSheetMngFileEntity, Long> {
|
||||
boolean existsByFileNameAndFilePath(String fileName, String filePath);
|
||||
|
||||
void deleteByFileNameAndFilePath(String fileName, String filePath);
|
||||
|
||||
// 추가: 특정 경로에서 파일명 목록으로 중복 조회
|
||||
List<MapSheetMngFileEntity> findByFilePathAndFileNameIn(String filePath, List<String> fileNames);
|
||||
}
|
||||
|
||||
@@ -3,6 +3,7 @@ package com.kamco.cd.kamcoback.postgres.repository.mapsheet;
|
||||
import com.kamco.cd.kamcoback.mapsheet.dto.MapSheetMngDto;
|
||||
import com.kamco.cd.kamcoback.postgres.entity.MapSheetMngHstEntity;
|
||||
import jakarta.validation.Valid;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.Optional;
|
||||
import org.springframework.data.domain.Page;
|
||||
|
||||
@@ -26,4 +27,7 @@ public interface MapSheetMngRepositoryCustom {
|
||||
MapSheetMngDto.@Valid ErrorSearchReq searchReq);
|
||||
|
||||
void updateHstFileSizes(Long hstUid, long tifSizeBytes, long tfwSizeBytes, long totalSizeBytes);
|
||||
|
||||
// 동기화 점검 상태/시간 업데이트 (state/start/end 각각 null이면 기존값 유지)
|
||||
void updateHstSyncCheck(Long hstUid, String state, ZonedDateTime start, ZonedDateTime end);
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ import com.querydsl.jpa.impl.JPAQueryFactory;
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.PersistenceContext;
|
||||
import jakarta.validation.Valid;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
@@ -354,6 +355,34 @@ public class MapSheetMngRepositoryImpl extends QuerydslRepositorySupport
|
||||
query.executeUpdate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateHstSyncCheck(
|
||||
Long hstUid, String state, ZonedDateTime start, ZonedDateTime end) {
|
||||
StringBuilder sql = new StringBuilder("UPDATE tb_map_sheet_mng_hst SET ");
|
||||
boolean first = true;
|
||||
if (state != null) {
|
||||
sql.append("sync_check_state = :state");
|
||||
first = false;
|
||||
}
|
||||
if (start != null) {
|
||||
if (!first) sql.append(", ");
|
||||
sql.append("sync_check_strt_dttm = :start");
|
||||
first = false;
|
||||
}
|
||||
if (end != null) {
|
||||
if (!first) sql.append(", ");
|
||||
sql.append("sync_check_end_dttm = :end");
|
||||
}
|
||||
sql.append(" WHERE hst_uid = :uid");
|
||||
|
||||
Query query = (Query) em.createNativeQuery(sql.toString());
|
||||
if (state != null) query.setParameter("state", state);
|
||||
if (start != null) query.setParameter("start", start);
|
||||
if (end != null) query.setParameter("end", end);
|
||||
query.setParameter("uid", hstUid);
|
||||
query.executeUpdate();
|
||||
}
|
||||
|
||||
private NumberExpression<Integer> rowNum() {
|
||||
return Expressions.numberTemplate(
|
||||
Integer.class, "row_number() over(order by {0} desc)", mapSheetMngHstEntity.createdDate);
|
||||
|
||||
Reference in New Issue
Block a user