diff --git a/frontend/components/pop/hardcoded/production/ProcessWork.tsx b/frontend/components/pop/hardcoded/production/ProcessWork.tsx index 38424a71..9cf0e399 100644 --- a/frontend/components/pop/hardcoded/production/ProcessWork.tsx +++ b/frontend/components/pop/hardcoded/production/ProcessWork.tsx @@ -318,6 +318,7 @@ export function ProcessWork({ processId }: ProcessWorkProps) { const [wiInfo, setWiInfo] = useState(null); const [checklist, setChecklist] = useState([]); const [defectTypes, setDefectTypes] = useState([]); + const [processList, setProcessList] = useState>([]); const [loading, setLoading] = useState(true); const [saving, setSaving] = useState(false); @@ -432,7 +433,24 @@ export function ProcessWork({ processId }: ProcessWorkProps) { setIsLastProcess(false); } - // 6. Warehouses + // 6. 같은 작업지시의 공정 목록 (재작업 공정 지정용) + if (procData?.wo_id) { + try { + const plRes = await dataApi.getTableData("work_order_process", { + size: 100, + filters: { wo_id: procData.wo_id }, + }); + const masters = ((plRes.data ?? []) as ProcessData[]) + .filter((p) => !p.parent_process_id) + .sort((a, b) => parseInt(a.seq_no, 10) - parseInt(b.seq_no, 10)) + .map((p) => ({ process_code: p.process_code, process_name: p.process_name })); + // 중복 제거 + const seen = new Set(); + setProcessList(masters.filter((m) => { if (seen.has(m.process_code)) return false; seen.add(m.process_code); return true; })); + } catch { setProcessList([]); } + } + + // 7. Warehouses try { const whRes = await apiClient.get("/pop/production/warehouses"); setWarehouses(whRes.data?.data || []); @@ -1754,6 +1772,7 @@ export function ProcessWork({ processId }: ProcessWorkProps) { defectTypes={defectTypes} maxQty={productionQty > 0 ? productionQty : 99999} initialEntries={defectEntries} + processList={processList} /> );