Skip to content
Merged
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
Original file line number Diff line number Diff line change
Expand Up @@ -12,25 +12,45 @@ 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,

@Schema(description = "목적지", example = "수원평동, 임광모터스")
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();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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,

Expand All @@ -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())
Expand All @@ -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())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

/**
Expand Down Expand Up @@ -238,9 +240,20 @@ public List<CompletedDispatchListItemRes> 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());
}

Expand Down