Detail 다중조회, ploygon 다중저장 수정

This commit is contained in:
DanielLee
2026-01-14 11:57:49 +09:00
parent 5120793933
commit 767bea7da5
4 changed files with 350 additions and 14 deletions

View File

@@ -638,6 +638,16 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport
+ " new polygon(s) for mapSheetNum: "
+ request.getMapSheetNum());
// mapSheetNum을 Long으로 변환
Long mapSheetNumLong = null;
try {
if (request.getMapSheetNum() != null && !request.getMapSheetNum().isEmpty()) {
mapSheetNumLong = Long.parseLong(request.getMapSheetNum());
}
} catch (NumberFormatException e) {
System.err.println("Invalid mapSheetNum format: " + request.getMapSheetNum());
}
int savedCount = 0;
for (TrainingDataLabelDto.NewPolygonRequest.PolygonFeature feature : request.getFeatures()) {
try {
@@ -650,6 +660,8 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport
mapSheetAnalDataInferenceGeomEntity.targetYyyy,
mapSheetAnalDataInferenceGeomEntity.classBeforeCd,
mapSheetAnalDataInferenceGeomEntity.classAfterCd,
mapSheetAnalDataInferenceGeomEntity.dataUid,
mapSheetAnalDataInferenceGeomEntity.mapSheetNum,
mapSheetAnalDataInferenceGeomEntity.createdDttm,
mapSheetAnalDataInferenceGeomEntity.updatedDttm,
mapSheetAnalDataInferenceGeomEntity.labelState)
@@ -659,20 +671,25 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport
request.getTargetYyyy(),
feature.getProperties().getBeforeClass().toLowerCase(),
feature.getProperties().getAfterClass().toLowerCase(),
request.getAnalUid(),
mapSheetNumLong,
ZonedDateTime.now(),
ZonedDateTime.now(),
"DONE")
.execute();
// 2. 생성된 geoUid 조회
// 2. 생성된 geoUid 조회 (가장 최근에 삽입된 레코드)
Long geoUid =
queryFactory
.select(mapSheetAnalDataInferenceGeomEntity.geoUid)
.from(mapSheetAnalDataInferenceGeomEntity)
.where(
mapSheetAnalDataInferenceGeomEntity.geom.eq(feature.getGeometry()),
mapSheetAnalDataInferenceGeomEntity.compareYyyy.eq(request.getCompareYyyy()),
mapSheetAnalDataInferenceGeomEntity.targetYyyy.eq(request.getTargetYyyy()))
mapSheetAnalDataInferenceGeomEntity.targetYyyy.eq(request.getTargetYyyy()),
mapSheetAnalDataInferenceGeomEntity.classBeforeCd.eq(
feature.getProperties().getBeforeClass().toLowerCase()),
mapSheetAnalDataInferenceGeomEntity.classAfterCd.eq(
feature.getProperties().getAfterClass().toLowerCase()))
.orderBy(mapSheetAnalDataInferenceGeomEntity.geoUid.desc())
.fetchFirst();
@@ -710,6 +727,7 @@ public class TrainingDataLabelRepositoryImpl extends QuerydslRepositorySupport
} catch (Exception e) {
System.err.println("Error saving polygon #" + (savedCount + 1) + ": " + e.getMessage());
e.printStackTrace();
// 개별 polygon 저장 실패해도 계속 진행
}
}

View File

@@ -660,6 +660,16 @@ public class TrainingDataReviewRepositoryImpl extends QuerydslRepositorySupport
+ " new polygon(s) for mapSheetNum: "
+ request.getMapSheetNum());
// mapSheetNum을 Long으로 변환
Long mapSheetNumLong = null;
try {
if (request.getMapSheetNum() != null && !request.getMapSheetNum().isEmpty()) {
mapSheetNumLong = Long.parseLong(request.getMapSheetNum());
}
} catch (NumberFormatException e) {
System.err.println("Invalid mapSheetNum format: " + request.getMapSheetNum());
}
int savedCount = 0;
for (TrainingDataReviewDto.NewPolygonRequest.PolygonFeature feature : request.getFeatures()) {
try {
@@ -672,6 +682,8 @@ public class TrainingDataReviewRepositoryImpl extends QuerydslRepositorySupport
mapSheetAnalDataInferenceGeomEntity.targetYyyy,
mapSheetAnalDataInferenceGeomEntity.classBeforeCd,
mapSheetAnalDataInferenceGeomEntity.classAfterCd,
mapSheetAnalDataInferenceGeomEntity.dataUid,
mapSheetAnalDataInferenceGeomEntity.mapSheetNum,
mapSheetAnalDataInferenceGeomEntity.createdDttm,
mapSheetAnalDataInferenceGeomEntity.updatedDttm,
mapSheetAnalDataInferenceGeomEntity.labelState)
@@ -681,20 +693,25 @@ public class TrainingDataReviewRepositoryImpl extends QuerydslRepositorySupport
request.getTargetYyyy(),
feature.getProperties().getBeforeClass().toLowerCase(),
feature.getProperties().getAfterClass().toLowerCase(),
request.getAnalUid(),
mapSheetNumLong,
ZonedDateTime.now(),
ZonedDateTime.now(),
"DONE")
.execute();
// 2. 생성된 geoUid 조회
// 2. 생성된 geoUid 조회 (가장 최근에 삽입된 레코드)
Long geoUid =
queryFactory
.select(mapSheetAnalDataInferenceGeomEntity.geoUid)
.from(mapSheetAnalDataInferenceGeomEntity)
.where(
mapSheetAnalDataInferenceGeomEntity.geom.eq(feature.getGeometry()),
mapSheetAnalDataInferenceGeomEntity.compareYyyy.eq(request.getCompareYyyy()),
mapSheetAnalDataInferenceGeomEntity.targetYyyy.eq(request.getTargetYyyy()))
mapSheetAnalDataInferenceGeomEntity.targetYyyy.eq(request.getTargetYyyy()),
mapSheetAnalDataInferenceGeomEntity.classBeforeCd.eq(
feature.getProperties().getBeforeClass().toLowerCase()),
mapSheetAnalDataInferenceGeomEntity.classAfterCd.eq(
feature.getProperties().getAfterClass().toLowerCase()))
.orderBy(mapSheetAnalDataInferenceGeomEntity.geoUid.desc())
.fetchFirst();
@@ -732,6 +749,7 @@ public class TrainingDataReviewRepositoryImpl extends QuerydslRepositorySupport
} catch (Exception e) {
System.err.println("Error saving polygon #" + (savedCount + 1) + ": " + e.getMessage());
e.printStackTrace();
// 개별 polygon 저장 실패해도 계속 진행
}
}