diff --git a/app/Services/WorkOrderService.php b/app/Services/WorkOrderService.php index 692048d..50717b5 100644 --- a/app/Services/WorkOrderService.php +++ b/app/Services/WorkOrderService.php @@ -576,8 +576,8 @@ public function updateStatus(int $id, string $status, ?array $resultData = null) // Fast-track 완료의 경우 started_at도 설정 (중간 상태 생략) $workOrder->started_at = $workOrder->started_at ?? now(); $workOrder->completed_at = now(); - // 모든 품목에 결과 데이터 저장 - $this->saveItemResults($workOrder, $resultData, $userId); + // 모든 품목에 결과 데이터 저장 (LOT 번호 반환) + $lotNo = $this->saveItemResults($workOrder, $resultData, $userId); break; case WorkOrder::STATUS_SHIPPED: $workOrder->shipped_at = now(); @@ -604,7 +604,14 @@ public function updateStatus(int $id, string $status, ?array $resultData = null) $this->stockInFromProduction($workOrder); } - return $workOrder->load(['assignee:id,name', 'assignees.user:id,name', 'team:id,name', 'process:id,process_name,process_code']); + $result = $workOrder->load(['assignee:id,name', 'assignees.user:id,name', 'team:id,name', 'process:id,process_name,process_code']); + + // 완료 시 LOT 번호를 응답에 포함 + if (isset($lotNo)) { + $result->setAttribute('lot_no', $lotNo); + } + + return $result; }); } @@ -1106,7 +1113,7 @@ private function autoStartWorkOrderOnMaterialInput(WorkOrder $workOrder, int $te /** * 작업지시 품목에 결과 데이터 저장 */ - private function saveItemResults(WorkOrder $workOrder, ?array $resultData, int $userId): void + private function saveItemResults(WorkOrder $workOrder, ?array $resultData, int $userId): string { $items = $workOrder->items; $lotNo = $this->generateLotNo($workOrder); @@ -1141,6 +1148,8 @@ private function saveItemResults(WorkOrder $workOrder, ?array $resultData, int $ $item->options = $options; $item->save(); } + + return $lotNo; } /**