From e194b97649a065d8aca565a2f3dabf4915d0e2e4 Mon Sep 17 00:00:00 2001 From: duxingchen Date: Wed, 2 Sep 2026 09:07:37 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=85=A8=E7=8A=B6=E6=80=81=E5=AF=B9?= =?UTF-8?q?=E9=BD=90=20-=20=E5=B7=B2=E5=87=BA=E5=BA=93(OUTBOUND)=E8=A6=86?= =?UTF-8?q?=E7=9B=96=E6=89=80=E6=9C=89=E7=9C=8B=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 看板产品流转 finished_cond 加'已出库',已出库归入已完结 - WIP 矩阵区分'已出库'维度 - MyTasksPage tab 加'已出库' - 移动端 detail/WorkspaceArea STATUS_MAP 补 OUTBOUND --- backend/app/services/dashboard_service.py | 11 +++++++---- frontend/src/pages/MyTasksPage.tsx | 1 + .../src/pages/scan/components/WorkspaceArea.vue | 2 +- track-uniapp/src/pages/scan/detail.vue | 2 +- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/backend/app/services/dashboard_service.py b/backend/app/services/dashboard_service.py index 9159a2d..49832bd 100644 --- a/backend/app/services/dashboard_service.py +++ b/backend/app/services/dashboard_service.py @@ -162,11 +162,11 @@ async def get_dashboard_stats( from app.models.message import ProductMessage # ── 产品(实时快照,不过滤) ── # 状态口径(用户确认):废弃 Product.status 恒值判断, - # COMPLETED=待仓库收货,ARCHIVED=已入库('在库' 旧命名等价)。 - # 产品流转卡片第三段"已入库"= 全部完结(待收货 + 已实收 + 旧在库),保证三段和 = 总数。 + # COMPLETED=待仓库收货,ARCHIVED=已入库('在库' 旧命名等价),OUTBOUND=已出库。 + # 产品流转卡片第三段"已完结"= 待收货 + 已实收 + 旧在库 + 已出库,保证三段和 = 总数。 p_total = await db.scalar(select(func.count(Product.id))) - finished_cond = Product.overall_status.in_(["待仓库收货", "已入库", "在库"]) + finished_cond = Product.overall_status.in_(["待仓库收货", "已入库", "在库", "已出库"]) p_done = await db.scalar(select(func.count(Product.id)).where(finished_cond)) # 在制 WIP = 未完结 且 存在活跃任务(PENDING/WIP) 的产品数 @@ -685,13 +685,16 @@ async def get_wip_matrix( continue if dimension == "task_name": - # 🔧 在仓库的设备按"已完成/已入库"区分: + # 🔧 在仓库的设备按"已入库/已出库/待仓库收货"区分: # 已入库 = MOM 已扫码实收 (overall_status=='已入库'/'在库' 或 status=='ARCHIVED') + # 已出库 = MOM 已发货出库 (overall_status=='已出库' 或 status=='OUTBOUND') # 待仓库收货 = 完工已转交仓库、MOM 尚未扫码实收 # 否则按最新主任务工序名(活跃/完成态都归该工序) if loc == "virtual_warehouse": if overall_status in ("已入库", "在库") or str(product_status).upper() == "ARCHIVED": key = "已入库" + elif overall_status == "已出库" or str(product_status).upper() == "OUTBOUND": + key = "已出库" else: key = "待仓库收货" else: diff --git a/frontend/src/pages/MyTasksPage.tsx b/frontend/src/pages/MyTasksPage.tsx index 59affbb..e2be184 100644 --- a/frontend/src/pages/MyTasksPage.tsx +++ b/frontend/src/pages/MyTasksPage.tsx @@ -16,6 +16,7 @@ const TABS = [ { key: "WIP", label: "进行中" }, { key: "COMPLETED", label: "已完成" }, { key: "ARCHIVED", label: "已入库" }, + { key: "OUTBOUND", label: "已出库" }, ] as const; type TabKey = (typeof TABS)[number]["key"]; diff --git a/track-uniapp/src/pages/scan/components/WorkspaceArea.vue b/track-uniapp/src/pages/scan/components/WorkspaceArea.vue index e13247a..fa0d0f5 100644 --- a/track-uniapp/src/pages/scan/components/WorkspaceArea.vue +++ b/track-uniapp/src/pages/scan/components/WorkspaceArea.vue @@ -106,7 +106,7 @@