From bf0ef9e148f2f438b5630c9fc9f6b8943592eeff Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期一, 07 九月 2026 16:55:15 +0800
Subject: [PATCH] fix(排产): 生产状态为已完成的单不再显示0%进度,已完成类型隐藏排产维护按钮

---
 src/views/mes/pro/task/index.vue |   40 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 36 insertions(+), 4 deletions(-)

diff --git a/src/views/mes/pro/task/index.vue b/src/views/mes/pro/task/index.vue
index e8e5b06..ba6ff48 100644
--- a/src/views/mes/pro/task/index.vue
+++ b/src/views/mes/pro/task/index.vue
@@ -7,6 +7,7 @@
 
 import { Page, useVbenModal } from '@vben/common-ui';
 import {
+  MesProWorkOrderProductionStatusEnum,
   MesProWorkOrderStatusEnum,
   MesProWorkOrderTypeEnum,
 } from '@vben/constants';
@@ -71,6 +72,30 @@
   router.push({ name: 'MesProTaskGanttEdit' });
 }
 
+/** 鍒ゆ柇璁㈠崟鏄惁涓衡�滃凡瀹屾垚绫诲瀷鈥濓細璁㈠崟鐘舵��=宸插畬鎴� 鎴� 鐢熶骇鐘舵��=鐢熶骇瀹屾垚 */
+function isCompletedWorkOrder(row: MesProWorkOrderApi.WorkOrder): boolean {
+  return (
+    row.status === MesProWorkOrderStatusEnum.FINISHED ||
+    row.productionStatus === MesProWorkOrderProductionStatusEnum.FINISHED
+  );
+}
+
+/**
+ * 宸插畬鎴愮被鍨嬭鐨勨�滃畬鎴愭�佲�濆厹搴曞睍绀猴細
+ * 宸茬敓浜ф暟閲忔寜璁㈠崟鏁伴噺灞曠ず锛堣嫢浣庝簬璁㈠崟鏁伴噺锛夛紝浣垮畬鎴愯繘搴︽樉绀轰负 100%銆�
+ * 浠呬綔鐢ㄤ簬鏈〉鍒楄〃灞曠ず锛屼笉淇敼鍚庣鏁版嵁锛屼笉褰卞搷搴撳瓨/鎶ュ伐/瀵煎嚭绛夌湡瀹炲彛寰勩��
+ */
+function normalizeCompletionDisplay(row: MesProWorkOrderApi.WorkOrder): void {
+  if (!isCompletedWorkOrder(row)) {
+    return;
+  }
+  const quantity = row.quantity ?? 0;
+  const produced = row.quantityProduced ?? 0;
+  if (produced < quantity) {
+    row.quantityProduced = quantity;
+  }
+}
+
 const [Grid, gridApi] = useVbenVxeGrid({
   formOptions: {
     schema: useGridFormSchema(),
@@ -82,21 +107,26 @@
       ajax: {
         query: async ({ page }, formValues) => {
           let scheduleStatus: number | undefined = undefined;
-          
+
           if (activeTab.value === 'PENDING') {
-            scheduleStatus = 0; // 寰呮帓浜�
+            scheduleStatus = 0; // 鏈畬鎴�
           } else if (activeTab.value === 'FINISHED') {
             scheduleStatus = 1; // 宸插畬鎴�
           }
           // activeTab === 'ALL' 鏃朵笉浼�
 
-          return await getWorkOrderSchedulePage({
+          const res = await getWorkOrderSchedulePage({
             pageNo: page.currentPage,
             pageSize: page.pageSize,
             scheduleStatus,
             type: MesProWorkOrderTypeEnum.SELF,
             ...formValues,
           });
+          // 宸插畬鎴愮被鍨嬭锛氬凡鐢熶骇鏁伴噺/瀹屾垚杩涘害鍋氣�滃畬鎴愭�佲�濆厹搴曞睍绀猴紙浠呮湰椤靛睍绀猴紝涓嶆敼搴擄級
+          if (res?.list) {
+            res.list.forEach(normalizeCompletionDisplay);
+          }
+          return res;
         },
       },
     },
@@ -173,7 +203,9 @@
               label: '鎺掍骇缁存姢',
               type: 'link',
               auth: ['mes:pro-task:create'],
-              ifShow: row.status === MesProWorkOrderStatusEnum.CONFIRMED,
+              ifShow:
+                row.status === MesProWorkOrderStatusEnum.CONFIRMED &&
+                !isCompletedWorkOrder(row),
               onClick: handleSchedule.bind(null, row),
             },
             {

--
Gitblit v1.9.3