From 858ac11a931897683c1acdbc4417ea30340802a9 Mon Sep 17 00:00:00 2001 From: jsgjsg Date: Mon, 2 Mar 2026 15:29:22 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[#50]=20feat:=20=EC=99=84=EB=A3=8C=EB=90=9C?= =?UTF-8?q?=20=EB=B0=B0=EC=B0=A8=20=EC=83=81=EC=84=B8=20=EC=A1=B0=ED=9A=8C?= =?UTF-8?q?=20api=20=EC=9D=91=EB=8B=B5=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CompletedDispatchListItemRes.java | 24 +++++++++++++++++-- .../dispatch/service/DispatcherService.java | 15 ++++++++++-- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/mobility/api/domain/dispatch/dto/response/CompletedDispatchListItemRes.java b/src/main/java/com/mobility/api/domain/dispatch/dto/response/CompletedDispatchListItemRes.java index b2e944f..eb155bf 100644 --- a/src/main/java/com/mobility/api/domain/dispatch/dto/response/CompletedDispatchListItemRes.java +++ b/src/main/java/com/mobility/api/domain/dispatch/dto/response/CompletedDispatchListItemRes.java @@ -12,9 +12,18 @@ public record CompletedDispatchListItemRes( @Schema(description = "배차 ID", example = "1") Long id, + @Schema(description = "배차 번호", example = "2025-0001") + String dispatchNumber, + + @Schema(description = "서비스 타입 (DELIVERY: 탁송, DRIVER: 대리)", example = "DELIVERY") + String serviceType, + @Schema(description = "배차 할당 시간", example = "2025-11-22T14:15:00") LocalDateTime assignedAt, + @Schema(description = "배차 완료 시간", example = "2025-11-22T15:19:00") + LocalDateTime completedAt, + @Schema(description = "출발지", example = "부안상서면부장1길 23") String startLocation, @@ -22,15 +31,26 @@ public record CompletedDispatchListItemRes( String destinationLocation, @Schema(description = "요금", example = "110000") - Integer charge + Integer charge, + + @Schema(description = "사무실 이름", example = "(주)대리GO") + String officeName, + + @Schema(description = "사무실 전화번호", example = "02-1234-5678") + String officeTelNumber ) { - public static CompletedDispatchListItemRes from(Dispatch dispatch) { + public static CompletedDispatchListItemRes from(Dispatch dispatch, String officeName, String officeTelNumber) { return CompletedDispatchListItemRes.builder() .id(dispatch.getId()) + .dispatchNumber(dispatch.getDispatchNumber()) + .serviceType(dispatch.getService() != null ? dispatch.getService().name() : null) .assignedAt(dispatch.getAssignedAt()) + .completedAt(dispatch.getCompletedAt()) .startLocation(dispatch.getStartLocation()) .destinationLocation(dispatch.getDestinationLocation()) .charge(dispatch.getCharge()) + .officeName(officeName) + .officeTelNumber(officeTelNumber) .build(); } } diff --git a/src/main/java/com/mobility/api/domain/dispatch/service/DispatcherService.java b/src/main/java/com/mobility/api/domain/dispatch/service/DispatcherService.java index 8a09153..a1185bd 100644 --- a/src/main/java/com/mobility/api/domain/dispatch/service/DispatcherService.java +++ b/src/main/java/com/mobility/api/domain/dispatch/service/DispatcherService.java @@ -238,9 +238,20 @@ public List getCompletedDispatchList( toDateTime ); - // 4. DTO 변환 + // 4. DTO 변환 (사무실 정보 조회 포함) return completedDispatches.stream() - .map(CompletedDispatchListItemRes::from) + .map(dispatch -> { + String officeName = null; + String officeTelNumber = null; + if (dispatch.getOfficeId() != null) { + Office office = officeRepository.findById(dispatch.getOfficeId()).orElse(null); + if (office != null) { + officeName = office.getOfficeName(); + officeTelNumber = office.getOfficeTelNumber(); + } + } + return CompletedDispatchListItemRes.from(dispatch, officeName, officeTelNumber); + }) .collect(Collectors.toList()); } From d02b763ba556cb9f8783a020df3ff3ecf9f85e44 Mon Sep 17 00:00:00 2001 From: jsgjsg Date: Mon, 2 Mar 2026 16:01:00 +0900 Subject: [PATCH 2/2] =?UTF-8?q?[#50]=20feat:=20=ED=98=84=EC=9E=AC=20?= =?UTF-8?q?=EB=B0=B0=EC=B0=A8=EC=A4=91=EC=9D=B8=20=EC=98=A4=EB=8D=94=20?= =?UTF-8?q?=EC=83=81=EC=84=B8=20=EC=A0=95=EB=B3=B4=20api=20=EC=9D=91?= =?UTF-8?q?=EB=8B=B5=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../dispatch/dto/response/CurrentDispatchDetailRes.java | 6 +++++- .../api/domain/dispatch/service/DispatcherService.java | 4 +++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/mobility/api/domain/dispatch/dto/response/CurrentDispatchDetailRes.java b/src/main/java/com/mobility/api/domain/dispatch/dto/response/CurrentDispatchDetailRes.java index b07a7da..29c1455 100644 --- a/src/main/java/com/mobility/api/domain/dispatch/dto/response/CurrentDispatchDetailRes.java +++ b/src/main/java/com/mobility/api/domain/dispatch/dto/response/CurrentDispatchDetailRes.java @@ -53,6 +53,9 @@ public record CurrentDispatchDetailRes( @Schema(description = "사무실 ID", example = "1") Long officeId, + @Schema(description = "사무실 이름", example = "(주)대리GO") + String officeName, + @Schema(description = "사무실 전화번호", example = "02-1234-5678") String officeTelNumber, @@ -71,7 +74,7 @@ public record CurrentDispatchDetailRes( * @param officeTelNumber 사무실 전화번호 * @return CurrentDispatchDetailRes */ - public static CurrentDispatchDetailRes from(Dispatch dispatch, String officeTelNumber) { + public static CurrentDispatchDetailRes from(Dispatch dispatch, String officeName, String officeTelNumber) { return CurrentDispatchDetailRes.builder() .id(dispatch.getId()) .status(dispatch.getStatus()) @@ -85,6 +88,7 @@ public static CurrentDispatchDetailRes from(Dispatch dispatch, String officeTelN .paymentMethod(dispatch.getPaymentType()) .tollType(dispatch.getTollType()) .officeId(dispatch.getOfficeId()) + .officeName(officeName) .officeTelNumber(officeTelNumber) .createdAt(dispatch.getCreatedAt()) .updatedAt(dispatch.getUpdatedAt()) diff --git a/src/main/java/com/mobility/api/domain/dispatch/service/DispatcherService.java b/src/main/java/com/mobility/api/domain/dispatch/service/DispatcherService.java index a1185bd..3d7dc22 100644 --- a/src/main/java/com/mobility/api/domain/dispatch/service/DispatcherService.java +++ b/src/main/java/com/mobility/api/domain/dispatch/service/DispatcherService.java @@ -197,17 +197,19 @@ public CurrentDispatchDetailRes getCurrentDispatch(Long transporterId) { .orElseThrow(() -> new GlobalException(ResultCode.DISPATCH_NOT_ASSIGNED)); // 4. 사무실 정보 조회 (사무실 전화번호를 가져오기 위함) + String officeName = null; String officeTelNumber = null; if (dispatch.getOfficeId() != null) { Office office = officeRepository.findById(dispatch.getOfficeId()) .orElse(null); if (office != null) { + officeName = office.getOfficeName(); officeTelNumber = office.getOfficeTelNumber(); } } // 5. DTO 변환 및 반환 - return CurrentDispatchDetailRes.from(dispatch, officeTelNumber); + return CurrentDispatchDetailRes.from(dispatch, officeName, officeTelNumber); } /**