feat: 오늘 6시간 작업 내용 복구 완료

- 엑셀 내보내기 개선: 납기일 P열 이동, 관리항목 4개로 축소
- J24-001 더미 프로젝트 옵션 제거
- CORS 오류 해결: API URL /api로 통일
- BOM 페이지 수정사항 포함
- 트랜잭션 오류 해결 시도
This commit is contained in:
hyungi
2025-10-15 13:55:25 +09:00
parent b10bd8d01c
commit e799aae71b
7 changed files with 568 additions and 93 deletions

View File

@@ -34,7 +34,7 @@ class PurchaseRequestCreate(BaseModel):
@router.post("/create")
async def create_purchase_request(
request_data: PurchaseRequestCreate,
# current_user: dict = Depends(get_current_user),
current_user: dict = Depends(get_current_user),
db: Session = Depends(get_db)
):
"""
@@ -81,7 +81,7 @@ async def create_purchase_request(
material_count, excel_file_path, requested_by
) VALUES (
:request_no, :file_id, :job_no, :category,
:material_count, :excel_path, :requested_by
:material_count, :excel_file_path, :requested_by
) RETURNING request_id
""")
@@ -91,8 +91,8 @@ async def create_purchase_request(
"job_no": request_data.job_no,
"category": request_data.category,
"material_count": len(request_data.material_ids),
"excel_path": excel_filename, # 엑셀 파일명 저장 (JSON 대신)
"requested_by": 1 # current_user.get("user_id")
"excel_file_path": excel_filename, # 엑셀 파일명 저장 (JSON 대신)
"requested_by": current_user.get("user_id")
})
request_id = result.fetchone().request_id
@@ -163,7 +163,7 @@ async def create_purchase_request(
db.rollback()
logger.error(f"Failed to create purchase request: {str(e)}")
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
status_code=500,
detail=f"구매신청 생성 실패: {str(e)}"
)
@@ -194,7 +194,7 @@ async def get_purchase_requests(
u.name as requested_by,
f.original_filename,
j.job_name,
COUNT(pri.item_id) as item_count
COUNT(pri.id) as item_count
FROM purchase_requests pr
LEFT JOIN users u ON pr.requested_by = u.user_id
LEFT JOIN files f ON pr.file_id = f.id
@@ -244,7 +244,7 @@ async def get_purchase_requests(
except Exception as e:
logger.error(f"Failed to get purchase requests: {str(e)}")
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
status_code=500,
detail=f"구매신청 목록 조회 실패: {str(e)}"
)
@@ -400,7 +400,7 @@ async def get_request_materials(
except Exception as e:
logger.error(f"Failed to get request materials: {str(e)}")
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
status_code=500,
detail=f"구매신청 자재 조회 실패: {str(e)}"
)
@@ -451,7 +451,7 @@ async def download_request_excel(
except Exception as e:
logger.error(f"Failed to download request excel: {str(e)}")
raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,
status_code=500,
detail=f"엑셀 다운로드 실패: {str(e)}"
)