fix: [worker-screen] 프론트 가짜 LOT 제거, 백엔드 실제 LOT 사용
- actions.ts: 하드코딩 LOT(-01) 제거 → API 응답 lot_no 사용 - index.tsx: API 호출 후 실제 LOT으로 완료 다이얼로그 표시하도록 흐름 변경
This commit is contained in:
@@ -243,7 +243,8 @@ export async function completeWorkOrder(
|
||||
errorMessage: '작업 완료 처리에 실패했습니다.',
|
||||
});
|
||||
if (!result.success) return { success: false, error: result.error };
|
||||
const lotNo = `KD-SA-${new Date().toISOString().slice(2, 10).replace(/-/g, '')}-01`;
|
||||
// 백엔드에서 생성한 실제 LOT 번호 사용
|
||||
const lotNo = result.data?.lot_no || null;
|
||||
return { success: true, lotNo };
|
||||
}
|
||||
|
||||
|
||||
@@ -1016,18 +1016,10 @@ export default function WorkerScreen() {
|
||||
setIsMaterialModalOpen(true);
|
||||
}, []);
|
||||
|
||||
// MaterialInputModal 완료 후 → 작업 완료 결과 팝업
|
||||
const handleWorkCompletion = useCallback(() => {
|
||||
// MaterialInputModal 완료 후 → API 완료 처리 → 결과 팝업
|
||||
const handleWorkCompletion = useCallback(async () => {
|
||||
if (!selectedOrder) return;
|
||||
const lotNo = `KD-SA-${new Date().toISOString().slice(2, 10).replace(/-/g, '')}-01`;
|
||||
setCompletionLotNo(lotNo);
|
||||
setIsCompletionResultOpen(true);
|
||||
setIsCompletionFlow(false);
|
||||
}, [selectedOrder]);
|
||||
|
||||
// 완료 결과 팝업 확인 → API 완료 처리
|
||||
const handleCompletionResultConfirm = useCallback(async () => {
|
||||
if (!selectedOrder) return;
|
||||
|
||||
try {
|
||||
const materials = inputMaterialsMap.get(selectedOrder.id);
|
||||
@@ -1041,7 +1033,9 @@ export default function WorkerScreen() {
|
||||
);
|
||||
|
||||
if (result.success) {
|
||||
toast.success('작업이 완료되었습니다.');
|
||||
// 백엔드에서 받은 실제 LOT 번호로 결과 팝업 표시
|
||||
setCompletionLotNo(result.lotNo || '');
|
||||
setIsCompletionResultOpen(true);
|
||||
setInputMaterialsMap((prev) => {
|
||||
const next = new Map(prev);
|
||||
next.delete(selectedOrder.id);
|
||||
@@ -1053,14 +1047,17 @@ export default function WorkerScreen() {
|
||||
}
|
||||
} catch (error) {
|
||||
if (isNextRedirectError(error)) throw error;
|
||||
console.error('[WorkerScreen] handleCompletionResultConfirm error:', error);
|
||||
console.error('[WorkerScreen] handleWorkCompletion error:', error);
|
||||
toast.error('작업 완료 중 오류가 발생했습니다.');
|
||||
} finally {
|
||||
setSelectedOrder(null);
|
||||
setCompletionLotNo('');
|
||||
}
|
||||
}, [selectedOrder, inputMaterialsMap]);
|
||||
|
||||
// 완료 결과 팝업 확인 → 상태 정리
|
||||
const handleCompletionResultConfirm = useCallback(() => {
|
||||
setSelectedOrder(null);
|
||||
setCompletionLotNo('');
|
||||
}, []);
|
||||
|
||||
// 하단 버튼용 합성 WorkOrder (사이드바 선택 우선, 없으면 첫 번째, 그래도 없으면 목업 폴백)
|
||||
const getTargetOrder = useCallback((): WorkOrder | null => {
|
||||
// 사이드바에서 선택된 작업지시 우선
|
||||
|
||||
Reference in New Issue
Block a user