diff --git a/frontend/components/pop/hardcoded/production/WorkOrderList.tsx b/frontend/components/pop/hardcoded/production/WorkOrderList.tsx index 5e9b0ebf..3cdfb7cf 100644 --- a/frontend/components/pop/hardcoded/production/WorkOrderList.tsx +++ b/frontend/components/pop/hardcoded/production/WorkOrderList.tsx @@ -723,6 +723,7 @@ export function WorkOrderList() { processName: string; seqNo: string; maxQty: number; + reworkSourceId?: string; }>({ open: false, processId: "", processName: "", seqNo: "", maxQty: 0 }); const [acceptLoading, setAcceptLoading] = useState(false); @@ -972,14 +973,14 @@ export function WorkOrderList() { }, [masterProcesses, selectedProcess, selectedEquipment, instructionMap, equipmentMap]); /* ---- Accept handler ---- */ - const openAcceptModal = async (processId: string, processName: string, seqNo: string) => { + const openAcceptModal = async (processId: string, processName: string, seqNo: string, reworkSourceId?: string) => { try { const res = await apiClient.get("/pop/production/available-qty", { params: { work_order_process_id: processId }, }); const data = res.data?.data; const maxQty = data?.availableQty ?? 0; - setAcceptModal({ open: true, processId, processName, seqNo, maxQty }); + setAcceptModal({ open: true, processId, processName, seqNo, maxQty, reworkSourceId }); } catch { alert("접수가능량 조회 실패"); } @@ -988,10 +989,15 @@ export function WorkOrderList() { const handleAccept = async (qty: number) => { setAcceptLoading(true); try { - const res = await apiClient.post("/pop/production/accept-process", { + const body: Record = { work_order_process_id: acceptModal.processId, accept_qty: qty, - }); + }; + // 리워크 추적: rework_source_id가 있으면 전달 (원점 복귀 추적) + if (acceptModal.reworkSourceId) { + body.rework_source_id = acceptModal.reworkSourceId; + } + const res = await apiClient.post("/pop/production/accept-process", body); if (res.data?.success) { setAcceptModal((m) => ({ ...m, open: false })); await fetchAll(); @@ -1426,7 +1432,7 @@ export function WorkOrderList() { {/* Action button (full width, bottom) */} {isRework && proc.status === "acceptable" && (