✅ 완성된 기능: - Job 관리 CRUD API 구현 (생성/조회/수정/삭제) - PostgreSQL jobs 테이블 생성 및 더미 데이터 - files.py project_id → job_no 변경으로 완전 통합 - Job 검증 로직으로 업로드 시 유효성 확인 - Job-Files-Materials 3단계 데이터 연동 완료 📁 추가된 파일: - scripts/create_jobs.sql: jobs 테이블 스키마 - scripts/insert_dummy_jobs.py: 더미 데이터 생성 - app/routers/jobs.py: Job 관리 API - app/routers/files.py: BOM 업로드 (job_no 연동) 🚀 다음 단계: - 자재 분류 시스템 통합 (classification.py) - 검토 시스템 구현 (행별 분류 확인/수정) - Job별 자재 통계 및 진행률 API - 프론트엔드 UI 개발 🎯 테스트 완료: - J24-001 Job에 BOM 파일 업로드 성공 - Job 검증 및 오류 처리 작동 확인 - PostgreSQL 데이터 저장 및 조회 정상
48 lines
1.2 KiB
Python
48 lines
1.2 KiB
Python
from fastapi import FastAPI
|
|
from fastapi.middleware.cors import CORSMiddleware
|
|
|
|
# FastAPI 앱 생성
|
|
app = FastAPI(
|
|
title="TK-MP BOM Management API",
|
|
description="자재 분류 및 프로젝트 관리 시스템",
|
|
version="1.0.0"
|
|
)
|
|
|
|
# CORS 설정
|
|
app.add_middleware(
|
|
CORSMiddleware,
|
|
allow_origins=["*"],
|
|
allow_credentials=True,
|
|
allow_methods=["*"],
|
|
allow_headers=["*"],
|
|
)
|
|
|
|
# 라우터들 import 및 등록
|
|
try:
|
|
from .routers import files
|
|
app.include_router(files.router, prefix="/files", tags=["files"])
|
|
except ImportError:
|
|
print("files 라우터를 찾을 수 없습니다")
|
|
|
|
try:
|
|
from .routers import jobs
|
|
app.include_router(jobs.router, prefix="/jobs", tags=["jobs"])
|
|
except ImportError:
|
|
print("jobs 라우터를 찾을 수 없습니다")
|
|
|
|
@app.get("/")
|
|
async def root():
|
|
return {
|
|
"message": "TK-MP BOM Management API",
|
|
"version": "1.0.0",
|
|
"endpoints": ["/docs", "/jobs", "/files"]
|
|
}
|
|
|
|
@app.get("/health")
|
|
async def health_check():
|
|
return {"status": "healthy", "timestamp": "2024-07-15"}
|
|
|
|
if __name__ == "__main__":
|
|
import uvicorn
|
|
uvicorn.run(app, host="0.0.0.0", port=8000, reload=True)
|