라벨링 상세정보, 요약정보(Daniel), 저장(Gina)
This commit is contained in:
@@ -1,12 +1,21 @@
|
||||
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.DetailRes;
|
||||
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.GeoFeatureRequest;
|
||||
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.LabelingGeometryInfo;
|
||||
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.LabelingListDto;
|
||||
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.SummaryRes;
|
||||
import com.kamco.cd.kamcoback.trainingdata.dto.TrainingDataLabelDto.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 TrainingDataLabelService {
|
||||
|
||||
@@ -24,4 +33,54 @@ public class TrainingDataLabelService {
|
||||
public LabelingGeometryInfo findLabelingAssignedGeom(String assignmentUid) {
|
||||
return trainingDataLabelCoreService.findLabelingAssignedGeom(assignmentUid);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public ResponseObj saveLabelingFeature(GeoFeatureRequest request) {
|
||||
String status = "";
|
||||
String assignmentUid = request.getAssignmentUid();
|
||||
Long inferenceGeomUid =
|
||||
trainingDataLabelCoreService.findLabelingAssignmentGeoUid(assignmentUid);
|
||||
if (request.getGeometry() == null || request.getGeometry().isEmpty()) {
|
||||
// SKIP 상태만 업데이트
|
||||
status = "SKIP";
|
||||
trainingDataLabelCoreService.updateLabelingStateAssignment(assignmentUid, status);
|
||||
trainingDataLabelCoreService.updateLabelingSkipState(inferenceGeomUid, status);
|
||||
} else {
|
||||
status = "DONE";
|
||||
trainingDataLabelCoreService.updateLabelingStateAssignment(assignmentUid, status);
|
||||
trainingDataLabelCoreService.updateLabelingPolygonClass(
|
||||
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 = trainingDataLabelCoreService.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 assignmentUid 작업 배정 ID
|
||||
* @return 변화탐지정보 + 실태조사결과정보
|
||||
*/
|
||||
public DetailRes getDetail(UUID assignmentUid) {
|
||||
return trainingDataLabelCoreService.getDetail(assignmentUid);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user