Files
SCGL/backend/app/main.py

68 lines
2.2 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"""FastAPI 主入口文件
核心原则:
- 所有写操作仅在 pms_db 中进行
- 绝对禁止对 inventory_db 进行任何写操作
- 库存相关查询仅使用只读连接
"""
from fastapi import FastAPI
from fastapi.middleware.cors import CORSMiddleware
from app.config import settings
from app.routers import (
deduce_bom_router, # 齐套性推演
bom_targets_router, # BOM 成品搜索
work_order_router, # 工单 CRUD
approval_router, # 缺料审批
approvals_router, # 缺料审批列表
material_router, # 物料查询
preference_router, # 用户偏好
project_stats_router, # 项目统计
work_order_kanban_router, # 工单看板
)
# 自动创建表(仅 pms_db
from app.database import engine_pms, Base
from app.models import PmsProject, PmsWorkOrder, PmsMaterialApproval, PmsUserPreference
from app.models.inventory import MaterialBase
Base.metadata.create_all(bind=engine_pms)
# 创建FastAPI应用实例
app = FastAPI(
title="Production Management System API",
description="生产管理系统后端API",
version="1.0.0",
)
# 配置CORS中间件
app.add_middleware(
CORSMiddleware,
allow_origins=settings.CORS_ORIGINS,
allow_credentials=True,
allow_methods=["*"],
allow_headers=["*"],
)
# ============================================================
# 路由注册说明:
# 1. FastAPI 按 include_router 顺序注册路由
# 2. 更具体的路径(如 /summary必须在通用路径如 /{id})之前定义
# 3. 同一 prefix 的路由必须集中注册,避免路径匹配混乱
# ============================================================
app.include_router(deduce_bom_router)
app.include_router(bom_targets_router)
app.include_router(work_order_router)
app.include_router(approval_router)
app.include_router(approvals_router)
app.include_router(material_router)
app.include_router(preference_router)
app.include_router(project_stats_router)
app.include_router(work_order_kanban_router)
@app.get("/health")
async def health_check():
"""健康检查接口"""
return {"status": "healthy", "service": "PMS API"}