Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 6 additions & 7 deletions src/main/java/com/quicktax/demo/api/ResultController.java
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.quicktax.demo.api;

import com.quicktax.demo.common.ApiResponse;
import com.quicktax.demo.config.UserDetailsImpl; // 💡 Import 확인 필수
import com.quicktax.demo.dto.calc.CalcConfirmRequest;
import com.quicktax.demo.dto.calc.CalcDocumentResponse;
import com.quicktax.demo.dto.refund.RefundResultsResponse;
Expand Down Expand Up @@ -29,23 +28,23 @@ public class ResultController {
@Operation(summary = "계산 결과 조회 (시나리오별 환급액 확인)", description = "해당 Case의 모든 연도/시나리오별 계산 결과를 조회합니다.")
@GetMapping("/{caseId}")
public ApiResponse<RefundResultsResponse> getRefundResults(
@AuthenticationPrincipal UserDetailsImpl userDetails,
@AuthenticationPrincipal Long cpaId,
@PathVariable Long caseId
) {
// RefundResultService를 호출하여 계산 결과(DTO)를 반환
return ApiResponse.ok(refundResultService.getRefundResults(userDetails.getCpaId(), caseId));
return ApiResponse.ok(refundResultService.getRefundResults(cpaId, caseId));
}

// 2. 계산식 확정 및 결과 파일 생성 (기존 ResultController 기능)
// POST /api/result/{caseId}
@PostMapping("/{caseId}")
@Operation(summary = "계산식 확정 및 결과 파일 생성 요청", description = "선택한 시나리오로 계산을 확정하고 결과 파일(PDF/ZIP)을 생성합니다.")
public ApiResponse<String> confirmCalculation(
@AuthenticationPrincipal UserDetailsImpl userDetails,
@AuthenticationPrincipal Long cpaId,
@PathVariable Long caseId,
@Valid @RequestBody CalcConfirmRequest request
) {
resultService.confirmAndGenerateFiles(userDetails.getCpaId(), caseId, request);
resultService.confirmAndGenerateFiles(cpaId, caseId, request);
return ApiResponse.ok("계산식이 확정되고 결과 파일 생성이 완료되었습니다.");
}

Expand All @@ -54,10 +53,10 @@ public ApiResponse<String> confirmCalculation(
@GetMapping("/{caseId}/documents")
@Operation(summary = "최종 완료 결과(문서 및 환급액) 조회", description = "확정된 계산 결과에 따른 최종 문서 파일과 총 환급액을 조회합니다.")
public ApiResponse<CalcDocumentResponse> getResultDocuments(
@AuthenticationPrincipal UserDetailsImpl userDetails,
@AuthenticationPrincipal Long cpaId,
@PathVariable Long caseId
) {
CalcDocumentResponse response = resultService.getResultDocuments(userDetails.getCpaId(), caseId);
CalcDocumentResponse response = resultService.getResultDocuments(cpaId, caseId);
return ApiResponse.ok(response);
}

Expand Down
3 changes: 1 addition & 2 deletions src/main/java/com/quicktax/demo/service/ocr/OcrService.java
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,7 @@ public void confirmOcrDataAndCalculate(Long cpaId, Long caseId, OcrConfirmReques
throw new ApiException(ErrorCode.COMMON500, "OCR 분석에 실패했습니다.");
}
if (ocrJob.getStatus() != OcrJobStatus.READY) {
// 409가 더 정확하지만, 현재 ErrorCode에 409가 없어서 429로 처리 (FE는 재시도/폴링)
throw new ApiException(ErrorCode.COMMON429, "OCR 분석이 아직 완료되지 않았습니다. 잠시 후 다시 시도해주세요.");
throw new ApiException(ErrorCode.OCR409, "OCR 분석이 아직 완료되지 않았습니다. 잠시 후 다시 시도해주세요.");
}

if (request == null || request.getOcrData() == null) {
Expand Down