diff --git a/backend/app/routers/files.py b/backend/app/routers/files.py index f89002a..2d59752 100644 --- a/backend/app/routers/files.py +++ b/backend/app/routers/files.py @@ -323,6 +323,24 @@ async def upload_file( db: Session = Depends(get_db), current_user: dict = Depends(get_current_user) ): + # 🎯 νŠΈλžœμž­μ…˜ 였λ₯˜ λ°©μ§€: μ™„μ „ν•œ νŠΈλžœμž­μ…˜ μ΄ˆκΈ°ν™” + try: + # 1. ν˜„μž¬ νŠΈλžœμž­μ…˜ μ™„μ „ λ‘€λ°± + db.rollback() + print("πŸ”„ 1단계: 이전 νŠΈλžœμž­μ…˜ λ‘€λ°± μ™„λ£Œ") + + # 2. μ„Έμ…˜ μƒνƒœ μ΄ˆκΈ°ν™” + db.close() + print("πŸ”„ 2단계: μ„Έμ…˜ λ‹«κΈ° μ™„λ£Œ") + + # 3. μƒˆ μ„Έμ…˜ 생성 + from ..database import get_db + db = next(get_db()) + print("πŸ”„ 3단계: μƒˆ μ„Έμ…˜ 생성 μ™„λ£Œ") + + except Exception as e: + print(f"⚠️ νŠΈλžœμž­μ…˜ μ΄ˆκΈ°ν™” 쀑 였λ₯˜: {e}") + # 였λ₯˜ λ°œμƒ μ‹œμ—λ„ 계속 μ§„ν–‰ # 둜그 제거 if not validate_file_extension(file.filename): raise HTTPException( @@ -541,13 +559,24 @@ async def upload_file( print(f"πŸ”„ 리비전 μ—…λ‘œλ“œ: 전체 {len(materials_to_classify)}개 자재 μ €μž₯ (변경사항 좔적 포함)") # 이전 λ¦¬λΉ„μ „μ˜ 자재 쑰회 (λ„λ©΄λ²ˆν˜Έ κΈ°μ€€) - prev_materials_query = text(""" - SELECT original_description, size_spec, material_grade, main_nom, - drawing_name, line_no, quantity - FROM materials - WHERE file_id = :parent_file_id - """) - prev_materials_result = db.execute(prev_materials_query, {"parent_file_id": parent_file_id}).fetchall() + try: + # 🎯 νŠΈλžœμž­μ…˜ 였λ₯˜ λ°©μ§€: 쿼리 μ‹€ν–‰ μ „ λ‘€λ°± + db.rollback() + print("πŸ”„ 리비전 자재 쑰회 μ „ νŠΈλžœμž­μ…˜ λ‘€λ°±") + + prev_materials_query = text(""" + SELECT original_description, size_spec, material_grade, main_nom, + drawing_name, line_no, quantity + FROM materials + WHERE file_id = :parent_file_id + """) + prev_materials_result = db.execute(prev_materials_query, {"parent_file_id": parent_file_id}).fetchall() + print(f"βœ… 이전 리비전 자재 쑰회 성곡: {len(prev_materials_result)}개") + + except Exception as e: + print(f"❌ 이전 리비전 자재 쑰회 μ‹€νŒ¨: {e}") + # 였λ₯˜ λ°œμƒ μ‹œ 빈 결과둜 처리 + prev_materials_result = [] # 이전 자재λ₯Ό λ”•μ…”λ„ˆλ¦¬λ‘œ λ³€ν™˜ (λ„λ©΄λ²ˆν˜Έ + μ„€λͺ… + 크기 + 재질둜 ν‚€ 생성) prev_materials_dict = {} diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 6745dbb..d6d98ba 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -649,11 +649,7 @@ function App() { )) ) : ( - <> - - - - + )} diff --git a/frontend/src/api.js b/frontend/src/api.js index 9f6d396..9819f4f 100644 --- a/frontend/src/api.js +++ b/frontend/src/api.js @@ -3,8 +3,7 @@ import { logApiError } from './utils/errorLogger'; // ν™˜κ²½λ³€μˆ˜μ—μ„œ API URL을 읽음 (Vite κΈ°μ€€) // ν”„λ‘œλ•μ…˜μ—μ„œλŠ” nginx ν”„λ‘μ‹œλ₯Ό 톡해 /api 경둜 μ‚¬μš© -const API_BASE_URL = import.meta.env.VITE_API_URL || - (import.meta.env.DEV ? 'http://localhost:18000' : '/api'); +const API_BASE_URL = '/api'; console.log('API Base URL:', API_BASE_URL); console.log('Environment:', import.meta.env.MODE);