From 4567b8731458c9ce2c6d3c4e836cac252c282fa0 Mon Sep 17 00:00:00 2001 From: wangyu <823267011@qq.com> Date: Mon, 29 Jun 2026 15:30:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(linkage):=20=E9=9E=8D=E5=BA=A7=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E6=8A=95=E5=85=A5=E7=94=9F=E4=BA=A7=20+=20=E5=AE=9E?= =?UTF-8?q?=E7=BB=A9=E7=94=9F=E4=BA=A7=E9=98=B6=E6=AE=B5=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=20+=20=E5=8E=BB=E6=8E=89=E5=8F=A3=E8=AF=AD=E5=8C=96=E6=8F=90?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 产线空闲时自动把上卷鞍座预备卷投入生产;产线在产则等上一卷完成生成实绩后自动进入 - 引擎循环间隔降到5s,自动推进更及时 - 实绩页:ProductionRecordOut 增加生产阶段字段;点击行在下方展示生产阶段数据 - 移除入口跟踪/物料跟踪/成本页的口语化提示小字 Co-Authored-By: Claude Opus 4.8 --- backend/app/schemas/production.py | 13 +++++++++ backend/app/services/line_service.py | 16 +++++++++-- frontend/src/views/CostManagement.vue | 2 +- frontend/src/views/EntryTracking.vue | 5 ++-- frontend/src/views/Material.vue | 1 - frontend/src/views/Production.vue | 39 +++++++++++++++++++++++++-- 6 files changed, 67 insertions(+), 9 deletions(-) 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 @@
{{ curMeta.item_name }}耗量统计
-
暂无数据,请调整时间范围或点击「新增」录入
+
暂无数据
diff --git a/frontend/src/views/EntryTracking.vue b/frontend/src/views/EntryTracking.vue index 5a6dea0..a941ddc 100644 --- a/frontend/src/views/EntryTracking.vue +++ b/frontend/src/views/EntryTracking.vue @@ -52,10 +52,9 @@
预备生产 - 点击右上「投入生产」→ 进入生产中并转入物料跟踪
-
空闲 — 把在线计划移动到「上卷鞍座」预备生产
+
空闲
@@ -103,7 +102,7 @@