diff --git a/backend/app/schemas/production.py b/backend/app/schemas/production.py index d468435..212dd15 100644 --- a/backend/app/schemas/production.py +++ b/backend/app/schemas/production.py @@ -81,6 +81,19 @@ class ProductionRecordOut(BaseModel): offline_time: Optional[datetime] = None status: Optional[str] = None remark: Optional[str] = None + # 生产阶段数据 + shift_date: Optional[datetime] = None + start_time: Optional[datetime] = None + end_time: Optional[datetime] = None + process_length: Optional[float] = None + process_weight: Optional[float] = None + avg_speed: Optional[float] = None + max_speed: Optional[float] = None + acid_consumption: Optional[float] = None + inlet_thickness: Optional[float] = None + inlet_width: Optional[float] = None + quality_grade: Optional[str] = None + operator: Optional[str] = None created_at: datetime class Config: diff --git a/backend/app/services/line_service.py b/backend/app/services/line_service.py index ac4e739..6900587 100644 --- a/backend/app/services/line_service.py +++ b/backend/app/services/line_service.py @@ -212,13 +212,25 @@ async def detect_downtime(db: AsyncSession): logger.info("自动检测到停机,已新增待补充停机记录") +async def auto_commit_saddle(db: AsyncSession): + """产线空闲(无在产卷)且上卷鞍座有预备卷 → 自动投入生产(无需人工点击)。""" + res = await db.execute(select(ProductionPlan).where(ProductionPlan.status == "producing")) + if res.scalars().first() is not None: + return # 产线占用:鞍座预备卷等待上一卷生产完成 + saddle = await _saddle_plan(db) + if saddle is None: + return + await commit_plan(db, saddle) + + async def tick(db: AsyncSession): - """引擎单步:推进在产卷 + 停机检测(在线为人工触发,不自动上线)。""" + """引擎单步:推进在产卷 → 产线空闲则自动投入鞍座预备卷 → 停机检测。""" await advance_production(db) + await auto_commit_saddle(db) await detect_downtime(db) -async def run_engine_loop(interval_s: int = 15): +async def run_engine_loop(interval_s: int = 5): """后台循环,使联动在无人查看时也能自动推进。""" import asyncio from app.database import AsyncSessionLocal diff --git a/frontend/src/views/CostManagement.vue b/frontend/src/views/CostManagement.vue index ea6dfd9..e35093b 100644 --- a/frontend/src/views/CostManagement.vue +++ b/frontend/src/views/CostManagement.vue @@ -20,7 +20,7 @@