diff --git a/src/main/java/com/kamco/cd/kamcoback/gukyuin/service/GukYuinApiService.java b/src/main/java/com/kamco/cd/kamcoback/gukyuin/service/GukYuinApiService.java index b86ba131..92c21076 100644 --- a/src/main/java/com/kamco/cd/kamcoback/gukyuin/service/GukYuinApiService.java +++ b/src/main/java/com/kamco/cd/kamcoback/gukyuin/service/GukYuinApiService.java @@ -638,4 +638,8 @@ public class GukYuinApiService { public List findStbltObjectIds(String uid, String mapSheetNum) { return gukyuinCoreService.findStbltObjectIds(uid, mapSheetNum); } + + public Integer updateStbltRandomData(String uid, int updateCnt) { + return gukyuinCoreService.updateStbltRandomData(uid, updateCnt); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/core/GukYuinCoreService.java b/src/main/java/com/kamco/cd/kamcoback/postgres/core/GukYuinCoreService.java index 508c13f1..31e535a4 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/core/GukYuinCoreService.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/core/GukYuinCoreService.java @@ -81,4 +81,8 @@ public class GukYuinCoreService { public List findStbltObjectIds(String uid, String mapSheetNum) { return gukYuinRepository.findStbltObjectIds(uid, mapSheetNum); } + + public Integer updateStbltRandomData(String uid, int updateCnt) { + return gukYuinRepository.updateStbltRandomData(uid, updateCnt); + } } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/gukyuin/GukYuinRepositoryCustom.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/gukyuin/GukYuinRepositoryCustom.java index 6193af06..b7edba37 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/gukyuin/GukYuinRepositoryCustom.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/gukyuin/GukYuinRepositoryCustom.java @@ -47,4 +47,6 @@ public interface GukYuinRepositoryCustom { void updateMapSheetInferenceLabelEndStatus(Long learnId); List findStbltObjectIds(String uid, String mapSheetNum); + + Integer updateStbltRandomData(String uid, int updateCnt); } diff --git a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/gukyuin/GukYuinRepositoryImpl.java b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/gukyuin/GukYuinRepositoryImpl.java index cfb61563..7ce9adbe 100644 --- a/src/main/java/com/kamco/cd/kamcoback/postgres/repository/gukyuin/GukYuinRepositoryImpl.java +++ b/src/main/java/com/kamco/cd/kamcoback/postgres/repository/gukyuin/GukYuinRepositoryImpl.java @@ -336,6 +336,44 @@ public class GukYuinRepositoryImpl implements GukYuinRepositoryCustom { .fetch(); } + /** + * mapSheetAnalDataInferenceGeomEntity 데이터 에 실태조사 값 들어온 것으로 간주하고 update 랜덤으로 하기 + * + * @param uid + * @param updateCnt + * @return + */ + @Override + public Integer updateStbltRandomData(String uid, int updateCnt) { + List geoUids = + queryFactory + .select(mapSheetAnalDataInferenceGeomEntity.geoUid) + .from(mapSheetLearnEntity) + .innerJoin(mapSheetAnalInferenceEntity) + .on(mapSheetLearnEntity.id.eq(mapSheetAnalInferenceEntity.learnId)) + .innerJoin(mapSheetAnalDataInferenceEntity) + .on(mapSheetAnalInferenceEntity.id.eq(mapSheetAnalDataInferenceEntity.analUid)) + .innerJoin(mapSheetAnalDataInferenceGeomEntity) + .on( + mapSheetAnalDataInferenceEntity.id.eq(mapSheetAnalDataInferenceGeomEntity.dataUid), + mapSheetAnalDataInferenceGeomEntity.fitState.isNull()) + .where(mapSheetLearnEntity.uid.eq(uid)) + .orderBy(mapSheetAnalDataInferenceGeomEntity.geoUid.asc()) + .limit(updateCnt) + .fetch(); + + for (Long geoUid : geoUids) { + queryFactory + .update(mapSheetAnalDataInferenceGeomEntity) + .set(mapSheetAnalDataInferenceGeomEntity.pnu, 1L) + .set(mapSheetAnalDataInferenceGeomEntity.fitState, "Y") + .set(mapSheetAnalDataInferenceGeomEntity.fitStateDttm, ZonedDateTime.now()) + .where(mapSheetAnalDataInferenceGeomEntity.geoUid.eq(geoUid)) + .execute(); + } + return updateCnt; + } + @Override @Transactional public void updateGukYuinApplyStateComplete(Long id, GukYuinStatus status) { diff --git a/src/main/java/com/kamco/cd/kamcoback/scheduler/SchedulerApiController.java b/src/main/java/com/kamco/cd/kamcoback/scheduler/SchedulerApiController.java index 0e9515d3..2513413c 100644 --- a/src/main/java/com/kamco/cd/kamcoback/scheduler/SchedulerApiController.java +++ b/src/main/java/com/kamco/cd/kamcoback/scheduler/SchedulerApiController.java @@ -175,4 +175,11 @@ public class SchedulerApiController { inferenceResultShpService.createShp(uuid); return ApiResponseDto.createOK(null); } + + @Operation(summary = "국유인 실태조사 적합여부 랜덤 업데이트", description = "국유인 실태조사 적합여부 랜덤 업데이트") + @PutMapping("/gukyuin/random-stblt-update/{uid}/{updateCnt}") + public ApiResponseDto updateStbltRandomData( + @PathVariable String uid, @PathVariable int updateCnt) { + return ApiResponseDto.ok(gukYuinApiService.updateStbltRandomData(uid, updateCnt)); + } }