From d771af92a6cc4820a0bf6e7e02c7a9df3b3fb909 Mon Sep 17 00:00:00 2001 From: coehgns Date: Wed, 8 Oct 2025 04:00:42 +0900 Subject: [PATCH 1/5] feat ( #23 ) : UpdateIsNotPrintsArrivedUseCase --- .../port/in/UpdateIsNotPrintsArrivedUseCase.kt | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 casper-status/src/main/kotlin/hs/kr/entrydsm/status/domain/status/application/port/in/UpdateIsNotPrintsArrivedUseCase.kt diff --git a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/domain/status/application/port/in/UpdateIsNotPrintsArrivedUseCase.kt b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/domain/status/application/port/in/UpdateIsNotPrintsArrivedUseCase.kt new file mode 100644 index 0000000..5da66dc --- /dev/null +++ b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/domain/status/application/port/in/UpdateIsNotPrintsArrivedUseCase.kt @@ -0,0 +1,13 @@ +package hs.kr.entrydsm.status.domain.status.application.port.`in` + +/** + * 서류 미도착 수정 유스케이스 인터페이스입니다. + */ +interface UpdateIsNotPrintsArrivedUseCase { + /** + * 서류 접수 완료 상태에서 서류 도착 대기 상태로 변경합니다. + * + * @param receiptCode 접수번호 + */ + fun execute(receiptCode: Long) +} \ No newline at end of file From 7c9ff0a6958af166a846e52c05afb30e4b13444c Mon Sep 17 00:00:00 2001 From: coehgns Date: Wed, 8 Oct 2025 04:01:35 +0900 Subject: [PATCH 2/5] feat ( #23 ) : UpdateIsNotPrintsArrivedService --- .../UpdateIsNotPrintsArrivedService.kt | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 casper-status/src/main/kotlin/hs/kr/entrydsm/status/domain/status/application/service/UpdateIsNotPrintsArrivedService.kt diff --git a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/domain/status/application/service/UpdateIsNotPrintsArrivedService.kt b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/domain/status/application/service/UpdateIsNotPrintsArrivedService.kt new file mode 100644 index 0000000..895c973 --- /dev/null +++ b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/domain/status/application/service/UpdateIsNotPrintsArrivedService.kt @@ -0,0 +1,38 @@ +package hs.kr.entrydsm.status.domain.status.application.service + +import hs.kr.entrydsm.status.domain.status.application.port.`in`.UpdateIsNotPrintsArrivedUseCase +import hs.kr.entrydsm.status.domain.status.application.port.out.QueryStatusPort +import hs.kr.entrydsm.status.domain.status.application.port.out.SaveStatusPort +import hs.kr.entrydsm.status.domain.status.exception.StatusNotFoundException +import org.springframework.stereotype.Service +import org.springframework.transaction.annotation.Transactional + +/** + * 서류 미도착 상태 업데이트 서비스 클래스입니다. + * + * @property queryStatusPort 상태 조회 포트 + * @property saveStatusPort 상태 저장 포트 + */ +@Transactional +@Service +class UpdateIsNotPrintsArrivedService( + private val queryStatusPort: QueryStatusPort, + private val saveStatusPort: SaveStatusPort, +) : UpdateIsNotPrintsArrivedUseCase { + + /** + * 서류 미도착 상태를 업데이트합니다. + * 서류 접수 완료에서 서류 도착 대기 상태로 변경합니다. + * + * @param receiptCode 접수번호 + * @throws StatusNotFoundException 해당 접수번호의 상태가 존재하지 않는 경우 + */ + override fun execute(receiptCode: Long) { + val status = + queryStatusPort.findByReceiptCode(receiptCode) + ?: throw StatusNotFoundException + + val updatedStatus = status.markDocumentsNotArrived() + saveStatusPort.save(updatedStatus) + } +} \ No newline at end of file From f8f824a2a72085ec601ed6daf01cf7ffc596070c Mon Sep 17 00:00:00 2001 From: coehgns Date: Wed, 8 Oct 2025 04:01:59 +0900 Subject: [PATCH 3/5] =?UTF-8?q?feat=20(=20#23=20)=20:=20Status=20model?= =?UTF-8?q?=EC=97=90=20markDocumentsNotArrived=20=EB=A9=94=EC=84=9C?= =?UTF-8?q?=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hs/kr/entrydsm/status/domain/status/model/Status.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/domain/status/model/Status.kt b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/domain/status/model/Status.kt index 1dc9f4c..f29aff6 100644 --- a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/domain/status/model/Status.kt +++ b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/domain/status/model/Status.kt @@ -47,6 +47,15 @@ data class Status( return copy(applicationStatus = ApplicationStatus.DOCUMENTS_RECEIVED) } + /** + * 서류가 도착했음을 미표시하고 서류 도착 대기 상태로 변경합니다. + * + * @return 서류 도착 대기 상태로 변경된 Status 인스턴스 + */ + fun markDocumentsNotArrived(): Status { + return copy(applicationStatus = ApplicationStatus.WAITING_DOCUMENTS) + } + /** * 전형을 시작하고 전형 진행 중 상태로 변경합니다. * From 49f4fc8c2fbf420b97dd61246167816fce47ddcf Mon Sep 17 00:00:00 2001 From: coehgns Date: Wed, 8 Oct 2025 04:02:24 +0900 Subject: [PATCH 4/5] =?UTF-8?q?feat=20(=20#23=20)=20:=20AdminWebController?= =?UTF-8?q?=EC=97=90=20updateIsNotPrintsArrivedService=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../status/adapter/in/web/AdminWebController.kt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/domain/status/adapter/in/web/AdminWebController.kt b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/domain/status/adapter/in/web/AdminWebController.kt index 47de68c..535c328 100644 --- a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/domain/status/adapter/in/web/AdminWebController.kt +++ b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/domain/status/adapter/in/web/AdminWebController.kt @@ -3,6 +3,7 @@ package hs.kr.entrydsm.status.domain.status.adapter.`in`.web import hs.kr.entrydsm.status.domain.status.application.port.`in`.AnnounceResultUseCase import hs.kr.entrydsm.status.domain.status.application.port.`in`.CancelApplicationSubmitUseCase import hs.kr.entrydsm.status.domain.status.application.port.`in`.StartScreeningUseCase +import hs.kr.entrydsm.status.domain.status.application.port.`in`.UpdateIsNotPrintsArrivedUseCase import hs.kr.entrydsm.status.domain.status.application.port.`in`.UpdateIsPrintsArrivedUseCase import hs.kr.entrydsm.status.global.document.status.AdminStatusApiDocument import org.springframework.web.bind.annotation.PatchMapping @@ -26,6 +27,7 @@ class AdminWebController( private val cancelApplicationSubmitUseCase: CancelApplicationSubmitUseCase, private val startScreeningUseCase: StartScreeningUseCase, private val announceResultUseCase: AnnounceResultUseCase, + private val updateIsNotPrintsArrivedUseCase: UpdateIsNotPrintsArrivedUseCase ) : AdminStatusApiDocument { /** * 지원서 제출을 취소합니다. @@ -53,6 +55,19 @@ class AdminWebController( updateIsPrintsArrivedUseCase.execute(receiptCode) } + /** + * 서류 도착을 수정합니다. + * 서류의 도착 여부를 관리자가 확인하여 상태를 서류 도착 대기 상태로 변경합니다. + * + * @param receiptCode 접수번호 + */ + @PatchMapping("/prints-not-arrived/{receipt-code}") + override fun updateIsNotPrintsArrivedService( + @PathVariable("receipt-code") receiptCode: Long, + ) { + updateIsNotPrintsArrivedUseCase.execute(receiptCode) + } + /** * 전형을 시작합니다. * 서류 검토가 완료된 후 1차 또는 2차 전형을 시작합니다. From 5301edba82a4529aa10f0c3bcd270bc508a4aaf7 Mon Sep 17 00:00:00 2001 From: coehgns Date: Wed, 8 Oct 2025 04:02:35 +0900 Subject: [PATCH 5/5] =?UTF-8?q?feat=20(=20#23=20)=20:=20AdminStatusApiDocu?= =?UTF-8?q?ment=EC=97=90=20updateIsNotPrintsArrivedService=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../document/status/AdminStatusApiDocument.kt | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/global/document/status/AdminStatusApiDocument.kt b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/global/document/status/AdminStatusApiDocument.kt index a162144..032f8a9 100644 --- a/casper-status/src/main/kotlin/hs/kr/entrydsm/status/global/document/status/AdminStatusApiDocument.kt +++ b/casper-status/src/main/kotlin/hs/kr/entrydsm/status/global/document/status/AdminStatusApiDocument.kt @@ -61,6 +61,30 @@ interface AdminStatusApiDocument { @PathVariable("receipt-code") receiptCode: Long, ) + /** + * 등기우편으로 제출된 서류의 도착을 수정합니다. + */ + @Operation( + summary = "서류 도착 수정", + description = "서류 접수 완료 상태에서 서류 도착 대기 상태로 변경합니다.", + ) + @ApiResponses( + ApiResponse( + responseCode = "204", + description = "서류 도착 수정 성공", + content = arrayOf(Content()), + ), + ApiResponse( + responseCode = "404", + description = "상태를 찾을 수 없음 - Status Not Found", + content = arrayOf(Content()), + ), + ) + fun updateIsNotPrintsArrivedService( + @Parameter(description = "접수번호", required = true) + @PathVariable("receipt-code") receiptCode: Long, + ) + /** * 서류 검토 완료 후 1차 또는 2차 전형을 시작합니다. */