From 04e8e3a312ed1f2d9dc40354ae5847ef9cc11360 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期六, 29 八月 2026 16:22:35 +0800
Subject: [PATCH] fix: 新疆-绿能 1.报工等待时长倒计时 + 报工数量可选 2.报工自动生成产品入库单 + 勾选入库 + 不合格仓库兜底

---
 src/views/mes/pro/feedback/data.ts |   39 ++++++++++++++++++++++++++++++++++++---
 1 files changed, 36 insertions(+), 3 deletions(-)

diff --git a/src/views/mes/pro/feedback/data.ts b/src/views/mes/pro/feedback/data.ts
index 32056e7..fbe99f0 100644
--- a/src/views/mes/pro/feedback/data.ts
+++ b/src/views/mes/pro/feedback/data.ts
@@ -19,7 +19,13 @@
 import { generateAutoCode } from '#/api/mes/md/autocode/record';
 import { getRouteProcessByRouteAndProcess } from '#/api/mes/pro/route/process';
 import { getSimpleUserList } from '#/api/system/user';
-import { loadParamDetails } from './param-state';
+import {
+  loadParamDetails,
+  resetWaitConfig,
+  waitDuration,
+  waitStartTime,
+  waitTaskId,
+} from './param-state';
 import { getRangePickerDefaultProps } from '#/utils';
 import { MdItemSelect } from '#/views/mes/md/item/components';
 import { MdWorkstationSelect } from '#/views/mes/md/workstation/components';
@@ -195,6 +201,12 @@
       defaultValue: true,
     },
     {
+      fieldName: 'needReportQuantity',
+      component: 'Input',
+      dependencies: { triggerFields: [''], show: () => false },
+      defaultValue: true,
+    },
+    {
       fieldName: 'routeId',
       component: 'Input',
       dependencies: { triggerFields: [''], show: () => false },
@@ -255,8 +267,10 @@
         status: MesProWorkOrderStatusEnum.CONFIRMED,
         // 璁㈠崟鍙樻洿锛氭竻绌轰换鍔″強浠诲姟甯﹀嚭鐨勪骇鍝佷俊鎭�佹暟閲忓尯鍩熸帶鍒朵綅
         onChange: async () => {
+          resetWaitConfig();
           await formApi?.setValues({
             checkFlag: true,
+            needReportQuantity: true,
             itemCode: undefined,
             itemId: undefined,
             itemName: undefined,
@@ -291,6 +305,8 @@
         onChange: async (task?: MesProTaskApi.Task) => {
           await loadParamDetails(task?.id);
           if (!task) {
+            resetWaitConfig();
+            await formApi?.setFieldValue('needReportQuantity', true);
             return;
           }
           await formApi?.setValues({
@@ -304,7 +320,9 @@
             workstationId: task.workstationId,
             reportableQuantity: task.reportableQuantity,
           });
-          // 宸ヨ壓璺嚎宸ュ簭鐨� checkFlag 鍐冲畾鏁伴噺鍖哄煙灞曠ず
+          waitTaskId.value = task.id;
+          waitStartTime.value = task.waitStartTime;
+          // 宸ヨ壓璺嚎宸ュ簭鐨� checkFlag / 绛夊緟鏃堕暱 / 鎶ュ伐鏁伴噺瑙勫垯鍐冲畾灞曠ず
           if (task.routeId && task.processId) {
             try {
               const routeProcess = await getRouteProcessByRouteAndProcess(
@@ -315,9 +333,19 @@
                 'checkFlag',
                 routeProcess?.checkFlag ?? false,
               );
+              await formApi?.setFieldValue(
+                'needReportQuantity',
+                routeProcess?.needReportQuantity ?? true,
+              );
+              waitDuration.value = routeProcess?.waitDuration;
             } catch {
               await formApi?.setFieldValue('checkFlag', true);
+              await formApi?.setFieldValue('needReportQuantity', true);
+              waitDuration.value = undefined;
             }
+          } else {
+            waitDuration.value = undefined;
+            await formApi?.setFieldValue('needReportQuantity', true);
           }
         },
       },
@@ -405,7 +433,12 @@
         precision: 2,
         placeholder: '璇疯緭鍏ユ姤宸ユ暟閲�',
       },
-      rules: 'required',
+      dependencies: {
+        triggerFields: ['needReportQuantity'],
+        show: (values) => values.needReportQuantity !== false,
+        rules: (values) =>
+          values.needReportQuantity === false ? null : 'required',
+      },
     },
     {
       fieldName: 'feedbackUserId',

--
Gitblit v1.9.3