From 552ec6b7d8ccc56c379da195fc6c9c74312b1070 Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期五, 22 五月 2026 17:57:46 +0800
Subject: [PATCH] OA部分查询条件变更

---
 src/pages/productionManagement/productionReport/index.vue |   91 +++++++++++++++++++++++++++++++++------------
 1 files changed, 66 insertions(+), 25 deletions(-)

diff --git a/src/pages/productionManagement/productionReport/index.vue b/src/pages/productionManagement/productionReport/index.vue
index ac0249b..ac92038 100644
--- a/src/pages/productionManagement/productionReport/index.vue
+++ b/src/pages/productionManagement/productionReport/index.vue
@@ -18,7 +18,7 @@
                    placeholder="鑷姩濉厖"
                    disabled />
         </u-form-item>
-        <u-form-item label="鏈鐢熶骇鏁伴噺"
+        <u-form-item label="鐢熶骇鍚堟牸鏁伴噺"
                      prop="quantity"
                      required>
           <u-input v-model="form.quantity"
@@ -39,6 +39,15 @@
                    readonly
                    @click="openProducerPicker"
                    suffix-icon="arrow-down" />
+        </u-form-item>
+        <!-- 宸ユ椂 -->
+        <u-form-item label="宸ユ椂"
+                     v-if="form.type == 0"
+                     prop="workHour">
+          <u-input v-model="form.workHour"
+                   placeholder="璇疯緭鍏ュ伐鏃�"
+                   type="number" />
+          <text class="param-unit">h</text>
         </u-form-item>
       </view>
       <!-- 鍔ㄦ�佸弬鏁板尯鍩� -->
@@ -135,7 +144,10 @@
   import { addProductMain } from "@/api/productionManagement/productionReporting";
   import { getInfo } from "@/api/login";
   import { userListNoPageByTenantId } from "@/api/system/user";
-  import { findProcessParamListOrder } from "@/api/productionManagement/productProcessRoute.js";
+  import {
+    findProcessParamListOrder,
+    listMaterialPickingDetail,
+  } from "@/api/productionManagement/productionOrder.js";
   import { getDicts } from "@/api/system/dict/data";
   import { formatDateToYMD, parseTime } from "@/utils/ruoyi";
 
@@ -147,13 +159,13 @@
     scrapQty: "",
     userName: "",
     workOrderId: "",
-    productProcessRouteItemId: "",
     userId: "",
     schedulingUserId: "",
     reportWork: "",
-    productMainId: null,
     productionOrderRoutingOperationId: "",
     productionOrderId: "",
+    workHour: 0,
+    type: null,
     paramGroups: {},
   });
 
@@ -295,7 +307,7 @@
 
     if (!form.value.quantity) {
       submitting.value = false;
-      showToast("璇疯緭鍏ユ湰娆$敓浜ф暟閲�");
+      showToast("璇疯緭鍏ョ敓浜у悎鏍兼暟閲�");
       return;
     }
 
@@ -309,17 +321,17 @@
     const scrapQty = Number(form.value.scrapQty) || 0;
     const planQuantity = Number(form.value.planQuantity);
 
-    if (quantity <= 0) {
+    if (quantity < 0) {
       submitting.value = false;
-      showToast("鏈鐢熶骇鏁伴噺蹇呴』澶т簬0");
+      showToast("鐢熶骇鍚堟牸鏁伴噺蹇呴』澶т簬绛変簬0");
       return;
     }
 
-    if (quantity + scrapQty > planQuantity) {
-      submitting.value = false;
-      showToast("鐢熶骇鏁伴噺鍜屾姤搴熸暟閲忕殑鍜屼笉鑳借秴杩囧緟鐢熶骇鏁伴噺");
-      return;
-    }
+    // if (quantity + scrapQty > planQuantity) {
+    //   submitting.value = false;
+    //   showToast("鐢熶骇鏁伴噺鍜屾姤搴熸暟閲忕殑鍜屼笉鑳借秴杩囧緟鐢熶骇鏁伴噺");
+    //   return;
+    // }
 
     if (scrapQty < 0) {
       submitting.value = false;
@@ -327,11 +339,11 @@
       return;
     }
 
-    if (scrapQty > quantity) {
-      submitting.value = false;
-      showToast("鎶ュ簾鏁伴噺涓嶈兘澶т簬鏈鐢熶骇鏁伴噺");
-      return;
-    }
+    // if (scrapQty > quantity) {
+    //   submitting.value = false;
+    //   showToast("鎶ュ簾鏁伴噺涓嶈兘澶т簬鏈鐢熶骇鏁伴噺");
+    //   return;
+    // }
 
     const productionOperationParamList = params.value.map(param => ({
       ...param,
@@ -344,12 +356,11 @@
       userId: form.value.userId,
       userName: form.value.userName,
       productionOperationTaskId: form.value.workOrderId,
-      productProcessRouteItemId: form.value.productProcessRouteItemId,
       reportWork: form.value.reportWork,
-      productMainId: form.value.productMainId,
       productionOrderRoutingOperationId:
         form.value.productionOrderRoutingOperationId,
       productionOrderId: form.value.productionOrderId,
+      workHour: form.value.workHour,
       productionOperationParamList: productionOperationParamList,
     };
 
@@ -374,7 +385,7 @@
       });
   };
 
-  onLoad(options => {
+  onLoad(async options => {
     console.log(options, "options");
     if (!options.orderRow) {
       console.log("浠庨椤佃烦杞紝鏃犺鍗曟暟鎹�");
@@ -389,16 +400,46 @@
       const orderRow = JSON.parse(decodeURIComponent(options.orderRow));
       console.log("鏋勯�犵殑orderRow:", orderRow);
 
-      form.value.planQuantity =
-        orderRow.planQuantity != null ? String(orderRow.planQuantity) : "";
-      form.value.productProcessRouteItemId =
-        orderRow.productProcessRouteItemId || "";
+      // 鍙傜収 PC 绔�昏緫锛氭湭棰嗘枡鏃犳硶鎶ュ伐
+      if (orderRow.productionOrderId) {
+        try {
+          const res = await listMaterialPickingDetail(orderRow.productionOrderId);
+          const records = Array.isArray(res.data)
+            ? res.data
+            : res.data?.records || [];
+          if (res.code === 200 && records.length === 0) {
+            uni.showModal({
+              title: "鎻愮ず",
+              content: "鏈鏂欐棤娉曟姤宸�",
+              showCancel: false,
+              success: () => {
+                goBack();
+              },
+            });
+            return;
+          }
+        } catch (error) {
+          console.error("鏌ヨ棰嗘枡璇︽儏澶辫触:", error);
+        }
+      }
+
+      const planQuantity = Number(orderRow.planQuantity || 0);
+      const completeQuantity = Number(orderRow.completeQuantity || 0);
+      form.value.planQuantity = String(
+        Math.max(0, planQuantity - completeQuantity)
+      );
       form.value.workOrderId = orderRow.id || "";
       form.value.reportWork = orderRow.reportWork || "";
-      form.value.productMainId = orderRow.productMainId || null;
       form.value.productionOrderRoutingOperationId =
         orderRow.productionOrderRoutingOperationId || "";
       form.value.productionOrderId = orderRow.productionOrderId || "";
+      form.value.type = orderRow.type;
+
+      if (orderRow.type == 0) {
+        form.value.workHour = orderRow.workHour || 0;
+      } else {
+        form.value.workHour = 0;
+      }
 
       getInfo().then(res => {
         form.value.userId = res.user.userId;

--
Gitblit v1.9.3