Rviewer add
This commit is contained in:
@@ -3,6 +3,7 @@ package com.kamco.cd.kamcoback.trainingdata.service;
|
||||
import com.kamco.cd.kamcoback.config.api.ApiResponseDto.ApiResponseCode;
|
||||
import com.kamco.cd.kamcoback.config.api.ApiResponseDto.ResponseObj;
|
||||
import com.kamco.cd.kamcoback.postgres.core.TrainingDataLabelCoreService;
|
||||
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto;
|
||||
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.DefaultPaging;
|
||||
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.DetailRes;
|
||||
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.GeoFeatureRequest;
|
||||
@@ -87,4 +88,30 @@ public class TrainingDataLabelService {
|
||||
public DefaultPaging getDefaultPagingNumber(String userId, Integer size, String assignmentUid) {
|
||||
return trainingDataLabelCoreService.getDefaultPagingNumber(userId, size, assignmentUid);
|
||||
}
|
||||
|
||||
/**
|
||||
* 새로운 polygon(들) 추가 저장
|
||||
*
|
||||
* @param request 새 polygon 정보 (여러 개 가능)
|
||||
* @return 응답 메시지
|
||||
*/
|
||||
@Transactional
|
||||
public ResponseObj saveNewPolygon(TrainingDataLabelDto.NewPolygonRequest request) {
|
||||
trainingDataLabelCoreService.saveNewPolygon(request);
|
||||
int count = request.getFeatures() != null ? request.getFeatures().size() : 0;
|
||||
return new ResponseObj(ApiResponseCode.OK, count + "개의 polygon이 저장되었습니다.");
|
||||
}
|
||||
|
||||
/**
|
||||
* COG 이미지 URL 조회 (변화 전/후)
|
||||
*
|
||||
* @param mapSheetNum 도엽번호
|
||||
* @param beforeYear 변화 전 년도
|
||||
* @param afterYear 변화 후 년도
|
||||
* @return 변화 전/후 COG 이미지 URL
|
||||
*/
|
||||
public TrainingDataLabelDto.CogImageResponse getCogImageUrl(
|
||||
String mapSheetNum, Integer beforeYear, Integer afterYear) {
|
||||
return trainingDataLabelCoreService.getCogImageUrl(mapSheetNum, beforeYear, afterYear);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,119 @@
|
||||
package com.kamco.cd.kamcoback.trainingdata.service;
|
||||
|
||||
import com.kamco.cd.kamcoback.config.api.ApiResponseDto.ApiResponseCode;
|
||||
import com.kamco.cd.kamcoback.config.api.ApiResponseDto.ResponseObj;
|
||||
import com.kamco.cd.kamcoback.postgres.core.TrainingDataReviewCoreService;
|
||||
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto;
|
||||
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.DefaultPaging;
|
||||
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.DetailRes;
|
||||
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.GeoFeatureRequest;
|
||||
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.ReviewGeometryInfo;
|
||||
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.ReviewListDto;
|
||||
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.SummaryRes;
|
||||
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataReviewDto.searchReq;
|
||||
import jakarta.transaction.Transactional;
|
||||
import java.util.UUID;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class TrainingDataReviewService {
|
||||
|
||||
private final TrainingDataReviewCoreService trainingDataReviewCoreService;
|
||||
|
||||
public TrainingDataReviewService(TrainingDataReviewCoreService trainingDataReviewCoreService) {
|
||||
this.trainingDataReviewCoreService = trainingDataReviewCoreService;
|
||||
}
|
||||
|
||||
public Page<ReviewListDto> findReviewAssignedList(searchReq searchReq, String userId) {
|
||||
return trainingDataReviewCoreService.findReviewAssignedList(searchReq, userId);
|
||||
}
|
||||
|
||||
public ReviewGeometryInfo findReviewAssignedGeom(String operatorUid) {
|
||||
return trainingDataReviewCoreService.findReviewAssignedGeom(operatorUid);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public ResponseObj saveReviewFeature(GeoFeatureRequest request) {
|
||||
String status = "";
|
||||
String operatorUid = request.getOperatorUid();
|
||||
Long inferenceGeomUid = trainingDataReviewCoreService.findReviewOperatorGeoUid(operatorUid);
|
||||
|
||||
if (request.getGeometry() == null || request.getGeometry().isEmpty()) {
|
||||
// EXCEPT 상태만 업데이트
|
||||
status = "EXCEPT";
|
||||
trainingDataReviewCoreService.updateReviewStateOperator(
|
||||
operatorUid, status, request.getProperties().getInspectMemo());
|
||||
trainingDataReviewCoreService.updateReviewExceptState(inferenceGeomUid, status);
|
||||
} else {
|
||||
status = "COMPLETE";
|
||||
trainingDataReviewCoreService.updateReviewStateOperator(
|
||||
operatorUid, status, request.getProperties().getInspectMemo());
|
||||
trainingDataReviewCoreService.updateReviewPolygonClass(
|
||||
inferenceGeomUid, request.getGeometry(), request.getProperties(), status);
|
||||
}
|
||||
return new ResponseObj(ApiResponseCode.OK, "저장되었습니다.");
|
||||
}
|
||||
|
||||
/**
|
||||
* 검수자별 작업 통계 조회
|
||||
*
|
||||
* @param userId 검수자 사번
|
||||
* @return 전체/미작업/Today 건수
|
||||
*/
|
||||
public SummaryRes getSummary(String userId) {
|
||||
try {
|
||||
System.out.println("[Service] getSummary called with userId: " + userId);
|
||||
SummaryRes result = trainingDataReviewCoreService.getSummary(userId);
|
||||
System.out.println("[Service] getSummary result: " + result);
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
System.err.println("[Service] getSummary ERROR: " + e.getMessage());
|
||||
e.printStackTrace();
|
||||
// 예외 발생 시에도 빈 통계 반환
|
||||
return SummaryRes.builder().totalCnt(0L).undoneCnt(0L).todayCnt(0L).build();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 검수 작업 상세 정보 조회
|
||||
*
|
||||
* @param operatorUid 검수 작업 ID
|
||||
* @return 변화탐지정보 + 실태조사결과정보
|
||||
*/
|
||||
public DetailRes getDetail(UUID operatorUid) {
|
||||
return trainingDataReviewCoreService.getDetail(operatorUid);
|
||||
}
|
||||
|
||||
public DefaultPaging getDefaultPagingNumber(String userId, Integer size, String operatorUid) {
|
||||
return trainingDataReviewCoreService.getDefaultPagingNumber(userId, size, operatorUid);
|
||||
}
|
||||
|
||||
/**
|
||||
* 새로운 polygon(들) 추가 저장
|
||||
*
|
||||
* @param request 새 polygon 정보 (여러 개 가능)
|
||||
* @return 응답 메시지
|
||||
*/
|
||||
@Transactional
|
||||
public ResponseObj saveNewPolygon(TrainingDataReviewDto.NewPolygonRequest request) {
|
||||
trainingDataReviewCoreService.saveNewPolygon(request);
|
||||
int count = request.getFeatures() != null ? request.getFeatures().size() : 0;
|
||||
return new ResponseObj(ApiResponseCode.OK, count + "개의 polygon이 저장되었습니다.");
|
||||
}
|
||||
|
||||
/**
|
||||
* COG 이미지 URL 조회 (변화 전/후)
|
||||
*
|
||||
* @param mapSheetNum 도엽번호
|
||||
* @param beforeYear 변화 전 년도
|
||||
* @param afterYear 변화 후 년도
|
||||
* @return 변화 전/후 COG 이미지 URL
|
||||
*/
|
||||
public TrainingDataReviewDto.CogImageResponse getCogImageUrl(
|
||||
String mapSheetNum, Integer beforeYear, Integer afterYear) {
|
||||
return trainingDataReviewCoreService.getCogImageUrl(mapSheetNum, beforeYear, afterYear);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user