feat: [work-order] 작업 완료 API 응답에 실제 LOT 번호 포함

- saveItemResults() 반환 타입 void → string (생성된 lot_no 반환)
- updateStatus() 완료 시 lot_no를 setAttribute로 응답에 포함
This commit is contained in:
2026-03-13 23:43:02 +09:00
parent d7c096b615
commit aeffd5be61

View File

@@ -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;
}
/**