From aeffd5be617600ff02006780223d328d4d1ed34d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B6=8C=ED=98=81=EC=84=B1?= Date: Fri, 13 Mar 2026 23:43:02 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20[work-order]=20=EC=9E=91=EC=97=85=20?= =?UTF-8?q?=EC=99=84=EB=A3=8C=20API=20=EC=9D=91=EB=8B=B5=EC=97=90=20?= =?UTF-8?q?=EC=8B=A4=EC=A0=9C=20LOT=20=EB=B2=88=ED=98=B8=20=ED=8F=AC?= =?UTF-8?q?=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - saveItemResults() 반환 타입 void → string (생성된 lot_no 반환) - updateStatus() 완료 시 lot_no를 setAttribute로 응답에 포함 --- app/Services/WorkOrderService.php | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) 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; } /**